var opencleanVis =
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "./src/index.tsx");
/******/ })
/************************************************************************/
/******/ ({

/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/assertThisInitialized.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
  \*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\nmodule.exports = _asyncToGenerator;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/asyncToGenerator.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js":
/*!***************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/classCallCheck.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/createClass.js":
/*!************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/createClass.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js":
/*!***************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/defineProperty.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayWithoutHoles; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js":
/*!****************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/createClass.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/defineProperty.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/extends.js":
/*!************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/extends.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js":
/*!*************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _inherits; });\n/* harmony import */ var _setPrototypeOf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object(_setPrototypeOf__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(subClass, superClass);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/inherits.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _inheritsLoose; });\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _iterableToArrayLimit; });\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _nonIterableSpread; });\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(self);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _setPrototypeOf; });\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!******************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _slicedToArray; });\n/* harmony import */ var _arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(_arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || Object(_iterableToArrayLimit__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr, i) || Object(_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr, i) || Object(_nonIterableRest__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toArray.js":
/*!************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toArray.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toArray; });\n/* harmony import */ var _arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _toArray(arr) {\n  return Object(_arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || Object(_iterableToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || Object(_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || Object(_nonIterableRest__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/toArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toConsumableArray; });\n/* harmony import */ var _arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return Object(_arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || Object(_iterableToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || Object(_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || Object(_nonIterableSpread__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js":
/*!***********************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/typeof.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/extends.js":
/*!********************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/extends.js ***!
  \********************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _extends() {\n  module.exports = _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/extends.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js":
/*!***************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/getPrototypeOf.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/inherits.js":
/*!*********************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/inherits.js ***!
  \*********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/inherits.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\n\nmodule.exports = _interopRequireDefault;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/interopRequireDefault.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/interopRequireWildcard.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var _typeof = __webpack_require__(/*! ../helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n\nfunction _getRequireWildcardCache() {\n  if (typeof WeakMap !== \"function\") return null;\n  var cache = new WeakMap();\n\n  _getRequireWildcardCache = function _getRequireWildcardCache() {\n    return cache;\n  };\n\n  return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n  if (obj && obj.__esModule) {\n    return obj;\n  }\n\n  if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n    return {\n      \"default\": obj\n    };\n  }\n\n  var cache = _getRequireWildcardCache();\n\n  if (cache && cache.has(obj)) {\n    return cache.get(obj);\n  }\n\n  var newObj = {};\n  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n      if (desc && (desc.get || desc.set)) {\n        Object.defineProperty(newObj, key, desc);\n      } else {\n        newObj[key] = obj[key];\n      }\n    }\n  }\n\n  newObj[\"default\"] = obj;\n\n  if (cache) {\n    cache.set(obj, newObj);\n  }\n\n  return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
/*!************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutProperties;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
  \*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("var _typeof = __webpack_require__(/*! ../helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js":
/*!***************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
  \***************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/setPrototypeOf.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/helpers/typeof.js?");

/***/ }),

/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@babel/runtime/regenerator/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Accordion/Accordion.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Accordion/Accordion.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toArray */ \"./node_modules/@babel/runtime/helpers/esm/toArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _Collapse__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Collapse */ \"./node_modules/@material-ui/core/esm/Collapse/index.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _AccordionContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./AccordionContext */ \"./node_modules/@material-ui/core/esm/Accordion/AccordionContext.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      transition: theme.transitions.create(['margin'], transition),\n      '&:before': {\n        position: 'absolute',\n        left: 0,\n        top: -1,\n        right: 0,\n        height: 1,\n        content: '\"\"',\n        opacity: 1,\n        backgroundColor: theme.palette.divider,\n        transition: theme.transitions.create(['opacity', 'background-color'], transition)\n      },\n      '&:first-child': {\n        '&:before': {\n          display: 'none'\n        }\n      },\n      '&$expanded': {\n        margin: '16px 0',\n        '&:first-child': {\n          marginTop: 0\n        },\n        '&:last-child': {\n          marginBottom: 0\n        },\n        '&:before': {\n          opacity: 0\n        }\n      },\n      '&$expanded + &': {\n        '&:before': {\n          display: 'none'\n        }\n      },\n      '&$disabled': {\n        backgroundColor: theme.palette.action.disabledBackground\n      }\n    },\n\n    /* Styles applied to the root element if `square={false}`. */\n    rounded: {\n      borderRadius: 0,\n      '&:first-child': {\n        borderTopLeftRadius: theme.shape.borderRadius,\n        borderTopRightRadius: theme.shape.borderRadius\n      },\n      '&:last-child': {\n        borderBottomLeftRadius: theme.shape.borderRadius,\n        borderBottomRightRadius: theme.shape.borderRadius,\n        // Fix a rendering issue on Edge\n        '@supports (-ms-ime-align: auto)': {\n          borderBottomLeftRadius: 0,\n          borderBottomRightRadius: 0\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `expanded={true}`. */\n    expanded: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {}\n  };\n};\nvar Accordion = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"forwardRef\"](function Accordion(props, ref) {\n  var childrenProp = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$defaultExpande = props.defaultExpanded,\n      defaultExpanded = _props$defaultExpande === void 0 ? false : _props$defaultExpande,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      expandedProp = props.expanded,\n      onChange = props.onChange,\n      _props$square = props.square,\n      square = _props$square === void 0 ? false : _props$square,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Collapse__WEBPACK_IMPORTED_MODULE_9__[\"default\"] : _props$TransitionComp,\n      TransitionProps = props.TransitionProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"defaultExpanded\", \"disabled\", \"expanded\", \"onChange\", \"square\", \"TransitionComponent\", \"TransitionProps\"]);\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_13__[\"default\"])({\n    controlled: expandedProp,\n    default: defaultExpanded,\n    name: 'Accordion',\n    state: 'expanded'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useControlled, 2),\n      expanded = _useControlled2[0],\n      setExpandedState = _useControlled2[1];\n\n  var handleChange = react__WEBPACK_IMPORTED_MODULE_4__[\"useCallback\"](function (event) {\n    setExpandedState(!expanded);\n\n    if (onChange) {\n      onChange(event, !expanded);\n    }\n  }, [expanded, onChange, setExpandedState]);\n\n  var _React$Children$toArr = react__WEBPACK_IMPORTED_MODULE_4__[\"Children\"].toArray(childrenProp),\n      _React$Children$toArr2 = Object(_babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$Children$toArr),\n      summary = _React$Children$toArr2[0],\n      children = _React$Children$toArr2.slice(1);\n\n  var contextValue = react__WEBPACK_IMPORTED_MODULE_4__[\"useMemo\"](function () {\n    return {\n      expanded: expanded,\n      disabled: disabled,\n      toggle: handleChange\n    };\n  }, [expanded, disabled, handleChange]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(classes.root, className, expanded && classes.expanded, disabled && classes.disabled, !square && classes.rounded),\n    ref: ref,\n    square: square\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](_AccordionContext__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Provider, {\n    value: contextValue\n  }, summary), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    in: expanded,\n    timeout: \"auto\"\n  }, TransitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"div\", {\n    \"aria-labelledby\": summary.props.id,\n    id: summary.props['aria-controls'],\n    role: \"region\"\n  }, children)));\n});\n true ? Accordion.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the accordion.\n   */\n  children: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.node.isRequired, function (props) {\n    var summary = react__WEBPACK_IMPORTED_MODULE_4__[\"Children\"].toArray(props.children)[0];\n\n    if (Object(react_is__WEBPACK_IMPORTED_MODULE_5__[\"isFragment\"])(summary)) {\n      return new Error(\"Material-UI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n    }\n\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"isValidElement\"](summary)) {\n      return new Error('Material-UI: Expected the first child of Accordion to be a valid element.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.string,\n\n  /**\n   * If `true`, expands the accordion by default.\n   */\n  defaultExpanded: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * If `true`, the accordion will be displayed in a disabled state.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * If `true`, expands the accordion, otherwise collapse it.\n   * Setting this prop enables control over the accordion.\n   */\n  expanded: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * Callback fired when the expand/collapse state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {boolean} expanded The `expanded` state of the accordion.\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.func,\n\n  /**\n   * If `true`, rounded corners are disabled.\n   */\n  square: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * The component used for the collapse effect.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.elementType,\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(styles, {\n  name: 'MuiAccordion'\n})(Accordion));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Accordion/Accordion.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Accordion/AccordionContext.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Accordion/AccordionContext.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\n\nvar AccordionContext = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]({});\n\nif (true) {\n  AccordionContext.displayName = 'AccordionContext';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (AccordionContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Accordion/AccordionContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Accordion/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Accordion/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Accordion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Accordion */ \"./node_modules/@material-ui/core/esm/Accordion/Accordion.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Accordion__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Accordion/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AccordionActions/AccordionActions.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AccordionActions/AccordionActions.js ***!
  \*********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    padding: 8,\n    justifyContent: 'flex-end'\n  },\n\n  /* Styles applied to the root element if `disableSpacing={false}`. */\n  spacing: {\n    '& > :not(:first-child)': {\n      marginLeft: 8\n    }\n  }\n};\nvar AccordionActions = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function AccordionActions(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$disableSpacing = props.disableSpacing,\n      disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"disableSpacing\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, !disableSpacing && classes.spacing),\n    ref: ref\n  }, other));\n});\n true ? AccordionActions.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the actions do not have additional margin.\n   */\n  disableSpacing: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiAccordionActions'\n})(AccordionActions));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AccordionActions/AccordionActions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AccordionActions/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AccordionActions/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AccordionActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccordionActions */ \"./node_modules/@material-ui/core/esm/AccordionActions/AccordionActions.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _AccordionActions__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AccordionActions/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AccordionDetails/AccordionDetails.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AccordionDetails/AccordionDetails.js ***!
  \*********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      padding: theme.spacing(1, 2, 2)\n    }\n  };\n};\nvar AccordionDetails = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function AccordionDetails(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other));\n});\n true ? AccordionDetails.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the accordion details.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiAccordionDetails'\n})(AccordionDetails));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AccordionDetails/AccordionDetails.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AccordionDetails/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AccordionDetails/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AccordionDetails__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccordionDetails */ \"./node_modules/@material-ui/core/esm/AccordionDetails/AccordionDetails.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _AccordionDetails__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AccordionDetails/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AccordionSummary/AccordionSummary.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AccordionSummary/AccordionSummary.js ***!
  \*********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Accordion_AccordionContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Accordion/AccordionContext */ \"./node_modules/@material-ui/core/esm/Accordion/AccordionContext.js\");\n\n\n\n/* eslint-disable jsx-a11y/aria-role */\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      minHeight: 8 * 6,\n      transition: theme.transitions.create(['min-height', 'background-color'], transition),\n      padding: theme.spacing(0, 2),\n      '&:hover:not($disabled)': {\n        cursor: 'pointer'\n      },\n      '&$expanded': {\n        minHeight: 64\n      },\n      '&$focused': {\n        backgroundColor: theme.palette.action.focus\n      },\n      '&$disabled': {\n        opacity: theme.palette.action.disabledOpacity\n      }\n    },\n\n    /* Pseudo-class applied to the root element, children wrapper element and `IconButton` component if `expanded={true}`. */\n    expanded: {},\n\n    /* Pseudo-class applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the children wrapper element. */\n    content: {\n      display: 'flex',\n      flexGrow: 1,\n      transition: theme.transitions.create(['margin'], transition),\n      margin: '12px 0',\n      '&$expanded': {\n        margin: '20px 0'\n      }\n    },\n\n    /* Styles applied to the `IconButton` component when `expandIcon` is supplied. */\n    expandIcon: {\n      transform: 'rotate(0deg)',\n      transition: theme.transitions.create('transform', transition),\n      '&:hover': {\n        // Disable the hover effect for the IconButton,\n        // because a hover effect should apply to the entire Expand button and\n        // not only to the IconButton.\n        backgroundColor: 'transparent'\n      },\n      '&$expanded': {\n        transform: 'rotate(180deg)'\n      }\n    }\n  };\n};\nvar AccordionSummary = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function AccordionSummary(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      expandIcon = props.expandIcon,\n      IconButtonProps = props.IconButtonProps,\n      onBlur = props.onBlur,\n      onClick = props.onClick,\n      onFocusVisible = props.onFocusVisible,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"expandIcon\", \"IconButtonProps\", \"onBlur\", \"onClick\", \"onFocusVisible\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      focusedState = _React$useState[0],\n      setFocusedState = _React$useState[1];\n\n  var handleFocusVisible = function handleFocusVisible(event) {\n    setFocusedState(true);\n\n    if (onFocusVisible) {\n      onFocusVisible(event);\n    }\n  };\n\n  var handleBlur = function handleBlur(event) {\n    setFocusedState(false);\n\n    if (onBlur) {\n      onBlur(event);\n    }\n  };\n\n  var _React$useContext = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_Accordion_AccordionContext__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n      _React$useContext$dis = _React$useContext.disabled,\n      disabled = _React$useContext$dis === void 0 ? false : _React$useContext$dis,\n      expanded = _React$useContext.expanded,\n      toggle = _React$useContext.toggle;\n\n  var handleChange = function handleChange(event) {\n    if (toggle) {\n      toggle(event);\n    }\n\n    if (onClick) {\n      onClick(event);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    focusRipple: false,\n    disableRipple: true,\n    disabled: disabled,\n    component: \"div\",\n    \"aria-expanded\": expanded,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, disabled && classes.disabled, expanded && classes.expanded, focusedState && classes.focused),\n    onFocusVisible: handleFocusVisible,\n    onBlur: handleBlur,\n    onClick: handleChange,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.content, expanded && classes.expanded)\n  }, children), expandIcon && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_IconButton__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.expandIcon, expanded && classes.expanded),\n    edge: \"end\",\n    component: \"div\",\n    tabIndex: null,\n    role: null,\n    \"aria-hidden\": true\n  }, IconButtonProps), expandIcon));\n});\n true ? AccordionSummary.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the accordion summary.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The icon to display as the expand indicator.\n   */\n  expandIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Props applied to the `IconButton` element wrapping the expand icon.\n   */\n  IconButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocusVisible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiAccordionSummary'\n})(AccordionSummary));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AccordionSummary/AccordionSummary.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AccordionSummary/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AccordionSummary/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AccordionSummary__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccordionSummary */ \"./node_modules/@material-ui/core/esm/AccordionSummary/AccordionSummary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _AccordionSummary__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AccordionSummary/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AppBar/AppBar.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AppBar/AppBar.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      flexDirection: 'column',\n      width: '100%',\n      boxSizing: 'border-box',\n      // Prevent padding issue with the Modal and fixed positioned AppBar.\n      zIndex: theme.zIndex.appBar,\n      flexShrink: 0\n    },\n\n    /* Styles applied to the root element if `position=\"fixed\"`. */\n    positionFixed: {\n      position: 'fixed',\n      top: 0,\n      left: 'auto',\n      right: 0,\n      '@media print': {\n        // Prevent the app bar to be visible on each printed page.\n        position: 'absolute'\n      }\n    },\n\n    /* Styles applied to the root element if `position=\"absolute\"`. */\n    positionAbsolute: {\n      position: 'absolute',\n      top: 0,\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the root element if `position=\"sticky\"`. */\n    positionSticky: {\n      // ⚠️ sticky is not supported by IE 11.\n      position: 'sticky',\n      top: 0,\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the root element if `position=\"static\"`. */\n    positionStatic: {\n      position: 'static'\n    },\n\n    /* Styles applied to the root element if `position=\"relative\"`. */\n    positionRelative: {\n      position: 'relative'\n    },\n\n    /* Styles applied to the root element if `color=\"default\"`. */\n    colorDefault: {\n      backgroundColor: backgroundColorDefault,\n      color: theme.palette.getContrastText(backgroundColorDefault)\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main,\n      color: theme.palette.primary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main,\n      color: theme.palette.secondary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `color=\"transparent\"`. */\n    colorTransparent: {\n      backgroundColor: 'transparent',\n      color: 'inherit'\n    }\n  };\n};\nvar AppBar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function AppBar(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$position = props.position,\n      position = _props$position === void 0 ? 'fixed' : _props$position,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"position\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    square: true,\n    component: \"header\",\n    elevation: 4,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"position\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(position))], classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], className, position === 'fixed' && 'mui-fixed'),\n    ref: ref\n  }, other));\n});\n true ? AppBar.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent']),\n\n  /**\n   * The positioning type. The behavior of the different options is described\n   * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n   * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n   */\n  position: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiAppBar'\n})(AppBar));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AppBar/AppBar.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/AppBar/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/AppBar/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _AppBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppBar */ \"./node_modules/@material-ui/core/esm/AppBar/AppBar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _AppBar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/AppBar/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Avatar/Avatar.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Avatar/Avatar.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _internal_svg_icons_Person__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal/svg-icons/Person */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/Person.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      flexShrink: 0,\n      width: 40,\n      height: 40,\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(20),\n      lineHeight: 1,\n      borderRadius: '50%',\n      overflow: 'hidden',\n      userSelect: 'none'\n    },\n\n    /* Styles applied to the root element if not `src` or `srcSet`. */\n    colorDefault: {\n      color: theme.palette.background.default,\n      backgroundColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n    },\n\n    /* Styles applied to the root element if `variant=\"circle\"`. */\n    circle: {},\n\n    /* Styles applied to the root element if `variant=\"circular\"`. */\n    circular: {},\n\n    /* Styles applied to the root element if `variant=\"rounded\"`. */\n    rounded: {\n      borderRadius: theme.shape.borderRadius\n    },\n\n    /* Styles applied to the root element if `variant=\"square\"`. */\n    square: {\n      borderRadius: 0\n    },\n\n    /* Styles applied to the img element if either `src` or `srcSet` is defined. */\n    img: {\n      width: '100%',\n      height: '100%',\n      textAlign: 'center',\n      // Handle non-square image. The property isn't supported by IE 11.\n      objectFit: 'cover',\n      // Hide alt text.\n      color: 'transparent',\n      // Hide the image broken icon, only works on Chrome.\n      textIndent: 10000\n    },\n\n    /* Styles applied to the fallback icon */\n    fallback: {\n      width: '75%',\n      height: '75%'\n    }\n  };\n};\n\nfunction useLoaded(_ref) {\n  var src = _ref.src,\n      srcSet = _ref.srcSet;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      loaded = _React$useState[0],\n      setLoaded = _React$useState[1];\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (!src && !srcSet) {\n      return undefined;\n    }\n\n    setLoaded(false);\n    var active = true;\n    var image = new Image();\n    image.src = src;\n    image.srcSet = srcSet;\n\n    image.onload = function () {\n      if (!active) {\n        return;\n      }\n\n      setLoaded('loaded');\n    };\n\n    image.onerror = function () {\n      if (!active) {\n        return;\n      }\n\n      setLoaded('error');\n    };\n\n    return function () {\n      active = false;\n    };\n  }, [src, srcSet]);\n  return loaded;\n}\n\nvar Avatar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Avatar(props, ref) {\n  var alt = props.alt,\n      childrenProp = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      imgProps = props.imgProps,\n      sizes = props.sizes,\n      src = props.src,\n      srcSet = props.srcSet,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'circle' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"alt\", \"children\", \"classes\", \"className\", \"component\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"]);\n\n  var children = null; // Use a hook instead of onError on the img element to support server-side rendering.\n\n  var loaded = useLoaded({\n    src: src,\n    srcSet: srcSet\n  });\n  var hasImg = src || srcSet;\n  var hasImgNotFailing = hasImg && loaded !== 'error';\n\n  if (hasImgNotFailing) {\n    children = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"img\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      alt: alt,\n      src: src,\n      srcSet: srcSet,\n      sizes: sizes,\n      className: classes.img\n    }, imgProps));\n  } else if (childrenProp != null) {\n    children = childrenProp;\n  } else if (hasImg && alt) {\n    children = alt[0];\n  } else {\n    children = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_Person__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n      className: classes.fallback\n    });\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes.system, classes[variant], className, !hasImgNotFailing && classes.colorDefault),\n    ref: ref\n  }, other), children);\n});\n true ? Avatar.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Used in combination with `src` or `srcSet` to\n   * provide an alt attribute for the rendered `img` element.\n   */\n  alt: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Used to render icon or text elements inside the Avatar if `src` is not set.\n   * This can be an element, or just a string.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object, function (props) {\n    var classes = props.classes;\n\n    if (classes == null) {\n      return null;\n    }\n\n    if (classes.circle != null && // 2 classnames? one from withStyles the other must be custom\n    classes.circle.split(' ').length > 1) {\n      throw new Error(\"Material-UI: The `circle` class was deprecated. Use `circular` instead.\");\n    }\n\n    return null;\n  }),\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Attributes applied to the `img` element if the component is used to display an image.\n   * It can be used to listen for the loading error event.\n   */\n  imgProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The `sizes` attribute for the `img` element.\n   */\n  sizes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The `src` attribute for the `img` element.\n   */\n  src: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The `srcSet` attribute for the `img` element.\n   * Use this attribute for responsive image display.\n   */\n  srcSet: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The shape of the avatar.\n   */\n  variant: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['circle', 'circular', 'rounded', 'square']), function (props) {\n    var variant = props.variant;\n\n    if (variant === 'circle') {\n      throw new Error('Material-UI: `variant=\"circle\"` was deprecated. Use `variant=\"circular\"` instead.');\n    }\n\n    return null;\n  })\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiAvatar'\n})(Avatar));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Avatar/Avatar.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Avatar/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Avatar/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Avatar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Avatar */ \"./node_modules/@material-ui/core/esm/Avatar/Avatar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Avatar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Avatar/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Fade__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Fade */ \"./node_modules/@material-ui/core/esm/Fade/index.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    // Improve scrollable dialog support.\n    zIndex: -1,\n    position: 'fixed',\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    right: 0,\n    bottom: 0,\n    top: 0,\n    left: 0,\n    backgroundColor: 'rgba(0, 0, 0, 0.5)',\n    WebkitTapHighlightColor: 'transparent'\n  },\n\n  /* Styles applied to the root element if `invisible={true}`. */\n  invisible: {\n    backgroundColor: 'transparent'\n  }\n};\nvar Backdrop = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Backdrop(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$invisible = props.invisible,\n      invisible = _props$invisible === void 0 ? false : _props$invisible,\n      open = props.open,\n      transitionDuration = props.transitionDuration,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Fade__WEBPACK_IMPORTED_MODULE_6__[\"default\"] : _props$TransitionComp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"invisible\", \"open\", \"transitionDuration\", \"TransitionComponent\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    in: open,\n    timeout: transitionDuration\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, invisible && classes.invisible),\n    \"aria-hidden\": true,\n    ref: ref\n  }, children));\n});\n true ? Backdrop.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the backdrop is invisible.\n   * It can be used when rendering a popover or a custom select component.\n   */\n  invisible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the backdrop is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n  })])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiBackdrop'\n})(Backdrop));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Backdrop/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Backdrop/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Backdrop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Backdrop */ \"./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Backdrop__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Backdrop/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Badge/Badge.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Badge/Badge.js ***!
  \***********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\nvar RADIUS_STANDARD = 10;\nvar RADIUS_DOT = 4;\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      display: 'inline-flex',\n      // For correct alignment with the text.\n      verticalAlign: 'middle',\n      flexShrink: 0\n    },\n\n    /* Styles applied to the badge `span` element. */\n    badge: {\n      display: 'flex',\n      flexDirection: 'row',\n      flexWrap: 'wrap',\n      justifyContent: 'center',\n      alignContent: 'center',\n      alignItems: 'center',\n      position: 'absolute',\n      boxSizing: 'border-box',\n      fontFamily: theme.typography.fontFamily,\n      fontWeight: theme.typography.fontWeightMedium,\n      fontSize: theme.typography.pxToRem(12),\n      minWidth: RADIUS_STANDARD * 2,\n      lineHeight: 1,\n      padding: '0 6px',\n      height: RADIUS_STANDARD * 2,\n      borderRadius: RADIUS_STANDARD,\n      zIndex: 1,\n      // Render the badge on top of potential ripples.\n      transition: theme.transitions.create('transform', {\n        easing: theme.transitions.easing.easeInOut,\n        duration: theme.transitions.duration.enteringScreen\n      })\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main,\n      color: theme.palette.primary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main,\n      color: theme.palette.secondary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      backgroundColor: theme.palette.error.main,\n      color: theme.palette.error.contrastText\n    },\n\n    /* Styles applied to the root element if `variant=\"dot\"`. */\n    dot: {\n      borderRadius: RADIUS_DOT,\n      height: RADIUS_DOT * 2,\n      minWidth: RADIUS_DOT * 2,\n      padding: 0\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }} overlap=\"rectangle\"`. */\n    anchorOriginTopRightRectangle: {\n      top: 0,\n      right: 0,\n      transform: 'scale(1) translate(50%, -50%)',\n      transformOrigin: '100% 0%',\n      '&$invisible': {\n        transform: 'scale(0) translate(50%, -50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }} overlap=\"rectangle\"`. */\n    anchorOriginBottomRightRectangle: {\n      bottom: 0,\n      right: 0,\n      transform: 'scale(1) translate(50%, 50%)',\n      transformOrigin: '100% 100%',\n      '&$invisible': {\n        transform: 'scale(0) translate(50%, 50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }} overlap=\"rectangle\"`. */\n    anchorOriginTopLeftRectangle: {\n      top: 0,\n      left: 0,\n      transform: 'scale(1) translate(-50%, -50%)',\n      transformOrigin: '0% 0%',\n      '&$invisible': {\n        transform: 'scale(0) translate(-50%, -50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }} overlap=\"rectangle\"`. */\n    anchorOriginBottomLeftRectangle: {\n      bottom: 0,\n      left: 0,\n      transform: 'scale(1) translate(-50%, 50%)',\n      transformOrigin: '0% 100%',\n      '&$invisible': {\n        transform: 'scale(0) translate(-50%, 50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }} overlap=\"circle\"`. */\n    anchorOriginTopRightCircle: {\n      top: '14%',\n      right: '14%',\n      transform: 'scale(1) translate(50%, -50%)',\n      transformOrigin: '100% 0%',\n      '&$invisible': {\n        transform: 'scale(0) translate(50%, -50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }} overlap=\"circle\"`. */\n    anchorOriginBottomRightCircle: {\n      bottom: '14%',\n      right: '14%',\n      transform: 'scale(1) translate(50%, 50%)',\n      transformOrigin: '100% 100%',\n      '&$invisible': {\n        transform: 'scale(0) translate(50%, 50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }} overlap=\"circle\"`. */\n    anchorOriginTopLeftCircle: {\n      top: '14%',\n      left: '14%',\n      transform: 'scale(1) translate(-50%, -50%)',\n      transformOrigin: '0% 0%',\n      '&$invisible': {\n        transform: 'scale(0) translate(-50%, -50%)'\n      }\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }} overlap=\"circle\"`. */\n    anchorOriginBottomLeftCircle: {\n      bottom: '14%',\n      left: '14%',\n      transform: 'scale(1) translate(-50%, 50%)',\n      transformOrigin: '0% 100%',\n      '&$invisible': {\n        transform: 'scale(0) translate(-50%, 50%)'\n      }\n    },\n\n    /* Pseudo-class to the badge `span` element if `invisible={true}`. */\n    invisible: {\n      transition: theme.transitions.create('transform', {\n        easing: theme.transitions.easing.easeInOut,\n        duration: theme.transitions.duration.leavingScreen\n      })\n    }\n  };\n};\nvar Badge = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Badge(props, ref) {\n  var _props$anchorOrigin = props.anchorOrigin,\n      anchorOrigin = _props$anchorOrigin === void 0 ? {\n    vertical: 'top',\n    horizontal: 'right'\n  } : _props$anchorOrigin,\n      badgeContent = props.badgeContent,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      _props$component = props.component,\n      ComponentProp = _props$component === void 0 ? 'span' : _props$component,\n      invisibleProp = props.invisible,\n      _props$max = props.max,\n      max = _props$max === void 0 ? 99 : _props$max,\n      _props$overlap = props.overlap,\n      overlap = _props$overlap === void 0 ? 'rectangle' : _props$overlap,\n      _props$showZero = props.showZero,\n      showZero = _props$showZero === void 0 ? false : _props$showZero,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"anchorOrigin\", \"badgeContent\", \"children\", \"classes\", \"className\", \"color\", \"component\", \"invisible\", \"max\", \"overlap\", \"showZero\", \"variant\"]);\n\n  var invisible = invisibleProp;\n\n  if (invisibleProp == null && (badgeContent === 0 && !showZero || badgeContent == null && variant !== 'dot')) {\n    invisible = true;\n  }\n\n  var displayValue = '';\n\n  if (variant !== 'dot') {\n    displayValue = badgeContent > max ? \"\".concat(max, \"+\") : badgeContent;\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](ComponentProp, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), children, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.badge, classes[\"\".concat(anchorOrigin.horizontal).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(anchorOrigin.vertical), \"}\")], classes[\"anchorOrigin\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(anchorOrigin.vertical)).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(anchorOrigin.horizontal)).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(overlap))], color !== 'default' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], invisible && classes.invisible, variant === 'dot' && classes.dot)\n  }, displayValue));\n});\n true ? Badge.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The anchor of the badge.\n   */\n  anchorOrigin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    horizontal: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['left', 'right']).isRequired,\n    vertical: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom', 'top']).isRequired\n  }),\n\n  /**\n   * The content rendered within the badge.\n   */\n  badgeContent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The badge will be added relative to this node.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'error', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the badge will be invisible.\n   */\n  invisible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Max count to show.\n   */\n  max: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * Wrapped shape the badge should overlap.\n   */\n  overlap: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['circle', 'rectangle']),\n\n  /**\n   * Controls whether the badge is hidden when `badgeContent` is zero.\n   */\n  showZero: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dot', 'standard'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiBadge'\n})(Badge));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Badge/Badge.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Badge/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Badge/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Badge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Badge */ \"./node_modules/@material-ui/core/esm/Badge/Badge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Badge__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Badge/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/BottomNavigation/BottomNavigation.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/BottomNavigation/BottomNavigation.js ***!
  \*********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      justifyContent: 'center',\n      height: 56,\n      backgroundColor: theme.palette.background.paper\n    }\n  };\n};\nvar BottomNavigation = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function BottomNavigation(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      onChange = props.onChange,\n      _props$showLabels = props.showLabels,\n      showLabels = _props$showLabels === void 0 ? false : _props$showLabels,\n      value = props.value,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"component\", \"onChange\", \"showLabels\", \"value\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child, childIndex) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_3__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The BottomNavigation component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    var childValue = child.props.value === undefined ? childIndex : child.props.value;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](child, {\n      selected: childValue === value,\n      showLabel: child.props.showLabel !== undefined ? child.props.showLabel : showLabels,\n      value: childValue,\n      onChange: onChange\n    });\n  }));\n});\n true ? BottomNavigation.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Callback fired when the value changes.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {any} value We default to the index of the child.\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * If `true`, all `BottomNavigationAction`s will show their labels.\n   * By default, only the selected `BottomNavigationAction` will show its label.\n   */\n  showLabels: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The value of the currently selected `BottomNavigationAction`.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiBottomNavigation'\n})(BottomNavigation));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/BottomNavigation/BottomNavigation.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/BottomNavigation/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/BottomNavigation/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _BottomNavigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BottomNavigation */ \"./node_modules/@material-ui/core/esm/BottomNavigation/BottomNavigation.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _BottomNavigation__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/BottomNavigation/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/BottomNavigationAction/BottomNavigationAction.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/BottomNavigationAction/BottomNavigationAction.js ***!
  \*********************************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_unsupportedProp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/unsupportedProp */ \"./node_modules/@material-ui/core/esm/utils/unsupportedProp.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      transition: theme.transitions.create(['color', 'padding-top'], {\n        duration: theme.transitions.duration.short\n      }),\n      padding: '6px 12px 8px',\n      minWidth: 80,\n      maxWidth: 168,\n      color: theme.palette.text.secondary,\n      flex: '1',\n      '&$iconOnly': {\n        paddingTop: 16\n      },\n      '&$selected': {\n        paddingTop: 6,\n        color: theme.palette.primary.main\n      }\n    },\n\n    /* Pseudo-class applied to the root element if selected. */\n    selected: {},\n\n    /* Pseudo-class applied to the root element if `showLabel={false}` and not selected. */\n    iconOnly: {},\n\n    /* Styles applied to the span element that wraps the icon and label. */\n    wrapper: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      width: '100%',\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the label's span element. */\n    label: {\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(12),\n      opacity: 1,\n      transition: 'font-size 0.2s, opacity 0.2s',\n      transitionDelay: '0.1s',\n      '&$iconOnly': {\n        opacity: 0,\n        transitionDelay: '0s'\n      },\n      '&$selected': {\n        fontSize: theme.typography.pxToRem(14)\n      }\n    }\n  };\n};\nvar BottomNavigationAction = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function BottomNavigationAction(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      icon = props.icon,\n      label = props.label,\n      onChange = props.onChange,\n      onClick = props.onClick,\n      selected = props.selected,\n      showLabel = props.showLabel,\n      value = props.value,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"icon\", \"label\", \"onChange\", \"onClick\", \"selected\", \"showLabel\", \"value\"]);\n\n  var handleChange = function handleChange(event) {\n    if (onChange) {\n      onChange(event, value);\n    }\n\n    if (onClick) {\n      onClick(event);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, selected ? classes.selected : !showLabel && classes.iconOnly),\n    focusRipple: true,\n    onClick: handleChange\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.wrapper\n  }, icon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.label, selected ? classes.selected : !showLabel && classes.iconOnly)\n  }, label)));\n});\n true ? BottomNavigationAction.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * This prop isn't supported.\n   * Use the `component` prop if you need to change the children structure.\n   */\n  children: _utils_unsupportedProp__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The icon element.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The label element.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  selected: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the `BottomNavigationAction` will show its label.\n   * By default, only the selected `BottomNavigationAction`\n   * inside `BottomNavigation` will show its label.\n   */\n  showLabel: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * You can provide your own value. Otherwise, we fallback to the child position index.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiBottomNavigationAction'\n})(BottomNavigationAction));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/BottomNavigationAction/BottomNavigationAction.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/BottomNavigationAction/index.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/BottomNavigationAction/index.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _BottomNavigationAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BottomNavigationAction */ \"./node_modules/@material-ui/core/esm/BottomNavigationAction/BottomNavigationAction.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _BottomNavigationAction__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/BottomNavigationAction/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Box/Box.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Box/Box.js ***!
  \*******************************************************/
/*! exports provided: styleFunction, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styleFunction\", function() { return styleFunction; });\n/* harmony import */ var _material_ui_system__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/system */ \"./node_modules/@material-ui/system/esm/index.js\");\n/* harmony import */ var _styles_styled__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/styled */ \"./node_modules/@material-ui/core/esm/styles/styled.js\");\n\n\nvar styleFunction = Object(_material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"css\"])(Object(_material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"compose\"])(_material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"borders\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"display\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"flexbox\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"grid\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"positions\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"palette\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"shadows\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"sizing\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"spacing\"], _material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"typography\"]));\n/**\n * @ignore - do not document.\n */\n\nvar Box = Object(_styles_styled__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('div')(styleFunction, {\n  name: 'MuiBox'\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (Box);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Box/Box.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Box/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Box/index.js ***!
  \*********************************************************/
/*! exports provided: default, styleFunction */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Box */ \"./node_modules/@material-ui/core/esm/Box/Box.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Box__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"styleFunction\", function() { return _Box__WEBPACK_IMPORTED_MODULE_0__[\"styleFunction\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Box/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Breadcrumbs/BreadcrumbCollapsed.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Breadcrumbs/BreadcrumbCollapsed.js ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _internal_svg_icons_MoreHoriz__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/svg-icons/MoreHoriz */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/MoreHoriz.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    root: {\n      display: 'flex',\n      marginLeft: theme.spacing(0.5),\n      marginRight: theme.spacing(0.5),\n      backgroundColor: theme.palette.grey[100],\n      color: theme.palette.grey[700],\n      borderRadius: 2,\n      cursor: 'pointer',\n      '&:hover, &:focus': {\n        backgroundColor: theme.palette.grey[200]\n      },\n      '&:active': {\n        boxShadow: theme.shadows[0],\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_5__[\"emphasize\"])(theme.palette.grey[200], 0.12)\n      }\n    },\n    icon: {\n      width: 24,\n      height: 16\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction BreadcrumbCollapsed(props) {\n  var classes = props.classes,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    component: \"li\",\n    className: classes.root,\n    focusRipple: true\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_MoreHoriz__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n    className: classes.icon\n  }));\n}\n\n true ? BreadcrumbCollapsed.propTypes = {\n  /**\n   * @ignore\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(styles, {\n  name: 'PrivateBreadcrumbCollapsed'\n})(BreadcrumbCollapsed));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Breadcrumbs/BreadcrumbCollapsed.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Breadcrumbs/Breadcrumbs.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Breadcrumbs/Breadcrumbs.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony import */ var _BreadcrumbCollapsed__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./BreadcrumbCollapsed */ \"./node_modules/@material-ui/core/esm/Breadcrumbs/BreadcrumbCollapsed.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {},\n\n  /* Styles applied to the ol element. */\n  ol: {\n    display: 'flex',\n    flexWrap: 'wrap',\n    alignItems: 'center',\n    padding: 0,\n    margin: 0,\n    listStyle: 'none'\n  },\n\n  /* Styles applied to the li element. */\n  li: {},\n\n  /* Styles applied to the separator element. */\n  separator: {\n    display: 'flex',\n    userSelect: 'none',\n    marginLeft: 8,\n    marginRight: 8\n  }\n};\n\nfunction insertSeparators(items, className, separator) {\n  return items.reduce(function (acc, current, index) {\n    if (index < items.length - 1) {\n      acc = acc.concat(current, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"li\", {\n        \"aria-hidden\": true,\n        key: \"separator-\".concat(index),\n        className: className\n      }, separator));\n    } else {\n      acc.push(current);\n    }\n\n    return acc;\n  }, []);\n}\n\nvar Breadcrumbs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Breadcrumbs(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'nav' : _props$component,\n      _props$expandText = props.expandText,\n      expandText = _props$expandText === void 0 ? 'Show path' : _props$expandText,\n      _props$itemsAfterColl = props.itemsAfterCollapse,\n      itemsAfterCollapse = _props$itemsAfterColl === void 0 ? 1 : _props$itemsAfterColl,\n      _props$itemsBeforeCol = props.itemsBeforeCollapse,\n      itemsBeforeCollapse = _props$itemsBeforeCol === void 0 ? 1 : _props$itemsBeforeCol,\n      _props$maxItems = props.maxItems,\n      maxItems = _props$maxItems === void 0 ? 8 : _props$maxItems,\n      _props$separator = props.separator,\n      separator = _props$separator === void 0 ? '/' : _props$separator,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"component\", \"expandText\", \"itemsAfterCollapse\", \"itemsBeforeCollapse\", \"maxItems\", \"separator\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"](false),\n      expanded = _React$useState[0],\n      setExpanded = _React$useState[1];\n\n  var renderItemsBeforeAndAfter = function renderItemsBeforeAndAfter(allItems) {\n    var handleClickExpand = function handleClickExpand(event) {\n      setExpanded(true); // The clicked element received the focus but gets removed from the DOM.\n      // Let's keep the focus in the component after expanding.\n\n      var focusable = event.currentTarget.parentNode.querySelector('a[href],button,[tabindex]');\n\n      if (focusable) {\n        focusable.focus();\n      }\n    }; // This defends against someone passing weird input, to ensure that if all\n    // items would be shown anyway, we just show all items without the EllipsisItem\n\n\n    if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {\n      if (true) {\n        console.error(['Material-UI: You have provided an invalid combination of props to the Breadcrumbs.', \"itemsAfterCollapse={\".concat(itemsAfterCollapse, \"} + itemsBeforeCollapse={\").concat(itemsBeforeCollapse, \"} >= maxItems={\").concat(maxItems, \"}\")].join('\\n'));\n      }\n\n      return allItems;\n    }\n\n    return [].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(allItems.slice(0, itemsBeforeCollapse)), [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_BreadcrumbCollapsed__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n      \"aria-label\": expandText,\n      key: \"ellipsis\",\n      onClick: handleClickExpand\n    })], Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(allItems.slice(allItems.length - itemsAfterCollapse, allItems.length)));\n  };\n\n  var allItems = react__WEBPACK_IMPORTED_MODULE_3__[\"Children\"].toArray(children).filter(function (child) {\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_4__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The Breadcrumbs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"isValidElement\"](child);\n  }).map(function (child, index) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"li\", {\n      className: classes.li,\n      key: \"child-\".concat(index)\n    }, child);\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref,\n    component: Component,\n    color: \"textSecondary\",\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.root, className)\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"ol\", {\n    className: classes.ol\n  }, insertSeparators(expanded || maxItems && allItems.length <= maxItems ? allItems : renderItemsBeforeAndAfter(allItems), classes.separator, separator)));\n});\n true ? Breadcrumbs.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The breadcrumb children.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Override the default label for the expand button.\n   *\n   * For localization purposes, you can use the provided [translations](/guides/localization/).\n   */\n  expandText: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * If max items is exceeded, the number of items to show after the ellipsis.\n   */\n  itemsAfterCollapse: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n  /**\n   * If max items is exceeded, the number of items to show before the ellipsis.\n   */\n  itemsBeforeCollapse: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n  /**\n   * Specifies the maximum number of breadcrumbs to display. When there are more\n   * than the maximum number, only the first `itemsBeforeCollapse` and last `itemsAfterCollapse`\n   * will be shown, with an ellipsis in between.\n   */\n  maxItems: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n  /**\n   * Custom separator node.\n   */\n  separator: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.node\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiBreadcrumbs'\n})(Breadcrumbs));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Breadcrumbs/Breadcrumbs.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Breadcrumbs/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Breadcrumbs/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Breadcrumbs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Breadcrumbs */ \"./node_modules/@material-ui/core/esm/Breadcrumbs/Breadcrumbs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Breadcrumbs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Breadcrumbs/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Button/Button.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Button/Button.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.typography.button, {\n      boxSizing: 'border-box',\n      minWidth: 64,\n      padding: '6px 16px',\n      borderRadius: theme.shape.borderRadius,\n      color: theme.palette.text.primary,\n      transition: theme.transitions.create(['background-color', 'box-shadow', 'border'], {\n        duration: theme.transitions.duration.short\n      }),\n      '&:hover': {\n        textDecoration: 'none',\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        },\n        '&$disabled': {\n          backgroundColor: 'transparent'\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    }),\n\n    /* Styles applied to the span element that wraps the children. */\n    label: {\n      width: '100%',\n      // Ensure the correct width for iOS Safari\n      display: 'inherit',\n      alignItems: 'inherit',\n      justifyContent: 'inherit'\n    },\n\n    /* Styles applied to the root element if `variant=\"text\"`. */\n    text: {\n      padding: '6px 8px'\n    },\n\n    /* Styles applied to the root element if `variant=\"text\"` and `color=\"primary\"`. */\n    textPrimary: {\n      color: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"text\"` and `color=\"secondary\"`. */\n    textSecondary: {\n      color: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      padding: '5px 15px',\n      border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'),\n      '&$disabled': {\n        border: \"1px solid \".concat(theme.palette.action.disabledBackground)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"primary\"`. */\n    outlinedPrimary: {\n      color: theme.palette.primary.main,\n      border: \"1px solid \".concat(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.primary.main, 0.5)),\n      '&:hover': {\n        border: \"1px solid \".concat(theme.palette.primary.main),\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"secondary\"`. */\n    outlinedSecondary: {\n      color: theme.palette.secondary.main,\n      border: \"1px solid \".concat(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.secondary.main, 0.5)),\n      '&:hover': {\n        border: \"1px solid \".concat(theme.palette.secondary.main),\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      },\n      '&$disabled': {\n        border: \"1px solid \".concat(theme.palette.action.disabled)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"contained\"`. */\n    contained: {\n      color: theme.palette.getContrastText(theme.palette.grey[300]),\n      backgroundColor: theme.palette.grey[300],\n      boxShadow: theme.shadows[2],\n      '&:hover': {\n        backgroundColor: theme.palette.grey.A100,\n        boxShadow: theme.shadows[4],\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          boxShadow: theme.shadows[2],\n          backgroundColor: theme.palette.grey[300]\n        },\n        '&$disabled': {\n          backgroundColor: theme.palette.action.disabledBackground\n        }\n      },\n      '&$focusVisible': {\n        boxShadow: theme.shadows[6]\n      },\n      '&:active': {\n        boxShadow: theme.shadows[8]\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled,\n        boxShadow: theme.shadows[0],\n        backgroundColor: theme.palette.action.disabledBackground\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"contained\"` and `color=\"primary\"`. */\n    containedPrimary: {\n      color: theme.palette.primary.contrastText,\n      backgroundColor: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: theme.palette.primary.dark,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.primary.main\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"contained\"` and `color=\"secondary\"`. */\n    containedSecondary: {\n      color: theme.palette.secondary.contrastText,\n      backgroundColor: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: theme.palette.secondary.dark,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.secondary.main\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `disableElevation={true}`. */\n    disableElevation: {\n      boxShadow: 'none',\n      '&:hover': {\n        boxShadow: 'none'\n      },\n      '&$focusVisible': {\n        boxShadow: 'none'\n      },\n      '&:active': {\n        boxShadow: 'none'\n      },\n      '&$disabled': {\n        boxShadow: 'none'\n      }\n    },\n\n    /* Pseudo-class applied to the ButtonBase root element if the button is keyboard focused. */\n    focusVisible: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit',\n      borderColor: 'currentColor'\n    },\n\n    /* Styles applied to the root element if `size=\"small\"` and `variant=\"text\"`. */\n    textSizeSmall: {\n      padding: '4px 5px',\n      fontSize: theme.typography.pxToRem(13)\n    },\n\n    /* Styles applied to the root element if `size=\"large\"` and `variant=\"text\"`. */\n    textSizeLarge: {\n      padding: '8px 11px',\n      fontSize: theme.typography.pxToRem(15)\n    },\n\n    /* Styles applied to the root element if `size=\"small\"` and `variant=\"outlined\"`. */\n    outlinedSizeSmall: {\n      padding: '3px 9px',\n      fontSize: theme.typography.pxToRem(13)\n    },\n\n    /* Styles applied to the root element if `size=\"large\"` and `variant=\"outlined\"`. */\n    outlinedSizeLarge: {\n      padding: '7px 21px',\n      fontSize: theme.typography.pxToRem(15)\n    },\n\n    /* Styles applied to the root element if `size=\"small\"` and `variant=\"contained\"`. */\n    containedSizeSmall: {\n      padding: '4px 10px',\n      fontSize: theme.typography.pxToRem(13)\n    },\n\n    /* Styles applied to the root element if `size=\"large\"` and `variant=\"contained\"`. */\n    containedSizeLarge: {\n      padding: '8px 22px',\n      fontSize: theme.typography.pxToRem(15)\n    },\n\n    /* Styles applied to the root element if `size=\"small\"`. */\n    sizeSmall: {},\n\n    /* Styles applied to the root element if `size=\"large\"`. */\n    sizeLarge: {},\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {\n      width: '100%'\n    },\n\n    /* Styles applied to the startIcon element if supplied. */\n    startIcon: {\n      display: 'inherit',\n      marginRight: 8,\n      marginLeft: -4,\n      '&$iconSizeSmall': {\n        marginLeft: -2\n      }\n    },\n\n    /* Styles applied to the endIcon element if supplied. */\n    endIcon: {\n      display: 'inherit',\n      marginRight: -4,\n      marginLeft: 8,\n      '&$iconSizeSmall': {\n        marginRight: -2\n      }\n    },\n\n    /* Styles applied to the icon element if supplied and `size=\"small\"`. */\n    iconSizeSmall: {\n      '& > *:first-child': {\n        fontSize: 18\n      }\n    },\n\n    /* Styles applied to the icon element if supplied and `size=\"medium\"`. */\n    iconSizeMedium: {\n      '& > *:first-child': {\n        fontSize: 20\n      }\n    },\n\n    /* Styles applied to the icon element if supplied and `size=\"large\"`. */\n    iconSizeLarge: {\n      '& > *:first-child': {\n        fontSize: 22\n      }\n    }\n  };\n};\nvar Button = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Button(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      _props$component = props.component,\n      component = _props$component === void 0 ? 'button' : _props$component,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableElevati = props.disableElevation,\n      disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,\n      _props$disableFocusRi = props.disableFocusRipple,\n      disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n      endIconProp = props.endIcon,\n      focusVisibleClassName = props.focusVisibleClassName,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      startIconProp = props.startIcon,\n      _props$type = props.type,\n      type = _props$type === void 0 ? 'button' : _props$type,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'text' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"disableElevation\", \"disableFocusRipple\", \"endIcon\", \"focusVisibleClassName\", \"fullWidth\", \"size\", \"startIcon\", \"type\", \"variant\"]);\n\n  var startIcon = startIconProp && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.startIcon, classes[\"iconSize\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(size))])\n  }, startIconProp);\n  var endIcon = endIconProp && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.endIcon, classes[\"iconSize\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(size))])\n  }, endIconProp);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[variant], className, color === 'inherit' ? classes.colorInherit : color !== 'default' && classes[\"\".concat(variant).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(color))], size !== 'medium' && [classes[\"\".concat(variant, \"Size\").concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(size))], classes[\"size\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(size))]], disableElevation && classes.disableElevation, disabled && classes.disabled, fullWidth && classes.fullWidth),\n    component: component,\n    disabled: disabled,\n    focusRipple: !disableFocusRipple,\n    focusVisibleClassName: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.focusVisible, focusVisibleClassName),\n    ref: ref,\n    type: type\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.label\n  }, startIcon, children, endIcon));\n});\n true ? Button.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the button.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the button will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, no elevation is used.\n   */\n  disableElevation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the  keyboard focus ripple will be disabled.\n   */\n  disableFocusRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   *\n   * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n   * to highlight the element by applying separate styles with the `focusVisibleClassName`.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Element placed after the children.\n   */\n  endIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the button will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The URL to link to when the button is clicked.\n   * If defined, an `a` element will be used as the root node.\n   */\n  href: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The size of the button.\n   * `small` is equivalent to the dense button styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['large', 'medium', 'small']),\n\n  /**\n   * Element placed before the children.\n   */\n  startIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['button', 'reset', 'submit']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['contained', 'outlined', 'text'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiButton'\n})(Button));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Button/Button.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Button/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Button/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Button */ \"./node_modules/@material-ui/core/esm/Button/Button.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Button__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Button/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/useIsFocusVisible */ \"./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js\");\n/* harmony import */ var _TouchRipple__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TouchRipple */ \"./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'inline-flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    position: 'relative',\n    WebkitTapHighlightColor: 'transparent',\n    backgroundColor: 'transparent',\n    // Reset default value\n    // We disable the focus ring for mouse, touch and keyboard users.\n    outline: 0,\n    border: 0,\n    margin: 0,\n    // Remove the margin in Safari\n    borderRadius: 0,\n    padding: 0,\n    // Remove the padding in Firefox\n    cursor: 'pointer',\n    userSelect: 'none',\n    verticalAlign: 'middle',\n    '-moz-appearance': 'none',\n    // Reset\n    '-webkit-appearance': 'none',\n    // Reset\n    textDecoration: 'none',\n    // So we take precedent over the style of a native <a /> element.\n    color: 'inherit',\n    '&::-moz-focus-inner': {\n      borderStyle: 'none' // Remove Firefox dotted outline.\n\n    },\n    '&$disabled': {\n      pointerEvents: 'none',\n      // Disable link interactions\n      cursor: 'default'\n    },\n    '@media print': {\n      colorAdjust: 'exact'\n    }\n  },\n\n  /* Pseudo-class applied to the root element if `disabled={true}`. */\n  disabled: {},\n\n  /* Pseudo-class applied to the root element if keyboard focused. */\n  focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nvar ButtonBase = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ButtonBase(props, ref) {\n  var action = props.action,\n      buttonRefProp = props.buttonRef,\n      _props$centerRipple = props.centerRipple,\n      centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      component = _props$component === void 0 ? 'button' : _props$component,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableRipple = props.disableRipple,\n      disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n      _props$disableTouchRi = props.disableTouchRipple,\n      disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n      _props$focusRipple = props.focusRipple,\n      focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n      focusVisibleClassName = props.focusVisibleClassName,\n      onBlur = props.onBlur,\n      onClick = props.onClick,\n      onFocus = props.onFocus,\n      onFocusVisible = props.onFocusVisible,\n      onKeyDown = props.onKeyDown,\n      onKeyUp = props.onKeyUp,\n      onMouseDown = props.onMouseDown,\n      onMouseLeave = props.onMouseLeave,\n      onMouseUp = props.onMouseUp,\n      onTouchEnd = props.onTouchEnd,\n      onTouchMove = props.onTouchMove,\n      onTouchStart = props.onTouchStart,\n      onDragLeave = props.onDragLeave,\n      _props$tabIndex = props.tabIndex,\n      tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n      TouchRippleProps = props.TouchRippleProps,\n      _props$type = props.type,\n      type = _props$type === void 0 ? 'button' : _props$type,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n  var buttonRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n\n  function getButtonNode() {\n    // #StrictMode ready\n    return react_dom__WEBPACK_IMPORTED_MODULE_4__[\"findDOMNode\"](buttonRef.current);\n  }\n\n  var rippleRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      focusVisible = _React$useState[0],\n      setFocusVisible = _React$useState[1];\n\n  if (disabled && focusVisible) {\n    setFocusVisible(false);\n  }\n\n  var _useIsFocusVisible = Object(_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(),\n      isFocusVisible = _useIsFocusVisible.isFocusVisible,\n      onBlurVisible = _useIsFocusVisible.onBlurVisible,\n      focusVisibleRef = _useIsFocusVisible.ref;\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useImperativeHandle\"](action, function () {\n    return {\n      focusVisible: function focusVisible() {\n        setFocusVisible(true);\n        buttonRef.current.focus();\n      }\n    };\n  }, []);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (focusVisible && focusRipple && !disableRipple) {\n      rippleRef.current.pulsate();\n    }\n  }, [disableRipple, focusRipple, focusVisible]);\n\n  function useRippleHandler(rippleAction, eventCallback) {\n    var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n    return Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (event) {\n      if (eventCallback) {\n        eventCallback(event);\n      }\n\n      var ignore = skipRippleAction;\n\n      if (!ignore && rippleRef.current) {\n        rippleRef.current[rippleAction](event);\n      }\n\n      return true;\n    });\n  }\n\n  var handleMouseDown = useRippleHandler('start', onMouseDown);\n  var handleDragLeave = useRippleHandler('stop', onDragLeave);\n  var handleMouseUp = useRippleHandler('stop', onMouseUp);\n  var handleMouseLeave = useRippleHandler('stop', function (event) {\n    if (focusVisible) {\n      event.preventDefault();\n    }\n\n    if (onMouseLeave) {\n      onMouseLeave(event);\n    }\n  });\n  var handleTouchStart = useRippleHandler('start', onTouchStart);\n  var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n  var handleTouchMove = useRippleHandler('stop', onTouchMove);\n  var handleBlur = useRippleHandler('stop', function (event) {\n    if (focusVisible) {\n      onBlurVisible(event);\n      setFocusVisible(false);\n    }\n\n    if (onBlur) {\n      onBlur(event);\n    }\n  }, false);\n  var handleFocus = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (event) {\n    // Fix for https://github.com/facebook/react/issues/7769\n    if (!buttonRef.current) {\n      buttonRef.current = event.currentTarget;\n    }\n\n    if (isFocusVisible(event)) {\n      setFocusVisible(true);\n\n      if (onFocusVisible) {\n        onFocusVisible(event);\n      }\n    }\n\n    if (onFocus) {\n      onFocus(event);\n    }\n  });\n\n  var isNonNativeButton = function isNonNativeButton() {\n    var button = getButtonNode();\n    return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n  };\n  /**\n   * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n   */\n\n\n  var keydownRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](false);\n  var handleKeyDown = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (event) {\n    // Check if key is already down to avoid repeats being counted as multiple activations\n    if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n      keydownRef.current = true;\n      event.persist();\n      rippleRef.current.stop(event, function () {\n        rippleRef.current.start(event);\n      });\n    }\n\n    if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n      event.preventDefault();\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    } // Keyboard accessibility for non interactive elements\n\n\n    if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n      event.preventDefault();\n\n      if (onClick) {\n        onClick(event);\n      }\n    }\n  });\n  var handleKeyUp = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function (event) {\n    // calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed\n    // https://codesandbox.io/s/button-keyup-preventdefault-dn7f0\n    if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {\n      keydownRef.current = false;\n      event.persist();\n      rippleRef.current.stop(event, function () {\n        rippleRef.current.pulsate(event);\n      });\n    }\n\n    if (onKeyUp) {\n      onKeyUp(event);\n    } // Keyboard accessibility for non interactive elements\n\n\n    if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {\n      onClick(event);\n    }\n  });\n  var ComponentProp = component;\n\n  if (ComponentProp === 'button' && other.href) {\n    ComponentProp = 'a';\n  }\n\n  var buttonProps = {};\n\n  if (ComponentProp === 'button') {\n    buttonProps.type = type;\n    buttonProps.disabled = disabled;\n  } else {\n    if (ComponentProp !== 'a' || !other.href) {\n      buttonProps.role = 'button';\n    }\n\n    buttonProps['aria-disabled'] = disabled;\n  }\n\n  var handleUserRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(buttonRefProp, ref);\n  var handleOwnRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(focusVisibleRef, buttonRef);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(handleUserRef, handleOwnRef);\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      mountedState = _React$useState2[0],\n      setMountedState = _React$useState2[1];\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    setMountedState(true);\n  }, []);\n  var enableTouchRipple = mountedState && !disableRipple && !disabled;\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n      if (enableTouchRipple && !rippleRef.current) {\n        console.error(['Material-UI: The `component` prop provided to ButtonBase is invalid.', 'Please make sure the children prop is rendered in this custom component.'].join('\\n'));\n      }\n    }, [enableTouchRipple]);\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](ComponentProp, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className, focusVisible && [classes.focusVisible, focusVisibleClassName], disabled && classes.disabled),\n    onBlur: handleBlur,\n    onClick: onClick,\n    onFocus: handleFocus,\n    onKeyDown: handleKeyDown,\n    onKeyUp: handleKeyUp,\n    onMouseDown: handleMouseDown,\n    onMouseLeave: handleMouseLeave,\n    onMouseUp: handleMouseUp,\n    onDragLeave: handleDragLeave,\n    onTouchEnd: handleTouchEnd,\n    onTouchMove: handleTouchMove,\n    onTouchStart: handleTouchStart,\n    ref: handleRef,\n    tabIndex: disabled ? -1 : tabIndex\n  }, buttonProps, other), children, enableTouchRipple ?\n  /*#__PURE__*/\n\n  /* TouchRipple is only needed client-side, x2 boost on the server. */\n  react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_TouchRipple__WEBPACK_IMPORTED_MODULE_11__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: rippleRef,\n    center: centerRipple\n  }, TouchRippleProps)) : null);\n});\n true ? ButtonBase.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A ref for imperative actions.\n   * It currently only supports `focusVisible()` action.\n   */\n  action: _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"refType\"],\n\n  /**\n   * @ignore\n   *\n   * Use that prop to pass a ref to the native button component.\n   * @deprecated Use `ref` instead.\n   */\n  buttonRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"refType\"],\n\n  /**\n   * If `true`, the ripples will be centered.\n   * They won't start at the cursor interaction position.\n   */\n  centerRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"elementTypeAcceptingRef\"],\n\n  /**\n   * If `true`, the base button will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   *\n   * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n   * to highlight the element by applying separate styles with the `focusVisibleClassName`.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the touch ripple effect will be disabled.\n   */\n  disableTouchRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the base button will have a keyboard focus ripple.\n   */\n  focusRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * This prop can help a person know which element has the keyboard focus.\n   * The class name will be applied when the element gain the focus through a keyboard interaction.\n   * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n   * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/master/explainer.md).\n   * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n   * if needed.\n   */\n  focusVisibleClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  href: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onDragLeave: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component is focused with a keyboard.\n   * We trigger a `onFocus` callback too.\n   */\n  onFocusVisible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onKeyUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  tabIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Props applied to the `TouchRipple` element.\n   */\n  TouchRippleProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['button', 'reset', 'submit']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(styles, {\n  name: 'MuiButtonBase'\n})(ButtonBase));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n\n\n\n\nvar useEnhancedEffect = typeof window === 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"] : react__WEBPACK_IMPORTED_MODULE_0__[\"useLayoutEffect\"];\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n  var classes = props.classes,\n      _props$pulsate = props.pulsate,\n      pulsate = _props$pulsate === void 0 ? false : _props$pulsate,\n      rippleX = props.rippleX,\n      rippleY = props.rippleY,\n      rippleSize = props.rippleSize,\n      inProp = props.in,\n      _props$onExited = props.onExited,\n      onExited = _props$onExited === void 0 ? function () {} : _props$onExited,\n      timeout = props.timeout;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"](false),\n      leaving = _React$useState[0],\n      setLeaving = _React$useState[1];\n\n  var rippleClassName = Object(clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n  var rippleStyles = {\n    width: rippleSize,\n    height: rippleSize,\n    top: -(rippleSize / 2) + rippleY,\n    left: -(rippleSize / 2) + rippleX\n  };\n  var childClassName = Object(clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n  var handleExited = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority\n\n  useEnhancedEffect(function () {\n    if (!inProp) {\n      // react-transition-group#onExit\n      setLeaving(true); // react-transition-group#onExited\n\n      var timeoutId = setTimeout(handleExited, timeout);\n      return function () {\n        clearTimeout(timeoutId);\n      };\n    }\n\n    return undefined;\n  }, [handleExited, inProp, timeout]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"span\", {\n    className: rippleClassName,\n    style: rippleStyles\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"span\", {\n    className: childClassName\n  }));\n}\n\n true ? Ripple.propTypes = {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n\n  /**\n   * @ignore - injected from TransitionGroup\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * @ignore - injected from TransitionGroup\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n  /**\n   * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n   */\n  pulsate: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * Diameter of the ripple.\n   */\n  rippleSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n  /**\n   * Horizontal position of the ripple center.\n   */\n  rippleX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n  /**\n   * Vertical position of the ripple center.\n   */\n  rippleY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n  /**\n   * exit delay\n   */\n  timeout: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Ripple);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js ***!
  \**********************************************************************/
/*! exports provided: DELAY_RIPPLE, styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DELAY_RIPPLE\", function() { return DELAY_RIPPLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/esm/index.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Ripple__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Ripple */ \"./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js\");\n\n\n\n\n\n\n\n\n\nvar DURATION = 550;\nvar DELAY_RIPPLE = 80;\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      overflow: 'hidden',\n      pointerEvents: 'none',\n      position: 'absolute',\n      zIndex: 0,\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      borderRadius: 'inherit'\n    },\n\n    /* Styles applied to the internal `Ripple` components `ripple` class. */\n    ripple: {\n      opacity: 0,\n      position: 'absolute'\n    },\n\n    /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n    rippleVisible: {\n      opacity: 0.3,\n      transform: 'scale(1)',\n      animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n    },\n\n    /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n    ripplePulsate: {\n      animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n    },\n\n    /* Styles applied to the internal `Ripple` components `child` class. */\n    child: {\n      opacity: 1,\n      display: 'block',\n      width: '100%',\n      height: '100%',\n      borderRadius: '50%',\n      backgroundColor: 'currentColor'\n    },\n\n    /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n    childLeaving: {\n      opacity: 0,\n      animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n    },\n\n    /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n    childPulsate: {\n      position: 'absolute',\n      left: 0,\n      top: 0,\n      animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n    },\n    '@keyframes enter': {\n      '0%': {\n        transform: 'scale(0)',\n        opacity: 0.1\n      },\n      '100%': {\n        transform: 'scale(1)',\n        opacity: 0.3\n      }\n    },\n    '@keyframes exit': {\n      '0%': {\n        opacity: 1\n      },\n      '100%': {\n        opacity: 0\n      }\n    },\n    '@keyframes pulsate': {\n      '0%': {\n        transform: 'scale(1)'\n      },\n      '50%': {\n        transform: 'scale(0.92)'\n      },\n      '100%': {\n        transform: 'scale(1)'\n      }\n    }\n  };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nvar TouchRipple = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function TouchRipple(props, ref) {\n  var _props$center = props.center,\n      centerProp = _props$center === void 0 ? false : _props$center,\n      classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"center\", \"classes\", \"className\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"]([]),\n      ripples = _React$useState[0],\n      setRipples = _React$useState[1];\n\n  var nextKey = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](0);\n  var rippleCallback = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    if (rippleCallback.current) {\n      rippleCallback.current();\n      rippleCallback.current = null;\n    }\n  }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n  var ignoringMouseDown = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n  // We don't want to display the ripple for touch scroll events.\n\n  var startTimer = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null); // This is the hook called once the previous timeout is ready.\n\n  var startTimerCommit = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var container = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    return function () {\n      clearTimeout(startTimer.current);\n    };\n  }, []);\n  var startCommit = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function (params) {\n    var pulsate = params.pulsate,\n        rippleX = params.rippleX,\n        rippleY = params.rippleY,\n        rippleSize = params.rippleSize,\n        cb = params.cb;\n    setRipples(function (oldRipples) {\n      return [].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(oldRipples), [/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_Ripple__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n        key: nextKey.current,\n        classes: classes,\n        timeout: DURATION,\n        pulsate: pulsate,\n        rippleX: rippleX,\n        rippleY: rippleY,\n        rippleSize: rippleSize\n      })]);\n    });\n    nextKey.current += 1;\n    rippleCallback.current = cb;\n  }, [classes]);\n  var start = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function () {\n    var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var cb = arguments.length > 2 ? arguments[2] : undefined;\n    var _options$pulsate = options.pulsate,\n        pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n        _options$center = options.center,\n        center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n        _options$fakeElement = options.fakeElement,\n        fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n    if (event.type === 'mousedown' && ignoringMouseDown.current) {\n      ignoringMouseDown.current = false;\n      return;\n    }\n\n    if (event.type === 'touchstart') {\n      ignoringMouseDown.current = true;\n    }\n\n    var element = fakeElement ? null : container.current;\n    var rect = element ? element.getBoundingClientRect() : {\n      width: 0,\n      height: 0,\n      left: 0,\n      top: 0\n    }; // Get the size of the ripple\n\n    var rippleX;\n    var rippleY;\n    var rippleSize;\n\n    if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n      rippleX = Math.round(rect.width / 2);\n      rippleY = Math.round(rect.height / 2);\n    } else {\n      var _ref = event.touches ? event.touches[0] : event,\n          clientX = _ref.clientX,\n          clientY = _ref.clientY;\n\n      rippleX = Math.round(clientX - rect.left);\n      rippleY = Math.round(clientY - rect.top);\n    }\n\n    if (center) {\n      rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n      if (rippleSize % 2 === 0) {\n        rippleSize += 1;\n      }\n    } else {\n      var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n      var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n      rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n    } // Touche devices\n\n\n    if (event.touches) {\n      // check that this isn't another touchstart due to multitouch\n      // otherwise we will only clear a single timer when unmounting while two\n      // are running\n      if (startTimerCommit.current === null) {\n        // Prepare the ripple effect.\n        startTimerCommit.current = function () {\n          startCommit({\n            pulsate: pulsate,\n            rippleX: rippleX,\n            rippleY: rippleY,\n            rippleSize: rippleSize,\n            cb: cb\n          });\n        }; // Delay the execution of the ripple effect.\n\n\n        startTimer.current = setTimeout(function () {\n          if (startTimerCommit.current) {\n            startTimerCommit.current();\n            startTimerCommit.current = null;\n          }\n        }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n      }\n    } else {\n      startCommit({\n        pulsate: pulsate,\n        rippleX: rippleX,\n        rippleY: rippleY,\n        rippleSize: rippleSize,\n        cb: cb\n      });\n    }\n  }, [centerProp, startCommit]);\n  var pulsate = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function () {\n    start({}, {\n      pulsate: true\n    });\n  }, [start]);\n  var stop = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function (event, cb) {\n    clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n    // We still want to show ripple effect.\n\n    if (event.type === 'touchend' && startTimerCommit.current) {\n      event.persist();\n      startTimerCommit.current();\n      startTimerCommit.current = null;\n      startTimer.current = setTimeout(function () {\n        stop(event, cb);\n      });\n      return;\n    }\n\n    startTimerCommit.current = null;\n    setRipples(function (oldRipples) {\n      if (oldRipples.length > 0) {\n        return oldRipples.slice(1);\n      }\n\n      return oldRipples;\n    });\n    rippleCallback.current = cb;\n  }, []);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useImperativeHandle\"](ref, function () {\n    return {\n      pulsate: pulsate,\n      start: start,\n      stop: stop\n    };\n  }, [pulsate, start, stop]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"span\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.root, className),\n    ref: container\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](react_transition_group__WEBPACK_IMPORTED_MODULE_5__[\"TransitionGroup\"], {\n    component: null,\n    exit: true\n  }, ripples));\n});\n true ? TouchRipple.propTypes = {\n  /**\n   * If `true`, the ripple starts at the center of the component\n   * rather than at the point of interaction.\n   */\n  center: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  flip: false,\n  name: 'MuiTouchRipple'\n})( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"memo\"](TouchRipple)));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ButtonBase/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ButtonBase/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ButtonBase__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ButtonBase/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Button */ \"./node_modules/@material-ui/core/esm/Button/index.js\");\n\n\n\n\n\n\n\n\n\n // Force a side effect so we don't have any override priority issue.\n// eslint-disable-next-line no-unused-expressions\n\n_Button__WEBPACK_IMPORTED_MODULE_9__[\"default\"].styles;\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-flex',\n      borderRadius: theme.shape.borderRadius\n    },\n\n    /* Styles applied to the root element if `variant=\"contained\"`. */\n    contained: {\n      boxShadow: theme.shadows[2]\n    },\n\n    /* Styles applied to the root element if `disableElevation={true}`. */\n    disableElevation: {\n      boxShadow: 'none'\n    },\n\n    /* Pseudo-class applied to child elements if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {\n      width: '100%'\n    },\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the children. */\n    grouped: {\n      minWidth: 40\n    },\n\n    /* Styles applied to the children if `orientation=\"horizontal\"`. */\n    groupedHorizontal: {\n      '&:not(:first-child)': {\n        borderTopLeftRadius: 0,\n        borderBottomLeftRadius: 0\n      },\n      '&:not(:last-child)': {\n        borderTopRightRadius: 0,\n        borderBottomRightRadius: 0\n      }\n    },\n\n    /* Styles applied to the children if `orientation=\"vertical\"`. */\n    groupedVertical: {\n      '&:not(:first-child)': {\n        borderTopRightRadius: 0,\n        borderTopLeftRadius: 0\n      },\n      '&:not(:last-child)': {\n        borderBottomRightRadius: 0,\n        borderBottomLeftRadius: 0\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"text\"`. */\n    groupedText: {},\n\n    /* Styles applied to the children if `variant=\"text\"` and `orientation=\"horizontal\"`. */\n    groupedTextHorizontal: {\n      '&:not(:last-child)': {\n        borderRight: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"text\"` and `orientation=\"vertical\"`. */\n    groupedTextVertical: {\n      '&:not(:last-child)': {\n        borderBottom: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"text\"` and `color=\"primary\"`. */\n    groupedTextPrimary: {\n      '&:not(:last-child)': {\n        borderColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.primary.main, 0.5)\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"text\"` and `color=\"secondary\"`. */\n    groupedTextSecondary: {\n      '&:not(:last-child)': {\n        borderColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.main, 0.5)\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"outlined\"`. */\n    groupedOutlined: {},\n\n    /* Styles applied to the children if `variant=\"outlined\"` and `orientation=\"horizontal\"`. */\n    groupedOutlinedHorizontal: {\n      '&:not(:first-child)': {\n        marginLeft: -1\n      },\n      '&:not(:last-child)': {\n        borderRightColor: 'transparent'\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"outlined\"` and `orientation=\"vertical\"`. */\n    groupedOutlinedVertical: {\n      '&:not(:first-child)': {\n        marginTop: -1\n      },\n      '&:not(:last-child)': {\n        borderBottomColor: 'transparent'\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"outlined\"` and `color=\"primary\"`. */\n    groupedOutlinedPrimary: {\n      '&:hover': {\n        borderColor: theme.palette.primary.main\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"outlined\"` and `color=\"secondary\"`. */\n    groupedOutlinedSecondary: {\n      '&:hover': {\n        borderColor: theme.palette.secondary.main\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"contained\"`. */\n    groupedContained: {\n      boxShadow: 'none'\n    },\n\n    /* Styles applied to the children if `variant=\"contained\"` and `orientation=\"horizontal\"`. */\n    groupedContainedHorizontal: {\n      '&:not(:last-child)': {\n        borderRight: \"1px solid \".concat(theme.palette.grey[400]),\n        '&$disabled': {\n          borderRight: \"1px solid \".concat(theme.palette.action.disabled)\n        }\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"contained\"` and `orientation=\"vertical\"`. */\n    groupedContainedVertical: {\n      '&:not(:last-child)': {\n        borderBottom: \"1px solid \".concat(theme.palette.grey[400]),\n        '&$disabled': {\n          borderBottom: \"1px solid \".concat(theme.palette.action.disabled)\n        }\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"contained\"` and `color=\"primary\"`. */\n    groupedContainedPrimary: {\n      '&:not(:last-child)': {\n        borderColor: theme.palette.primary.dark\n      }\n    },\n\n    /* Styles applied to the children if `variant=\"contained\"` and `color=\"secondary\"`. */\n    groupedContainedSecondary: {\n      '&:not(:last-child)': {\n        borderColor: theme.palette.secondary.dark\n      }\n    }\n  };\n};\nvar ButtonGroup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ButtonGroup(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableElevati = props.disableElevation,\n      disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,\n      _props$disableFocusRi = props.disableFocusRipple,\n      disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n      _props$disableRipple = props.disableRipple,\n      disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'outlined' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"disableElevation\", \"disableFocusRipple\", \"disableRipple\", \"fullWidth\", \"orientation\", \"size\", \"variant\"]);\n\n  var buttonClassName = Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.grouped, classes[\"grouped\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(orientation))], classes[\"grouped\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(variant))], classes[\"grouped\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(variant)).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(orientation))], classes[\"grouped\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(variant)).concat(color !== 'default' ? Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color) : '')], disabled && classes.disabled);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    role: \"group\",\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className, fullWidth && classes.fullWidth, disableElevation && classes.disableElevation, variant === 'contained' && classes.contained, orientation === 'vertical' && classes.vertical),\n    ref: ref\n  }, other), react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_3__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The ButtonGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](child, {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(buttonClassName, child.props.className),\n      color: child.props.color || color,\n      disabled: child.props.disabled || disabled,\n      disableElevation: child.props.disableElevation || disableElevation,\n      disableFocusRipple: disableFocusRipple,\n      disableRipple: disableRipple,\n      fullWidth: fullWidth,\n      size: child.props.size || size,\n      variant: child.props.variant || variant\n    });\n  }));\n});\n true ? ButtonGroup.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the button group.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the buttons will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, no elevation is used.\n   */\n  disableElevation: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the button keyboard focus ripple will be disabled.\n   */\n  disableFocusRipple: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the button ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the buttons will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The group orientation (layout flow direction).\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * The size of the button.\n   * `small` is equivalent to the dense button styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['large', 'medium', 'small']),\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['contained', 'outlined', 'text'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(styles, {\n  name: 'MuiButtonGroup'\n})(ButtonGroup));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ButtonGroup/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ButtonGroup/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ButtonGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ButtonGroup */ \"./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ButtonGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ButtonGroup/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Card/Card.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Card/Card.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    overflow: 'hidden'\n  }\n};\nvar Card = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Card(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$raised = props.raised,\n      raised = _props$raised === void 0 ? false : _props$raised,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"raised\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    elevation: raised ? 8 : 1,\n    ref: ref\n  }, other));\n});\n true ? Card.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the card will use raised styling.\n   */\n  raised: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiCard'\n})(Card));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Card/Card.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Card/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Card/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Card__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Card */ \"./node_modules/@material-ui/core/esm/Card/Card.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Card__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Card/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardActionArea/CardActionArea.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardActionArea/CardActionArea.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      textAlign: 'inherit',\n      width: '100%',\n      '&:hover $focusHighlight': {\n        opacity: theme.palette.action.hoverOpacity\n      },\n      '&$focusVisible $focusHighlight': {\n        opacity: 0.12\n      }\n    },\n\n    /* Pseudo-class applied to the ButtonBase root element if the action area is keyboard focused. */\n    focusVisible: {},\n\n    /* Styles applied to the overlay that covers the action area when it is keyboard focused. */\n    focusHighlight: {\n      overflow: 'hidden',\n      pointerEvents: 'none',\n      position: 'absolute',\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      borderRadius: 'inherit',\n      opacity: 0,\n      backgroundColor: 'currentcolor',\n      transition: theme.transitions.create('opacity', {\n        duration: theme.transitions.duration.short\n      })\n    }\n  };\n};\nvar CardActionArea = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function CardActionArea(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      focusVisibleClassName = props.focusVisibleClassName,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"focusVisibleClassName\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    focusVisibleClassName: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(focusVisibleClassName, classes.focusVisible),\n    ref: ref\n  }, other), children, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.focusHighlight\n  }));\n});\n true ? CardActionArea.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiCardActionArea'\n})(CardActionArea));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardActionArea/CardActionArea.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardActionArea/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardActionArea/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CardActionArea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CardActionArea */ \"./node_modules/@material-ui/core/esm/CardActionArea/CardActionArea.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CardActionArea__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardActionArea/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardActions/CardActions.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardActions/CardActions.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    padding: 8\n  },\n\n  /* Styles applied to the root element if `disableSpacing={false}`. */\n  spacing: {\n    '& > :not(:first-child)': {\n      marginLeft: 8\n    }\n  }\n};\nvar CardActions = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function CardActions(props, ref) {\n  var _props$disableSpacing = props.disableSpacing,\n      disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n      classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"disableSpacing\", \"classes\", \"className\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, !disableSpacing && classes.spacing),\n    ref: ref\n  }, other));\n});\n true ? CardActions.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the actions do not have additional margin.\n   */\n  disableSpacing: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiCardActions'\n})(CardActions));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardActions/CardActions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardActions/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardActions/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CardActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CardActions */ \"./node_modules/@material-ui/core/esm/CardActions/CardActions.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CardActions__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardActions/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardContent/CardContent.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardContent/CardContent.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    padding: 16,\n    '&:last-child': {\n      paddingBottom: 24\n    }\n  }\n};\nvar CardContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function CardContent(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other));\n});\n true ? CardContent.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiCardContent'\n})(CardContent));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardContent/CardContent.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardContent/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardContent/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CardContent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CardContent */ \"./node_modules/@material-ui/core/esm/CardContent/CardContent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CardContent__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardContent/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardHeader/CardHeader.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardHeader/CardHeader.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    padding: 16\n  },\n\n  /* Styles applied to the avatar element. */\n  avatar: {\n    flex: '0 0 auto',\n    marginRight: 16\n  },\n\n  /* Styles applied to the action element. */\n  action: {\n    flex: '0 0 auto',\n    alignSelf: 'flex-start',\n    marginTop: -8,\n    marginRight: -8\n  },\n\n  /* Styles applied to the content wrapper element. */\n  content: {\n    flex: '1 1 auto'\n  },\n\n  /* Styles applied to the title Typography element. */\n  title: {},\n\n  /* Styles applied to the subheader Typography element. */\n  subheader: {}\n};\nvar CardHeader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function CardHeader(props, ref) {\n  var action = props.action,\n      avatar = props.avatar,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disableTypogra = props.disableTypography,\n      disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n      subheaderProp = props.subheader,\n      subheaderTypographyProps = props.subheaderTypographyProps,\n      titleProp = props.title,\n      titleTypographyProps = props.titleTypographyProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"action\", \"avatar\", \"classes\", \"className\", \"component\", \"disableTypography\", \"subheader\", \"subheaderTypographyProps\", \"title\", \"titleTypographyProps\"]);\n\n  var title = titleProp;\n\n  if (title != null && title.type !== _Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && !disableTypography) {\n    title = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      variant: avatar ? 'body2' : 'h5',\n      className: classes.title,\n      component: \"span\",\n      display: \"block\"\n    }, titleTypographyProps), title);\n  }\n\n  var subheader = subheaderProp;\n\n  if (subheader != null && subheader.type !== _Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && !disableTypography) {\n    subheader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      variant: avatar ? 'body2' : 'body1',\n      className: classes.subheader,\n      color: \"textSecondary\",\n      component: \"span\",\n      display: \"block\"\n    }, subheaderTypographyProps), subheader);\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), avatar && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: classes.avatar\n  }, avatar), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: classes.content\n  }, title, subheader), action && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: classes.action\n  }, action));\n});\n true ? CardHeader.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The action to display in the card header.\n   */\n  action: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The Avatar for the Card Header.\n   */\n  avatar: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n   * This can be useful to render an alternative Typography variant by wrapping\n   * the `title` text, and optional `subheader` text\n   * with the Typography component.\n   */\n  disableTypography: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The content of the component.\n   */\n  subheader: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * These props will be forwarded to the subheader\n   * (as long as disableTypography is not `true`).\n   */\n  subheaderTypographyProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The content of the Card Title.\n   */\n  title: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * These props will be forwarded to the title\n   * (as long as disableTypography is not `true`).\n   */\n  titleTypographyProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiCardHeader'\n})(CardHeader));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardHeader/CardHeader.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardHeader/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardHeader/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CardHeader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CardHeader */ \"./node_modules/@material-ui/core/esm/CardHeader/CardHeader.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CardHeader__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardHeader/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardMedia/CardMedia.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardMedia/CardMedia.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'block',\n    backgroundSize: 'cover',\n    backgroundRepeat: 'no-repeat',\n    backgroundPosition: 'center'\n  },\n\n  /* Styles applied to the root element if `component=\"video, audio, picture, iframe, or img\"`. */\n  media: {\n    width: '100%'\n  },\n\n  /* Styles applied to the root element if `component=\"picture or img\"`. */\n  img: {\n    // ⚠️ object-fit is not supported by IE 11.\n    objectFit: 'cover'\n  }\n};\nvar MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];\nvar CardMedia = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function CardMedia(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      image = props.image,\n      src = props.src,\n      style = props.style,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"component\", \"image\", \"src\", \"style\"]);\n\n  var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1;\n  var composedStyle = !isMediaComponent && image ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    backgroundImage: \"url(\\\"\".concat(image, \"\\\")\")\n  }, style) : style;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, isMediaComponent && classes.media, \"picture img\".indexOf(Component) !== -1 && classes.img),\n    ref: ref,\n    style: composedStyle,\n    src: isMediaComponent ? image || src : undefined\n  }, other), children);\n});\n true ? CardMedia.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node, function (props) {\n    if (!props.children && !props.image && !props.src && !props.component) {\n      return new Error('Material-UI: Either `children`, `image`, `src` or `component` prop must be specified.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Image to be displayed as a background image.\n   * Either `image` or `src` prop must be specified.\n   * Note that caller must specify height otherwise the image will not be visible.\n   */\n  image: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * An alias for `image` property.\n   * Available only with media components.\n   * Media components: `video`, `audio`, `picture`, `iframe`, `img`.\n   */\n  src: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiCardMedia'\n})(CardMedia));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardMedia/CardMedia.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CardMedia/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CardMedia/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CardMedia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CardMedia */ \"./node_modules/@material-ui/core/esm/CardMedia/CardMedia.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CardMedia__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CardMedia/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Checkbox/Checkbox.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Checkbox/Checkbox.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _internal_SwitchBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/SwitchBase */ \"./node_modules/@material-ui/core/esm/internal/SwitchBase.js\");\n/* harmony import */ var _internal_svg_icons_CheckBoxOutlineBlank__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal/svg-icons/CheckBoxOutlineBlank */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js\");\n/* harmony import */ var _internal_svg_icons_CheckBox__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../internal/svg-icons/CheckBox */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _internal_svg_icons_IndeterminateCheckBox__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../internal/svg-icons/IndeterminateCheckBox */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: theme.palette.text.secondary\n    },\n\n    /* Pseudo-class applied to the root element if `checked={true}`. */\n    checked: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Pseudo-class applied to the root element if `indeterminate={true}`. */\n    indeterminate: {},\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      '&$checked': {\n        color: theme.palette.primary.main,\n        '&:hover': {\n          backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_9__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n          // Reset on touch devices, it doesn't add specificity\n          '@media (hover: none)': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      '&$checked': {\n        color: theme.palette.secondary.main,\n        '&:hover': {\n          backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_9__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n          // Reset on touch devices, it doesn't add specificity\n          '@media (hover: none)': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    }\n  };\n};\nvar defaultCheckedIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_CheckBox__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null);\nvar defaultIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_CheckBoxOutlineBlank__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null);\nvar defaultIndeterminateIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_IndeterminateCheckBox__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null);\nvar Checkbox = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Checkbox(props, ref) {\n  var _props$checkedIcon = props.checkedIcon,\n      checkedIcon = _props$checkedIcon === void 0 ? defaultCheckedIcon : _props$checkedIcon,\n      classes = props.classes,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'secondary' : _props$color,\n      _props$icon = props.icon,\n      iconProp = _props$icon === void 0 ? defaultIcon : _props$icon,\n      _props$indeterminate = props.indeterminate,\n      indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n      _props$indeterminateI = props.indeterminateIcon,\n      indeterminateIconProp = _props$indeterminateI === void 0 ? defaultIndeterminateIcon : _props$indeterminateI,\n      inputProps = props.inputProps,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"checkedIcon\", \"classes\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"]);\n\n  var icon = indeterminate ? indeterminateIconProp : iconProp;\n  var indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_SwitchBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    type: \"checkbox\",\n    classes: {\n      root: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(color))], indeterminate && classes.indeterminate),\n      checked: classes.checked,\n      disabled: classes.disabled\n    },\n    color: color,\n    inputProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      'data-indeterminate': indeterminate\n    }, inputProps),\n    icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](icon, {\n      fontSize: icon.props.fontSize === undefined && size === \"small\" ? size : icon.props.fontSize\n    }),\n    checkedIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](indeterminateIcon, {\n      fontSize: indeterminateIcon.props.fontSize === undefined && size === \"small\" ? size : indeterminateIcon.props.fontSize\n    }),\n    ref: ref\n  }, other));\n});\n true ? Checkbox.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'primary', 'secondary']),\n\n  /**\n   * If `true`, the checkbox will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the component appears indeterminate.\n   * This does not set the native input element to indeterminate due\n   * to inconsistent behavior across browsers.\n   * However, we set a `data-indeterminate` attribute on the input.\n   */\n  indeterminate: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon to display when the component is indeterminate.\n   */\n  indeterminateIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The size of the checkbox.\n   * `small` is equivalent to the dense checkbox styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * The value of the component. The DOM API casts this to a string.\n   * The browser uses \"on\" as the default value.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(styles, {\n  name: 'MuiCheckbox'\n})(Checkbox));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Checkbox/Checkbox.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Checkbox/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Checkbox/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Checkbox */ \"./node_modules/@material-ui/core/esm/Checkbox/Checkbox.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Checkbox__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Checkbox/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Chip/Chip.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Chip/Chip.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _internal_svg_icons_Cancel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/svg-icons/Cancel */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_unsupportedProp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/unsupportedProp */ \"./node_modules/@material-ui/core/esm/utils/unsupportedProp.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var backgroundColor = theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700];\n  var deleteIconColor = Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.text.primary, 0.26);\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(13),\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      height: 32,\n      color: theme.palette.getContrastText(backgroundColor),\n      backgroundColor: backgroundColor,\n      borderRadius: 32 / 2,\n      whiteSpace: 'nowrap',\n      transition: theme.transitions.create(['background-color', 'box-shadow']),\n      // label will inherit this from root, then `clickable` class overrides this for both\n      cursor: 'default',\n      // We disable the focus ring for mouse, touch and keyboard users.\n      outline: 0,\n      textDecoration: 'none',\n      border: 'none',\n      // Remove `button` border\n      padding: 0,\n      // Remove `button` padding\n      verticalAlign: 'middle',\n      boxSizing: 'border-box',\n      '&$disabled': {\n        opacity: 0.5,\n        pointerEvents: 'none'\n      },\n      '& $avatar': {\n        marginLeft: 5,\n        marginRight: -6,\n        width: 24,\n        height: 24,\n        color: theme.palette.type === 'light' ? theme.palette.grey[700] : theme.palette.grey[300],\n        fontSize: theme.typography.pxToRem(12)\n      },\n      '& $avatarColorPrimary': {\n        color: theme.palette.primary.contrastText,\n        backgroundColor: theme.palette.primary.dark\n      },\n      '& $avatarColorSecondary': {\n        color: theme.palette.secondary.contrastText,\n        backgroundColor: theme.palette.secondary.dark\n      },\n      '& $avatarSmall': {\n        marginLeft: 4,\n        marginRight: -4,\n        width: 18,\n        height: 18,\n        fontSize: theme.typography.pxToRem(10)\n      }\n    },\n\n    /* Styles applied to the root element if `size=\"small\"`. */\n    sizeSmall: {\n      height: 24\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main,\n      color: theme.palette.primary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main,\n      color: theme.palette.secondary.contrastText\n    },\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `onClick` is defined or `clickable={true}`. */\n    clickable: {\n      userSelect: 'none',\n      WebkitTapHighlightColor: 'transparent',\n      cursor: 'pointer',\n      '&:hover, &:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"emphasize\"])(backgroundColor, 0.08)\n      },\n      '&:active': {\n        boxShadow: theme.shadows[1]\n      }\n    },\n\n    /* Styles applied to the root element if `onClick` and `color=\"primary\"` is defined or `clickable={true}`. */\n    clickableColorPrimary: {\n      '&:hover, &:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"emphasize\"])(theme.palette.primary.main, 0.08)\n      }\n    },\n\n    /* Styles applied to the root element if `onClick` and `color=\"secondary\"` is defined or `clickable={true}`. */\n    clickableColorSecondary: {\n      '&:hover, &:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"emphasize\"])(theme.palette.secondary.main, 0.08)\n      }\n    },\n\n    /* Styles applied to the root element if `onDelete` is defined. */\n    deletable: {\n      '&:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"emphasize\"])(backgroundColor, 0.08)\n      }\n    },\n\n    /* Styles applied to the root element if `onDelete` and `color=\"primary\"` is defined. */\n    deletableColorPrimary: {\n      '&:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"emphasize\"])(theme.palette.primary.main, 0.2)\n      }\n    },\n\n    /* Styles applied to the root element if `onDelete` and `color=\"secondary\"` is defined. */\n    deletableColorSecondary: {\n      '&:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"emphasize\"])(theme.palette.secondary.main, 0.2)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      backgroundColor: 'transparent',\n      border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'),\n      '$clickable&:hover, $clickable&:focus, $deletable&:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.text.primary, theme.palette.action.hoverOpacity)\n      },\n      '& $avatar': {\n        marginLeft: 4\n      },\n      '& $avatarSmall': {\n        marginLeft: 2\n      },\n      '& $icon': {\n        marginLeft: 4\n      },\n      '& $iconSmall': {\n        marginLeft: 2\n      },\n      '& $deleteIcon': {\n        marginRight: 5\n      },\n      '& $deleteIconSmall': {\n        marginRight: 3\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"primary\"`. */\n    outlinedPrimary: {\n      color: theme.palette.primary.main,\n      border: \"1px solid \".concat(theme.palette.primary.main),\n      '$clickable&:hover, $clickable&:focus, $deletable&:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"secondary\"`. */\n    outlinedSecondary: {\n      color: theme.palette.secondary.main,\n      border: \"1px solid \".concat(theme.palette.secondary.main),\n      '$clickable&:hover, $clickable&:focus, $deletable&:focus': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity)\n      }\n    },\n    // TODO v5: remove\n\n    /* Styles applied to the `avatar` element. */\n    avatar: {},\n\n    /* Styles applied to the `avatar` element if `size=\"small\"`. */\n    avatarSmall: {},\n\n    /* Styles applied to the `avatar` element if `color=\"primary\"`. */\n    avatarColorPrimary: {},\n\n    /* Styles applied to the `avatar` element if `color=\"secondary\"`. */\n    avatarColorSecondary: {},\n\n    /* Styles applied to the `icon` element. */\n    icon: {\n      color: theme.palette.type === 'light' ? theme.palette.grey[700] : theme.palette.grey[300],\n      marginLeft: 5,\n      marginRight: -6\n    },\n\n    /* Styles applied to the `icon` element if `size=\"small\"`. */\n    iconSmall: {\n      width: 18,\n      height: 18,\n      marginLeft: 4,\n      marginRight: -4\n    },\n\n    /* Styles applied to the `icon` element if `color=\"primary\"`. */\n    iconColorPrimary: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the `icon` element if `color=\"secondary\"`. */\n    iconColorSecondary: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the label `span` element. */\n    label: {\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n      paddingLeft: 12,\n      paddingRight: 12,\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the label `span` element if `size=\"small\"`. */\n    labelSmall: {\n      paddingLeft: 8,\n      paddingRight: 8\n    },\n\n    /* Styles applied to the `deleteIcon` element. */\n    deleteIcon: {\n      WebkitTapHighlightColor: 'transparent',\n      color: deleteIconColor,\n      height: 22,\n      width: 22,\n      cursor: 'pointer',\n      margin: '0 5px 0 -6px',\n      '&:hover': {\n        color: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(deleteIconColor, 0.4)\n      }\n    },\n\n    /* Styles applied to the `deleteIcon` element if `size=\"small\"`. */\n    deleteIconSmall: {\n      height: 16,\n      width: 16,\n      marginRight: 4,\n      marginLeft: -4\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"primary\"` and `variant=\"default\"`. */\n    deleteIconColorPrimary: {\n      color: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.primary.contrastText, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.primary.contrastText\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"secondary\"` and `variant=\"default\"`. */\n    deleteIconColorSecondary: {\n      color: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.contrastText, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.secondary.contrastText\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"primary\"` and `variant=\"outlined\"`. */\n    deleteIconOutlinedColorPrimary: {\n      color: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.primary.main, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.primary.main\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"secondary\"` and `variant=\"outlined\"`. */\n    deleteIconOutlinedColorSecondary: {\n      color: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.main, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.secondary.main\n      }\n    }\n  };\n};\n\nfunction isDeleteKeyboardEvent(keyboardEvent) {\n  return keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete';\n}\n/**\n * Chips represent complex entities in small blocks, such as a contact.\n */\n\n\nvar Chip = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Chip(props, ref) {\n  var avatarProp = props.avatar,\n      classes = props.classes,\n      className = props.className,\n      clickableProp = props.clickable,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      ComponentProp = props.component,\n      deleteIconProp = props.deleteIcon,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      iconProp = props.icon,\n      label = props.label,\n      onClick = props.onClick,\n      onDelete = props.onDelete,\n      onKeyDown = props.onKeyDown,\n      onKeyUp = props.onKeyUp,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'default' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"avatar\", \"classes\", \"className\", \"clickable\", \"color\", \"component\", \"deleteIcon\", \"disabled\", \"icon\", \"label\", \"onClick\", \"onDelete\", \"onKeyDown\", \"onKeyUp\", \"size\", \"variant\"]);\n\n  var chipRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(chipRef, ref);\n\n  var handleDeleteIconClick = function handleDeleteIconClick(event) {\n    // Stop the event from bubbling up to the `Chip`\n    event.stopPropagation();\n\n    if (onDelete) {\n      onDelete(event);\n    }\n  };\n\n  var handleKeyDown = function handleKeyDown(event) {\n    // Ignore events from children of `Chip`.\n    if (event.currentTarget === event.target && isDeleteKeyboardEvent(event)) {\n      // will be handled in keyUp, otherwise some browsers\n      // might init navigation\n      event.preventDefault();\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n\n  var handleKeyUp = function handleKeyUp(event) {\n    // Ignore events from children of `Chip`.\n    if (event.currentTarget === event.target) {\n      if (onDelete && isDeleteKeyboardEvent(event)) {\n        onDelete(event);\n      } else if (event.key === 'Escape' && chipRef.current) {\n        chipRef.current.blur();\n      }\n    }\n\n    if (onKeyUp) {\n      onKeyUp(event);\n    }\n  };\n\n  var clickable = clickableProp !== false && onClick ? true : clickableProp;\n  var small = size === 'small';\n  var Component = ComponentProp || (clickable ? _ButtonBase__WEBPACK_IMPORTED_MODULE_11__[\"default\"] : 'div');\n  var moreProps = Component === _ButtonBase__WEBPACK_IMPORTED_MODULE_11__[\"default\"] ? {\n    component: 'div'\n  } : {};\n  var deleteIcon = null;\n\n  if (onDelete) {\n    var customClasses = Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(color !== 'default' && (variant === \"default\" ? classes[\"deleteIconColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))] : classes[\"deleteIconOutlinedColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))]), small && classes.deleteIconSmall);\n    deleteIcon = deleteIconProp && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](deleteIconProp) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](deleteIconProp, {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(deleteIconProp.props.className, classes.deleteIcon, customClasses),\n      onClick: handleDeleteIconClick\n    }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_Cancel__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.deleteIcon, customClasses),\n      onClick: handleDeleteIconClick\n    });\n  }\n\n  var avatar = null;\n\n  if (avatarProp && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](avatarProp)) {\n    avatar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](avatarProp, {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.avatar, avatarProp.props.className, small && classes.avatarSmall, color !== 'default' && classes[\"avatarColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))])\n    });\n  }\n\n  var icon = null;\n\n  if (iconProp && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](iconProp)) {\n    icon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](iconProp, {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.icon, iconProp.props.className, small && classes.iconSmall, color !== 'default' && classes[\"iconColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))])\n    });\n  }\n\n  if (true) {\n    if (avatar && icon) {\n      console.error('Material-UI: The Chip component can not handle the avatar ' + 'and the icon prop at the same time. Pick one.');\n    }\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    role: clickable || onDelete ? 'button' : undefined,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, color !== 'default' && [classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))], clickable && classes[\"clickableColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))], onDelete && classes[\"deletableColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(color))]], variant !== \"default\" && [classes.outlined, {\n      'primary': classes.outlinedPrimary,\n      'secondary': classes.outlinedSecondary\n    }[color]], disabled && classes.disabled, small && classes.sizeSmall, clickable && classes.clickable, onDelete && classes.deletable),\n    \"aria-disabled\": disabled ? true : undefined,\n    tabIndex: clickable || onDelete ? 0 : undefined,\n    onClick: onClick,\n    onKeyDown: handleKeyDown,\n    onKeyUp: handleKeyUp,\n    ref: handleRef\n  }, moreProps, other), avatar || icon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.label, small && classes.labelSmall)\n  }, label), deleteIcon);\n});\n true ? Chip.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Avatar element.\n   */\n  avatar: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element,\n\n  /**\n   * This prop isn't supported.\n   * Use the `component` prop if you need to change the children structure.\n   */\n  children: _utils_unsupportedProp__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the chip will appear clickable, and will raise when pressed,\n   * even if the onClick prop is not defined.\n   * If false, the chip will not be clickable, even if onClick prop is defined.\n   * This can be used, for example,\n   * along with the component prop to indicate an anchor Chip is clickable.\n   */\n  clickable: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Override the default delete icon element. Shown only if `onDelete` is set.\n   */\n  deleteIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element,\n\n  /**\n   * If `true`, the chip should be displayed in a disabled state.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Icon element.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element,\n\n  /**\n   * The content of the label.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback function fired when the delete icon is clicked.\n   * If set, the delete icon will be shown.\n   */\n  onDelete: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onKeyUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The size of the chip.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'outlined'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiChip'\n})(Chip));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Chip/Chip.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Chip/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Chip/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Chip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Chip */ \"./node_modules/@material-ui/core/esm/Chip/Chip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Chip__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Chip/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js ***!
  \*********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\nvar SIZE = 44;\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-block'\n    },\n\n    /* Styles applied to the root element if `variant=\"static\"`. */\n    static: {\n      transition: theme.transitions.create('transform')\n    },\n\n    /* Styles applied to the root element if `variant=\"indeterminate\"`. */\n    indeterminate: {\n      animation: '$circular-rotate 1.4s linear infinite'\n    },\n\n    /* Styles applied to the root element if `variant=\"determinate\"`. */\n    determinate: {\n      transition: theme.transitions.create('transform')\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the `svg` element. */\n    svg: {\n      display: 'block' // Keeps the progress centered\n\n    },\n\n    /* Styles applied to the `circle` svg path. */\n    circle: {\n      stroke: 'currentColor' // Use butt to follow the specification, by chance, it's already the default CSS value.\n      // strokeLinecap: 'butt',\n\n    },\n\n    /* Styles applied to the `circle` svg path if `variant=\"static\"`. */\n    circleStatic: {\n      transition: theme.transitions.create('stroke-dashoffset')\n    },\n\n    /* Styles applied to the `circle` svg path if `variant=\"indeterminate\"`. */\n    circleIndeterminate: {\n      animation: '$circular-dash 1.4s ease-in-out infinite',\n      // Some default value that looks fine waiting for the animation to kicks in.\n      strokeDasharray: '80px, 200px',\n      strokeDashoffset: '0px' // Add the unit to fix a Edge 16 and below bug.\n\n    },\n\n    /* Styles applied to the `circle` svg path if `variant=\"determinate\"`. */\n    circleDeterminate: {\n      transition: theme.transitions.create('stroke-dashoffset')\n    },\n    '@keyframes circular-rotate': {\n      '0%': {\n        // Fix IE 11 wobbly\n        transformOrigin: '50% 50%'\n      },\n      '100%': {\n        transform: 'rotate(360deg)'\n      }\n    },\n    '@keyframes circular-dash': {\n      '0%': {\n        strokeDasharray: '1px, 200px',\n        strokeDashoffset: '0px'\n      },\n      '50%': {\n        strokeDasharray: '100px, 200px',\n        strokeDashoffset: '-15px'\n      },\n      '100%': {\n        strokeDasharray: '100px, 200px',\n        strokeDashoffset: '-125px'\n      }\n    },\n\n    /* Styles applied to the `circle` svg path if `disableShrink={true}`. */\n    circleDisableShrink: {\n      animation: 'none'\n    }\n  };\n};\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nvar CircularProgress = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function CircularProgress(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$disableShrink = props.disableShrink,\n      disableShrink = _props$disableShrink === void 0 ? false : _props$disableShrink,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 40 : _props$size,\n      style = props.style,\n      _props$thickness = props.thickness,\n      thickness = _props$thickness === void 0 ? 3.6 : _props$thickness,\n      _props$value = props.value,\n      value = _props$value === void 0 ? 0 : _props$value,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'indeterminate' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"]);\n\n  var circleStyle = {};\n  var rootStyle = {};\n  var rootProps = {};\n\n  if (variant === 'determinate' || variant === 'static') {\n    var circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n    circleStyle.strokeDasharray = circumference.toFixed(3);\n    rootProps['aria-valuenow'] = Math.round(value);\n    circleStyle.strokeDashoffset = \"\".concat(((100 - value) / 100 * circumference).toFixed(3), \"px\");\n    rootStyle.transform = 'rotate(-90deg)';\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, color !== 'inherit' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(color))], {\n      'determinate': classes.determinate,\n      'indeterminate': classes.indeterminate,\n      'static': classes.static\n    }[variant]),\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      width: size,\n      height: size\n    }, rootStyle, style),\n    ref: ref,\n    role: \"progressbar\"\n  }, rootProps, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"svg\", {\n    className: classes.svg,\n    viewBox: \"\".concat(SIZE / 2, \" \").concat(SIZE / 2, \" \").concat(SIZE, \" \").concat(SIZE)\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"circle\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.circle, disableShrink && classes.circleDisableShrink, {\n      'determinate': classes.circleDeterminate,\n      'indeterminate': classes.circleIndeterminate,\n      'static': classes.circleStatic\n    }[variant]),\n    style: circleStyle,\n    cx: SIZE,\n    cy: SIZE,\n    r: (SIZE - thickness) / 2,\n    fill: \"none\",\n    strokeWidth: thickness\n  })));\n});\n true ? CircularProgress.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['inherit', 'primary', 'secondary']),\n\n  /**\n   * If `true`, the shrink animation is disabled.\n   * This only works if variant is `indeterminate`.\n   */\n  disableShrink: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool, function (props) {\n    if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n      return new Error('Material-UI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * The size of the circle.\n   * If using a number, the pixel unit is assumed.\n   * If using a string, you need to provide the CSS unit, e.g '3rem'.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The thickness of the circle.\n   */\n  thickness: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * The value of the progress indicator for the determinate variant.\n   * Value between 0 and 100.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * The variant to use.\n   * Use indeterminate when there is no progress value.\n   */\n  variant: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['determinate', 'indeterminate', 'static']), function (props) {\n    var variant = props.variant;\n\n    if (variant === 'static') {\n      throw new Error('Material-UI: `variant=\"static\"` was deprecated. Use `variant=\"determinate\"` instead.');\n    }\n\n    return null;\n  })\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiCircularProgress',\n  flip: false\n})(CircularProgress));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CircularProgress/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CircularProgress/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CircularProgress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CircularProgress */ \"./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CircularProgress__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CircularProgress/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js ***!
  \***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\n\n\n\n\n\n\nfunction mapEventPropToEvent(eventProp) {\n  return eventProp.substring(2).toLowerCase();\n}\n\nfunction clickedRootScrollbar(event) {\n  return document.documentElement.clientWidth < event.clientX || document.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n */\n\n\nfunction ClickAwayListener(props) {\n  var children = props.children,\n      _props$disableReactTr = props.disableReactTree,\n      disableReactTree = _props$disableReactTr === void 0 ? false : _props$disableReactTr,\n      _props$mouseEvent = props.mouseEvent,\n      mouseEvent = _props$mouseEvent === void 0 ? 'onClick' : _props$mouseEvent,\n      onClickAway = props.onClickAway,\n      _props$touchEvent = props.touchEvent,\n      touchEvent = _props$touchEvent === void 0 ? 'onTouchEnd' : _props$touchEvent;\n  var movedRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](false);\n  var nodeRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](null);\n  var activatedRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](false);\n  var syntheticEventRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](false);\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    // Ensure that this component is not \"activated\" synchronously.\n    // https://github.com/facebook/react/issues/20074\n    setTimeout(function () {\n      activatedRef.current = true;\n    }, 0);\n    return function () {\n      activatedRef.current = false;\n    };\n  }, []); // can be removed once we drop support for non ref forwarding class components\n\n  var handleOwnRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    nodeRef.current = react_dom__WEBPACK_IMPORTED_MODULE_1__[\"findDOMNode\"](instance);\n  }, []);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(children.ref, handleOwnRef); // The handler doesn't take event.defaultPrevented into account:\n  //\n  // event.preventDefault() is meant to stop default behaviours like\n  // clicking a checkbox to check it, hitting a button to submit a form,\n  // and hitting left arrow to move the cursor in a text input etc.\n  // Only special HTML elements have these default behaviors.\n\n  var handleClickAway = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function (event) {\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    var insideReactTree = syntheticEventRef.current;\n    syntheticEventRef.current = false; // 1. IE 11 support, which trigger the handleClickAway even after the unbind\n    // 2. The child might render null.\n    // 3. Behave like a blur listener.\n\n    if (!activatedRef.current || !nodeRef.current || clickedRootScrollbar(event)) {\n      return;\n    } // Do not act if user performed touchmove\n\n\n    if (movedRef.current) {\n      movedRef.current = false;\n      return;\n    }\n\n    var insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n    if (event.composedPath) {\n      insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n    } else {\n      // TODO v6 remove dead logic https://caniuse.com/#search=composedPath.\n      var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(nodeRef.current);\n      insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n    }\n\n    if (!insideDOM && (disableReactTree || !insideReactTree)) {\n      onClickAway(event);\n    }\n  }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n  var createHandleSynthetic = function createHandleSynthetic(handlerName) {\n    return function (event) {\n      syntheticEventRef.current = true;\n      var childrenPropsHandler = children.props[handlerName];\n\n      if (childrenPropsHandler) {\n        childrenPropsHandler(event);\n      }\n    };\n  };\n\n  var childrenProps = {\n    ref: handleRef\n  };\n\n  if (touchEvent !== false) {\n    childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n  }\n\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    if (touchEvent !== false) {\n      var mappedTouchEvent = mapEventPropToEvent(touchEvent);\n      var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(nodeRef.current);\n\n      var handleTouchMove = function handleTouchMove() {\n        movedRef.current = true;\n      };\n\n      doc.addEventListener(mappedTouchEvent, handleClickAway);\n      doc.addEventListener('touchmove', handleTouchMove);\n      return function () {\n        doc.removeEventListener(mappedTouchEvent, handleClickAway);\n        doc.removeEventListener('touchmove', handleTouchMove);\n      };\n    }\n\n    return undefined;\n  }, [handleClickAway, touchEvent]);\n\n  if (mouseEvent !== false) {\n    childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n  }\n\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    if (mouseEvent !== false) {\n      var mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n      var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(nodeRef.current);\n      doc.addEventListener(mappedMouseEvent, handleClickAway);\n      return function () {\n        doc.removeEventListener(mappedMouseEvent, handleClickAway);\n      };\n    }\n\n    return undefined;\n  }, [handleClickAway, mouseEvent]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"](children, childrenProps));\n}\n\n true ? ClickAwayListener.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The wrapped element.\n   */\n  children: _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"elementAcceptingRef\"].isRequired,\n\n  /**\n   * If `true`, the React tree is ignored and only the DOM tree is considered.\n   * This prop changes how portaled elements are handled.\n   */\n  disableReactTree: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * The mouse event to listen to. You can disable the listener by providing `false`.\n   */\n  mouseEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf(['onClick', 'onMouseDown', 'onMouseUp', false]),\n\n  /**\n   * Callback fired when a \"click away\" event is detected.\n   */\n  onClickAway: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n\n  /**\n   * The touch event to listen to. You can disable the listener by providing `false`.\n   */\n  touchEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : undefined;\n\nif (true) {\n  // eslint-disable-next-line\n  ClickAwayListener['propTypes' + ''] = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"exactProp\"])(ClickAwayListener.propTypes);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ClickAwayListener);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ClickAwayListener/index.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ClickAwayListener/index.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ClickAwayListener__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ClickAwayListener */ \"./node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ClickAwayListener__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ClickAwayListener/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Collapse/Collapse.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Collapse/Collapse.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _transitions_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../transitions/utils */ \"./node_modules/@material-ui/core/esm/transitions/utils.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils */ \"./node_modules/@material-ui/core/esm/utils/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the container element. */\n    container: {\n      height: 0,\n      overflow: 'hidden',\n      transition: theme.transitions.create('height')\n    },\n\n    /* Styles applied to the container element when the transition has entered. */\n    entered: {\n      height: 'auto',\n      overflow: 'visible'\n    },\n\n    /* Styles applied to the container element when the transition has exited and `collapsedHeight` != 0px. */\n    hidden: {\n      visibility: 'hidden'\n    },\n\n    /* Styles applied to the outer wrapper element. */\n    wrapper: {\n      // Hack to get children with a negative margin to not falsify the height computation.\n      display: 'flex'\n    },\n\n    /* Styles applied to the inner wrapper element. */\n    wrapperInner: {\n      width: '100%'\n    }\n  };\n};\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/components/steppers/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Collapse = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Collapse(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$collapsedHeigh = props.collapsedHeight,\n      collapsedHeightProp = _props$collapsedHeigh === void 0 ? '0px' : _props$collapsedHeigh,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disableStrictM = props.disableStrictModeCompat,\n      disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n      inProp = props.in,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      style = props.style,\n      _props$timeout = props.timeout,\n      timeout = _props$timeout === void 0 ? _styles_transitions__WEBPACK_IMPORTED_MODULE_8__[\"duration\"].standard : _props$timeout,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? react_transition_group__WEBPACK_IMPORTED_MODULE_6__[\"Transition\"] : _props$TransitionComp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"collapsedHeight\", \"component\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_10__[\"default\"])();\n  var timer = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n  var wrapperRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var autoTransitionDuration = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n  var collapsedHeight = typeof collapsedHeightProp === 'number' ? \"\".concat(collapsedHeightProp, \"px\") : collapsedHeightProp;\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    return function () {\n      clearTimeout(timer.current);\n    };\n  }, []);\n  var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n  var nodeRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var handleRef = Object(_utils__WEBPACK_IMPORTED_MODULE_11__[\"useForkRef\"])(ref, enableStrictModeCompat ? nodeRef : undefined);\n\n  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n    return function (nodeOrAppearing, maybeAppearing) {\n      if (callback) {\n        var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n            _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n            node = _ref2[0],\n            isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n        if (isAppearing === undefined) {\n          callback(node);\n        } else {\n          callback(node, isAppearing);\n        }\n      }\n    };\n  };\n\n  var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n    node.style.height = collapsedHeight;\n\n    if (onEnter) {\n      onEnter(node, isAppearing);\n    }\n  });\n  var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {\n    var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n\n    var _getTransitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_9__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'enter'\n    }),\n        transitionDuration = _getTransitionProps.duration;\n\n    if (timeout === 'auto') {\n      var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n      node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n      autoTransitionDuration.current = duration2;\n    } else {\n      node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n    }\n\n    node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n    if (onEntering) {\n      onEntering(node, isAppearing);\n    }\n  });\n  var handleEntered = normalizedTransitionCallback(function (node, isAppearing) {\n    node.style.height = 'auto';\n\n    if (onEntered) {\n      onEntered(node, isAppearing);\n    }\n  });\n  var handleExit = normalizedTransitionCallback(function (node) {\n    var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n    node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n    if (onExit) {\n      onExit(node);\n    }\n  });\n  var handleExited = normalizedTransitionCallback(onExited);\n  var handleExiting = normalizedTransitionCallback(function (node) {\n    var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;\n\n    var _getTransitionProps2 = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_9__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'exit'\n    }),\n        transitionDuration = _getTransitionProps2.duration;\n\n    if (timeout === 'auto') {\n      var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n      node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n      autoTransitionDuration.current = duration2;\n    } else {\n      node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n    }\n\n    node.style.height = collapsedHeight;\n\n    if (onExiting) {\n      onExiting(node);\n    }\n  });\n\n  var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n    var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n    if (timeout === 'auto') {\n      timer.current = setTimeout(next, autoTransitionDuration.current || 0);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    in: inProp,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    addEndListener: addEndListener,\n    nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n    timeout: timeout === 'auto' ? null : timeout\n  }, other), function (state, childProps) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.container, className, {\n        'entered': classes.entered,\n        'exited': !inProp && collapsedHeight === '0px' && classes.hidden\n      }[state]),\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        minHeight: collapsedHeight\n      }, style),\n      ref: handleRef\n    }, childProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n      className: classes.wrapper,\n      ref: wrapperRef\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n      className: classes.wrapperInner\n    }, children)));\n  });\n});\n true ? Collapse.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content node to be collapsed.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * The height of the container when collapsed.\n   */\n  collapsedHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string]),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Enable this prop if you encounter 'Function components cannot be given refs',\n   * use `unstable_createStrictModeTheme`,\n   * and can't forward the ref in the passed `Component`.\n   */\n  disableStrictModeCompat: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n  /**\n   * If `true`, the component will transition in.\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   *\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  timeout: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['auto']), prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number\n  })])\n} : undefined;\nCollapse.muiSupportAuto = true;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiCollapse'\n})(Collapse));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Collapse/Collapse.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Collapse/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Collapse/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Collapse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Collapse */ \"./node_modules/@material-ui/core/esm/Collapse/Collapse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Collapse__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Collapse/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Container/Container.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Container/Container.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      width: '100%',\n      marginLeft: 'auto',\n      boxSizing: 'border-box',\n      marginRight: 'auto',\n      paddingLeft: theme.spacing(2),\n      paddingRight: theme.spacing(2),\n      display: 'block'\n    }, theme.breakpoints.up('sm'), {\n      paddingLeft: theme.spacing(3),\n      paddingRight: theme.spacing(3)\n    }),\n\n    /* Styles applied to the root element if `disableGutters={true}`. */\n    disableGutters: {\n      paddingLeft: 0,\n      paddingRight: 0\n    },\n\n    /* Styles applied to the root element if `fixed={true}`. */\n    fixed: Object.keys(theme.breakpoints.values).reduce(function (acc, breakpoint) {\n      var value = theme.breakpoints.values[breakpoint];\n\n      if (value !== 0) {\n        acc[theme.breakpoints.up(breakpoint)] = {\n          maxWidth: value\n        };\n      }\n\n      return acc;\n    }, {}),\n\n    /* Styles applied to the root element if `maxWidth=\"xs\"`. */\n    maxWidthXs: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.up('xs'), {\n      maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n    }),\n\n    /* Styles applied to the root element if `maxWidth=\"sm\"`. */\n    maxWidthSm: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.up('sm'), {\n      maxWidth: theme.breakpoints.values.sm\n    }),\n\n    /* Styles applied to the root element if `maxWidth=\"md\"`. */\n    maxWidthMd: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.up('md'), {\n      maxWidth: theme.breakpoints.values.md\n    }),\n\n    /* Styles applied to the root element if `maxWidth=\"lg\"`. */\n    maxWidthLg: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.up('lg'), {\n      maxWidth: theme.breakpoints.values.lg\n    }),\n\n    /* Styles applied to the root element if `maxWidth=\"xl\"`. */\n    maxWidthXl: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.up('xl'), {\n      maxWidth: theme.breakpoints.values.xl\n    })\n  };\n};\nvar Container = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Container(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disableGutters = props.disableGutters,\n      disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n      _props$fixed = props.fixed,\n      fixed = _props$fixed === void 0 ? false : _props$fixed,\n      _props$maxWidth = props.maxWidth,\n      maxWidth = _props$maxWidth === void 0 ? 'lg' : _props$maxWidth,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"fixed\", \"maxWidth\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className, fixed && classes.fixed, disableGutters && classes.disableGutters, maxWidth !== false && classes[\"maxWidth\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(String(maxWidth)))]),\n    ref: ref\n  }, other));\n});\n true ? Container.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * @ignore\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the left and right padding is removed.\n   */\n  disableGutters: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Set the max-width to match the min-width of the current breakpoint.\n   * This is useful if you'd prefer to design for a fixed set of sizes\n   * instead of trying to accommodate a fully fluid viewport.\n   * It's fluid by default.\n   */\n  fixed: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Determine the max-width of the container.\n   * The container width grows with the size of the screen.\n   * Set to `false` to disable `maxWidth`.\n   */\n  maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['lg', 'md', 'sm', 'xl', 'xs', false])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiContainer'\n})(Container));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Container/Container.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Container/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Container/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Container */ \"./node_modules/@material-ui/core/esm/Container/Container.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Container__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Container/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CssBaseline/CssBaseline.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CssBaseline/CssBaseline.js ***!
  \***********************************************************************/
/*! exports provided: html, body, styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"html\", function() { return html; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"body\", function() { return body; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\n\n\n\nvar html = {\n  WebkitFontSmoothing: 'antialiased',\n  // Antialiasing.\n  MozOsxFontSmoothing: 'grayscale',\n  // Antialiasing.\n  // Change from `box-sizing: content-box` so that `width`\n  // is not affected by `padding` or `border`.\n  boxSizing: 'border-box'\n};\nvar body = function body(theme) {\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    color: theme.palette.text.primary\n  }, theme.typography.body2, {\n    backgroundColor: theme.palette.background.default,\n    '@media print': {\n      // Save printer ink.\n      backgroundColor: theme.palette.common.white\n    }\n  });\n};\nvar styles = function styles(theme) {\n  return {\n    '@global': {\n      html: html,\n      '*, *::before, *::after': {\n        boxSizing: 'inherit'\n      },\n      'strong, b': {\n        fontWeight: theme.typography.fontWeightBold\n      },\n      body: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        margin: 0\n      }, body(theme), {\n        // Add support for document.body.requestFullScreen().\n        // Other elements, if background transparent, are not supported.\n        '&::backdrop': {\n          backgroundColor: theme.palette.background.default\n        }\n      })\n    }\n  };\n};\n/**\n * Kickstart an elegant, consistent, and simple baseline to build upon.\n */\n\nfunction CssBaseline(props) {\n  /* eslint-disable no-unused-vars */\n  var _props$children = props.children,\n      children = _props$children === void 0 ? null : _props$children,\n      classes = props.classes;\n  /* eslint-enable no-unused-vars */\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_1__[\"Fragment\"], null, children);\n}\n\n true ? CssBaseline.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * You can wrap a node.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n} : undefined;\n\nif (true) {\n  // eslint-disable-next-line\n  CssBaseline['propTypes' + ''] = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_4__[\"exactProp\"])(CssBaseline.propTypes);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(styles, {\n  name: 'MuiCssBaseline'\n})(CssBaseline));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CssBaseline/CssBaseline.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/CssBaseline/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/CssBaseline/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CssBaseline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CssBaseline */ \"./node_modules/@material-ui/core/esm/CssBaseline/CssBaseline.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _CssBaseline__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/CssBaseline/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Dialog/Dialog.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Dialog/Dialog.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Modal */ \"./node_modules/@material-ui/core/esm/Modal/index.js\");\n/* harmony import */ var _Backdrop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Backdrop */ \"./node_modules/@material-ui/core/esm/Backdrop/index.js\");\n/* harmony import */ var _Fade__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Fade */ \"./node_modules/@material-ui/core/esm/Fade/index.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      '@media print': {\n        // Use !important to override the Modal inline-style.\n        position: 'absolute !important'\n      }\n    },\n\n    /* Styles applied to the container element if `scroll=\"paper\"`. */\n    scrollPaper: {\n      display: 'flex',\n      justifyContent: 'center',\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the container element if `scroll=\"body\"`. */\n    scrollBody: {\n      overflowY: 'auto',\n      overflowX: 'hidden',\n      textAlign: 'center',\n      '&:after': {\n        content: '\"\"',\n        display: 'inline-block',\n        verticalAlign: 'middle',\n        height: '100%',\n        width: '0'\n      }\n    },\n\n    /* Styles applied to the container element. */\n    container: {\n      height: '100%',\n      '@media print': {\n        height: 'auto'\n      },\n      // We disable the focus ring for mouse, touch and keyboard users.\n      outline: 0\n    },\n\n    /* Styles applied to the `Paper` component. */\n    paper: {\n      margin: 32,\n      position: 'relative',\n      overflowY: 'auto',\n      // Fix IE 11 issue, to remove at some point.\n      '@media print': {\n        overflowY: 'visible',\n        boxShadow: 'none'\n      }\n    },\n\n    /* Styles applied to the `Paper` component if `scroll=\"paper\"`. */\n    paperScrollPaper: {\n      display: 'flex',\n      flexDirection: 'column',\n      maxHeight: 'calc(100% - 64px)'\n    },\n\n    /* Styles applied to the `Paper` component if `scroll=\"body\"`. */\n    paperScrollBody: {\n      display: 'inline-block',\n      verticalAlign: 'middle',\n      textAlign: 'left' // 'initial' doesn't work on IE 11\n\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=false`. */\n    paperWidthFalse: {\n      maxWidth: 'calc(100% - 64px)'\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"xs\"`. */\n    paperWidthXs: {\n      maxWidth: Math.max(theme.breakpoints.values.xs, 444),\n      '&$paperScrollBody': Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {\n        maxWidth: 'calc(100% - 64px)'\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"sm\"`. */\n    paperWidthSm: {\n      maxWidth: theme.breakpoints.values.sm,\n      '&$paperScrollBody': Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {\n        maxWidth: 'calc(100% - 64px)'\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"md\"`. */\n    paperWidthMd: {\n      maxWidth: theme.breakpoints.values.md,\n      '&$paperScrollBody': Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {\n        maxWidth: 'calc(100% - 64px)'\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"lg\"`. */\n    paperWidthLg: {\n      maxWidth: theme.breakpoints.values.lg,\n      '&$paperScrollBody': Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {\n        maxWidth: 'calc(100% - 64px)'\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"xl\"`. */\n    paperWidthXl: {\n      maxWidth: theme.breakpoints.values.xl,\n      '&$paperScrollBody': Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {\n        maxWidth: 'calc(100% - 64px)'\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `fullWidth={true}`. */\n    paperFullWidth: {\n      width: 'calc(100% - 64px)'\n    },\n\n    /* Styles applied to the `Paper` component if `fullScreen={true}`. */\n    paperFullScreen: {\n      margin: 0,\n      width: '100%',\n      maxWidth: '100%',\n      height: '100%',\n      maxHeight: 'none',\n      borderRadius: 0,\n      '&$paperScrollBody': {\n        margin: 0,\n        maxWidth: '100%'\n      }\n    }\n  };\n};\nvar defaultTransitionDuration = {\n  enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_11__[\"duration\"].enteringScreen,\n  exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_11__[\"duration\"].leavingScreen\n};\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\nvar Dialog = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Dialog(props, ref) {\n  var BackdropProps = props.BackdropProps,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$disableBackdro = props.disableBackdropClick,\n      disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n      _props$disableEscapeK = props.disableEscapeKeyDown,\n      disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n      _props$fullScreen = props.fullScreen,\n      fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      _props$maxWidth = props.maxWidth,\n      maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,\n      onBackdropClick = props.onBackdropClick,\n      onClose = props.onClose,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onEscapeKeyDown = props.onEscapeKeyDown,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      open = props.open,\n      _props$PaperComponent = props.PaperComponent,\n      PaperComponent = _props$PaperComponent === void 0 ? _Paper__WEBPACK_IMPORTED_MODULE_12__[\"default\"] : _props$PaperComponent,\n      _props$PaperProps = props.PaperProps,\n      PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n      _props$scroll = props.scroll,\n      scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Fade__WEBPACK_IMPORTED_MODULE_10__[\"default\"] : _props$TransitionComp,\n      _props$transitionDura = props.transitionDuration,\n      transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,\n      TransitionProps = props.TransitionProps,\n      ariaDescribedby = props['aria-describedby'],\n      ariaLabelledby = props['aria-labelledby'],\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"BackdropProps\", \"children\", \"classes\", \"className\", \"disableBackdropClick\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onEscapeKeyDown\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\", \"aria-describedby\", \"aria-labelledby\"]);\n\n  var mouseDownTarget = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n\n  var handleMouseDown = function handleMouseDown(event) {\n    mouseDownTarget.current = event.target;\n  };\n\n  var handleBackdropClick = function handleBackdropClick(event) {\n    // Ignore the events not coming from the \"backdrop\"\n    // We don't want to close the dialog when clicking the dialog content.\n    if (event.target !== event.currentTarget) {\n      return;\n    } // Make sure the event starts and ends on the same DOM element.\n\n\n    if (event.target !== mouseDownTarget.current) {\n      return;\n    }\n\n    mouseDownTarget.current = null;\n\n    if (onBackdropClick) {\n      onBackdropClick(event);\n    }\n\n    if (!disableBackdropClick && onClose) {\n      onClose(event, 'backdropClick');\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_Modal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    BackdropComponent: _Backdrop__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n    BackdropProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      transitionDuration: transitionDuration\n    }, BackdropProps),\n    closeAfterTransition: true,\n    disableBackdropClick: disableBackdropClick,\n    disableEscapeKeyDown: disableEscapeKeyDown,\n    onEscapeKeyDown: onEscapeKeyDown,\n    onClose: onClose,\n    open: open,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    appear: true,\n    in: open,\n    timeout: transitionDuration,\n    onEnter: onEnter,\n    onEntering: onEntering,\n    onEntered: onEntered,\n    onExit: onExit,\n    onExiting: onExiting,\n    onExited: onExited,\n    role: \"none presentation\"\n  }, TransitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.container, classes[\"scroll\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(scroll))]),\n    onMouseUp: handleBackdropClick,\n    onMouseDown: handleMouseDown\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](PaperComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    elevation: 24,\n    role: \"dialog\",\n    \"aria-describedby\": ariaDescribedby,\n    \"aria-labelledby\": ariaLabelledby\n  }, PaperProps, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.paper, classes[\"paperScroll\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(scroll))], classes[\"paperWidth\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)\n  }), children))));\n});\n true ? Dialog.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The id(s) of the element(s) that describe the dialog.\n   */\n  'aria-describedby': prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The id(s) of the element(s) that label the dialog.\n   */\n  'aria-labelledby': prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * @ignore\n   */\n  BackdropProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Dialog children, usually the included sub-components.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * If `true`, clicking the backdrop will not fire the `onClose` callback.\n   */\n  disableBackdropClick: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, hitting escape will not fire the `onClose` callback.\n   */\n  disableEscapeKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the dialog will be full-screen\n   */\n  fullScreen: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the dialog stretches to `maxWidth`.\n   *\n   * Notice that the dialog width grow is limited by the default margin.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Determine the max-width of the dialog.\n   * The dialog width grows with the size of the screen.\n   * Set to `false` to disable `maxWidth`.\n   */\n  maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['lg', 'md', 'sm', 'xl', 'xs', false]),\n\n  /**\n   * Callback fired when the backdrop is clicked.\n   */\n  onBackdropClick: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired before the dialog enters.\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the dialog has entered.\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the dialog is entering.\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the escape key is pressed,\n   * `disableKeyboard` is false and the modal is in focus.\n   */\n  onEscapeKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired before the dialog exits.\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the dialog has exited.\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the dialog is exiting.\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * If `true`, the Dialog is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool.isRequired,\n\n  /**\n   * The component used to render the body of the dialog.\n   */\n  PaperComponent: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.elementType,\n\n  /**\n   * Props applied to the [`Paper`](/api/paper/) element.\n   */\n  PaperProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Determine the container for scrolling the dialog.\n   */\n  scroll: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['body', 'paper']),\n\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.elementType,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n  })]),\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiDialog'\n})(Dialog));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Dialog/Dialog.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Dialog/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Dialog/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Dialog */ \"./node_modules/@material-ui/core/esm/Dialog/Dialog.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Dialog/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js ***!
  \***************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    padding: 8,\n    justifyContent: 'flex-end',\n    flex: '0 0 auto'\n  },\n\n  /* Styles applied to the root element if `disableSpacing={false}`. */\n  spacing: {\n    '& > :not(:first-child)': {\n      marginLeft: 8\n    }\n  }\n};\nvar DialogActions = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function DialogActions(props, ref) {\n  var _props$disableSpacing = props.disableSpacing,\n      disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n      classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"disableSpacing\", \"classes\", \"className\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, !disableSpacing && classes.spacing),\n    ref: ref\n  }, other));\n});\n true ? DialogActions.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the actions do not have additional margin.\n   */\n  disableSpacing: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiDialogActions'\n})(DialogActions));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogActions/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogActions/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DialogActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DialogActions */ \"./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _DialogActions__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogActions/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js ***!
  \***************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      flex: '1 1 auto',\n      WebkitOverflowScrolling: 'touch',\n      // Add iOS momentum scrolling.\n      overflowY: 'auto',\n      padding: '8px 24px',\n      '&:first-child': {\n        // dialog without title\n        paddingTop: 20\n      }\n    },\n\n    /* Styles applied to the root element if `dividers={true}`. */\n    dividers: {\n      padding: '16px 24px',\n      borderTop: \"1px solid \".concat(theme.palette.divider),\n      borderBottom: \"1px solid \".concat(theme.palette.divider)\n    }\n  };\n};\nvar DialogContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function DialogContent(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$dividers = props.dividers,\n      dividers = _props$dividers === void 0 ? false : _props$dividers,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"dividers\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, dividers && classes.dividers),\n    ref: ref\n  }, other));\n});\n true ? DialogContent.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Display the top and bottom dividers.\n   */\n  dividers: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiDialogContent'\n})(DialogContent));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogContent/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogContent/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DialogContent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DialogContent */ \"./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _DialogContent__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogContent/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js ***!
  \***********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    marginBottom: 12\n  }\n};\nvar DialogContentText = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"forwardRef\"](function DialogContentText(props, ref) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_4__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    component: \"p\",\n    variant: \"body1\",\n    color: \"textSecondary\",\n    ref: ref\n  }, props));\n});\n true ? DialogContentText.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(styles, {\n  name: 'MuiDialogContentText'\n})(DialogContentText));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogContentText/index.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogContentText/index.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DialogContentText__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DialogContentText */ \"./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _DialogContentText__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogContentText/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    margin: 0,\n    padding: '16px 24px',\n    flex: '0 0 auto'\n  }\n};\nvar DialogTitle = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function DialogTitle(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$disableTypogra = props.disableTypography,\n      disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), disableTypography ? children : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n    component: \"h2\",\n    variant: \"h6\"\n  }, children));\n});\n true ? DialogTitle.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the children won't be wrapped by a typography component.\n   * For instance, this can be useful to render an h4 instead of the default h2.\n   */\n  disableTypography: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiDialogTitle'\n})(DialogTitle));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/DialogTitle/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/DialogTitle/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _DialogTitle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DialogTitle */ \"./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _DialogTitle__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/DialogTitle/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Divider/Divider.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Divider/Divider.js ***!
  \***************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      height: 1,\n      margin: 0,\n      // Reset browser default style.\n      border: 'none',\n      flexShrink: 0,\n      backgroundColor: theme.palette.divider\n    },\n\n    /* Styles applied to the root element if `absolute={true}`. */\n    absolute: {\n      position: 'absolute',\n      bottom: 0,\n      left: 0,\n      width: '100%'\n    },\n\n    /* Styles applied to the root element if `variant=\"inset\"`. */\n    inset: {\n      marginLeft: 72\n    },\n\n    /* Styles applied to the root element if `light={true}`. */\n    light: {\n      backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_6__[\"fade\"])(theme.palette.divider, 0.08)\n    },\n\n    /* Styles applied to the root element if `variant=\"middle\"`. */\n    middle: {\n      marginLeft: theme.spacing(2),\n      marginRight: theme.spacing(2)\n    },\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {\n      height: '100%',\n      width: 1\n    },\n\n    /* Styles applied to the root element if `flexItem={true}`. */\n    flexItem: {\n      alignSelf: 'stretch',\n      height: 'auto'\n    }\n  };\n};\nvar Divider = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Divider(props, ref) {\n  var _props$absolute = props.absolute,\n      absolute = _props$absolute === void 0 ? false : _props$absolute,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'hr' : _props$component,\n      _props$flexItem = props.flexItem,\n      flexItem = _props$flexItem === void 0 ? false : _props$flexItem,\n      _props$light = props.light,\n      light = _props$light === void 0 ? false : _props$light,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      _props$role = props.role,\n      role = _props$role === void 0 ? Component !== 'hr' ? 'separator' : undefined : _props$role,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'fullWidth' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"absolute\", \"classes\", \"className\", \"component\", \"flexItem\", \"light\", \"orientation\", \"role\", \"variant\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, variant !== 'fullWidth' && classes[variant], absolute && classes.absolute, flexItem && classes.flexItem, light && classes.light, orientation === 'vertical' && classes.vertical),\n    role: role,\n    ref: ref\n  }, other));\n});\n true ? Divider.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Absolutely position the element.\n   */\n  absolute: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, a vertical divider will have the correct height when used in flex container.\n   * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n   */\n  flexItem: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the divider will have a lighter color.\n   */\n  light: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The divider orientation.\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * @ignore\n   */\n  role: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['fullWidth', 'inset', 'middle'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiDivider'\n})(Divider));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Divider/Divider.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Divider/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Divider/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Divider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Divider */ \"./node_modules/@material-ui/core/esm/Divider/Divider.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Divider__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Divider/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Drawer/Drawer.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Drawer/Drawer.js ***!
  \*************************************************************/
/*! exports provided: styles, isHorizontal, getAnchor, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHorizontal\", function() { return isHorizontal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAnchor\", function() { return getAnchor; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Modal */ \"./node_modules/@material-ui/core/esm/Modal/index.js\");\n/* harmony import */ var _Backdrop__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Backdrop */ \"./node_modules/@material-ui/core/esm/Backdrop/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Slide__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Slide */ \"./node_modules/@material-ui/core/esm/Slide/index.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {},\n\n    /* Styles applied to the root element if `variant=\"permanent or persistent\"`. */\n    docked: {\n      flex: '0 0 auto'\n    },\n\n    /* Styles applied to the `Paper` component. */\n    paper: {\n      overflowY: 'auto',\n      display: 'flex',\n      flexDirection: 'column',\n      height: '100%',\n      flex: '1 0 auto',\n      zIndex: theme.zIndex.drawer,\n      WebkitOverflowScrolling: 'touch',\n      // Add iOS momentum scrolling.\n      // temporary style\n      position: 'fixed',\n      top: 0,\n      // We disable the focus ring for mouse, touch and keyboard users.\n      // At some point, it would be better to keep it for keyboard users.\n      // :focus-ring CSS pseudo-class will help.\n      outline: 0\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"left\"`. */\n    paperAnchorLeft: {\n      left: 0,\n      right: 'auto'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"right\"`. */\n    paperAnchorRight: {\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"top\"`. */\n    paperAnchorTop: {\n      top: 0,\n      left: 0,\n      bottom: 'auto',\n      right: 0,\n      height: 'auto',\n      maxHeight: '100%'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"bottom\"`. */\n    paperAnchorBottom: {\n      top: 'auto',\n      left: 0,\n      bottom: 0,\n      right: 0,\n      height: 'auto',\n      maxHeight: '100%'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"left\"` and `variant` is not \"temporary\". */\n    paperAnchorDockedLeft: {\n      borderRight: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"top\"` and `variant` is not \"temporary\". */\n    paperAnchorDockedTop: {\n      borderBottom: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"right\"` and `variant` is not \"temporary\". */\n    paperAnchorDockedRight: {\n      borderLeft: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"bottom\"` and `variant` is not \"temporary\". */\n    paperAnchorDockedBottom: {\n      borderTop: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Modal` component. */\n    modal: {}\n  };\n};\nvar oppositeDirection = {\n  left: 'right',\n  right: 'left',\n  top: 'down',\n  bottom: 'up'\n};\nfunction isHorizontal(anchor) {\n  return ['left', 'right'].indexOf(anchor) !== -1;\n}\nfunction getAnchor(theme, anchor) {\n  return theme.direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;\n}\nvar defaultTransitionDuration = {\n  enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_11__[\"duration\"].enteringScreen,\n  exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_11__[\"duration\"].leavingScreen\n};\n/**\n * The props of the [Modal](/api/modal/) component are available\n * when `variant=\"temporary\"` is set.\n */\n\nvar Drawer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Drawer(props, ref) {\n  var _props$anchor = props.anchor,\n      anchorProp = _props$anchor === void 0 ? 'left' : _props$anchor,\n      BackdropProps = props.BackdropProps,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$elevation = props.elevation,\n      elevation = _props$elevation === void 0 ? 16 : _props$elevation,\n      _props$ModalProps = props.ModalProps;\n  _props$ModalProps = _props$ModalProps === void 0 ? {} : _props$ModalProps;\n\n  var BackdropPropsProp = _props$ModalProps.BackdropProps,\n      ModalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_props$ModalProps, [\"BackdropProps\"]),\n      onClose = props.onClose,\n      _props$open = props.open,\n      open = _props$open === void 0 ? false : _props$open,\n      _props$PaperProps = props.PaperProps,\n      PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n      SlideProps = props.SlideProps,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Slide__WEBPACK_IMPORTED_MODULE_8__[\"default\"] : _props$TransitionComp,\n      _props$transitionDura = props.transitionDuration,\n      transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'temporary' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"anchor\", \"BackdropProps\", \"children\", \"classes\", \"className\", \"elevation\", \"ModalProps\", \"onClose\", \"open\", \"PaperProps\", \"SlideProps\", \"TransitionComponent\", \"transitionDuration\", \"variant\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(); // Let's assume that the Drawer will always be rendered on user space.\n  // We use this state is order to skip the appear transition during the\n  // initial mount of the component.\n\n  var mounted = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](false);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    mounted.current = true;\n  }, []);\n  var anchor = getAnchor(theme, anchorProp);\n  var drawer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_9__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    elevation: variant === 'temporary' ? elevation : 0,\n    square: true\n  }, PaperProps, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.paper, classes[\"paperAnchor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(anchor))], PaperProps.className, variant !== 'temporary' && classes[\"paperAnchorDocked\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(anchor))])\n  }), children);\n\n  if (variant === 'permanent') {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes.docked, className),\n      ref: ref\n    }, other), drawer);\n  }\n\n  var slidingDrawer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    in: open,\n    direction: oppositeDirection[anchor],\n    timeout: transitionDuration,\n    appear: mounted.current\n  }, SlideProps), drawer);\n\n  if (variant === 'persistent') {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes.docked, className),\n      ref: ref\n    }, other), slidingDrawer);\n  } // variant === temporary\n\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Modal__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    BackdropProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, BackdropProps, BackdropPropsProp, {\n      transitionDuration: transitionDuration\n    }),\n    BackdropComponent: _Backdrop__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes.modal, className),\n    open: open,\n    onClose: onClose,\n    ref: ref\n  }, other, ModalProps), slidingDrawer);\n});\n true ? Drawer.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Side from which the drawer will appear.\n   */\n  anchor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom', 'left', 'right', 'top']),\n\n  /**\n   * @ignore\n   */\n  BackdropProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The contents of the drawer.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The elevation of the drawer.\n   */\n  elevation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * Props applied to the [`Modal`](/api/modal/) element.\n   */\n  ModalProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * If `true`, the drawer is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Props applied to the [`Paper`](/api/paper/) element.\n   */\n  PaperProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Props applied to the [`Slide`](/api/slide/) element.\n   */\n  SlideProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n  })]),\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['permanent', 'persistent', 'temporary'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiDrawer',\n  flip: false\n})(Drawer));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Drawer/Drawer.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Drawer/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Drawer/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Drawer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Drawer */ \"./node_modules/@material-ui/core/esm/Drawer/Drawer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Drawer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Drawer/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanel.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanel.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toArray */ \"./node_modules/@babel/runtime/helpers/esm/toArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _Collapse__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Collapse */ \"./node_modules/@material-ui/core/esm/Collapse/index.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ExpansionPanelContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ExpansionPanelContext */ \"./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanelContext.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      transition: theme.transitions.create(['margin'], transition),\n      '&:before': {\n        position: 'absolute',\n        left: 0,\n        top: -1,\n        right: 0,\n        height: 1,\n        content: '\"\"',\n        opacity: 1,\n        backgroundColor: theme.palette.divider,\n        transition: theme.transitions.create(['opacity', 'background-color'], transition)\n      },\n      '&:first-child': {\n        '&:before': {\n          display: 'none'\n        }\n      },\n      '&$expanded': {\n        margin: '16px 0',\n        '&:first-child': {\n          marginTop: 0\n        },\n        '&:last-child': {\n          marginBottom: 0\n        },\n        '&:before': {\n          opacity: 0\n        }\n      },\n      '&$expanded + &': {\n        '&:before': {\n          display: 'none'\n        }\n      },\n      '&$disabled': {\n        backgroundColor: theme.palette.action.disabledBackground\n      }\n    },\n\n    /* Styles applied to the root element if `square={false}`. */\n    rounded: {\n      borderRadius: 0,\n      '&:first-child': {\n        borderTopLeftRadius: theme.shape.borderRadius,\n        borderTopRightRadius: theme.shape.borderRadius\n      },\n      '&:last-child': {\n        borderBottomLeftRadius: theme.shape.borderRadius,\n        borderBottomRightRadius: theme.shape.borderRadius,\n        // Fix a rendering issue on Edge\n        '@supports (-ms-ime-align: auto)': {\n          borderBottomLeftRadius: 0,\n          borderBottomRightRadius: 0\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `expanded={true}`. */\n    expanded: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {}\n  };\n};\nvar warnedOnce = false;\n/**\n * ⚠️ The ExpansionPanel component was renamed to Accordion to use a more common naming convention.\n *\n * You should use `import { Accordion } from '@material-ui/core'`\n * or `import Accordion from '@material-ui/core/Accordion'`.\n */\n\nvar ExpansionPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"forwardRef\"](function ExpansionPanel(props, ref) {\n  if (true) {\n    if (!warnedOnce) {\n      warnedOnce = true;\n      console.error(['Material-UI: the ExpansionPanel component was renamed to Accordion to use a more common naming convention.', '', \"You should use `import { Accordion } from '@material-ui/core'`\", \"or `import Accordion from '@material-ui/core/Accordion'`\"].join('\\n'));\n    }\n  }\n\n  var childrenProp = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$defaultExpande = props.defaultExpanded,\n      defaultExpanded = _props$defaultExpande === void 0 ? false : _props$defaultExpande,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      expandedProp = props.expanded,\n      onChange = props.onChange,\n      _props$square = props.square,\n      square = _props$square === void 0 ? false : _props$square,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Collapse__WEBPACK_IMPORTED_MODULE_9__[\"default\"] : _props$TransitionComp,\n      TransitionProps = props.TransitionProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"defaultExpanded\", \"disabled\", \"expanded\", \"onChange\", \"square\", \"TransitionComponent\", \"TransitionProps\"]);\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_13__[\"default\"])({\n    controlled: expandedProp,\n    default: defaultExpanded,\n    name: 'ExpansionPanel',\n    state: 'expanded'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useControlled, 2),\n      expanded = _useControlled2[0],\n      setExpandedState = _useControlled2[1];\n\n  var handleChange = react__WEBPACK_IMPORTED_MODULE_4__[\"useCallback\"](function (event) {\n    setExpandedState(!expanded);\n\n    if (onChange) {\n      onChange(event, !expanded);\n    }\n  }, [expanded, onChange, setExpandedState]);\n\n  var _React$Children$toArr = react__WEBPACK_IMPORTED_MODULE_4__[\"Children\"].toArray(childrenProp),\n      _React$Children$toArr2 = Object(_babel_runtime_helpers_esm_toArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_React$Children$toArr),\n      summary = _React$Children$toArr2[0],\n      children = _React$Children$toArr2.slice(1);\n\n  var contextValue = react__WEBPACK_IMPORTED_MODULE_4__[\"useMemo\"](function () {\n    return {\n      expanded: expanded,\n      disabled: disabled,\n      toggle: handleChange\n    };\n  }, [expanded, disabled, handleChange]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(classes.root, className, expanded && classes.expanded, disabled && classes.disabled, !square && classes.rounded),\n    ref: ref,\n    square: square\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](_ExpansionPanelContext__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Provider, {\n    value: contextValue\n  }, summary), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    in: expanded,\n    timeout: \"auto\"\n  }, TransitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"div\", {\n    \"aria-labelledby\": summary.props.id,\n    id: summary.props['aria-controls'],\n    role: \"region\"\n  }, children)));\n});\n true ? ExpansionPanel.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the expansion panel.\n   */\n  children: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.node.isRequired, function (props) {\n    var summary = react__WEBPACK_IMPORTED_MODULE_4__[\"Children\"].toArray(props.children)[0];\n\n    if (Object(react_is__WEBPACK_IMPORTED_MODULE_5__[\"isFragment\"])(summary)) {\n      return new Error(\"Material-UI: The ExpansionPanel doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n    }\n\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"isValidElement\"](summary)) {\n      return new Error('Material-UI: Expected the first child of ExpansionPanel to be a valid element.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.string,\n\n  /**\n   * If `true`, expands the panel by default.\n   */\n  defaultExpanded: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * If `true`, the panel will be displayed in a disabled state.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * If `true`, expands the panel, otherwise collapse it.\n   * Setting this prop enables control over the panel.\n   */\n  expanded: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * Callback fired when the expand/collapse state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {boolean} expanded The `expanded` state of the panel.\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.func,\n\n  /**\n   * If `true`, rounded corners are disabled.\n   */\n  square: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * The component used for the collapse effect.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.elementType,\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(styles, {\n  name: 'MuiExpansionPanel'\n})(ExpansionPanel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanelContext.js":
/*!************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanelContext.js ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\n\nvar ExpansionPanelContext = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]({});\n\nif (true) {\n  ExpansionPanelContext.displayName = 'ExpansionPanelContext';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExpansionPanelContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanelContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanel/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanel/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ExpansionPanel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExpansionPanel */ \"./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ExpansionPanel__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanel/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanelActions/ExpansionPanelActions.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanelActions/ExpansionPanelActions.js ***!
  \*******************************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    padding: 8,\n    justifyContent: 'flex-end'\n  },\n\n  /* Styles applied to the root element if `disableSpacing={false}`. */\n  spacing: {\n    '& > :not(:first-child)': {\n      marginLeft: 8\n    }\n  }\n};\nvar warnedOnce = false;\n/**\n * ⚠️ The ExpansionPanelActions component was renamed to AccordionActions to use a more common naming convention.\n *\n * You should use `import { AccordionActions } from '@material-ui/core'`\n * or `import AccordionActions from '@material-ui/core/AccordionActions'`.\n */\n\nvar ExpansionPanelActions = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ExpansionPanelActions(props, ref) {\n  if (true) {\n    if (!warnedOnce) {\n      warnedOnce = true;\n      console.error(['Material-UI: the ExpansionPanelActions component was renamed to AccordionActions to use a more common naming convention.', '', \"You should use `import { AccordionActions } from '@material-ui/core'`\", \"or `import AccordionActions from '@material-ui/core/AccordionActions'`\"].join('\\n'));\n    }\n  }\n\n  var classes = props.classes,\n      className = props.className,\n      _props$disableSpacing = props.disableSpacing,\n      disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"disableSpacing\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, !disableSpacing && classes.spacing),\n    ref: ref\n  }, other));\n});\n true ? ExpansionPanelActions.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the actions do not have additional margin.\n   */\n  disableSpacing: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiExpansionPanelActions'\n})(ExpansionPanelActions));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanelActions/ExpansionPanelActions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanelActions/index.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanelActions/index.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ExpansionPanelActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExpansionPanelActions */ \"./node_modules/@material-ui/core/esm/ExpansionPanelActions/ExpansionPanelActions.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ExpansionPanelActions__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanelActions/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanelDetails/ExpansionPanelDetails.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanelDetails/ExpansionPanelDetails.js ***!
  \*******************************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      padding: theme.spacing(1, 2, 2)\n    }\n  };\n};\nvar warnedOnce = false;\n/**\n * ⚠️ The ExpansionPanelDetails component was renamed to AccordionDetails to use a more common naming convention.\n *\n * You should use `import { AccordionDetails } from '@material-ui/core'`\n * or `import AccordionDetails from '@material-ui/core/AccordionDetails'`.\n */\n\nvar ExpansionPanelDetails = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ExpansionPanelDetails(props, ref) {\n  if (true) {\n    if (!warnedOnce) {\n      warnedOnce = true;\n      console.error(['Material-UI: the ExpansionPanelDetails component was renamed to AccordionDetails to use a more common naming convention.', '', \"You should use `import { AccordionDetails } from '@material-ui/core'`\", \"or `import AccordionDetails from '@material-ui/core/AccordionActions'`\"].join('\\n'));\n    }\n  }\n\n  var classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other));\n});\n true ? ExpansionPanelDetails.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the expansion panel details.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiExpansionPanelDetails'\n})(ExpansionPanelDetails));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanelDetails/ExpansionPanelDetails.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanelDetails/index.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanelDetails/index.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ExpansionPanelDetails__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExpansionPanelDetails */ \"./node_modules/@material-ui/core/esm/ExpansionPanelDetails/ExpansionPanelDetails.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ExpansionPanelDetails__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanelDetails/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanelSummary/ExpansionPanelSummary.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanelSummary/ExpansionPanelSummary.js ***!
  \*******************************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ExpansionPanel_ExpansionPanelContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ExpansionPanel/ExpansionPanelContext */ \"./node_modules/@material-ui/core/esm/ExpansionPanel/ExpansionPanelContext.js\");\n\n\n\n/* eslint-disable jsx-a11y/aria-role */\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      minHeight: 8 * 6,\n      transition: theme.transitions.create(['min-height', 'background-color'], transition),\n      padding: theme.spacing(0, 2),\n      '&:hover:not($disabled)': {\n        cursor: 'pointer'\n      },\n      '&$expanded': {\n        minHeight: 64\n      },\n      '&$focused': {\n        backgroundColor: theme.palette.action.focus\n      },\n      '&$disabled': {\n        opacity: theme.palette.action.disabledOpacity\n      }\n    },\n\n    /* Pseudo-class applied to the root element, children wrapper element and `IconButton` component if `expanded={true}`. */\n    expanded: {},\n\n    /* Pseudo-class applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the children wrapper element. */\n    content: {\n      display: 'flex',\n      flexGrow: 1,\n      transition: theme.transitions.create(['margin'], transition),\n      margin: '12px 0',\n      '&$expanded': {\n        margin: '20px 0'\n      }\n    },\n\n    /* Styles applied to the `IconButton` component when `expandIcon` is supplied. */\n    expandIcon: {\n      transform: 'rotate(0deg)',\n      transition: theme.transitions.create('transform', transition),\n      '&:hover': {\n        // Disable the hover effect for the IconButton,\n        // because a hover effect should apply to the entire Expand button and\n        // not only to the IconButton.\n        backgroundColor: 'transparent'\n      },\n      '&$expanded': {\n        transform: 'rotate(180deg)'\n      }\n    }\n  };\n};\nvar warnedOnce = false;\n/**\n * ⚠️ The ExpansionPanelSummary component was renamed to AccordionSummary to use a more common naming convention.\n *\n * You should use `import { AccordionSummary } from '@material-ui/core'`\n * or `import AccordionSummary from '@material-ui/core/AccordionSummary'`.\n */\n\nvar ExpansionPanelSummary = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ExpansionPanelSummary(props, ref) {\n  if (true) {\n    if (!warnedOnce) {\n      warnedOnce = true;\n      console.error(['Material-UI: the ExpansionPanelSummary component was renamed to AccordionSummary to use a more common naming convention.', '', \"You should use `import { AccordionSummary } from '@material-ui/core'`\", \"or `import AccordionSummary from '@material-ui/core/AccordionSummary'`\"].join('\\n'));\n    }\n  }\n\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      expandIcon = props.expandIcon,\n      IconButtonProps = props.IconButtonProps,\n      onBlur = props.onBlur,\n      onClick = props.onClick,\n      onFocusVisible = props.onFocusVisible,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"expandIcon\", \"IconButtonProps\", \"onBlur\", \"onClick\", \"onFocusVisible\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      focusedState = _React$useState[0],\n      setFocusedState = _React$useState[1];\n\n  var handleFocusVisible = function handleFocusVisible(event) {\n    setFocusedState(true);\n\n    if (onFocusVisible) {\n      onFocusVisible(event);\n    }\n  };\n\n  var handleBlur = function handleBlur(event) {\n    setFocusedState(false);\n\n    if (onBlur) {\n      onBlur(event);\n    }\n  };\n\n  var _React$useContext = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_ExpansionPanel_ExpansionPanelContext__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n      _React$useContext$dis = _React$useContext.disabled,\n      disabled = _React$useContext$dis === void 0 ? false : _React$useContext$dis,\n      expanded = _React$useContext.expanded,\n      toggle = _React$useContext.toggle;\n\n  var handleChange = function handleChange(event) {\n    if (toggle) {\n      toggle(event);\n    }\n\n    if (onClick) {\n      onClick(event);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    focusRipple: false,\n    disableRipple: true,\n    disabled: disabled,\n    component: \"div\",\n    \"aria-expanded\": expanded,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, disabled && classes.disabled, expanded && classes.expanded, focusedState && classes.focused),\n    onFocusVisible: handleFocusVisible,\n    onBlur: handleBlur,\n    onClick: handleChange,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.content, expanded && classes.expanded)\n  }, children), expandIcon && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_IconButton__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.expandIcon, expanded && classes.expanded),\n    edge: \"end\",\n    component: \"div\",\n    tabIndex: null,\n    role: null,\n    \"aria-hidden\": true\n  }, IconButtonProps), expandIcon));\n});\n true ? ExpansionPanelSummary.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the expansion panel summary.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The icon to display as the expand indicator.\n   */\n  expandIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Props applied to the `IconButton` element wrapping the expand icon.\n   */\n  IconButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component is focused with a keyboard.\n   * We trigger a `onFocus` callback too.\n   */\n  onFocusVisible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiExpansionPanelSummary'\n})(ExpansionPanelSummary));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanelSummary/ExpansionPanelSummary.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ExpansionPanelSummary/index.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ExpansionPanelSummary/index.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ExpansionPanelSummary__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExpansionPanelSummary */ \"./node_modules/@material-ui/core/esm/ExpansionPanelSummary/ExpansionPanelSummary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ExpansionPanelSummary__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ExpansionPanelSummary/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Fab/Fab.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Fab/Fab.js ***!
  \*******************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.typography.button, {\n      boxSizing: 'border-box',\n      minHeight: 36,\n      transition: theme.transitions.create(['background-color', 'box-shadow', 'border'], {\n        duration: theme.transitions.duration.short\n      }),\n      borderRadius: '50%',\n      padding: 0,\n      minWidth: 0,\n      width: 56,\n      height: 56,\n      boxShadow: theme.shadows[6],\n      '&:active': {\n        boxShadow: theme.shadows[12]\n      },\n      color: theme.palette.getContrastText(theme.palette.grey[300]),\n      backgroundColor: theme.palette.grey[300],\n      '&:hover': {\n        backgroundColor: theme.palette.grey.A100,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.grey[300]\n        },\n        '&$disabled': {\n          backgroundColor: theme.palette.action.disabledBackground\n        },\n        textDecoration: 'none'\n      },\n      '&$focusVisible': {\n        boxShadow: theme.shadows[6]\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled,\n        boxShadow: theme.shadows[0],\n        backgroundColor: theme.palette.action.disabledBackground\n      }\n    }),\n\n    /* Styles applied to the span element that wraps the children. */\n    label: {\n      width: '100%',\n      // assure the correct width for iOS Safari\n      display: 'inherit',\n      alignItems: 'inherit',\n      justifyContent: 'inherit'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    primary: {\n      color: theme.palette.primary.contrastText,\n      backgroundColor: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: theme.palette.primary.dark,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.primary.main\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    secondary: {\n      color: theme.palette.secondary.contrastText,\n      backgroundColor: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: theme.palette.secondary.dark,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.secondary.main\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"extended\"`. */\n    extended: {\n      borderRadius: 48 / 2,\n      padding: '0 16px',\n      width: 'auto',\n      minHeight: 'auto',\n      minWidth: 48,\n      height: 48,\n      '&$sizeSmall': {\n        width: 'auto',\n        padding: '0 8px',\n        borderRadius: 34 / 2,\n        minWidth: 34,\n        height: 34\n      },\n      '&$sizeMedium': {\n        width: 'auto',\n        padding: '0 16px',\n        borderRadius: 40 / 2,\n        minWidth: 40,\n        height: 40\n      }\n    },\n\n    /* Pseudo-class applied to the ButtonBase root element if the button is keyboard focused. */\n    focusVisible: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `size=\"small\"``. */\n    sizeSmall: {\n      width: 40,\n      height: 40\n    },\n\n    /* Styles applied to the root element if `size=\"medium\"``. */\n    sizeMedium: {\n      width: 48,\n      height: 48\n    }\n  };\n};\nvar Fab = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Fab(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      _props$component = props.component,\n      component = _props$component === void 0 ? 'button' : _props$component,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableFocusRi = props.disableFocusRipple,\n      disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n      focusVisibleClassName = props.focusVisibleClassName,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'large' : _props$size,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'round' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"disableFocusRipple\", \"focusVisibleClassName\", \"size\", \"variant\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, variant !== \"round\" && classes.extended, size !== 'large' && classes[\"size\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(size))], disabled && classes.disabled, {\n      'primary': classes.primary,\n      'secondary': classes.secondary,\n      'inherit': classes.colorInherit\n    }[color]),\n    component: component,\n    disabled: disabled,\n    focusRipple: !disableFocusRipple,\n    focusVisibleClassName: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.focusVisible, focusVisibleClassName),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.label\n  }, children));\n});\n true ? Fab.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the button.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the button will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the  keyboard focus ripple will be disabled.\n   */\n  disableFocusRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The URL to link to when the button is clicked.\n   * If defined, an `a` element will be used as the root node.\n   */\n  href: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The size of the button.\n   * `small` is equivalent to the dense button styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['large', 'medium', 'small']),\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['extended', 'round'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiFab'\n})(Fab));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Fab/Fab.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Fab/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Fab/index.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Fab__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Fab */ \"./node_modules/@material-ui/core/esm/Fab/Fab.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Fab__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Fab/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Fade/Fade.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Fade/Fade.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/esm/index.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _transitions_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../transitions/utils */ \"./node_modules/@material-ui/core/esm/transitions/utils.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  entering: {\n    opacity: 1\n  },\n  entered: {\n    opacity: 1\n  }\n};\nvar defaultTimeout = {\n  enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_6__[\"duration\"].enteringScreen,\n  exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_6__[\"duration\"].leavingScreen\n};\n/**\n * The Fade transition is used by the [Modal](/components/modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Fade = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Fade(props, ref) {\n  var children = props.children,\n      _props$disableStrictM = props.disableStrictModeCompat,\n      disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n      inProp = props.in,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      style = props.style,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? react_transition_group__WEBPACK_IMPORTED_MODULE_5__[\"Transition\"] : _props$TransitionComp,\n      _props$timeout = props.timeout,\n      timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"TransitionComponent\", \"timeout\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n  var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n  var nodeRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var foreignRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(children.ref, ref);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n    return function (nodeOrAppearing, maybeAppearing) {\n      if (callback) {\n        var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n            _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n            node = _ref2[0],\n            isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n        if (isAppearing === undefined) {\n          callback(node);\n        } else {\n          callback(node, isAppearing);\n        }\n      }\n    };\n  };\n\n  var handleEntering = normalizedTransitionCallback(onEntering);\n  var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n    Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_8__[\"reflow\"])(node); // So the animation always start from the start.\n\n    var transitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_8__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'enter'\n    });\n    node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n    node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n    if (onEnter) {\n      onEnter(node, isAppearing);\n    }\n  });\n  var handleEntered = normalizedTransitionCallback(onEntered);\n  var handleExiting = normalizedTransitionCallback(onExiting);\n  var handleExit = normalizedTransitionCallback(function (node) {\n    var transitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_8__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'exit'\n    });\n    node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n    node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n    if (onExit) {\n      onExit(node);\n    }\n  });\n  var handleExited = normalizedTransitionCallback(onExited);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    appear: true,\n    in: inProp,\n    nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    timeout: timeout\n  }, other), function (state, childProps) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"](children, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        opacity: 0,\n        visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n      }, styles[state], style, children.props.style),\n      ref: handleRef\n    }, childProps));\n  });\n});\n true ? Fade.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.element,\n\n  /**\n   * Enable this prop if you encounter 'Function components cannot be given refs',\n   * use `unstable_createStrictModeTheme`,\n   * and can't forward the ref in the child component.\n   */\n  disableStrictModeCompat: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the component will transition in.\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  timeout: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n  })])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Fade);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Fade/Fade.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Fade/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Fade/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Fade__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Fade */ \"./node_modules/@material-ui/core/esm/Fade/Fade.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Fade__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Fade/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _InputBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../InputBase */ \"./node_modules/@material-ui/core/esm/InputBase/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n  var backgroundColor = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)';\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      backgroundColor: backgroundColor,\n      borderTopLeftRadius: theme.shape.borderRadius,\n      borderTopRightRadius: theme.shape.borderRadius,\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shorter,\n        easing: theme.transitions.easing.easeOut\n      }),\n      '&:hover': {\n        backgroundColor: light ? 'rgba(0, 0, 0, 0.13)' : 'rgba(255, 255, 255, 0.13)',\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: backgroundColor\n        }\n      },\n      '&$focused': {\n        backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)'\n      },\n      '&$disabled': {\n        backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)'\n      }\n    },\n\n    /* Styles applied to the root element if color secondary. */\n    colorSecondary: {\n      '&$underline:after': {\n        borderBottomColor: theme.palette.secondary.main\n      }\n    },\n\n    /* Styles applied to the root element if `disableUnderline={false}`. */\n    underline: {\n      '&:after': {\n        borderBottom: \"2px solid \".concat(theme.palette.primary.main),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\"',\n        position: 'absolute',\n        right: 0,\n        transform: 'scaleX(0)',\n        transition: theme.transitions.create('transform', {\n          duration: theme.transitions.duration.shorter,\n          easing: theme.transitions.easing.easeOut\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&$focused:after': {\n        transform: 'scaleX(1)'\n      },\n      '&$error:after': {\n        borderBottomColor: theme.palette.error.main,\n        transform: 'scaleX(1)' // error is always underlined in red\n\n      },\n      '&:before': {\n        borderBottom: \"1px solid \".concat(bottomLineColor),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\\\\00a0\"',\n        position: 'absolute',\n        right: 0,\n        transition: theme.transitions.create('border-bottom-color', {\n          duration: theme.transitions.duration.shorter\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&:hover:before': {\n        borderBottom: \"1px solid \".concat(theme.palette.text.primary)\n      },\n      '&$disabled:before': {\n        borderBottomStyle: 'dotted'\n      }\n    },\n\n    /* Pseudo-class applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `startAdornment` is provided. */\n    adornedStart: {\n      paddingLeft: 12\n    },\n\n    /* Styles applied to the root element if `endAdornment` is provided. */\n    adornedEnd: {\n      paddingRight: 12\n    },\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    marginDense: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {\n      padding: '27px 12px 10px',\n      '&$marginDense': {\n        paddingTop: 23,\n        paddingBottom: 6\n      }\n    },\n\n    /* Styles applied to the `input` element. */\n    input: {\n      padding: '27px 12px 10px',\n      '&:-webkit-autofill': {\n        WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',\n        WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',\n        caretColor: theme.palette.type === 'light' ? null : '#fff',\n        borderTopLeftRadius: 'inherit',\n        borderTopRightRadius: 'inherit'\n      }\n    },\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {\n      paddingTop: 23,\n      paddingBottom: 6\n    },\n\n    /* Styles applied to the `input` if in `<FormControl hiddenLabel />`. */\n    inputHiddenLabel: {\n      paddingTop: 18,\n      paddingBottom: 19,\n      '&$inputMarginDense': {\n        paddingTop: 10,\n        paddingBottom: 11\n      }\n    },\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {\n      padding: 0\n    },\n\n    /* Styles applied to the `input` element if `startAdornment` is provided. */\n    inputAdornedStart: {\n      paddingLeft: 0\n    },\n\n    /* Styles applied to the `input` element if `endAdornment` is provided. */\n    inputAdornedEnd: {\n      paddingRight: 0\n    }\n  };\n};\nvar FilledInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function FilledInput(props, ref) {\n  var disableUnderline = props.disableUnderline,\n      classes = props.classes,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      _props$inputComponent = props.inputComponent,\n      inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      _props$type = props.type,\n      type = _props$type === void 0 ? 'text' : _props$type,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"disableUnderline\", \"classes\", \"fullWidth\", \"inputComponent\", \"multiline\", \"type\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_InputBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    classes: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, classes, {\n      root: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, !disableUnderline && classes.underline),\n      underline: null\n    }),\n    fullWidth: fullWidth,\n    inputComponent: inputComponent,\n    multiline: multiline,\n    ref: ref,\n    type: type\n  }, other));\n});\n true ? FilledInput.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * This prop helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n   */\n  autoComplete: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the `input` element will be focused during the first mount.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The default `input` element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * If `true`, the `input` element will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input will not have an underline.\n   */\n  disableUnderline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the `input` element.\n   * Either a string to use a HTML element or a component.\n   */\n  inputComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The value of the `input` element, required for a controlled component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\nFilledInput.muiName = 'Input';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiFilledInput'\n})(FilledInput));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FilledInput/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FilledInput/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FilledInput__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FilledInput */ \"./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _FilledInput__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FilledInput/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControl/FormControl.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControl/FormControl.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _InputBase_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../InputBase/utils */ \"./node_modules/@material-ui/core/esm/InputBase/utils.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/isMuiElement */ \"./node_modules/@material-ui/core/esm/utils/isMuiElement.js\");\n/* harmony import */ var _FormControlContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./FormControlContext */ \"./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'inline-flex',\n    flexDirection: 'column',\n    position: 'relative',\n    // Reset fieldset default style.\n    minWidth: 0,\n    padding: 0,\n    margin: 0,\n    border: 0,\n    verticalAlign: 'top' // Fix alignment issue on Safari.\n\n  },\n\n  /* Styles applied to the root element if `margin=\"normal\"`. */\n  marginNormal: {\n    marginTop: 16,\n    marginBottom: 8\n  },\n\n  /* Styles applied to the root element if `margin=\"dense\"`. */\n  marginDense: {\n    marginTop: 8,\n    marginBottom: 4\n  },\n\n  /* Styles applied to the root element if `fullWidth={true}`. */\n  fullWidth: {\n    width: '100%'\n  }\n};\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n *  - FormLabel\n *  - FormHelperText\n *  - Input\n *  - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/components/text-fields/#components).\n *\n * ```jsx\n * <FormControl>\n *   <InputLabel htmlFor=\"my-input\">Email address</InputLabel>\n *   <Input id=\"my-input\" aria-describedby=\"my-helper-text\" />\n *   <FormHelperText id=\"my-helper-text\">We'll never share your email.</FormHelperText>\n * </FormControl>\n * ```\n *\n * ⚠️Only one input can be used within a FormControl.\n */\n\nvar FormControl = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function FormControl(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$error = props.error,\n      error = _props$error === void 0 ? false : _props$error,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      visuallyFocused = props.focused,\n      _props$hiddenLabel = props.hiddenLabel,\n      hiddenLabel = _props$hiddenLabel === void 0 ? false : _props$hiddenLabel,\n      _props$margin = props.margin,\n      margin = _props$margin === void 0 ? 'none' : _props$margin,\n      _props$required = props.required,\n      required = _props$required === void 0 ? false : _props$required,\n      size = props.size,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"fullWidth\", \"focused\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](function () {\n    // We need to iterate through the children and find the Input in order\n    // to fully support server-side rendering.\n    var initialAdornedStart = false;\n\n    if (children) {\n      react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].forEach(children, function (child) {\n        if (!Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(child, ['Input', 'Select'])) {\n          return;\n        }\n\n        var input = Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(child, ['Select']) ? child.props.input : child;\n\n        if (input && Object(_InputBase_utils__WEBPACK_IMPORTED_MODULE_5__[\"isAdornedStart\"])(input.props)) {\n          initialAdornedStart = true;\n        }\n      });\n    }\n\n    return initialAdornedStart;\n  }),\n      adornedStart = _React$useState[0],\n      setAdornedStart = _React$useState[1];\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](function () {\n    // We need to iterate through the children and find the Input in order\n    // to fully support server-side rendering.\n    var initialFilled = false;\n\n    if (children) {\n      react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].forEach(children, function (child) {\n        if (!Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(child, ['Input', 'Select'])) {\n          return;\n        }\n\n        if (Object(_InputBase_utils__WEBPACK_IMPORTED_MODULE_5__[\"isFilled\"])(child.props, true)) {\n          initialFilled = true;\n        }\n      });\n    }\n\n    return initialFilled;\n  }),\n      filled = _React$useState2[0],\n      setFilled = _React$useState2[1];\n\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      _focused = _React$useState3[0],\n      setFocused = _React$useState3[1];\n\n  var focused = visuallyFocused !== undefined ? visuallyFocused : _focused;\n\n  if (disabled && focused) {\n    setFocused(false);\n  }\n\n  var registerEffect;\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    var registeredInput = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](false);\n\n    registerEffect = function registerEffect() {\n      if (registeredInput.current) {\n        console.error(['Material-UI: There are multiple InputBase components inside a FormControl.', 'This is not supported. It might cause infinite rendering loops.', 'Only use one InputBase.'].join('\\n'));\n      }\n\n      registeredInput.current = true;\n      return function () {\n        registeredInput.current = false;\n      };\n    };\n  }\n\n  var onFilled = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    setFilled(true);\n  }, []);\n  var onEmpty = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    setFilled(false);\n  }, []);\n  var childContext = {\n    adornedStart: adornedStart,\n    setAdornedStart: setAdornedStart,\n    color: color,\n    disabled: disabled,\n    error: error,\n    filled: filled,\n    focused: focused,\n    fullWidth: fullWidth,\n    hiddenLabel: hiddenLabel,\n    margin: (size === 'small' ? 'dense' : undefined) || margin,\n    onBlur: function onBlur() {\n      setFocused(false);\n    },\n    onEmpty: onEmpty,\n    onFilled: onFilled,\n    onFocus: function onFocus() {\n      setFocused(true);\n    },\n    registerEffect: registerEffect,\n    required: required,\n    variant: variant\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_FormControlContext__WEBPACK_IMPORTED_MODULE_9__[\"default\"].Provider, {\n    value: childContext\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, margin !== 'none' && classes[\"margin\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(margin))], fullWidth && classes.fullWidth),\n    ref: ref\n  }, other), children));\n});\n true ? FormControl.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The contents of the form control.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the label, input and helper text should be displayed in a disabled state.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label should be displayed in an error state.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the component will be displayed in focused state.\n   */\n  focused: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the component will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label will be hidden.\n   * This is used to increase density for a `FilledInput`.\n   * Be sure to add `aria-label` to the `input` element.\n   */\n  hiddenLabel: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense', 'none', 'normal']),\n\n  /**\n   * If `true`, the label will indicate that the input is required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The size of the text field.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['filled', 'outlined', 'standard'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiFormControl'\n})(FormControl));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControl/FormControl.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js ***!
  \******************************************************************************/
/*! exports provided: useFormControl, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"useFormControl\", function() { return useFormControl; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n */\n\nvar FormControlContext = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]();\n\nif (true) {\n  FormControlContext.displayName = 'FormControlContext';\n}\n\nfunction useFormControl() {\n  return react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"](FormControlContext);\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = (FormControlContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControl/formControlState.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControl/formControlState.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formControlState; });\nfunction formControlState(_ref) {\n  var props = _ref.props,\n      states = _ref.states,\n      muiFormControl = _ref.muiFormControl;\n  return states.reduce(function (acc, state) {\n    acc[state] = props[state];\n\n    if (muiFormControl) {\n      if (typeof props[state] === 'undefined') {\n        acc[state] = muiFormControl[state];\n      }\n    }\n\n    return acc;\n  }, {});\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControl/formControlState.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControl/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControl/index.js ***!
  \*****************************************************************/
/*! exports provided: default, useFormControl */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FormControl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormControl */ \"./node_modules/@material-ui/core/esm/FormControl/FormControl.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _FormControl__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _useFormControl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useFormControl\", function() { return _useFormControl__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControl/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControl/useFormControl.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControl/useFormControl.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useFormControl; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FormControlContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormControlContext */ \"./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js\");\n\n\nfunction useFormControl() {\n  return react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"](_FormControlContext__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControl/useFormControl.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js ***!
  \*********************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _FormControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl */ \"./node_modules/@material-ui/core/esm/FormControl/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      cursor: 'pointer',\n      // For correct alignment with the text.\n      verticalAlign: 'middle',\n      WebkitTapHighlightColor: 'transparent',\n      marginLeft: -11,\n      marginRight: 16,\n      // used for row presentation of radio/checkbox\n      '&$disabled': {\n        cursor: 'default'\n      }\n    },\n\n    /* Styles applied to the root element if `labelPlacement=\"start\"`. */\n    labelPlacementStart: {\n      flexDirection: 'row-reverse',\n      marginLeft: 16,\n      // used for row presentation of radio/checkbox\n      marginRight: -11\n    },\n\n    /* Styles applied to the root element if `labelPlacement=\"top\"`. */\n    labelPlacementTop: {\n      flexDirection: 'column-reverse',\n      marginLeft: 16\n    },\n\n    /* Styles applied to the root element if `labelPlacement=\"bottom\"`. */\n    labelPlacementBottom: {\n      flexDirection: 'column',\n      marginLeft: 16\n    },\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the label's Typography component. */\n    label: {\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    }\n  };\n};\n/**\n * Drop in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\n\nvar FormControlLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function FormControlLabel(props, ref) {\n  var checked = props.checked,\n      classes = props.classes,\n      className = props.className,\n      control = props.control,\n      disabledProp = props.disabled,\n      inputRef = props.inputRef,\n      label = props.label,\n      _props$labelPlacement = props.labelPlacement,\n      labelPlacement = _props$labelPlacement === void 0 ? 'end' : _props$labelPlacement,\n      name = props.name,\n      onChange = props.onChange,\n      value = props.value,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"checked\", \"classes\", \"className\", \"control\", \"disabled\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"value\"]);\n\n  var muiFormControl = Object(_FormControl__WEBPACK_IMPORTED_MODULE_6__[\"useFormControl\"])();\n  var disabled = disabledProp;\n\n  if (typeof disabled === 'undefined' && typeof control.props.disabled !== 'undefined') {\n    disabled = control.props.disabled;\n  }\n\n  if (typeof disabled === 'undefined' && muiFormControl) {\n    disabled = muiFormControl.disabled;\n  }\n\n  var controlProps = {\n    disabled: disabled\n  };\n  ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(function (key) {\n    if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n      controlProps[key] = props[key];\n    }\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"label\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, labelPlacement !== 'end' && classes[\"labelPlacement\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(labelPlacement))], disabled && classes.disabled),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](control, controlProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n    component: \"span\",\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.label, disabled && classes.disabled)\n  }, label));\n});\n true ? FormControlLabel.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, the component appears selected.\n   */\n  checked: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * A control element. For instance, it can be be a `Radio`, a `Switch` or a `Checkbox`.\n   */\n  control: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element.isRequired,\n\n  /**\n   * If `true`, the control will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * The text to be used in an enclosing label element.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The position of the label.\n   */\n  labelPlacement: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom', 'end', 'start', 'top']),\n\n  /**\n   * @ignore\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The value of the component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiFormControlLabel'\n})(FormControlLabel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormControlLabel/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormControlLabel/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FormControlLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormControlLabel */ \"./node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _FormControlLabel__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormControlLabel/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    flexDirection: 'column',\n    flexWrap: 'wrap'\n  },\n\n  /* Styles applied to the root element if `row={true}`. */\n  row: {\n    flexDirection: 'row'\n  }\n};\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\n\nvar FormGroup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function FormGroup(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$row = props.row,\n      row = _props$row === void 0 ? false : _props$row,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"row\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, row && classes.row),\n    ref: ref\n  }, other));\n});\n true ? FormGroup.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Display group of elements in a compact row.\n   */\n  row: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiFormGroup'\n})(FormGroup));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormGroup/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormGroup/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FormGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormGroup */ \"./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _FormGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormGroup/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _FormControl_formControlState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../FormControl/formControlState */ \"./node_modules/@material-ui/core/esm/FormControl/formControlState.js\");\n/* harmony import */ var _FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl/useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      color: theme.palette.text.secondary\n    }, theme.typography.caption, {\n      textAlign: 'left',\n      marginTop: 3,\n      margin: 0,\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    }),\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `margin=\"dense\"`. */\n    marginDense: {\n      marginTop: 4\n    },\n\n    /* Styles applied to the root element if `variant=\"filled\"` or `variant=\"outlined\"`. */\n    contained: {\n      marginLeft: 14,\n      marginRight: 14\n    },\n\n    /* Pseudo-class applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Pseudo-class applied to the root element if `filled={true}`. */\n    filled: {},\n\n    /* Pseudo-class applied to the root element if `required={true}`. */\n    required: {}\n  };\n};\nvar FormHelperText = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function FormHelperText(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'p' : _props$component,\n      disabled = props.disabled,\n      error = props.error,\n      filled = props.filled,\n      focused = props.focused,\n      margin = props.margin,\n      required = props.required,\n      variant = props.variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"margin\", \"required\", \"variant\"]);\n\n  var muiFormControl = Object(_FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n  var fcs = Object(_FormControl_formControlState__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n    props: props,\n    muiFormControl: muiFormControl,\n    states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, (fcs.variant === 'filled' || fcs.variant === 'outlined') && classes.contained, className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required, fcs.margin === 'dense' && classes.marginDense),\n    ref: ref\n  }, other), children === ' ' ?\n  /*#__PURE__*/\n  // eslint-disable-next-line react/no-danger\n  react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    dangerouslySetInnerHTML: {\n      __html: '&#8203;'\n    }\n  }) : children);\n});\n true ? FormHelperText.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   *\n   * If `' '` is provided, the component reserves one line height for displaying a future message.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the helper text should be displayed in a disabled state.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, helper text should be displayed in an error state.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the helper text should use filled classes key.\n   */\n  filled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the helper text should use focused classes key.\n   */\n  focused: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense']),\n\n  /**\n   * If `true`, the helper text should use required classes key.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['filled', 'outlined', 'standard'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiFormHelperText'\n})(FormHelperText));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormHelperText/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormHelperText/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FormHelperText__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormHelperText */ \"./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _FormHelperText__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormHelperText/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _FormControl_formControlState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../FormControl/formControlState */ \"./node_modules/@material-ui/core/esm/FormControl/formControlState.js\");\n/* harmony import */ var _FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl/useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      color: theme.palette.text.secondary\n    }, theme.typography.body1, {\n      lineHeight: 1,\n      padding: 0,\n      '&$focused': {\n        color: theme.palette.primary.main\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    }),\n\n    /* Styles applied to the root element if the color is secondary. */\n    colorSecondary: {\n      '&$focused': {\n        color: theme.palette.secondary.main\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Pseudo-class applied to the root element if `filled={true}`. */\n    filled: {},\n\n    /* Pseudo-class applied to the root element if `required={true}`. */\n    required: {},\n\n    /* Styles applied to the asterisk element. */\n    asterisk: {\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    }\n  };\n};\nvar FormLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function FormLabel(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      color = props.color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'label' : _props$component,\n      disabled = props.disabled,\n      error = props.error,\n      filled = props.filled,\n      focused = props.focused,\n      required = props.required,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"]);\n\n  var muiFormControl = Object(_FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n  var fcs = Object(_FormControl_formControlState__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n    props: props,\n    muiFormControl: muiFormControl,\n    states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required),\n    ref: ref\n  }, other), children, fcs.required && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    \"aria-hidden\": true,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.asterisk, fcs.error && classes.error)\n  }, \"\\u2009\", '*'));\n});\n true ? FormLabel.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the label should be displayed in a disabled state.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label should be displayed in an error state.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label should use filled classes key.\n   */\n  filled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input of this label is focused (used by `FormGroup` components).\n   */\n  focused: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label will indicate that the input is required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(styles, {\n  name: 'MuiFormLabel'\n})(FormLabel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/FormLabel/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/FormLabel/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _FormLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormLabel */ \"./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _FormLabel__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/FormLabel/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Grid/Grid.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Grid/Grid.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_requirePropFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/requirePropFactory */ \"./node_modules/@material-ui/core/esm/utils/requirePropFactory.js\");\n\n\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n\n\n\n\n\nvar SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nfunction generateGrid(globalStyles, theme, breakpoint) {\n  var styles = {};\n  GRID_SIZES.forEach(function (size) {\n    var key = \"grid-\".concat(breakpoint, \"-\").concat(size);\n\n    if (size === true) {\n      // For the auto layouting\n      styles[key] = {\n        flexBasis: 0,\n        flexGrow: 1,\n        maxWidth: '100%'\n      };\n      return;\n    }\n\n    if (size === 'auto') {\n      styles[key] = {\n        flexBasis: 'auto',\n        flexGrow: 0,\n        maxWidth: 'none'\n      };\n      return;\n    } // Keep 7 significant numbers.\n\n\n    var width = \"\".concat(Math.round(size / 12 * 10e7) / 10e5, \"%\"); // Close to the bootstrap implementation:\n    // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n\n    styles[key] = {\n      flexBasis: width,\n      flexGrow: 0,\n      maxWidth: width\n    };\n  }); // No need for a media query for the first size.\n\n  if (breakpoint === 'xs') {\n    Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(globalStyles, styles);\n  } else {\n    globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n  }\n}\n\nfunction getOffset(val) {\n  var div = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  var parse = parseFloat(val);\n  return \"\".concat(parse / div).concat(String(val).replace(String(parse), '') || 'px');\n}\n\nfunction generateGutter(theme, breakpoint) {\n  var styles = {};\n  SPACINGS.forEach(function (spacing) {\n    var themeSpacing = theme.spacing(spacing);\n\n    if (themeSpacing === 0) {\n      return;\n    }\n\n    styles[\"spacing-\".concat(breakpoint, \"-\").concat(spacing)] = {\n      margin: \"-\".concat(getOffset(themeSpacing, 2)),\n      width: \"calc(100% + \".concat(getOffset(themeSpacing), \")\"),\n      '& > $item': {\n        padding: getOffset(themeSpacing, 2)\n      }\n    };\n  });\n  return styles;\n} // Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\n\n\nvar styles = function styles(theme) {\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    /* Styles applied to the root element. */\n    root: {},\n\n    /* Styles applied to the root element if `container={true}`. */\n    container: {\n      boxSizing: 'border-box',\n      display: 'flex',\n      flexWrap: 'wrap',\n      width: '100%'\n    },\n\n    /* Styles applied to the root element if `item={true}`. */\n    item: {\n      boxSizing: 'border-box',\n      margin: '0' // For instance, it's useful when used with a `figure` element.\n\n    },\n\n    /* Styles applied to the root element if `zeroMinWidth={true}`. */\n    zeroMinWidth: {\n      minWidth: 0\n    },\n\n    /* Styles applied to the root element if `direction=\"column\"`. */\n    'direction-xs-column': {\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the root element if `direction=\"column-reverse\"`. */\n    'direction-xs-column-reverse': {\n      flexDirection: 'column-reverse'\n    },\n\n    /* Styles applied to the root element if `direction=\"row-reverse\"`. */\n    'direction-xs-row-reverse': {\n      flexDirection: 'row-reverse'\n    },\n\n    /* Styles applied to the root element if `wrap=\"nowrap\"`. */\n    'wrap-xs-nowrap': {\n      flexWrap: 'nowrap'\n    },\n\n    /* Styles applied to the root element if `wrap=\"reverse\"`. */\n    'wrap-xs-wrap-reverse': {\n      flexWrap: 'wrap-reverse'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"center\"`. */\n    'align-items-xs-center': {\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"flex-start\"`. */\n    'align-items-xs-flex-start': {\n      alignItems: 'flex-start'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"flex-end\"`. */\n    'align-items-xs-flex-end': {\n      alignItems: 'flex-end'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"baseline\"`. */\n    'align-items-xs-baseline': {\n      alignItems: 'baseline'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"center\"`. */\n    'align-content-xs-center': {\n      alignContent: 'center'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"flex-start\"`. */\n    'align-content-xs-flex-start': {\n      alignContent: 'flex-start'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"flex-end\"`. */\n    'align-content-xs-flex-end': {\n      alignContent: 'flex-end'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"space-between\"`. */\n    'align-content-xs-space-between': {\n      alignContent: 'space-between'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"space-around\"`. */\n    'align-content-xs-space-around': {\n      alignContent: 'space-around'\n    },\n\n    /* Styles applied to the root element if `justify=\"center\"`. */\n    'justify-xs-center': {\n      justifyContent: 'center'\n    },\n\n    /* Styles applied to the root element if `justify=\"flex-end\"`. */\n    'justify-xs-flex-end': {\n      justifyContent: 'flex-end'\n    },\n\n    /* Styles applied to the root element if `justify=\"space-between\"`. */\n    'justify-xs-space-between': {\n      justifyContent: 'space-between'\n    },\n\n    /* Styles applied to the root element if `justify=\"space-around\"`. */\n    'justify-xs-space-around': {\n      justifyContent: 'space-around'\n    },\n\n    /* Styles applied to the root element if `justify=\"space-evenly\"`. */\n    'justify-xs-space-evenly': {\n      justifyContent: 'space-evenly'\n    }\n  }, generateGutter(theme, 'xs'), theme.breakpoints.keys.reduce(function (accumulator, key) {\n    // Use side effect over immutability for better performance.\n    generateGrid(accumulator, theme, key);\n    return accumulator;\n  }, {}));\n};\nvar Grid = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Grid(props, ref) {\n  var _props$alignContent = props.alignContent,\n      alignContent = _props$alignContent === void 0 ? 'stretch' : _props$alignContent,\n      _props$alignItems = props.alignItems,\n      alignItems = _props$alignItems === void 0 ? 'stretch' : _props$alignItems,\n      classes = props.classes,\n      classNameProp = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$container = props.container,\n      container = _props$container === void 0 ? false : _props$container,\n      _props$direction = props.direction,\n      direction = _props$direction === void 0 ? 'row' : _props$direction,\n      _props$item = props.item,\n      item = _props$item === void 0 ? false : _props$item,\n      _props$justify = props.justify,\n      justify = _props$justify === void 0 ? 'flex-start' : _props$justify,\n      _props$lg = props.lg,\n      lg = _props$lg === void 0 ? false : _props$lg,\n      _props$md = props.md,\n      md = _props$md === void 0 ? false : _props$md,\n      _props$sm = props.sm,\n      sm = _props$sm === void 0 ? false : _props$sm,\n      _props$spacing = props.spacing,\n      spacing = _props$spacing === void 0 ? 0 : _props$spacing,\n      _props$wrap = props.wrap,\n      wrap = _props$wrap === void 0 ? 'wrap' : _props$wrap,\n      _props$xl = props.xl,\n      xl = _props$xl === void 0 ? false : _props$xl,\n      _props$xs = props.xs,\n      xs = _props$xs === void 0 ? false : _props$xs,\n      _props$zeroMinWidth = props.zeroMinWidth,\n      zeroMinWidth = _props$zeroMinWidth === void 0 ? false : _props$zeroMinWidth,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"alignContent\", \"alignItems\", \"classes\", \"className\", \"component\", \"container\", \"direction\", \"item\", \"justify\", \"lg\", \"md\", \"sm\", \"spacing\", \"wrap\", \"xl\", \"xs\", \"zeroMinWidth\"]);\n\n  var className = Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classNameProp, container && [classes.container, spacing !== 0 && classes[\"spacing-xs-\".concat(String(spacing))]], item && classes.item, zeroMinWidth && classes.zeroMinWidth, direction !== 'row' && classes[\"direction-xs-\".concat(String(direction))], wrap !== 'wrap' && classes[\"wrap-xs-\".concat(String(wrap))], alignItems !== 'stretch' && classes[\"align-items-xs-\".concat(String(alignItems))], alignContent !== 'stretch' && classes[\"align-content-xs-\".concat(String(alignContent))], justify !== 'flex-start' && classes[\"justify-xs-\".concat(String(justify))], xs !== false && classes[\"grid-xs-\".concat(String(xs))], sm !== false && classes[\"grid-sm-\".concat(String(sm))], md !== false && classes[\"grid-md-\".concat(String(md))], lg !== false && classes[\"grid-lg-\".concat(String(lg))], xl !== false && classes[\"grid-xl-\".concat(String(xl))]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: className,\n    ref: ref\n  }, other));\n});\n true ? Grid.propTypes = {\n  /**\n   * Defines the `align-content` style property.\n   * It's applied for all screen sizes.\n   */\n  alignContent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['stretch', 'center', 'flex-start', 'flex-end', 'space-between', 'space-around']),\n\n  /**\n   * Defines the `align-items` style property.\n   * It's applied for all screen sizes.\n   */\n  alignItems: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the component will have the flex *container* behavior.\n   * You should be wrapping *items* with a *container*.\n   */\n  container: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Defines the `flex-direction` style property.\n   * It is applied for all screen sizes.\n   */\n  direction: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),\n\n  /**\n   * If `true`, the component will have the flex *item* behavior.\n   * You should be wrapping *items* with a *container*.\n   */\n  item: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Defines the `justify-content` style property.\n   * It is applied for all screen sizes.\n   */\n  justify: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around', 'space-evenly']),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `lg` breakpoint and wider screens if not overridden.\n   */\n  lg: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `md` breakpoint and wider screens if not overridden.\n   */\n  md: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `sm` breakpoint and wider screens if not overridden.\n   */\n  sm: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the space between the type `item` component.\n   * It can only be used on a type `container` component.\n   */\n  spacing: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(SPACINGS),\n\n  /**\n   * Defines the `flex-wrap` style property.\n   * It's applied for all screen sizes.\n   */\n  wrap: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `xl` breakpoint and wider screens.\n   */\n  xl: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for all the screen sizes with the lowest priority.\n   */\n  xs: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * If `true`, it sets `min-width: 0` on the item.\n   * Refer to the limitations section of the documentation to better understand the use case.\n   */\n  zeroMinWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\nvar StyledGrid = Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiGrid'\n})(Grid);\n\nif (true) {\n  var requireProp = Object(_utils_requirePropFactory__WEBPACK_IMPORTED_MODULE_6__[\"default\"])('Grid');\n  StyledGrid.propTypes = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, StyledGrid.propTypes, {\n    alignContent: requireProp('container'),\n    alignItems: requireProp('container'),\n    direction: requireProp('container'),\n    justify: requireProp('container'),\n    lg: requireProp('item'),\n    md: requireProp('item'),\n    sm: requireProp('item'),\n    spacing: requireProp('container'),\n    wrap: requireProp('container'),\n    xs: requireProp('item'),\n    zeroMinWidth: requireProp('item')\n  });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (StyledGrid);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Grid/Grid.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Grid/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Grid/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Grid */ \"./node_modules/@material-ui/core/esm/Grid/Grid.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Grid__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Grid/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/GridList/GridList.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/GridList/GridList.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    flexWrap: 'wrap',\n    overflowY: 'auto',\n    listStyle: 'none',\n    padding: 0,\n    WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling.\n\n  }\n};\nvar GridList = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function GridList(props, ref) {\n  var _props$cellHeight = props.cellHeight,\n      cellHeight = _props$cellHeight === void 0 ? 180 : _props$cellHeight,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$cols = props.cols,\n      cols = _props$cols === void 0 ? 2 : _props$cols,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'ul' : _props$component,\n      _props$spacing = props.spacing,\n      spacing = _props$spacing === void 0 ? 4 : _props$spacing,\n      style = props.style,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"cellHeight\", \"children\", \"classes\", \"className\", \"cols\", \"component\", \"spacing\", \"style\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    ref: ref,\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      margin: -spacing / 2\n    }, style)\n  }, other), react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_3__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The GridList component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    var childCols = child.props.cols || 1;\n    var childRows = child.props.rows || 1;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](child, {\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        width: \"\".concat(100 / cols * childCols, \"%\"),\n        height: cellHeight === 'auto' ? 'auto' : cellHeight * childRows + spacing,\n        padding: spacing / 2\n      }, child.props.style)\n    });\n  }));\n});\n true ? GridList.propTypes = {\n  /**\n   * Number of px for one cell height.\n   * You can set `'auto'` if you want to let the children determine the height.\n   */\n  cellHeight: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['auto'])]),\n\n  /**\n   * Grid Tiles that will be in Grid List.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Number of columns.\n   */\n  cols: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Number of px for the spacing between tiles.\n   */\n  spacing: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiGridList'\n})(GridList));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/GridList/GridList.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/GridList/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/GridList/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _GridList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GridList */ \"./node_modules/@material-ui/core/esm/GridList/GridList.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _GridList__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/GridList/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/GridListTile/GridListTile.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/GridListTile/GridListTile.js ***!
  \*************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_debounce__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/isMuiElement */ \"./node_modules/@material-ui/core/esm/utils/isMuiElement.js\");\n\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    boxSizing: 'border-box',\n    flexShrink: 0\n  },\n\n  /* Styles applied to the `div` element that wraps the children. */\n  tile: {\n    position: 'relative',\n    display: 'block',\n    // In case it's not rendered with a div.\n    height: '100%',\n    overflow: 'hidden'\n  },\n\n  /* Styles applied to an `img` element child, if needed to ensure it covers the tile. */\n  imgFullHeight: {\n    height: '100%',\n    transform: 'translateX(-50%)',\n    position: 'relative',\n    left: '50%'\n  },\n\n  /* Styles applied to an `img` element child, if needed to ensure it covers the tile. */\n  imgFullWidth: {\n    width: '100%',\n    position: 'relative',\n    transform: 'translateY(-50%)',\n    top: '50%'\n  }\n};\n\nvar fit = function fit(imgEl, classes) {\n  if (!imgEl || !imgEl.complete) {\n    return;\n  }\n\n  if (imgEl.width / imgEl.height > imgEl.parentElement.offsetWidth / imgEl.parentElement.offsetHeight) {\n    var _imgEl$classList, _imgEl$classList2;\n\n    (_imgEl$classList = imgEl.classList).remove.apply(_imgEl$classList, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.imgFullWidth.split(' ')));\n\n    (_imgEl$classList2 = imgEl.classList).add.apply(_imgEl$classList2, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.imgFullHeight.split(' ')));\n  } else {\n    var _imgEl$classList3, _imgEl$classList4;\n\n    (_imgEl$classList3 = imgEl.classList).remove.apply(_imgEl$classList3, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.imgFullHeight.split(' ')));\n\n    (_imgEl$classList4 = imgEl.classList).add.apply(_imgEl$classList4, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.imgFullWidth.split(' ')));\n  }\n};\n\nfunction ensureImageCover(imgEl, classes) {\n  if (!imgEl) {\n    return;\n  }\n\n  if (imgEl.complete) {\n    fit(imgEl, classes);\n  } else {\n    imgEl.addEventListener('load', function () {\n      fit(imgEl, classes);\n    });\n  }\n}\n\nvar GridListTile = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function GridListTile(props, ref) {\n  // cols rows default values are for docs only\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$cols = props.cols,\n      cols = _props$cols === void 0 ? 1 : _props$cols,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'li' : _props$component,\n      _props$rows = props.rows,\n      rows = _props$rows === void 0 ? 1 : _props$rows,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"cols\", \"component\", \"rows\"]);\n\n  var imgRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    ensureImageCover(imgRef.current, classes);\n  });\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    var handleResize = Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(function () {\n      fit(imgRef.current, classes);\n    });\n    window.addEventListener('resize', handleResize);\n    return function () {\n      handleResize.clear();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [classes]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    className: classes.tile\n  }, react__WEBPACK_IMPORTED_MODULE_3__[\"Children\"].map(children, function (child) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (child.type === 'img' || Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(child, ['Image'])) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"](child, {\n        ref: imgRef\n      });\n    }\n\n    return child;\n  })));\n});\n true ? GridListTile.propTypes = {\n  /**\n   * Theoretically you can pass any node as children, but the main use case is to pass an img,\n   * in which case GridListTile takes care of making the image \"cover\" available space\n   * (similar to `background-size: cover` or to `object-fit: cover`).\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Width of the tile in number of grid cells.\n   */\n  cols: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Height of the tile in number of grid cells.\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiGridListTile'\n})(GridListTile));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/GridListTile/GridListTile.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/GridListTile/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/GridListTile/index.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _GridListTile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GridListTile */ \"./node_modules/@material-ui/core/esm/GridListTile/GridListTile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _GridListTile__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/GridListTile/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/GridListTileBar/GridListTileBar.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/GridListTileBar/GridListTileBar.js ***!
  \*******************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'absolute',\n      left: 0,\n      right: 0,\n      height: 48,\n      background: 'rgba(0, 0, 0, 0.5)',\n      display: 'flex',\n      alignItems: 'center',\n      fontFamily: theme.typography.fontFamily\n    },\n\n    /* Styles applied to the root element if `titlePosition=\"bottom\"`. */\n    titlePositionBottom: {\n      bottom: 0\n    },\n\n    /* Styles applied to the root element if `titlePosition=\"top\"`. */\n    titlePositionTop: {\n      top: 0\n    },\n\n    /* Styles applied to the root element if a `subtitle` is provided. */\n    rootSubtitle: {\n      height: 68\n    },\n\n    /* Styles applied to the title and subtitle container element. */\n    titleWrap: {\n      flexGrow: 1,\n      marginLeft: 16,\n      marginRight: 16,\n      color: theme.palette.common.white,\n      overflow: 'hidden'\n    },\n\n    /* Styles applied to the container element if `actionPosition=\"left\"`. */\n    titleWrapActionPosLeft: {\n      marginLeft: 0\n    },\n\n    /* Styles applied to the container element if `actionPosition=\"right\"`. */\n    titleWrapActionPosRight: {\n      marginRight: 0\n    },\n\n    /* Styles applied to the title container element. */\n    title: {\n      fontSize: theme.typography.pxToRem(16),\n      lineHeight: '24px',\n      textOverflow: 'ellipsis',\n      overflow: 'hidden',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the subtitle container element. */\n    subtitle: {\n      fontSize: theme.typography.pxToRem(12),\n      lineHeight: 1,\n      textOverflow: 'ellipsis',\n      overflow: 'hidden',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the actionIcon if supplied. */\n    actionIcon: {},\n\n    /* Styles applied to the actionIcon if `actionPosition=\"left\"`. */\n    actionIconActionPosLeft: {\n      order: -1\n    }\n  };\n};\nvar GridListTileBar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function GridListTileBar(props, ref) {\n  var actionIcon = props.actionIcon,\n      _props$actionPosition = props.actionPosition,\n      actionPosition = _props$actionPosition === void 0 ? 'right' : _props$actionPosition,\n      classes = props.classes,\n      className = props.className,\n      subtitle = props.subtitle,\n      title = props.title,\n      _props$titlePosition = props.titlePosition,\n      titlePosition = _props$titlePosition === void 0 ? 'bottom' : _props$titlePosition,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"actionIcon\", \"actionPosition\", \"classes\", \"className\", \"subtitle\", \"title\", \"titlePosition\"]);\n\n  var actionPos = actionIcon && actionPosition;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, titlePosition === 'top' ? classes.titlePositionTop : classes.titlePositionBottom, subtitle && classes.rootSubtitle),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.titleWrap, {\n      'left': classes.titleWrapActionPosLeft,\n      'right': classes.titleWrapActionPosRight\n    }[actionPos])\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: classes.title\n  }, title), subtitle ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: classes.subtitle\n  }, subtitle) : null), actionIcon ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.actionIcon, actionPos === 'left' && classes.actionIconActionPosLeft)\n  }, actionIcon) : null);\n});\n true ? GridListTileBar.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * An IconButton element to be used as secondary action target\n   * (primary action target is the tile itself).\n   */\n  actionIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Position of secondary action IconButton.\n   */\n  actionPosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['left', 'right']),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * String or element serving as subtitle (support text).\n   */\n  subtitle: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Title to be displayed on tile.\n   */\n  title: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Position of the title bar.\n   */\n  titlePosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom', 'top'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiGridListTileBar'\n})(GridListTileBar));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/GridListTileBar/GridListTileBar.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/GridListTileBar/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/GridListTileBar/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _GridListTileBar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GridListTileBar */ \"./node_modules/@material-ui/core/esm/GridListTileBar/GridListTileBar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _GridListTileBar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/GridListTileBar/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Grow/Grow.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Grow/Grow.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/esm/index.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _transitions_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../transitions/utils */ \"./node_modules/@material-ui/core/esm/transitions/utils.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\n\n\n\nfunction getScale(value) {\n  return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n  entering: {\n    opacity: 1,\n    transform: getScale(1)\n  },\n  entered: {\n    opacity: 1,\n    transform: 'none'\n  }\n};\n/**\n * The Grow transition is used by the [Tooltip](/components/tooltips/) and\n * [Popover](/components/popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Grow(props, ref) {\n  var children = props.children,\n      _props$disableStrictM = props.disableStrictModeCompat,\n      disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n      inProp = props.in,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      style = props.style,\n      _props$timeout = props.timeout,\n      timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? react_transition_group__WEBPACK_IMPORTED_MODULE_5__[\"Transition\"] : _props$TransitionComp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n  var timer = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n  var autoTimeout = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n  var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n  var nodeRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var foreignRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(children.ref, ref);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n    return function (nodeOrAppearing, maybeAppearing) {\n      if (callback) {\n        var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n            _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n            node = _ref2[0],\n            isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n        if (isAppearing === undefined) {\n          callback(node);\n        } else {\n          callback(node, isAppearing);\n        }\n      }\n    };\n  };\n\n  var handleEntering = normalizedTransitionCallback(onEntering);\n  var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n    Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_7__[\"reflow\"])(node); // So the animation always start from the start.\n\n    var _getTransitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_7__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'enter'\n    }),\n        transitionDuration = _getTransitionProps.duration,\n        delay = _getTransitionProps.delay;\n\n    var duration;\n\n    if (timeout === 'auto') {\n      duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n      autoTimeout.current = duration;\n    } else {\n      duration = transitionDuration;\n    }\n\n    node.style.transition = [theme.transitions.create('opacity', {\n      duration: duration,\n      delay: delay\n    }), theme.transitions.create('transform', {\n      duration: duration * 0.666,\n      delay: delay\n    })].join(',');\n\n    if (onEnter) {\n      onEnter(node, isAppearing);\n    }\n  });\n  var handleEntered = normalizedTransitionCallback(onEntered);\n  var handleExiting = normalizedTransitionCallback(onExiting);\n  var handleExit = normalizedTransitionCallback(function (node) {\n    var _getTransitionProps2 = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_7__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'exit'\n    }),\n        transitionDuration = _getTransitionProps2.duration,\n        delay = _getTransitionProps2.delay;\n\n    var duration;\n\n    if (timeout === 'auto') {\n      duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n      autoTimeout.current = duration;\n    } else {\n      duration = transitionDuration;\n    }\n\n    node.style.transition = [theme.transitions.create('opacity', {\n      duration: duration,\n      delay: delay\n    }), theme.transitions.create('transform', {\n      duration: duration * 0.666,\n      delay: delay || duration * 0.333\n    })].join(',');\n    node.style.opacity = '0';\n    node.style.transform = getScale(0.75);\n\n    if (onExit) {\n      onExit(node);\n    }\n  });\n  var handleExited = normalizedTransitionCallback(onExited);\n\n  var addEndListener = function addEndListener(nodeOrNext, maybeNext) {\n    var next = enableStrictModeCompat ? nodeOrNext : maybeNext;\n\n    if (timeout === 'auto') {\n      timer.current = setTimeout(next, autoTimeout.current || 0);\n    }\n  };\n\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    return function () {\n      clearTimeout(timer.current);\n    };\n  }, []);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    appear: true,\n    in: inProp,\n    nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    addEndListener: addEndListener,\n    timeout: timeout === 'auto' ? null : timeout\n  }, other), function (state, childProps) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"](children, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        opacity: 0,\n        transform: getScale(0.75),\n        visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n      }, styles[state], style, children.props.style),\n      ref: handleRef\n    }, childProps));\n  });\n});\n true ? Grow.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.element,\n\n  /**\n   * Enable this prop if you encounter 'Function components cannot be given refs',\n   * use `unstable_createStrictModeTheme`,\n   * and can't forward the ref in the child component.\n   */\n  disableStrictModeCompat: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, show the component; triggers the enter or exit animation.\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   *\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  timeout: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['auto']), prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n  })])\n} : undefined;\nGrow.muiSupportAuto = true;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Grow);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Grow/Grow.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Grow/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Grow/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Grow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Grow */ \"./node_modules/@material-ui/core/esm/Grow/Grow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Grow__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Grow/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Hidden/Hidden.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Hidden/Hidden.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _HiddenJs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./HiddenJs */ \"./node_modules/@material-ui/core/esm/Hidden/HiddenJs.js\");\n/* harmony import */ var _HiddenCss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HiddenCss */ \"./node_modules/@material-ui/core/esm/Hidden/HiddenCss.js\");\n\n\n\n\n\n\n/**\n * Responsively hides children based on the selected implementation.\n */\n\nfunction Hidden(props) {\n  var _props$implementation = props.implementation,\n      implementation = _props$implementation === void 0 ? 'js' : _props$implementation,\n      _props$lgDown = props.lgDown,\n      lgDown = _props$lgDown === void 0 ? false : _props$lgDown,\n      _props$lgUp = props.lgUp,\n      lgUp = _props$lgUp === void 0 ? false : _props$lgUp,\n      _props$mdDown = props.mdDown,\n      mdDown = _props$mdDown === void 0 ? false : _props$mdDown,\n      _props$mdUp = props.mdUp,\n      mdUp = _props$mdUp === void 0 ? false : _props$mdUp,\n      _props$smDown = props.smDown,\n      smDown = _props$smDown === void 0 ? false : _props$smDown,\n      _props$smUp = props.smUp,\n      smUp = _props$smUp === void 0 ? false : _props$smUp,\n      _props$xlDown = props.xlDown,\n      xlDown = _props$xlDown === void 0 ? false : _props$xlDown,\n      _props$xlUp = props.xlUp,\n      xlUp = _props$xlUp === void 0 ? false : _props$xlUp,\n      _props$xsDown = props.xsDown,\n      xsDown = _props$xsDown === void 0 ? false : _props$xsDown,\n      _props$xsUp = props.xsUp,\n      xsUp = _props$xsUp === void 0 ? false : _props$xsUp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"implementation\", \"lgDown\", \"lgUp\", \"mdDown\", \"mdUp\", \"smDown\", \"smUp\", \"xlDown\", \"xlUp\", \"xsDown\", \"xsUp\"]);\n\n  if (implementation === 'js') {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_HiddenJs__WEBPACK_IMPORTED_MODULE_4__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      lgDown: lgDown,\n      lgUp: lgUp,\n      mdDown: mdDown,\n      mdUp: mdUp,\n      smDown: smDown,\n      smUp: smUp,\n      xlDown: xlDown,\n      xlUp: xlUp,\n      xsDown: xsDown,\n      xsUp: xsUp\n    }, other));\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_HiddenCss__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    lgDown: lgDown,\n    lgUp: lgUp,\n    mdDown: mdDown,\n    mdUp: mdUp,\n    smDown: smDown,\n    smUp: smUp,\n    xlDown: xlDown,\n    xlUp: xlUp,\n    xsDown: xsDown,\n    xsUp: xsUp\n  }, other));\n}\n\n true ? Hidden.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Specify which implementation to use.  'js' is the default, 'css' works better for\n   * server-side rendering.\n   */\n  implementation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['js', 'css']),\n\n  /**\n   * You can use this prop when choosing the `js` implementation with server-side rendering.\n   *\n   * As `window.innerWidth` is unavailable on the server,\n   * we default to rendering an empty component during the first mount.\n   * You might want to use an heuristic to approximate\n   * the screen width of the client browser screen width.\n   *\n   * For instance, you could be using the user-agent or the client-hints.\n   * https://caniuse.com/#search=client%20hint\n   */\n  initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  lgDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  lgUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  mdDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  mdUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Hide the given breakpoint(s).\n   */\n  only: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  smDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  smUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  xlDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  xlUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  xsDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  xsUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hidden);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Hidden/Hidden.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Hidden/HiddenCss.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Hidden/HiddenCss.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var hidden = {\n    display: 'none'\n  };\n  return theme.breakpoints.keys.reduce(function (acc, key) {\n    acc[\"only\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(key))] = Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.only(key), hidden);\n    acc[\"\".concat(key, \"Up\")] = Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up(key), hidden);\n    acc[\"\".concat(key, \"Down\")] = Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.down(key), hidden);\n    return acc;\n  }, {});\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction HiddenCss(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      only = props.only,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"only\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n\n  if (true) {\n    var unknownProps = Object.keys(other).filter(function (propName) {\n      var isUndeclaredBreakpoint = !theme.breakpoints.keys.some(function (breakpoint) {\n        return \"\".concat(breakpoint, \"Up\") === propName || \"\".concat(breakpoint, \"Down\") === propName;\n      });\n      return isUndeclaredBreakpoint;\n    });\n\n    if (unknownProps.length > 0) {\n      console.error(\"Material-UI: Unsupported props received by `<Hidden implementation=\\\"css\\\" />`: \".concat(unknownProps.join(', '), \". Did you forget to wrap this component in a ThemeProvider declaring these breakpoints?\"));\n    }\n  }\n\n  var clsx = [];\n\n  if (className) {\n    clsx.push(className);\n  }\n\n  for (var i = 0; i < theme.breakpoints.keys.length; i += 1) {\n    var breakpoint = theme.breakpoints.keys[i];\n    var breakpointUp = props[\"\".concat(breakpoint, \"Up\")];\n    var breakpointDown = props[\"\".concat(breakpoint, \"Down\")];\n\n    if (breakpointUp) {\n      clsx.push(classes[\"\".concat(breakpoint, \"Up\")]);\n    }\n\n    if (breakpointDown) {\n      clsx.push(classes[\"\".concat(breakpoint, \"Down\")]);\n    }\n  }\n\n  if (only) {\n    var onlyBreakpoints = Array.isArray(only) ? only : [only];\n    onlyBreakpoints.forEach(function (breakpoint) {\n      clsx.push(classes[\"only\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(breakpoint))]);\n    });\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: clsx.join(' ')\n  }, children);\n}\n\n true ? HiddenCss.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Specify which implementation to use.  'js' is the default, 'css' works better for\n   * server-side rendering.\n   */\n  implementation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['js', 'css']),\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  lgDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  lgUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  mdDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  mdUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Hide the given breakpoint(s).\n   */\n  only: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  smDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  smUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  xlDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  xlUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  xsDown: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  xsUp: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'PrivateHiddenCss'\n})(HiddenCss));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Hidden/HiddenCss.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Hidden/HiddenJs.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Hidden/HiddenJs.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _withWidth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../withWidth */ \"./node_modules/@material-ui/core/esm/withWidth/index.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n/**\n * @ignore - internal component.\n */\n\nfunction HiddenJs(props) {\n  var children = props.children,\n      only = props.only,\n      width = props.width;\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n  var visible = true; // `only` check is faster to get out sooner if used.\n\n  if (only) {\n    if (Array.isArray(only)) {\n      for (var i = 0; i < only.length; i += 1) {\n        var breakpoint = only[i];\n\n        if (width === breakpoint) {\n          visible = false;\n          break;\n        }\n      }\n    } else if (only && width === only) {\n      visible = false;\n    }\n  } // Allow `only` to be combined with other props. If already hidden, no need to check others.\n\n\n  if (visible) {\n    // determine visibility based on the smallest size up\n    for (var _i = 0; _i < theme.breakpoints.keys.length; _i += 1) {\n      var _breakpoint = theme.breakpoints.keys[_i];\n      var breakpointUp = props[\"\".concat(_breakpoint, \"Up\")];\n      var breakpointDown = props[\"\".concat(_breakpoint, \"Down\")];\n\n      if (breakpointUp && Object(_withWidth__WEBPACK_IMPORTED_MODULE_2__[\"isWidthUp\"])(_breakpoint, width) || breakpointDown && Object(_withWidth__WEBPACK_IMPORTED_MODULE_2__[\"isWidthDown\"])(_breakpoint, width)) {\n        visible = false;\n        break;\n      }\n    }\n  }\n\n  if (!visible) {\n    return null;\n  }\n\n  return children;\n}\n\nHiddenJs.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.node,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n\n  /**\n   * Specify which implementation to use.  'js' is the default, 'css' works better for\n   * server-side rendering.\n   */\n  implementation: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf(['js', 'css']),\n\n  /**\n   * You can use this prop when choosing the `js` implementation with server-side rendering.\n   *\n   * As `window.innerWidth` is unavailable on the server,\n   * we default to rendering an empty component during the first mount.\n   * You might want to use an heuristic to approximate\n   * the screen width of the client browser screen width.\n   *\n   * For instance, you could be using the user-agent or the client-hints.\n   * https://caniuse.com/#search=client%20hint\n   */\n  initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  lgDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  lgUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  mdDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  mdUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * Hide the given breakpoint(s).\n   */\n  only: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  smDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  smUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * @ignore\n   * width prop provided by withWidth decorator.\n   */\n  width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string.isRequired,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  xlDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  xlUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and down will be hidden.\n   */\n  xsDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n  /**\n   * If `true`, screens this size and up will be hidden.\n   */\n  xsUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool\n};\n\nif (true) {\n  HiddenJs.propTypes = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_1__[\"exactProp\"])(HiddenJs.propTypes);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_withWidth__WEBPACK_IMPORTED_MODULE_2__[\"default\"])()(HiddenJs));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Hidden/HiddenJs.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Hidden/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Hidden/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Hidden__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Hidden */ \"./node_modules/@material-ui/core/esm/Hidden/Hidden.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Hidden__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Hidden/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Icon/Icon.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Icon/Icon.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      userSelect: 'none',\n      fontSize: theme.typography.pxToRem(24),\n      width: '1em',\n      height: '1em',\n      // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541\n      // To remove at some point.\n      overflow: 'hidden',\n      flexShrink: 0\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `color=\"action\"`. */\n    colorAction: {\n      color: theme.palette.action.active\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      color: theme.palette.error.main\n    },\n\n    /* Styles applied to the root element if `color=\"disabled\"`. */\n    colorDisabled: {\n      color: theme.palette.action.disabled\n    },\n\n    /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n    fontSizeInherit: {\n      fontSize: 'inherit'\n    },\n\n    /* Styles applied to the root element if `fontSize=\"small\"`. */\n    fontSizeSmall: {\n      fontSize: theme.typography.pxToRem(20)\n    },\n\n    /* Styles applied to the root element if `fontSize=\"large\"`. */\n    fontSizeLarge: {\n      fontSize: theme.typography.pxToRem(36)\n    }\n  };\n};\nvar Icon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Icon(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'inherit' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'span' : _props$component,\n      _props$fontSize = props.fontSize,\n      fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"component\", \"fontSize\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('material-icons', classes.root, className, color !== 'inherit' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], fontSize !== 'default' && classes[\"fontSize\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(fontSize))]),\n    \"aria-hidden\": true,\n    ref: ref\n  }, other));\n});\n true ? Icon.propTypes = {\n  /**\n   * The name of the icon font ligature.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['inherit', 'primary', 'secondary', 'action', 'error', 'disabled']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n   */\n  fontSize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['inherit', 'default', 'small', 'large'])\n} : undefined;\nIcon.muiName = 'Icon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiIcon'\n})(Icon));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Icon/Icon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Icon/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Icon/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Icon */ \"./node_modules/@material-ui/core/esm/Icon/Icon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Icon__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Icon/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/IconButton/IconButton.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/IconButton/IconButton.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      textAlign: 'center',\n      flex: '0 0 auto',\n      fontSize: theme.typography.pxToRem(24),\n      padding: 12,\n      borderRadius: '50%',\n      overflow: 'visible',\n      // Explicitly set the default value to solve a bug on IE 11.\n      color: theme.palette.action.active,\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&:hover': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.action.active, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      },\n      '&$disabled': {\n        backgroundColor: 'transparent',\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `edge=\"start\"`. */\n    edgeStart: {\n      marginLeft: -12,\n      '$sizeSmall&': {\n        marginLeft: -3\n      }\n    },\n\n    /* Styles applied to the root element if `edge=\"end\"`. */\n    edgeEnd: {\n      marginRight: -12,\n      '$sizeSmall&': {\n        marginRight: -3\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `size=\"small\"`. */\n    sizeSmall: {\n      padding: 3,\n      fontSize: theme.typography.pxToRem(18)\n    },\n\n    /* Styles applied to the children container element. */\n    label: {\n      width: '100%',\n      display: 'flex',\n      alignItems: 'inherit',\n      justifyContent: 'inherit'\n    }\n  };\n};\n/**\n * Refer to the [Icons](/components/icons/) section of the documentation\n * regarding the available icon options.\n */\n\nvar IconButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function IconButton(props, ref) {\n  var _props$edge = props.edge,\n      edge = _props$edge === void 0 ? false : _props$edge,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableFocusRi = props.disableFocusRipple,\n      disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"edge\", \"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, color !== 'default' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(color))], disabled && classes.disabled, size === \"small\" && classes[\"size\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(size))], {\n      'start': classes.edgeStart,\n      'end': classes.edgeEnd\n    }[edge]),\n    centerRipple: true,\n    focusRipple: !disableFocusRipple,\n    disabled: disabled,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.label\n  }, children));\n});\n true ? IconButton.propTypes = {\n  /**\n   * The icon element.\n   */\n  children: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node, function (props) {\n    var found = react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].toArray(props.children).some(function (child) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child) && child.props.onClick;\n    });\n\n    if (found) {\n      return new Error(['Material-UI: You are providing an onClick event listener ' + 'to a child of a button element.', 'Firefox will never trigger the event.', 'You should move the onClick listener to the parent button element.', 'https://github.com/mui-org/material-ui/issues/13957'].join('\\n'));\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * If `true`, the button will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the  keyboard focus ripple will be disabled.\n   */\n  disableFocusRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If given, uses a negative margin to counteract the padding on one\n   * side (this is often helpful for aligning the left or right\n   * side of the icon with content above or below, without ruining the border\n   * size and shape).\n   */\n  edge: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['start', 'end', false]),\n\n  /**\n   * The size of the button.\n   * `small` is equivalent to the dense button styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['small', 'medium'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiIconButton'\n})(IconButton));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/IconButton/IconButton.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/IconButton/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/IconButton/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/IconButton.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _IconButton__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/IconButton/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Input/Input.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Input/Input.js ***!
  \***********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _InputBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../InputBase */ \"./node_modules/@material-ui/core/esm/InputBase/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative'\n    },\n\n    /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n    formControl: {\n      'label + &': {\n        marginTop: 16\n      }\n    },\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if color secondary. */\n    colorSecondary: {\n      '&$underline:after': {\n        borderBottomColor: theme.palette.secondary.main\n      }\n    },\n\n    /* Styles applied to the root element if `disableUnderline={false}`. */\n    underline: {\n      '&:after': {\n        borderBottom: \"2px solid \".concat(theme.palette.primary.main),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\"',\n        position: 'absolute',\n        right: 0,\n        transform: 'scaleX(0)',\n        transition: theme.transitions.create('transform', {\n          duration: theme.transitions.duration.shorter,\n          easing: theme.transitions.easing.easeOut\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&$focused:after': {\n        transform: 'scaleX(1)'\n      },\n      '&$error:after': {\n        borderBottomColor: theme.palette.error.main,\n        transform: 'scaleX(1)' // error is always underlined in red\n\n      },\n      '&:before': {\n        borderBottom: \"1px solid \".concat(bottomLineColor),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\\\\00a0\"',\n        position: 'absolute',\n        right: 0,\n        transition: theme.transitions.create('border-bottom-color', {\n          duration: theme.transitions.duration.shorter\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&:hover:not($disabled):before': {\n        borderBottom: \"2px solid \".concat(theme.palette.text.primary),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          borderBottom: \"1px solid \".concat(bottomLineColor)\n        }\n      },\n      '&$disabled:before': {\n        borderBottomStyle: 'dotted'\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    marginDense: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {},\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {},\n\n    /* Styles applied to the `input` element. */\n    input: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {},\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {},\n\n    /* Styles applied to the `input` element if `type=\"search\"`. */\n    inputTypeSearch: {}\n  };\n};\nvar Input = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Input(props, ref) {\n  var disableUnderline = props.disableUnderline,\n      classes = props.classes,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      _props$inputComponent = props.inputComponent,\n      inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      _props$type = props.type,\n      type = _props$type === void 0 ? 'text' : _props$type,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"disableUnderline\", \"classes\", \"fullWidth\", \"inputComponent\", \"multiline\", \"type\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_InputBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    classes: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, classes, {\n      root: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, !disableUnderline && classes.underline),\n      underline: null\n    }),\n    fullWidth: fullWidth,\n    inputComponent: inputComponent,\n    multiline: multiline,\n    ref: ref,\n    type: type\n  }, other));\n});\n true ? Input.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * This prop helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n   */\n  autoComplete: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the `input` element will be focused during the first mount.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The default `input` element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * If `true`, the `input` element will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input will not have an underline.\n   */\n  disableUnderline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the `input` element.\n   * Either a string to use a HTML element or a component.\n   */\n  inputComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The value of the `input` element, required for a controlled component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\nInput.muiName = 'Input';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiInput'\n})(Input));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Input/Input.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Input/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Input/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Input__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Input */ \"./node_modules/@material-ui/core/esm/Input/Input.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Input__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Input/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _FormControl_FormControlContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../FormControl/FormControlContext */ \"./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js\");\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    height: '0.01em',\n    // Fix IE 11 flexbox alignment. To remove at some point.\n    maxHeight: '2em',\n    alignItems: 'center',\n    whiteSpace: 'nowrap'\n  },\n\n  /* Styles applied to the root element if `variant=\"filled\"`. */\n  filled: {\n    '&$positionStart:not($hiddenLabel)': {\n      marginTop: 16\n    }\n  },\n\n  /* Styles applied to the root element if `position=\"start\"`. */\n  positionStart: {\n    marginRight: 8\n  },\n\n  /* Styles applied to the root element if `position=\"end\"`. */\n  positionEnd: {\n    marginLeft: 8\n  },\n\n  /* Styles applied to the root element if `disablePointerEvents=true`. */\n  disablePointerEvents: {\n    pointerEvents: 'none'\n  },\n\n  /* Styles applied if the adornment is used inside <FormControl hiddenLabel />. */\n  hiddenLabel: {},\n\n  /* Styles applied if the adornment is used inside <FormControl margin=\"dense\" />. */\n  marginDense: {}\n};\nvar InputAdornment = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function InputAdornment(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disablePointer = props.disablePointerEvents,\n      disablePointerEvents = _props$disablePointer === void 0 ? false : _props$disablePointer,\n      _props$disableTypogra = props.disableTypography,\n      disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n      position = props.position,\n      variantProp = props.variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"]);\n\n  var muiFormControl = Object(_FormControl_FormControlContext__WEBPACK_IMPORTED_MODULE_7__[\"useFormControl\"])() || {};\n  var variant = variantProp;\n\n  if (variantProp && muiFormControl.variant) {\n    if (true) {\n      if (variantProp === muiFormControl.variant) {\n        console.error('Material-UI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n      }\n    }\n  }\n\n  if (muiFormControl && !variant) {\n    variant = muiFormControl.variant;\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_FormControl_FormControlContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Provider, {\n    value: null\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, disablePointerEvents && classes.disablePointerEvents, muiFormControl.hiddenLabel && classes.hiddenLabel, variant === 'filled' && classes.filled, {\n      'start': classes.positionStart,\n      'end': classes.positionEnd\n    }[position], muiFormControl.margin === 'dense' && classes.marginDense),\n    ref: ref\n  }, other), typeof children === 'string' && !disableTypography ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n    color: \"textSecondary\"\n  }, children) : children));\n});\n true ? InputAdornment.propTypes = {\n  /**\n   * The content of the component, normally an `IconButton` or string.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Disable pointer events on the root.\n   * This allows for the content of the adornment to focus the input on click.\n   */\n  disablePointerEvents: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If children is a string then disable wrapping in a Typography component.\n   */\n  disableTypography: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  muiFormControl: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The position this adornment should appear relative to the `Input`.\n   */\n  position: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['start', 'end']),\n\n  /**\n   * The variant to use.\n   * Note: If you are using the `TextField` component or the `FormControl` component\n   * you do not have to set this manually.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['standard', 'outlined', 'filled'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiInputAdornment'\n})(InputAdornment));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputAdornment/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputAdornment/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _InputAdornment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InputAdornment */ \"./node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _InputAdornment__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputAdornment/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputBase/InputBase.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputBase/InputBase.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _FormControl_formControlState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl/formControlState */ \"./node_modules/@material-ui/core/esm/FormControl/formControlState.js\");\n/* harmony import */ var _FormControl_FormControlContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../FormControl/FormControlContext */ \"./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _TextareaAutosize__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../TextareaAutosize */ \"./node_modules/@material-ui/core/esm/TextareaAutosize/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils */ \"./node_modules/@material-ui/core/esm/InputBase/utils.js\");\n\n\n\n\n/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var placeholder = {\n    color: 'currentColor',\n    opacity: light ? 0.42 : 0.5,\n    transition: theme.transitions.create('opacity', {\n      duration: theme.transitions.duration.shorter\n    })\n  };\n  var placeholderHidden = {\n    opacity: '0 !important'\n  };\n  var placeholderVisible = {\n    opacity: light ? 0.42 : 0.5\n  };\n  return {\n    '@global': {\n      '@keyframes mui-auto-fill': {},\n      '@keyframes mui-auto-fill-cancel': {}\n    },\n\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.typography.body1, {\n      color: theme.palette.text.primary,\n      lineHeight: '1.1876em',\n      // Reset (19px), match the native input line-height\n      boxSizing: 'border-box',\n      // Prevent padding issue with fullWidth.\n      position: 'relative',\n      cursor: 'text',\n      display: 'inline-flex',\n      alignItems: 'center',\n      '&$disabled': {\n        color: theme.palette.text.disabled,\n        cursor: 'default'\n      }\n    }),\n\n    /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n    formControl: {},\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `startAdornment` is provided. */\n    adornedStart: {},\n\n    /* Styles applied to the root element if `endAdornment` is provided. */\n    adornedEnd: {},\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    marginDense: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {\n      padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n      '&$marginDense': {\n        paddingTop: 4 - 1\n      }\n    },\n\n    /* Styles applied to the root element if the color is secondary. */\n    colorSecondary: {},\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {\n      width: '100%'\n    },\n\n    /* Styles applied to the `input` element. */\n    input: {\n      font: 'inherit',\n      letterSpacing: 'inherit',\n      color: 'currentColor',\n      padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n      border: 0,\n      boxSizing: 'content-box',\n      background: 'none',\n      height: '1.1876em',\n      // Reset (19px), match the native input line-height\n      margin: 0,\n      // Reset for Safari\n      WebkitTapHighlightColor: 'transparent',\n      display: 'block',\n      // Make the flex item shrink with Firefox\n      minWidth: 0,\n      width: '100%',\n      // Fix IE 11 width issue\n      animationName: 'mui-auto-fill-cancel',\n      animationDuration: '10ms',\n      '&::-webkit-input-placeholder': placeholder,\n      '&::-moz-placeholder': placeholder,\n      // Firefox 19+\n      '&:-ms-input-placeholder': placeholder,\n      // IE 11\n      '&::-ms-input-placeholder': placeholder,\n      // Edge\n      '&:focus': {\n        outline: 0\n      },\n      // Reset Firefox invalid required input style\n      '&:invalid': {\n        boxShadow: 'none'\n      },\n      '&::-webkit-search-decoration': {\n        // Remove the padding when type=search.\n        '-webkit-appearance': 'none'\n      },\n      // Show and hide the placeholder logic\n      'label[data-shrink=false] + $formControl &': {\n        '&::-webkit-input-placeholder': placeholderHidden,\n        '&::-moz-placeholder': placeholderHidden,\n        // Firefox 19+\n        '&:-ms-input-placeholder': placeholderHidden,\n        // IE 11\n        '&::-ms-input-placeholder': placeholderHidden,\n        // Edge\n        '&:focus::-webkit-input-placeholder': placeholderVisible,\n        '&:focus::-moz-placeholder': placeholderVisible,\n        // Firefox 19+\n        '&:focus:-ms-input-placeholder': placeholderVisible,\n        // IE 11\n        '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n\n      },\n      '&$disabled': {\n        opacity: 1 // Reset iOS opacity\n\n      },\n      '&:-webkit-autofill': {\n        animationDuration: '5000s',\n        animationName: 'mui-auto-fill'\n      }\n    },\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {\n      paddingTop: 4 - 1\n    },\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {\n      height: 'auto',\n      resize: 'none',\n      padding: 0\n    },\n\n    /* Styles applied to the `input` element if `type=\"search\"`. */\n    inputTypeSearch: {\n      // Improve type search style.\n      '-moz-appearance': 'textfield',\n      '-webkit-appearance': 'textfield'\n    },\n\n    /* Styles applied to the `input` element if `startAdornment` is provided. */\n    inputAdornedStart: {},\n\n    /* Styles applied to the `input` element if `endAdornment` is provided. */\n    inputAdornedEnd: {},\n\n    /* Styles applied to the `input` element if `hiddenLabel={true}`. */\n    inputHiddenLabel: {}\n  };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"] : react__WEBPACK_IMPORTED_MODULE_3__[\"useLayoutEffect\"];\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\n\nvar InputBase = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function InputBase(props, ref) {\n  var ariaDescribedby = props['aria-describedby'],\n      autoComplete = props.autoComplete,\n      autoFocus = props.autoFocus,\n      classes = props.classes,\n      className = props.className,\n      color = props.color,\n      defaultValue = props.defaultValue,\n      disabled = props.disabled,\n      endAdornment = props.endAdornment,\n      error = props.error,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      id = props.id,\n      _props$inputComponent = props.inputComponent,\n      inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n      _props$inputProps = props.inputProps,\n      inputPropsProp = _props$inputProps === void 0 ? {} : _props$inputProps,\n      inputRefProp = props.inputRef,\n      margin = props.margin,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      name = props.name,\n      onBlur = props.onBlur,\n      onChange = props.onChange,\n      onClick = props.onClick,\n      onFocus = props.onFocus,\n      onKeyDown = props.onKeyDown,\n      onKeyUp = props.onKeyUp,\n      placeholder = props.placeholder,\n      readOnly = props.readOnly,\n      renderSuffix = props.renderSuffix,\n      rows = props.rows,\n      rowsMax = props.rowsMax,\n      rowsMin = props.rowsMin,\n      startAdornment = props.startAdornment,\n      _props$type = props.type,\n      type = _props$type === void 0 ? 'text' : _props$type,\n      valueProp = props.value,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"classes\", \"className\", \"color\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"rowsMax\", \"rowsMin\", \"startAdornment\", \"type\", \"value\"]);\n\n  var value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n\n  var _React$useRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](value != null),\n      isControlled = _React$useRef.current;\n\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n  var handleInputRefWarning = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function (instance) {\n    if (true) {\n      if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n        console.error(['Material-UI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `inputRef` prop.', 'Make sure the `inputRef` prop is called with a HTMLInputElement.'].join('\\n'));\n      }\n    }\n  }, []);\n  var handleInputPropsRefProp = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(inputPropsProp.ref, handleInputRefWarning);\n  var handleInputRefProp = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(inputRefProp, handleInputPropsRefProp);\n  var handleInputRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(inputRef, handleInputRefProp);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"](false),\n      focused = _React$useState[0],\n      setFocused = _React$useState[1];\n\n  var muiFormControl = Object(_FormControl_FormControlContext__WEBPACK_IMPORTED_MODULE_7__[\"useFormControl\"])();\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n      if (muiFormControl) {\n        return muiFormControl.registerEffect();\n      }\n\n      return undefined;\n    }, [muiFormControl]);\n  }\n\n  var fcs = Object(_FormControl_formControlState__WEBPACK_IMPORTED_MODULE_6__[\"default\"])({\n    props: props,\n    muiFormControl: muiFormControl,\n    states: ['color', 'disabled', 'error', 'hiddenLabel', 'margin', 'required', 'filled']\n  });\n  fcs.focused = muiFormControl ? muiFormControl.focused : focused; // The blur won't fire when the disabled state is set on a focused input.\n  // We need to book keep the focused state manually.\n\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    if (!muiFormControl && disabled && focused) {\n      setFocused(false);\n\n      if (onBlur) {\n        onBlur();\n      }\n    }\n  }, [muiFormControl, disabled, focused, onBlur]);\n  var onFilled = muiFormControl && muiFormControl.onFilled;\n  var onEmpty = muiFormControl && muiFormControl.onEmpty;\n  var checkDirty = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function (obj) {\n    if (Object(_utils__WEBPACK_IMPORTED_MODULE_12__[\"isFilled\"])(obj)) {\n      if (onFilled) {\n        onFilled();\n      }\n    } else if (onEmpty) {\n      onEmpty();\n    }\n  }, [onFilled, onEmpty]);\n  useEnhancedEffect(function () {\n    if (isControlled) {\n      checkDirty({\n        value: value\n      });\n    }\n  }, [value, checkDirty, isControlled]);\n\n  var handleFocus = function handleFocus(event) {\n    // Fix a bug with IE 11 where the focus/blur events are triggered\n    // while the input is disabled.\n    if (fcs.disabled) {\n      event.stopPropagation();\n      return;\n    }\n\n    if (onFocus) {\n      onFocus(event);\n    }\n\n    if (inputPropsProp.onFocus) {\n      inputPropsProp.onFocus(event);\n    }\n\n    if (muiFormControl && muiFormControl.onFocus) {\n      muiFormControl.onFocus(event);\n    } else {\n      setFocused(true);\n    }\n  };\n\n  var handleBlur = function handleBlur(event) {\n    if (onBlur) {\n      onBlur(event);\n    }\n\n    if (inputPropsProp.onBlur) {\n      inputPropsProp.onBlur(event);\n    }\n\n    if (muiFormControl && muiFormControl.onBlur) {\n      muiFormControl.onBlur(event);\n    } else {\n      setFocused(false);\n    }\n  };\n\n  var handleChange = function handleChange(event) {\n    if (!isControlled) {\n      var element = event.target || inputRef.current;\n\n      if (element == null) {\n        throw new Error( true ? \"Material-UI: Expected valid input target. Did you use a custom `inputComponent` and forget to forward refs? See https://material-ui.com/r/input-component-ref-interface for more info.\" : undefined);\n      }\n\n      checkDirty({\n        value: element.value\n      });\n    }\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    if (inputPropsProp.onChange) {\n      inputPropsProp.onChange.apply(inputPropsProp, [event].concat(args));\n    } // Perform in the willUpdate\n\n\n    if (onChange) {\n      onChange.apply(void 0, [event].concat(args));\n    }\n  }; // Check the input state on mount, in case it was filled by the user\n  // or auto filled by the browser before the hydration (for SSR).\n\n\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    checkDirty(inputRef.current);\n  }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n  var handleClick = function handleClick(event) {\n    if (inputRef.current && event.currentTarget === event.target) {\n      inputRef.current.focus();\n    }\n\n    if (onClick) {\n      onClick(event);\n    }\n  };\n\n  var InputComponent = inputComponent;\n\n  var inputProps = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, inputPropsProp, {\n    ref: handleInputRef\n  });\n\n  if (typeof InputComponent !== 'string') {\n    inputProps = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      // Rename ref to inputRef as we don't know the\n      // provided `inputComponent` structure.\n      inputRef: handleInputRef,\n      type: type\n    }, inputProps, {\n      ref: null\n    });\n  } else if (multiline) {\n    if (rows && !rowsMax && !rowsMin) {\n      InputComponent = 'textarea';\n    } else {\n      inputProps = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        rows: rows,\n        rowsMax: rowsMax\n      }, inputProps);\n      InputComponent = _TextareaAutosize__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n    }\n  } else {\n    inputProps = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      type: type\n    }, inputProps);\n  }\n\n  var handleAutoFill = function handleAutoFill(event) {\n    // Provide a fake value as Chrome might not let you access it for security reasons.\n    checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n      value: 'x'\n    });\n  };\n\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    if (muiFormControl) {\n      muiFormControl.setAdornedStart(Boolean(startAdornment));\n    }\n  }, [muiFormControl, startAdornment]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fullWidth && classes.fullWidth, fcs.focused && classes.focused, muiFormControl && classes.formControl, multiline && classes.multiline, startAdornment && classes.adornedStart, endAdornment && classes.adornedEnd, fcs.margin === 'dense' && classes.marginDense),\n    onClick: handleClick,\n    ref: ref\n  }, other), startAdornment, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_FormControl_FormControlContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Provider, {\n    value: null\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](InputComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    \"aria-invalid\": fcs.error,\n    \"aria-describedby\": ariaDescribedby,\n    autoComplete: autoComplete,\n    autoFocus: autoFocus,\n    defaultValue: defaultValue,\n    disabled: fcs.disabled,\n    id: id,\n    onAnimationStart: handleAutoFill,\n    name: name,\n    placeholder: placeholder,\n    readOnly: readOnly,\n    required: fcs.required,\n    rows: rows,\n    value: value,\n    onKeyDown: onKeyDown,\n    onKeyUp: onKeyUp\n  }, inputProps, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.input, inputPropsProp.className, fcs.disabled && classes.disabled, multiline && classes.inputMultiline, fcs.hiddenLabel && classes.inputHiddenLabel, startAdornment && classes.inputAdornedStart, endAdornment && classes.inputAdornedEnd, type === 'search' && classes.inputTypeSearch, fcs.margin === 'dense' && classes.inputMarginDense),\n    onBlur: handleBlur,\n    onChange: handleChange,\n    onFocus: handleFocus\n  }))), endAdornment, renderSuffix ? renderSuffix(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, fcs, {\n    startAdornment: startAdornment\n  })) : null);\n});\n true ? InputBase.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * @ignore\n   */\n  'aria-describedby': prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * This prop helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n   */\n  autoComplete: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * If `true`, the `input` element will be focused during the first mount.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The default `input` element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any,\n\n  /**\n   * If `true`, the `input` element will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The component used for the `input` element.\n   * Either a string to use a HTML element or a component.\n   */\n  inputComponent: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.elementType,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"refType\"],\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Callback fired when the input is blurred.\n   *\n   * Notice that the first argument (event) might be undefined.\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onKeyUp: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  renderSuffix: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string]),\n\n  /**\n   * Minimum number of rows to display when multiline option is set to true.\n   */\n  rowsMin: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The value of the `input` element, required for a controlled component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(styles, {\n  name: 'MuiInputBase'\n})(InputBase));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputBase/InputBase.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputBase/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputBase/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _InputBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InputBase */ \"./node_modules/@material-ui/core/esm/InputBase/InputBase.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _InputBase__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputBase/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputBase/utils.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputBase/utils.js ***!
  \***************************************************************/
/*! exports provided: hasValue, isFilled, isAdornedStart */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasValue\", function() { return hasValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFilled\", function() { return isFilled; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAdornedStart\", function() { return isAdornedStart; });\n// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nfunction hasValue(value) {\n  return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n//                    True when any number or string with length.\n\nfunction isFilled(obj) {\n  var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n//                    True when adorned at the start.\n\nfunction isAdornedStart(obj) {\n  return obj.startAdornment;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputBase/utils.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _FormControl_formControlState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../FormControl/formControlState */ \"./node_modules/@material-ui/core/esm/FormControl/formControlState.js\");\n/* harmony import */ var _FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl/useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _FormLabel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../FormLabel */ \"./node_modules/@material-ui/core/esm/FormLabel/index.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      transformOrigin: 'top left'\n    },\n\n    /* Pseudo-class applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Pseudo-class applied to the root element if `required={true}`. */\n    required: {},\n\n    /* Pseudo-class applied to the asterisk element. */\n    asterisk: {},\n\n    /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n    formControl: {\n      position: 'absolute',\n      left: 0,\n      top: 0,\n      // slight alteration to spec spacing to match visual spec result\n      transform: 'translate(0, 24px) scale(1)'\n    },\n\n    /* Styles applied to the root element if `margin=\"dense\"`. */\n    marginDense: {\n      // Compensation for the `Input.inputDense` style.\n      transform: 'translate(0, 21px) scale(1)'\n    },\n\n    /* Styles applied to the `input` element if `shrink={true}`. */\n    shrink: {\n      transform: 'translate(0, 1.5px) scale(0.75)',\n      transformOrigin: 'top left'\n    },\n\n    /* Styles applied to the `input` element if `disableAnimation={false}`. */\n    animated: {\n      transition: theme.transitions.create(['color', 'transform'], {\n        duration: theme.transitions.duration.shorter,\n        easing: theme.transitions.easing.easeOut\n      })\n    },\n\n    /* Styles applied to the root element if `variant=\"filled\"`. */\n    filled: {\n      // Chrome's autofill feature gives the input field a yellow background.\n      // Since the input field is behind the label in the HTML tree,\n      // the input field is drawn last and hides the label with an opaque background color.\n      // zIndex: 1 will raise the label above opaque background-colors of input.\n      zIndex: 1,\n      pointerEvents: 'none',\n      transform: 'translate(12px, 20px) scale(1)',\n      '&$marginDense': {\n        transform: 'translate(12px, 17px) scale(1)'\n      },\n      '&$shrink': {\n        transform: 'translate(12px, 10px) scale(0.75)',\n        '&$marginDense': {\n          transform: 'translate(12px, 7px) scale(0.75)'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      // see comment above on filled.zIndex\n      zIndex: 1,\n      pointerEvents: 'none',\n      transform: 'translate(14px, 20px) scale(1)',\n      '&$marginDense': {\n        transform: 'translate(14px, 12px) scale(1)'\n      },\n      '&$shrink': {\n        transform: 'translate(14px, -6px) scale(0.75)'\n      }\n    }\n  };\n};\nvar InputLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function InputLabel(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$disableAnimati = props.disableAnimation,\n      disableAnimation = _props$disableAnimati === void 0 ? false : _props$disableAnimati,\n      margin = props.margin,\n      shrinkProp = props.shrink,\n      variant = props.variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"disableAnimation\", \"margin\", \"shrink\", \"variant\"]);\n\n  var muiFormControl = Object(_FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n  var shrink = shrinkProp;\n\n  if (typeof shrink === 'undefined' && muiFormControl) {\n    shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n  }\n\n  var fcs = Object(_FormControl_formControlState__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n    props: props,\n    muiFormControl: muiFormControl,\n    states: ['margin', 'variant']\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_FormLabel__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    \"data-shrink\": shrink,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, muiFormControl && classes.formControl, !disableAnimation && classes.animated, shrink && classes.shrink, fcs.margin === 'dense' && classes.marginDense, {\n      'filled': classes.filled,\n      'outlined': classes.outlined\n    }[fcs.variant]),\n    classes: {\n      focused: classes.focused,\n      disabled: classes.disabled,\n      error: classes.error,\n      required: classes.required,\n      asterisk: classes.asterisk\n    },\n    ref: ref\n  }, other));\n});\n true ? InputLabel.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The contents of the `InputLabel`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * If `true`, the transition animation is disabled.\n   */\n  disableAnimation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, apply disabled class.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label will be displayed in an error state.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input of this label is focused.\n   */\n  focused: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense']),\n\n  /**\n   * if `true`, the label will indicate that the input is required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label is shrunk.\n   */\n  shrink: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['filled', 'outlined', 'standard'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiInputLabel'\n})(InputLabel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/InputLabel/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/InputLabel/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _InputLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InputLabel */ \"./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _InputLabel__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/InputLabel/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/LinearProgress/LinearProgress.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/LinearProgress/LinearProgress.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n\n\n\n\n\nvar TRANSITION_DURATION = 4; // seconds\n\nvar styles = function styles(theme) {\n  var getColor = function getColor(color) {\n    return theme.palette.type === 'light' ? Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"lighten\"])(color, 0.62) : Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"darken\"])(color, 0.5);\n  };\n\n  var backgroundPrimary = getColor(theme.palette.primary.main);\n  var backgroundSecondary = getColor(theme.palette.secondary.main);\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      overflow: 'hidden',\n      height: 4,\n      '@media print': {\n        colorAdjust: 'exact'\n      }\n    },\n\n    /* Styles applied to the root and bar2 element if `color=\"primary\"`; bar2 if `variant=\"buffer\"`. */\n    colorPrimary: {\n      backgroundColor: backgroundPrimary\n    },\n\n    /* Styles applied to the root and bar2 elements if `color=\"secondary\"`; bar2 if `variant=\"buffer\"`. */\n    colorSecondary: {\n      backgroundColor: backgroundSecondary\n    },\n\n    /* Styles applied to the root element if `variant=\"determinate\"`. */\n    determinate: {},\n\n    /* Styles applied to the root element if `variant=\"indeterminate\"`. */\n    indeterminate: {},\n\n    /* Styles applied to the root element if `variant=\"buffer\"`. */\n    buffer: {\n      backgroundColor: 'transparent'\n    },\n\n    /* Styles applied to the root element if `variant=\"query\"`. */\n    query: {\n      transform: 'rotate(180deg)'\n    },\n\n    /* Styles applied to the additional bar element if `variant=\"buffer\"`. */\n    dashed: {\n      position: 'absolute',\n      marginTop: 0,\n      height: '100%',\n      width: '100%',\n      animation: '$buffer 3s infinite linear'\n    },\n\n    /* Styles applied to the additional bar element if `variant=\"buffer\"` and `color=\"primary\"`. */\n    dashedColorPrimary: {\n      backgroundImage: \"radial-gradient(\".concat(backgroundPrimary, \" 0%, \").concat(backgroundPrimary, \" 16%, transparent 42%)\"),\n      backgroundSize: '10px 10px',\n      backgroundPosition: '0 -23px'\n    },\n\n    /* Styles applied to the additional bar element if `variant=\"buffer\"` and `color=\"secondary\"`. */\n    dashedColorSecondary: {\n      backgroundImage: \"radial-gradient(\".concat(backgroundSecondary, \" 0%, \").concat(backgroundSecondary, \" 16%, transparent 42%)\"),\n      backgroundSize: '10px 10px',\n      backgroundPosition: '0 -23px'\n    },\n\n    /* Styles applied to the layered bar1 and bar2 elements. */\n    bar: {\n      width: '100%',\n      position: 'absolute',\n      left: 0,\n      bottom: 0,\n      top: 0,\n      transition: 'transform 0.2s linear',\n      transformOrigin: 'left'\n    },\n\n    /* Styles applied to the bar elements if `color=\"primary\"`; bar2 if `variant` not \"buffer\". */\n    barColorPrimary: {\n      backgroundColor: theme.palette.primary.main\n    },\n\n    /* Styles applied to the bar elements if `color=\"secondary\"`; bar2 if `variant` not \"buffer\". */\n    barColorSecondary: {\n      backgroundColor: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the bar1 element if `variant=\"indeterminate or query\"`. */\n    bar1Indeterminate: {\n      width: 'auto',\n      animation: '$indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite'\n    },\n\n    /* Styles applied to the bar1 element if `variant=\"determinate\"`. */\n    bar1Determinate: {\n      transition: \"transform .\".concat(TRANSITION_DURATION, \"s linear\")\n    },\n\n    /* Styles applied to the bar1 element if `variant=\"buffer\"`. */\n    bar1Buffer: {\n      zIndex: 1,\n      transition: \"transform .\".concat(TRANSITION_DURATION, \"s linear\")\n    },\n\n    /* Styles applied to the bar2 element if `variant=\"indeterminate or query\"`. */\n    bar2Indeterminate: {\n      width: 'auto',\n      animation: '$indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite'\n    },\n\n    /* Styles applied to the bar2 element if `variant=\"buffer\"`. */\n    bar2Buffer: {\n      transition: \"transform .\".concat(TRANSITION_DURATION, \"s linear\")\n    },\n    // Legends:\n    // || represents the viewport\n    // -  represents a light background\n    // x  represents a dark background\n    '@keyframes indeterminate1': {\n      //  |-----|---x-||-----||-----|\n      '0%': {\n        left: '-35%',\n        right: '100%'\n      },\n      //  |-----|-----||-----||xxxx-|\n      '60%': {\n        left: '100%',\n        right: '-90%'\n      },\n      '100%': {\n        left: '100%',\n        right: '-90%'\n      }\n    },\n    '@keyframes indeterminate2': {\n      //  |xxxxx|xxxxx||-----||-----|\n      '0%': {\n        left: '-200%',\n        right: '100%'\n      },\n      //  |-----|-----||-----||-x----|\n      '60%': {\n        left: '107%',\n        right: '-8%'\n      },\n      '100%': {\n        left: '107%',\n        right: '-8%'\n      }\n    },\n    '@keyframes buffer': {\n      '0%': {\n        opacity: 1,\n        backgroundPosition: '0 -23px'\n      },\n      '50%': {\n        opacity: 0,\n        backgroundPosition: '0 -23px'\n      },\n      '100%': {\n        opacity: 1,\n        backgroundPosition: '-200px -23px'\n      }\n    }\n  };\n};\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nvar LinearProgress = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function LinearProgress(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      value = props.value,\n      valueBuffer = props.valueBuffer,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'indeterminate' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"value\", \"valueBuffer\", \"variant\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n  var rootProps = {};\n  var inlineStyles = {\n    bar1: {},\n    bar2: {}\n  };\n\n  if (variant === 'determinate' || variant === 'buffer') {\n    if (value !== undefined) {\n      rootProps['aria-valuenow'] = Math.round(value);\n      rootProps['aria-valuemin'] = 0;\n      rootProps['aria-valuemax'] = 100;\n      var transform = value - 100;\n\n      if (theme.direction === 'rtl') {\n        transform = -transform;\n      }\n\n      inlineStyles.bar1.transform = \"translateX(\".concat(transform, \"%)\");\n    } else if (true) {\n      console.error('Material-UI: You need to provide a value prop ' + 'when using the determinate or buffer variant of LinearProgress .');\n    }\n  }\n\n  if (variant === 'buffer') {\n    if (valueBuffer !== undefined) {\n      var _transform = (valueBuffer || 0) - 100;\n\n      if (theme.direction === 'rtl') {\n        _transform = -_transform;\n      }\n\n      inlineStyles.bar2.transform = \"translateX(\".concat(_transform, \"%)\");\n    } else if (true) {\n      console.error('Material-UI: You need to provide a valueBuffer prop ' + 'when using the buffer variant of LinearProgress.');\n    }\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(color))], className, {\n      'determinate': classes.determinate,\n      'indeterminate': classes.indeterminate,\n      'buffer': classes.buffer,\n      'query': classes.query\n    }[variant]),\n    role: \"progressbar\"\n  }, rootProps, {\n    ref: ref\n  }, other), variant === 'buffer' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.dashed, classes[\"dashedColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(color))])\n  }) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.bar, classes[\"barColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(color))], (variant === 'indeterminate' || variant === 'query') && classes.bar1Indeterminate, {\n      'determinate': classes.bar1Determinate,\n      'buffer': classes.bar1Buffer\n    }[variant]),\n    style: inlineStyles.bar1\n  }), variant === 'determinate' ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.bar, (variant === 'indeterminate' || variant === 'query') && classes.bar2Indeterminate, variant === 'buffer' ? [classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(color))], classes.bar2Buffer] : classes[\"barColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(color))]),\n    style: inlineStyles.bar2\n  }));\n});\n true ? LinearProgress.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The value of the progress indicator for the determinate and buffer variants.\n   * Value between 0 and 100.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * The value for the buffer variant.\n   * Value between 0 and 100.\n   */\n  valueBuffer: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * The variant to use.\n   * Use indeterminate or query when there is no progress value.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['buffer', 'determinate', 'indeterminate', 'query'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiLinearProgress'\n})(LinearProgress));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/LinearProgress/LinearProgress.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/LinearProgress/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/LinearProgress/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _LinearProgress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LinearProgress */ \"./node_modules/@material-ui/core/esm/LinearProgress/LinearProgress.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _LinearProgress__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/LinearProgress/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Link/Link.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Link/Link.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/useIsFocusVisible */ \"./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {},\n\n  /* Styles applied to the root element if `underline=\"none\"`. */\n  underlineNone: {\n    textDecoration: 'none'\n  },\n\n  /* Styles applied to the root element if `underline=\"hover\"`. */\n  underlineHover: {\n    textDecoration: 'none',\n    '&:hover': {\n      textDecoration: 'underline'\n    }\n  },\n\n  /* Styles applied to the root element if `underline=\"always\"`. */\n  underlineAlways: {\n    textDecoration: 'underline'\n  },\n  // Same reset as ButtonBase.root\n\n  /* Styles applied to the root element if `component=\"button\"`. */\n  button: {\n    position: 'relative',\n    WebkitTapHighlightColor: 'transparent',\n    backgroundColor: 'transparent',\n    // Reset default value\n    // We disable the focus ring for mouse, touch and keyboard users.\n    outline: 0,\n    border: 0,\n    margin: 0,\n    // Remove the margin in Safari\n    borderRadius: 0,\n    padding: 0,\n    // Remove the padding in Firefox\n    cursor: 'pointer',\n    userSelect: 'none',\n    verticalAlign: 'middle',\n    '-moz-appearance': 'none',\n    // Reset\n    '-webkit-appearance': 'none',\n    // Reset\n    '&::-moz-focus-inner': {\n      borderStyle: 'none' // Remove Firefox dotted outline.\n\n    },\n    '&$focusVisible': {\n      outline: 'auto'\n    }\n  },\n\n  /* Pseudo-class applied to the root element if the link is keyboard focused. */\n  focusVisible: {}\n};\nvar Link = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Link(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$component = props.component,\n      component = _props$component === void 0 ? 'a' : _props$component,\n      onBlur = props.onBlur,\n      onFocus = props.onFocus,\n      TypographyClasses = props.TypographyClasses,\n      _props$underline = props.underline,\n      underline = _props$underline === void 0 ? 'hover' : _props$underline,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'inherit' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"component\", \"onBlur\", \"onFocus\", \"TypographyClasses\", \"underline\", \"variant\"]);\n\n  var _useIsFocusVisible = Object(_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(),\n      isFocusVisible = _useIsFocusVisible.isFocusVisible,\n      onBlurVisible = _useIsFocusVisible.onBlurVisible,\n      focusVisibleRef = _useIsFocusVisible.ref;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      focusVisible = _React$useState[0],\n      setFocusVisible = _React$useState[1];\n\n  var handlerRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(ref, focusVisibleRef);\n\n  var handleBlur = function handleBlur(event) {\n    if (focusVisible) {\n      onBlurVisible();\n      setFocusVisible(false);\n    }\n\n    if (onBlur) {\n      onBlur(event);\n    }\n  };\n\n  var handleFocus = function handleFocus(event) {\n    if (isFocusVisible(event)) {\n      setFocusVisible(true);\n    }\n\n    if (onFocus) {\n      onFocus(event);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"underline\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(underline))], className, focusVisible && classes.focusVisible, component === 'button' && classes.button),\n    classes: TypographyClasses,\n    color: color,\n    component: component,\n    onBlur: handleBlur,\n    onFocus: handleFocus,\n    ref: handlerRef,\n    variant: variant\n  }, other));\n});\n true ? Link.propTypes = {\n  /**\n   * The content of the link.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the link.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['initial', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary', 'error']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__[\"elementTypeAcceptingRef\"],\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * `classes` prop applied to the [`Typography`](/api/typography/) element.\n   */\n  TypographyClasses: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Controls when the link should have an underline.\n   */\n  underline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['none', 'hover', 'always']),\n\n  /**\n   * Applies the theme typography styles.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiLink'\n})(Link));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Link/Link.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Link/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Link/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Link */ \"./node_modules/@material-ui/core/esm/Link/Link.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Link__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Link/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/List/List.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/List/List.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ListContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ListContext */ \"./node_modules/@material-ui/core/esm/List/ListContext.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    listStyle: 'none',\n    margin: 0,\n    padding: 0,\n    position: 'relative'\n  },\n\n  /* Styles applied to the root element if `disablePadding={false}`. */\n  padding: {\n    paddingTop: 8,\n    paddingBottom: 8\n  },\n\n  /* Styles applied to the root element if dense. */\n  dense: {},\n\n  /* Styles applied to the root element if a `subheader` is provided. */\n  subheader: {\n    paddingTop: 0\n  }\n};\nvar List = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function List(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'ul' : _props$component,\n      _props$dense = props.dense,\n      dense = _props$dense === void 0 ? false : _props$dense,\n      _props$disablePadding = props.disablePadding,\n      disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding,\n      subheader = props.subheader,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"]);\n\n  var context = react__WEBPACK_IMPORTED_MODULE_2__[\"useMemo\"](function () {\n    return {\n      dense: dense\n    };\n  }, [dense]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ListContext__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n    value: context\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),\n    ref: ref\n  }, other), subheader, children));\n});\n true ? List.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input will be used for\n   * the list and list items.\n   * The prop is available to descendant components as the `dense` context.\n   */\n  dense: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, vertical padding will be removed from the list.\n   */\n  disablePadding: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The content of the subheader, normally `ListSubheader`.\n   */\n  subheader: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiList'\n})(List));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/List/List.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/List/ListContext.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/List/ListContext.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n */\n\nvar ListContext = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]({});\n\nif (true) {\n  ListContext.displayName = 'ListContext';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ListContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/List/ListContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/List/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/List/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./List */ \"./node_modules/@material-ui/core/esm/List/List.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _List__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/List/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItem/ListItem.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItem/ListItem.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/isMuiElement */ \"./node_modules/@material-ui/core/esm/utils/isMuiElement.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _List_ListContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../List/ListContext */ \"./node_modules/@material-ui/core/esm/List/ListContext.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_11__);\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */\n    root: {\n      display: 'flex',\n      justifyContent: 'flex-start',\n      alignItems: 'center',\n      position: 'relative',\n      textDecoration: 'none',\n      width: '100%',\n      boxSizing: 'border-box',\n      textAlign: 'left',\n      paddingTop: 8,\n      paddingBottom: 8,\n      '&$focusVisible': {\n        backgroundColor: theme.palette.action.selected\n      },\n      '&$selected, &$selected:hover': {\n        backgroundColor: theme.palette.action.selected\n      },\n      '&$disabled': {\n        opacity: 0.5\n      }\n    },\n\n    /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */\n    container: {\n      position: 'relative'\n    },\n\n    /* Pseudo-class applied to the `component`'s `focusVisibleClassName` prop if `button={true}`. */\n    focusVisible: {},\n\n    /* Styles applied to the `component` element if dense. */\n    dense: {\n      paddingTop: 4,\n      paddingBottom: 4\n    },\n\n    /* Styles applied to the `component` element if `alignItems=\"flex-start\"`. */\n    alignItemsFlexStart: {\n      alignItems: 'flex-start'\n    },\n\n    /* Pseudo-class applied to the inner `component` element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the inner `component` element if `divider={true}`. */\n    divider: {\n      borderBottom: \"1px solid \".concat(theme.palette.divider),\n      backgroundClip: 'padding-box'\n    },\n\n    /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n    gutters: {\n      paddingLeft: 16,\n      paddingRight: 16\n    },\n\n    /* Styles applied to the inner `component` element if `button={true}`. */\n    button: {\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&:hover': {\n        textDecoration: 'none',\n        backgroundColor: theme.palette.action.hover,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the `component` element if `children` includes `ListItemSecondaryAction`. */\n    secondaryAction: {\n      // Add some space to avoid collision as `ListItemSecondaryAction`\n      // is absolutely positioned.\n      paddingRight: 48\n    },\n\n    /* Pseudo-class applied to the root element if `selected={true}`. */\n    selected: {}\n  };\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"] : react__WEBPACK_IMPORTED_MODULE_2__[\"useLayoutEffect\"];\n/**\n * Uses an additional container component if `ListItemSecondaryAction` is the last child.\n */\n\nvar ListItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ListItem(props, ref) {\n  var _props$alignItems = props.alignItems,\n      alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,\n      _props$autoFocus = props.autoFocus,\n      autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n      _props$button = props.button,\n      button = _props$button === void 0 ? false : _props$button,\n      childrenProp = props.children,\n      classes = props.classes,\n      className = props.className,\n      componentProp = props.component,\n      _props$ContainerCompo = props.ContainerComponent,\n      ContainerComponent = _props$ContainerCompo === void 0 ? 'li' : _props$ContainerCompo,\n      _props$ContainerProps = props.ContainerProps;\n  _props$ContainerProps = _props$ContainerProps === void 0 ? {} : _props$ContainerProps;\n\n  var ContainerClassName = _props$ContainerProps.className,\n      ContainerProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_props$ContainerProps, [\"className\"]),\n      _props$dense = props.dense,\n      dense = _props$dense === void 0 ? false : _props$dense,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableGutters = props.disableGutters,\n      disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n      _props$divider = props.divider,\n      divider = _props$divider === void 0 ? false : _props$divider,\n      focusVisibleClassName = props.focusVisibleClassName,\n      _props$selected = props.selected,\n      selected = _props$selected === void 0 ? false : _props$selected,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"alignItems\", \"autoFocus\", \"button\", \"children\", \"classes\", \"className\", \"component\", \"ContainerComponent\", \"ContainerProps\", \"dense\", \"disabled\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"]);\n\n  var context = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_List_ListContext__WEBPACK_IMPORTED_MODULE_10__[\"default\"]);\n  var childContext = {\n    dense: dense || context.dense || false,\n    alignItems: alignItems\n  };\n  var listItemRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  useEnhancedEffect(function () {\n    if (autoFocus) {\n      if (listItemRef.current) {\n        listItemRef.current.focus();\n      } else if (true) {\n        console.error('Material-UI: Unable to set focus to a ListItem whose component has not been rendered.');\n      }\n    }\n  }, [autoFocus]);\n  var children = react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].toArray(childrenProp);\n  var hasSecondaryAction = children.length && Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(children[children.length - 1], ['ListItemSecondaryAction']);\n  var handleOwnRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    listItemRef.current = react_dom__WEBPACK_IMPORTED_MODULE_11__[\"findDOMNode\"](instance);\n  }, []);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(handleOwnRef, ref);\n\n  var componentProps = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems !== \"center\" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),\n    disabled: disabled\n  }, other);\n\n  var Component = componentProp || 'li';\n\n  if (button) {\n    componentProps.component = componentProp || 'div';\n    componentProps.focusVisibleClassName = Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.focusVisible, focusVisibleClassName);\n    Component = _ButtonBase__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n  }\n\n  if (hasSecondaryAction) {\n    // Use div by default.\n    Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.\n\n    if (ContainerComponent === 'li') {\n      if (Component === 'li') {\n        Component = 'div';\n      } else if (componentProps.component === 'li') {\n        componentProps.component = 'div';\n      }\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_List_ListContext__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Provider, {\n      value: childContext\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](ContainerComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.container, ContainerClassName),\n      ref: handleRef\n    }, ContainerProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, componentProps, children), children.pop()));\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_List_ListContext__WEBPACK_IMPORTED_MODULE_10__[\"default\"].Provider, {\n    value: childContext\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: handleRef\n  }, componentProps), children));\n});\n true ? ListItem.propTypes = {\n  /**\n   * Defines the `align-items` style property.\n   */\n  alignItems: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['flex-start', 'center']),\n\n  /**\n   * If `true`, the list item will be focused during the first mount.\n   * Focus will also be triggered if the value changes from false to true.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the list item will be a button (using `ButtonBase`). Props intended\n   * for `ButtonBase` can then be applied to `ListItem`.\n   */\n  button: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The content of the component. If a `ListItemSecondaryAction` is used it must\n   * be the last child.\n   */\n  children: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node, function (props) {\n    var children = react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].toArray(props.children); // React.Children.toArray(props.children).findLastIndex(isListItemSecondaryAction)\n\n    var secondaryActionIndex = -1;\n\n    for (var i = children.length - 1; i >= 0; i -= 1) {\n      var child = children[i];\n\n      if (Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(child, ['ListItemSecondaryAction'])) {\n        secondaryActionIndex = i;\n        break;\n      }\n    } //  is ListItemSecondaryAction the last child of ListItem\n\n\n    if (secondaryActionIndex !== -1 && secondaryActionIndex !== children.length - 1) {\n      return new Error('Material-UI: You used an element after ListItemSecondaryAction. ' + 'For ListItem to detect that it has a secondary action ' + 'you must pass it as the last child to ListItem.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The container component used when a `ListItemSecondaryAction` is the last child.\n   */\n  ContainerComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * Props applied to the container component if used.\n   */\n  ContainerProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n   */\n  dense: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the list item will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the left and right padding is removed.\n   */\n  disableGutters: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, a 1px light border is added to the bottom of the list item.\n   */\n  divider: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Use to apply selected styling.\n   */\n  selected: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiListItem'\n})(ListItem));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItem/ListItem.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItem/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItem/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListItem */ \"./node_modules/@material-ui/core/esm/ListItem/ListItem.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ListItem__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItem/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemAvatar/ListItemAvatar.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemAvatar/ListItemAvatar.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _List_ListContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../List/ListContext */ \"./node_modules/@material-ui/core/esm/List/ListContext.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    minWidth: 56,\n    flexShrink: 0\n  },\n\n  /* Styles applied to the root element when the parent `ListItem` uses `alignItems=\"flex-start\"`. */\n  alignItemsFlexStart: {\n    marginTop: 8\n  }\n};\n/**\n * A simple wrapper to apply `List` styles to an `Avatar`.\n */\n\nvar ListItemAvatar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ListItemAvatar(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\"]);\n\n  var context = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_List_ListContext__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, context.alignItems === 'flex-start' && classes.alignItemsFlexStart),\n    ref: ref\n  }, other));\n});\n true ? ListItemAvatar.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component – normally `Avatar`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiListItemAvatar'\n})(ListItemAvatar));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemAvatar/ListItemAvatar.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemAvatar/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemAvatar/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListItemAvatar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListItemAvatar */ \"./node_modules/@material-ui/core/esm/ListItemAvatar/ListItemAvatar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ListItemAvatar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemAvatar/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js ***!
  \*************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _List_ListContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../List/ListContext */ \"./node_modules/@material-ui/core/esm/List/ListContext.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      minWidth: 56,\n      color: theme.palette.action.active,\n      flexShrink: 0,\n      display: 'inline-flex'\n    },\n\n    /* Styles applied to the root element when the parent `ListItem` uses `alignItems=\"flex-start\"`. */\n    alignItemsFlexStart: {\n      marginTop: 8\n    }\n  };\n};\n/**\n * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.\n */\n\nvar ListItemIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ListItemIcon(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\"]);\n\n  var context = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_List_ListContext__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, context.alignItems === 'flex-start' && classes.alignItemsFlexStart),\n    ref: ref\n  }, other));\n});\n true ? ListItemIcon.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component, normally `Icon`, `SvgIcon`,\n   * or a `@material-ui/icons` SVG icon element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiListItemIcon'\n})(ListItemIcon));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemIcon/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemIcon/index.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListItemIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListItemIcon */ \"./node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ListItemIcon__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemIcon/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemSecondaryAction/ListItemSecondaryAction.js":
/*!***********************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemSecondaryAction/ListItemSecondaryAction.js ***!
  \***********************************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    position: 'absolute',\n    right: 16,\n    top: '50%',\n    transform: 'translateY(-50%)'\n  }\n};\n/**\n * Must be used as the last child of ListItem to function properly.\n */\n\nvar ListItemSecondaryAction = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ListItemSecondaryAction(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other));\n});\n true ? ListItemSecondaryAction.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component, normally an `IconButton` or selection control.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiListItemSecondaryAction'\n})(ListItemSecondaryAction));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemSecondaryAction/ListItemSecondaryAction.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemSecondaryAction/index.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemSecondaryAction/index.js ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListItemSecondaryAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListItemSecondaryAction */ \"./node_modules/@material-ui/core/esm/ListItemSecondaryAction/ListItemSecondaryAction.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ListItemSecondaryAction__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemSecondaryAction/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js ***!
  \*************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony import */ var _List_ListContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../List/ListContext */ \"./node_modules/@material-ui/core/esm/List/ListContext.js\");\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    flex: '1 1 auto',\n    minWidth: 0,\n    marginTop: 4,\n    marginBottom: 4\n  },\n\n  /* Styles applied to the `Typography` components if primary and secondary are set. */\n  multiline: {\n    marginTop: 6,\n    marginBottom: 6\n  },\n\n  /* Styles applied to the `Typography` components if dense. */\n  dense: {},\n\n  /* Styles applied to the root element if `inset={true}`. */\n  inset: {\n    paddingLeft: 56\n  },\n\n  /* Styles applied to the primary `Typography` component. */\n  primary: {},\n\n  /* Styles applied to the secondary `Typography` component. */\n  secondary: {}\n};\nvar ListItemText = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ListItemText(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$disableTypogra = props.disableTypography,\n      disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n      _props$inset = props.inset,\n      inset = _props$inset === void 0 ? false : _props$inset,\n      primaryProp = props.primary,\n      primaryTypographyProps = props.primaryTypographyProps,\n      secondaryProp = props.secondary,\n      secondaryTypographyProps = props.secondaryTypographyProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"disableTypography\", \"inset\", \"primary\", \"primaryTypographyProps\", \"secondary\", \"secondaryTypographyProps\"]);\n\n  var _React$useContext = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_List_ListContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n      dense = _React$useContext.dense;\n\n  var primary = primaryProp != null ? primaryProp : children;\n\n  if (primary != null && primary.type !== _Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && !disableTypography) {\n    primary = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      variant: dense ? 'body2' : 'body1',\n      className: classes.primary,\n      component: \"span\",\n      display: \"block\"\n    }, primaryTypographyProps), primary);\n  }\n\n  var secondary = secondaryProp;\n\n  if (secondary != null && secondary.type !== _Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && !disableTypography) {\n    secondary = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      variant: \"body2\",\n      className: classes.secondary,\n      color: \"textSecondary\",\n      display: \"block\"\n    }, secondaryTypographyProps), secondary);\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, dense && classes.dense, inset && classes.inset, primary && secondary && classes.multiline),\n    ref: ref\n  }, other), primary, secondary);\n});\n true ? ListItemText.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Alias for the `primary` prop.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the children won't be wrapped by a Typography component.\n   * This can be useful to render an alternative Typography variant by wrapping\n   * the `children` (or `primary`) text, and optional `secondary` text\n   * with the Typography component.\n   */\n  disableTypography: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the children will be indented.\n   * This should be used if there is no left avatar or left icon.\n   */\n  inset: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The main content element.\n   */\n  primary: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * These props will be forwarded to the primary typography component\n   * (as long as disableTypography is not `true`).\n   */\n  primaryTypographyProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The secondary content element.\n   */\n  secondary: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * These props will be forwarded to the secondary typography component\n   * (as long as disableTypography is not `true`).\n   */\n  secondaryTypographyProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiListItemText'\n})(ListItemText));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListItemText/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListItemText/index.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListItemText__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListItemText */ \"./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ListItemText__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListItemText/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js ***!
  \***************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      boxSizing: 'border-box',\n      lineHeight: '48px',\n      listStyle: 'none',\n      color: theme.palette.text.secondary,\n      fontFamily: theme.typography.fontFamily,\n      fontWeight: theme.typography.fontWeightMedium,\n      fontSize: theme.typography.pxToRem(14)\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n    gutters: {\n      paddingLeft: 16,\n      paddingRight: 16\n    },\n\n    /* Styles applied to the root element if `inset={true}`. */\n    inset: {\n      paddingLeft: 72\n    },\n\n    /* Styles applied to the root element if `disableSticky={false}`. */\n    sticky: {\n      position: 'sticky',\n      top: 0,\n      zIndex: 1,\n      backgroundColor: 'inherit'\n    }\n  };\n};\nvar ListSubheader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function ListSubheader(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'default' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'li' : _props$component,\n      _props$disableGutters = props.disableGutters,\n      disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n      _props$disableSticky = props.disableSticky,\n      disableSticky = _props$disableSticky === void 0 ? false : _props$disableSticky,\n      _props$inset = props.inset,\n      inset = _props$inset === void 0 ? false : _props$inset,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, color !== 'default' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], inset && classes.inset, !disableSticky && classes.sticky, !disableGutters && classes.gutters),\n    ref: ref\n  }, other));\n});\n true ? ListSubheader.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'primary', 'inherit']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the List Subheader will not have gutters.\n   */\n  disableGutters: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the List Subheader will not stick to the top during scroll.\n   */\n  disableSticky: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the List Subheader will be indented.\n   */\n  inset: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiListSubheader'\n})(ListSubheader));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/ListSubheader/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/ListSubheader/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ListSubheader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListSubheader */ \"./node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ListSubheader__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/ListSubheader/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Menu/Menu.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Menu/Menu.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Popover */ \"./node_modules/@material-ui/core/esm/Popover/index.js\");\n/* harmony import */ var _MenuList__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../MenuList */ \"./node_modules/@material-ui/core/esm/MenuList/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _utils_setRef__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar RTL_ORIGIN = {\n  vertical: 'top',\n  horizontal: 'right'\n};\nvar LTR_ORIGIN = {\n  vertical: 'top',\n  horizontal: 'left'\n};\nvar styles = {\n  /* Styles applied to the `Paper` component. */\n  paper: {\n    // specZ: The maximum height of a simple menu should be one or more rows less than the view\n    // height. This ensures a tapable area outside of the simple menu with which to dismiss\n    // the menu.\n    maxHeight: 'calc(100% - 96px)',\n    // Add iOS momentum scrolling.\n    WebkitOverflowScrolling: 'touch'\n  },\n\n  /* Styles applied to the `List` component via `MenuList`. */\n  list: {\n    // We disable the focus ring for mouse, touch and keyboard users.\n    outline: 0\n  }\n};\nvar Menu = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Menu(props, ref) {\n  var _props$autoFocus = props.autoFocus,\n      autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n      children = props.children,\n      classes = props.classes,\n      _props$disableAutoFoc = props.disableAutoFocusItem,\n      disableAutoFocusItem = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n      _props$MenuListProps = props.MenuListProps,\n      MenuListProps = _props$MenuListProps === void 0 ? {} : _props$MenuListProps,\n      onClose = props.onClose,\n      onEntering = props.onEntering,\n      open = props.open,\n      _props$PaperProps = props.PaperProps,\n      PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n      PopoverClasses = props.PopoverClasses,\n      _props$transitionDura = props.transitionDuration,\n      transitionDuration = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"autoFocus\", \"children\", \"classes\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"onEntering\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"variant\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_12__[\"default\"])();\n  var autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n  var menuListActionsRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var contentAnchorRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n\n  var getContentAnchorEl = function getContentAnchorEl() {\n    return contentAnchorRef.current;\n  };\n\n  var handleEntering = function handleEntering(element, isAppearing) {\n    if (menuListActionsRef.current) {\n      menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n    }\n\n    if (onEntering) {\n      onEntering(element, isAppearing);\n    }\n  };\n\n  var handleListKeyDown = function handleListKeyDown(event) {\n    if (event.key === 'Tab') {\n      event.preventDefault();\n\n      if (onClose) {\n        onClose(event, 'tabKeyDown');\n      }\n    }\n  };\n  /**\n   * the index of the item should receive focus\n   * in a `variant=\"selectedMenu\"` it's the first `selected` item\n   * otherwise it's the very first item.\n   */\n\n\n  var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n  // to check if there is a `selected` item. We're looking for the last `selected`\n  // item and use the first valid item as a fallback\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child, index) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child)) {\n      return;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_3__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    if (!child.props.disabled) {\n      if (variant !== \"menu\" && child.props.selected) {\n        activeItemIndex = index;\n      } else if (activeItemIndex === -1) {\n        activeItemIndex = index;\n      }\n    }\n  });\n  var items = react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child, index) {\n    if (index === activeItemIndex) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](child, {\n        ref: function ref(instance) {\n          // #StrictMode ready\n          contentAnchorRef.current = react_dom__WEBPACK_IMPORTED_MODULE_10__[\"findDOMNode\"](instance);\n          Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(child.ref, instance);\n        }\n      });\n    }\n\n    return child;\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Popover__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    getContentAnchorEl: getContentAnchorEl,\n    classes: PopoverClasses,\n    onClose: onClose,\n    onEntering: handleEntering,\n    anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n    transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n    PaperProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, PaperProps, {\n      classes: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, PaperProps.classes, {\n        root: classes.paper\n      })\n    }),\n    open: open,\n    ref: ref,\n    transitionDuration: transitionDuration\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_MenuList__WEBPACK_IMPORTED_MODULE_9__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    onKeyDown: handleListKeyDown,\n    actions: menuListActionsRef,\n    autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n    autoFocusItem: autoFocusItem,\n    variant: variant\n  }, MenuListProps, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.list, MenuListProps.className)\n  }), items));\n});\n true ? Menu.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A HTML element, or a function that returns it.\n   * It's used to set the position of the menu.\n   */\n  anchorEl: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func]),\n\n  /**\n   * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n   * children are not focusable. If you set this prop to `false` focus will be placed\n   * on the parent modal container. This has severe accessibility implications\n   * and should only be considered if you manage focus otherwise.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Menu contents, normally `MenuItem`s.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n   * unless `autoFocus` is also set to `false`. Not using the default means not\n   * following WAI-ARIA authoring practices. Please be considerate about possible\n   * accessibility implications.\n   */\n  disableAutoFocusItem: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Props applied to the [`MenuList`](/api/menu-list/) element.\n   */\n  MenuListProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired before the Menu enters.\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the Menu has entered.\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the Menu is entering.\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired before the Menu exits.\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the Menu has exited.\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the Menu is exiting.\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * If `true`, the menu is visible.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool.isRequired,\n\n  /**\n   * @ignore\n   */\n  PaperProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * `classes` prop applied to the [`Popover`](/api/popover/) element.\n   */\n  PopoverClasses: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * The length of the transition in `ms`, or 'auto'\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['auto']), prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n  })]),\n\n  /**\n   * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n   * and the vertical alignment relative to the anchor element.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['menu', 'selectedMenu'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiMenu'\n})(Menu));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Menu/Menu.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Menu/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Menu/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Menu */ \"./node_modules/@material-ui/core/esm/Menu/Menu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Menu__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Menu/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ListItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ListItem */ \"./node_modules/@material-ui/core/esm/ListItem/index.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.typography.body1, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      minHeight: 48,\n      paddingTop: 6,\n      paddingBottom: 6,\n      boxSizing: 'border-box',\n      width: 'auto',\n      overflow: 'hidden',\n      whiteSpace: 'nowrap'\n    }, theme.breakpoints.up('sm'), {\n      minHeight: 'auto'\n    })),\n    // TODO v5: remove\n\n    /* Styles applied to the root element if `disableGutters={false}`. */\n    gutters: {},\n\n    /* Styles applied to the root element if `selected={true}`. */\n    selected: {},\n\n    /* Styles applied to the root element if dense. */\n    dense: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.typography.body2, {\n      minHeight: 'auto'\n    })\n  };\n};\nvar MenuItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function MenuItem(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      component = _props$component === void 0 ? 'li' : _props$component,\n      _props$disableGutters = props.disableGutters,\n      disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n      ListItemClasses = props.ListItemClasses,\n      _props$role = props.role,\n      role = _props$role === void 0 ? 'menuitem' : _props$role,\n      selected = props.selected,\n      tabIndexProp = props.tabIndex,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"ListItemClasses\", \"role\", \"selected\", \"tabIndex\"]);\n\n  var tabIndex;\n\n  if (!props.disabled) {\n    tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_ListItem__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    button: true,\n    role: role,\n    tabIndex: tabIndex,\n    component: component,\n    selected: selected,\n    disableGutters: disableGutters,\n    classes: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      dense: classes.dense\n    }, ListItemClasses),\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className, selected && classes.selected, !disableGutters && classes.gutters),\n    ref: ref\n  }, other));\n});\n true ? MenuItem.propTypes = {\n  /**\n   * Menu item contents.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n   */\n  dense: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the left and right padding is removed.\n   */\n  disableGutters: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * `classes` prop applied to the [`ListItem`](/api/list-item/) element.\n   */\n  ListItemClasses: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  role: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * @ignore\n   */\n  selected: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  tabIndex: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiMenuItem'\n})(MenuItem));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/MenuItem/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/MenuItem/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MenuItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MenuItem */ \"./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _MenuItem__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/MenuItem/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/MenuList/MenuList.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/MenuList/MenuList.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../List */ \"./node_modules/@material-ui/core/esm/List/index.js\");\n/* harmony import */ var _utils_getScrollbarSize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/getScrollbarSize */ \"./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction nextItem(list, item, disableListWrap) {\n  if (list === item) {\n    return list.firstChild;\n  }\n\n  if (item && item.nextElementSibling) {\n    return item.nextElementSibling;\n  }\n\n  return disableListWrap ? null : list.firstChild;\n}\n\nfunction previousItem(list, item, disableListWrap) {\n  if (list === item) {\n    return disableListWrap ? list.firstChild : list.lastChild;\n  }\n\n  if (item && item.previousElementSibling) {\n    return item.previousElementSibling;\n  }\n\n  return disableListWrap ? null : list.lastChild;\n}\n\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n  if (textCriteria === undefined) {\n    return true;\n  }\n\n  var text = nextFocus.innerText;\n\n  if (text === undefined) {\n    // jsdom doesn't support innerText\n    text = nextFocus.textContent;\n  }\n\n  text = text.trim().toLowerCase();\n\n  if (text.length === 0) {\n    return false;\n  }\n\n  if (textCriteria.repeating) {\n    return text[0] === textCriteria.keys[0];\n  }\n\n  return text.indexOf(textCriteria.keys.join('')) === 0;\n}\n\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n  var wrappedOnce = false;\n  var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n\n  while (nextFocus) {\n    // Prevent infinite loop.\n    if (nextFocus === list.firstChild) {\n      if (wrappedOnce) {\n        return;\n      }\n\n      wrappedOnce = true;\n    } // Same logic as useAutocomplete.js\n\n\n    var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n\n    if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n      // Move to the next element.\n      nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n    } else {\n      nextFocus.focus();\n      return;\n    }\n  }\n}\n\nvar useEnhancedEffect = typeof window === 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"] : react__WEBPACK_IMPORTED_MODULE_2__[\"useLayoutEffect\"];\n/**\n * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.\n * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\n\nvar MenuList = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function MenuList(props, ref) {\n  var actions = props.actions,\n      _props$autoFocus = props.autoFocus,\n      autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n      _props$autoFocusItem = props.autoFocusItem,\n      autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,\n      children = props.children,\n      className = props.className,\n      _props$disabledItemsF = props.disabledItemsFocusable,\n      disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,\n      _props$disableListWra = props.disableListWrap,\n      disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,\n      onKeyDown = props.onKeyDown,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"]);\n\n  var listRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var textCriteriaRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]({\n    keys: [],\n    repeating: true,\n    previousKeyMatched: true,\n    lastTime: null\n  });\n  useEnhancedEffect(function () {\n    if (autoFocus) {\n      listRef.current.focus();\n    }\n  }, [autoFocus]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useImperativeHandle\"](actions, function () {\n    return {\n      adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {\n        // Let's ignore that piece of logic if users are already overriding the width\n        // of the menu.\n        var noExplicitWidth = !listRef.current.style.width;\n\n        if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n          var scrollbarSize = \"\".concat(Object(_utils_getScrollbarSize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(true), \"px\");\n          listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n          listRef.current.style.width = \"calc(100% + \".concat(scrollbarSize, \")\");\n        }\n\n        return listRef.current;\n      }\n    };\n  }, []);\n\n  var handleKeyDown = function handleKeyDown(event) {\n    var list = listRef.current;\n    var key = event.key;\n    /**\n     * @type {Element} - will always be defined since we are in a keydown handler\n     * attached to an element. A keydown event is either dispatched to the activeElement\n     * or document.body or document.documentElement. Only the first case will\n     * trigger this specific handler.\n     */\n\n    var currentFocus = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(list).activeElement;\n\n    if (key === 'ArrowDown') {\n      // Prevent scroll of the page\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'ArrowUp') {\n      event.preventDefault();\n      moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key === 'Home') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n    } else if (key === 'End') {\n      event.preventDefault();\n      moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n    } else if (key.length === 1) {\n      var criteria = textCriteriaRef.current;\n      var lowerKey = key.toLowerCase();\n      var currTime = performance.now();\n\n      if (criteria.keys.length > 0) {\n        // Reset\n        if (currTime - criteria.lastTime > 500) {\n          criteria.keys = [];\n          criteria.repeating = true;\n          criteria.previousKeyMatched = true;\n        } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n          criteria.repeating = false;\n        }\n      }\n\n      criteria.lastTime = currTime;\n      criteria.keys.push(lowerKey);\n      var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n\n      if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n        event.preventDefault();\n      } else {\n        criteria.previousKeyMatched = false;\n      }\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n\n  var handleOwnRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    listRef.current = react_dom__WEBPACK_IMPORTED_MODULE_5__[\"findDOMNode\"](instance);\n  }, []);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(handleOwnRef, ref);\n  /**\n   * the index of the item should receive focus\n   * in a `variant=\"selectedMenu\"` it's the first `selected` item\n   * otherwise it's the very first item.\n   */\n\n  var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead\n  // to check if there is a `selected` item. We're looking for the last `selected`\n  // item and use the first valid item as a fallback\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].forEach(children, function (child, index) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child)) {\n      return;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_3__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    if (!child.props.disabled) {\n      if (variant === 'selectedMenu' && child.props.selected) {\n        activeItemIndex = index;\n      } else if (activeItemIndex === -1) {\n        activeItemIndex = index;\n      }\n    }\n  });\n  var items = react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child, index) {\n    if (index === activeItemIndex) {\n      var newChildProps = {};\n\n      if (autoFocusItem) {\n        newChildProps.autoFocus = true;\n      }\n\n      if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n        newChildProps.tabIndex = 0;\n      }\n\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](child, newChildProps);\n    }\n\n    return child;\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_List__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    role: \"menu\",\n    ref: handleRef,\n    className: className,\n    onKeyDown: handleKeyDown,\n    tabIndex: autoFocus ? 0 : -1\n  }, other), items);\n});\n true ? MenuList.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n   * if `variant=\"selectedMenu\"`.\n   */\n  autoFocusItem: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * MenuList contents, normally `MenuItem`s.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * If `true`, will allow focus on disabled items.\n   */\n  disabledItemsFocusable: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the menu items will not wrap focus.\n   */\n  disableListWrap: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n   * and the vertical alignment relative to the anchor element.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['menu', 'selectedMenu'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MenuList);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/MenuList/MenuList.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/MenuList/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/MenuList/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MenuList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MenuList */ \"./node_modules/@material-ui/core/esm/MenuList/MenuList.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _MenuList__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/MenuList/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/MobileStepper/MobileStepper.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/MobileStepper/MobileStepper.js ***!
  \***************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _LinearProgress__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../LinearProgress */ \"./node_modules/@material-ui/core/esm/LinearProgress/index.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      flexDirection: 'row',\n      justifyContent: 'space-between',\n      alignItems: 'center',\n      background: theme.palette.background.default,\n      padding: 8\n    },\n\n    /* Styles applied to the root element if `position=\"bottom\"`. */\n    positionBottom: {\n      position: 'fixed',\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: theme.zIndex.mobileStepper\n    },\n\n    /* Styles applied to the root element if `position=\"top\"`. */\n    positionTop: {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: theme.zIndex.mobileStepper\n    },\n\n    /* Styles applied to the root element if `position=\"static\"`. */\n    positionStatic: {},\n\n    /* Styles applied to the dots container if `variant=\"dots\"`. */\n    dots: {\n      display: 'flex',\n      flexDirection: 'row'\n    },\n\n    /* Styles applied to each dot if `variant=\"dots\"`. */\n    dot: {\n      backgroundColor: theme.palette.action.disabled,\n      borderRadius: '50%',\n      width: 8,\n      height: 8,\n      margin: '0 2px'\n    },\n\n    /* Styles applied to a dot if `variant=\"dots\"` and this is the active step. */\n    dotActive: {\n      backgroundColor: theme.palette.primary.main\n    },\n\n    /* Styles applied to the Linear Progress component if `variant=\"progress\"`. */\n    progress: {\n      width: '50%'\n    }\n  };\n};\nvar MobileStepper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function MobileStepper(props, ref) {\n  var _props$activeStep = props.activeStep,\n      activeStep = _props$activeStep === void 0 ? 0 : _props$activeStep,\n      backButton = props.backButton,\n      classes = props.classes,\n      className = props.className,\n      LinearProgressProps = props.LinearProgressProps,\n      nextButton = props.nextButton,\n      _props$position = props.position,\n      position = _props$position === void 0 ? 'bottom' : _props$position,\n      steps = props.steps,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'dots' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"activeStep\", \"backButton\", \"classes\", \"className\", \"LinearProgressProps\", \"nextButton\", \"position\", \"steps\", \"variant\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    square: true,\n    elevation: 0,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[\"position\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(position))], className),\n    ref: ref\n  }, other), backButton, variant === 'text' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_3__[\"Fragment\"], null, activeStep + 1, \" / \", steps), variant === 'dots' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    className: classes.dots\n  }, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(new Array(steps)).map(function (_, index) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n      key: index,\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.dot, index === activeStep && classes.dotActive)\n    });\n  })), variant === 'progress' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_LinearProgress__WEBPACK_IMPORTED_MODULE_9__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: classes.progress,\n    variant: \"determinate\",\n    value: Math.ceil(activeStep / (steps - 1) * 100)\n  }, LinearProgressProps)), nextButton);\n});\n true ? MobileStepper.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Set the active step (zero based index).\n   * Defines which dot is highlighted when the variant is 'dots'.\n   */\n  activeStep: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n  /**\n   * A back button element. For instance, it can be a `Button` or an `IconButton`.\n   */\n  backButton: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Props applied to the `LinearProgress` element.\n   */\n  LinearProgressProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * A next button element. For instance, it can be a `Button` or an `IconButton`.\n   */\n  nextButton: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Set the positioning type.\n   */\n  position: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['bottom', 'static', 'top']),\n\n  /**\n   * The total steps.\n   */\n  steps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['dots', 'progress', 'text'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiMobileStepper'\n})(MobileStepper));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/MobileStepper/MobileStepper.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/MobileStepper/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/MobileStepper/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _MobileStepper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MobileStepper */ \"./node_modules/@material-ui/core/esm/MobileStepper/MobileStepper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _MobileStepper__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/MobileStepper/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Modal/Modal.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Modal/Modal.js ***!
  \***********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Portal */ \"./node_modules/@material-ui/core/esm/Portal/index.js\");\n/* harmony import */ var _utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/createChainedFunction */ \"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _styles_zIndex__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../styles/zIndex */ \"./node_modules/@material-ui/core/esm/styles/zIndex.js\");\n/* harmony import */ var _ModalManager__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ModalManager */ \"./node_modules/@material-ui/core/esm/Modal/ModalManager.js\");\n/* harmony import */ var _Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Unstable_TrapFocus */ \"./node_modules/@material-ui/core/esm/Unstable_TrapFocus/index.js\");\n/* harmony import */ var _SimpleBackdrop__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./SimpleBackdrop */ \"./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getContainer(container) {\n  container = typeof container === 'function' ? container() : container;\n  return react_dom__WEBPACK_IMPORTED_MODULE_3__[\"findDOMNode\"](container);\n}\n\nfunction getHasTransition(props) {\n  return props.children ? props.children.props.hasOwnProperty('in') : false;\n} // A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\n\n\nvar defaultManager = new _ModalManager__WEBPACK_IMPORTED_MODULE_13__[\"default\"]();\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'fixed',\n      zIndex: theme.zIndex.modal,\n      right: 0,\n      bottom: 0,\n      top: 0,\n      left: 0\n    },\n\n    /* Styles applied to the root element if the `Modal` has exited. */\n    hidden: {\n      visibility: 'hidden'\n    }\n  };\n};\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/api/dialog/)\n * - [Drawer](/api/drawer/)\n * - [Menu](/api/menu/)\n * - [Popover](/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\n\nvar Modal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Modal(inProps, ref) {\n  var theme = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_5__[\"useTheme\"])();\n  var props = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_5__[\"getThemeProps\"])({\n    name: 'MuiModal',\n    props: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, inProps),\n    theme: theme\n  });\n\n  var _props$BackdropCompon = props.BackdropComponent,\n      BackdropComponent = _props$BackdropCompon === void 0 ? _SimpleBackdrop__WEBPACK_IMPORTED_MODULE_15__[\"default\"] : _props$BackdropCompon,\n      BackdropProps = props.BackdropProps,\n      children = props.children,\n      _props$closeAfterTran = props.closeAfterTransition,\n      closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,\n      container = props.container,\n      _props$disableAutoFoc = props.disableAutoFocus,\n      disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n      _props$disableBackdro = props.disableBackdropClick,\n      disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n      _props$disableEnforce = props.disableEnforceFocus,\n      disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n      _props$disableEscapeK = props.disableEscapeKeyDown,\n      disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,\n      _props$disablePortal = props.disablePortal,\n      disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n      _props$disableRestore = props.disableRestoreFocus,\n      disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n      _props$disableScrollL = props.disableScrollLock,\n      disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,\n      _props$hideBackdrop = props.hideBackdrop,\n      hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,\n      _props$keepMounted = props.keepMounted,\n      keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,\n      _props$manager = props.manager,\n      manager = _props$manager === void 0 ? defaultManager : _props$manager,\n      onBackdropClick = props.onBackdropClick,\n      onClose = props.onClose,\n      onEscapeKeyDown = props.onEscapeKeyDown,\n      onRendered = props.onRendered,\n      open = props.open,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"BackdropComponent\", \"BackdropProps\", \"children\", \"closeAfterTransition\", \"container\", \"disableAutoFocus\", \"disableBackdropClick\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"manager\", \"onBackdropClick\", \"onClose\", \"onEscapeKeyDown\", \"onRendered\", \"open\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](true),\n      exited = _React$useState[0],\n      setExited = _React$useState[1];\n\n  var modal = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]({});\n  var mountNodeRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var modalRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(modalRef, ref);\n  var hasTransition = getHasTransition(props);\n\n  var getDoc = function getDoc() {\n    return Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(mountNodeRef.current);\n  };\n\n  var getModal = function getModal() {\n    modal.current.modalRef = modalRef.current;\n    modal.current.mountNode = mountNodeRef.current;\n    return modal.current;\n  };\n\n  var handleMounted = function handleMounted() {\n    manager.mount(getModal(), {\n      disableScrollLock: disableScrollLock\n    }); // Fix a bug on Chrome where the scroll isn't initially 0.\n\n    modalRef.current.scrollTop = 0;\n  };\n\n  var handleOpen = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(function () {\n    var resolvedContainer = getContainer(container) || getDoc().body;\n    manager.add(getModal(), resolvedContainer); // The element was already mounted.\n\n    if (modalRef.current) {\n      handleMounted();\n    }\n  });\n  var isTopModal = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    return manager.isTopModal(getModal());\n  }, [manager]);\n  var handlePortalRef = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(function (node) {\n    mountNodeRef.current = node;\n\n    if (!node) {\n      return;\n    }\n\n    if (onRendered) {\n      onRendered();\n    }\n\n    if (open && isTopModal()) {\n      handleMounted();\n    } else {\n      Object(_ModalManager__WEBPACK_IMPORTED_MODULE_13__[\"ariaHidden\"])(modalRef.current, true);\n    }\n  });\n  var handleClose = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    manager.remove(getModal());\n  }, [manager]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    return function () {\n      handleClose();\n    };\n  }, [handleClose]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (open) {\n      handleOpen();\n    } else if (!hasTransition || !closeAfterTransition) {\n      handleClose();\n    }\n  }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n\n  if (!keepMounted && !open && (!hasTransition || exited)) {\n    return null;\n  }\n\n  var handleEnter = function handleEnter() {\n    setExited(false);\n  };\n\n  var handleExited = function handleExited() {\n    setExited(true);\n\n    if (closeAfterTransition) {\n      handleClose();\n    }\n  };\n\n  var handleBackdropClick = function handleBackdropClick(event) {\n    if (event.target !== event.currentTarget) {\n      return;\n    }\n\n    if (onBackdropClick) {\n      onBackdropClick(event);\n    }\n\n    if (!disableBackdropClick && onClose) {\n      onClose(event, 'backdropClick');\n    }\n  };\n\n  var handleKeyDown = function handleKeyDown(event) {\n    // The handler doesn't take event.defaultPrevented into account:\n    //\n    // event.preventDefault() is meant to stop default behaviours like\n    // clicking a checkbox to check it, hitting a button to submit a form,\n    // and hitting left arrow to move the cursor in a text input etc.\n    // Only special HTML elements have these default behaviors.\n    if (event.key !== 'Escape' || !isTopModal()) {\n      return;\n    }\n\n    if (onEscapeKeyDown) {\n      onEscapeKeyDown(event);\n    }\n\n    if (!disableEscapeKeyDown) {\n      // Swallow the event, in case someone is listening for the escape key on the body.\n      event.stopPropagation();\n\n      if (onClose) {\n        onClose(event, 'escapeKeyDown');\n      }\n    }\n  };\n\n  var inlineStyle = styles(theme || {\n    zIndex: _styles_zIndex__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n  });\n  var childProps = {};\n\n  if (children.props.tabIndex === undefined) {\n    childProps.tabIndex = children.props.tabIndex || '-1';\n  } // It's a Transition like component\n\n\n  if (hasTransition) {\n    childProps.onEnter = Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(handleEnter, children.props.onEnter);\n    childProps.onExited = Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(handleExited, children.props.onExited);\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Portal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n    ref: handlePortalRef,\n    container: container,\n    disablePortal: disablePortal\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    ref: handleRef,\n    onKeyDown: handleKeyDown,\n    role: \"presentation\"\n  }, other, {\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)\n  }), hideBackdrop ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](BackdropComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    open: open,\n    onClick: handleBackdropClick\n  }, BackdropProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n    disableEnforceFocus: disableEnforceFocus,\n    disableAutoFocus: disableAutoFocus,\n    disableRestoreFocus: disableRestoreFocus,\n    getDoc: getDoc,\n    isEnabled: isTopModal,\n    open: open\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](children, childProps))));\n});\n true ? Modal.propTypes = {\n  /**\n   * A backdrop component. This prop enables custom backdrop rendering.\n   */\n  BackdropComponent: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.elementType,\n\n  /**\n   * Props applied to the [`Backdrop`](/api/backdrop/) element.\n   */\n  BackdropProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * A single child content element.\n   */\n  children: _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"elementAcceptingRef\"].isRequired,\n\n  /**\n   * When set to true the Modal waits until a nested Transition is completed before closing.\n   */\n  closeAfterTransition: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * A HTML element, component instance, or function that returns either.\n   * The `container` will have the portal children appended to it.\n   *\n   * By default, it uses the body of the top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.instanceOf(react__WEBPACK_IMPORTED_MODULE_2__[\"Component\"]), prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func]),\n\n  /**\n   * If `true`, the modal will not automatically shift focus to itself when it opens, and\n   * replace it to the last focused element when it closes.\n   * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n   *\n   * Generally this should never be set to `true` as it makes the modal less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableAutoFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, clicking the backdrop will not fire `onClose`.\n   */\n  disableBackdropClick: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the modal will not prevent focus from leaving the modal while open.\n   *\n   * Generally this should never be set to `true` as it makes the modal less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableEnforceFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, hitting escape will not fire `onClose`.\n   */\n  disableEscapeKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Disable the portal behavior.\n   * The children stay within it's parent DOM hierarchy.\n   */\n  disablePortal: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the modal will not restore focus to previously focused element once\n   * modal is hidden.\n   */\n  disableRestoreFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Disable the scroll lock behavior.\n   */\n  disableScrollLock: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the backdrop is not rendered.\n   */\n  hideBackdrop: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Always keep the children in the DOM.\n   * This prop can be useful in SEO situation or\n   * when you want to maximize the responsiveness of the Modal.\n   */\n  keepMounted: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  manager: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Callback fired when the backdrop is clicked.\n   */\n  onBackdropClick: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * The `reason` parameter can optionally be used to control the response to `onClose`.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the escape key is pressed,\n   * `disableEscapeKeyDown` is false and the modal is in focus.\n   */\n  onEscapeKeyDown: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired once the children has been mounted into the `container`.\n   * It signals that the `open={true}` prop took effect.\n   *\n   * This prop will be deprecated and removed in v5, the ref can be used instead.\n   */\n  onRendered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * If `true`, the modal is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool.isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Modal);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Modal/Modal.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Modal/ModalManager.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Modal/ModalManager.js ***!
  \******************************************************************/
/*! exports provided: ariaHidden, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ariaHidden\", function() { return ariaHidden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ModalManager; });\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _utils_getScrollbarSize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getScrollbarSize */ \"./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js\");\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_ownerWindow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/ownerWindow */ \"./node_modules/@material-ui/core/esm/utils/ownerWindow.js\");\n\n\n\n\n\n // Is a vertical scrollbar displayed?\n\nfunction isOverflowing(container) {\n  var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(container);\n\n  if (doc.body === container) {\n    return Object(_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(doc).innerWidth > doc.documentElement.clientWidth;\n  }\n\n  return container.scrollHeight > container.clientHeight;\n}\n\nfunction ariaHidden(node, show) {\n  if (show) {\n    node.setAttribute('aria-hidden', 'true');\n  } else {\n    node.removeAttribute('aria-hidden');\n  }\n}\n\nfunction getPaddingRight(node) {\n  return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;\n}\n\nfunction ariaHiddenSiblings(container, mountNode, currentNode) {\n  var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n  var show = arguments.length > 4 ? arguments[4] : undefined;\n  var blacklist = [mountNode, currentNode].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(nodesToExclude));\n  var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];\n  [].forEach.call(container.children, function (node) {\n    if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {\n      ariaHidden(node, show);\n    }\n  });\n}\n\nfunction findIndexOf(containerInfo, callback) {\n  var idx = -1;\n  containerInfo.some(function (item, index) {\n    if (callback(item)) {\n      idx = index;\n      return true;\n    }\n\n    return false;\n  });\n  return idx;\n}\n\nfunction handleContainer(containerInfo, props) {\n  var restoreStyle = [];\n  var restorePaddings = [];\n  var container = containerInfo.container;\n  var fixedNodes;\n\n  if (!props.disableScrollLock) {\n    if (isOverflowing(container)) {\n      // Compute the size before applying overflow hidden to avoid any scroll jumps.\n      var scrollbarSize = Object(_utils_getScrollbarSize__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n      restoreStyle.push({\n        value: container.style.paddingRight,\n        key: 'padding-right',\n        el: container\n      }); // Use computed style, here to get the real padding to add our scrollbar width.\n\n      container.style['padding-right'] = \"\".concat(getPaddingRight(container) + scrollbarSize, \"px\"); // .mui-fixed is a global helper.\n\n      fixedNodes = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(container).querySelectorAll('.mui-fixed');\n      [].forEach.call(fixedNodes, function (node) {\n        restorePaddings.push(node.style.paddingRight);\n        node.style.paddingRight = \"\".concat(getPaddingRight(node) + scrollbarSize, \"px\");\n      });\n    } // Improve Gatsby support\n    // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n\n\n    var parent = container.parentElement;\n    var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n    // screensize shrink.\n\n    restoreStyle.push({\n      value: scrollContainer.style.overflow,\n      key: 'overflow',\n      el: scrollContainer\n    });\n    scrollContainer.style.overflow = 'hidden';\n  }\n\n  var restore = function restore() {\n    if (fixedNodes) {\n      [].forEach.call(fixedNodes, function (node, i) {\n        if (restorePaddings[i]) {\n          node.style.paddingRight = restorePaddings[i];\n        } else {\n          node.style.removeProperty('padding-right');\n        }\n      });\n    }\n\n    restoreStyle.forEach(function (_ref) {\n      var value = _ref.value,\n          el = _ref.el,\n          key = _ref.key;\n\n      if (value) {\n        el.style.setProperty(key, value);\n      } else {\n        el.style.removeProperty(key);\n      }\n    });\n  };\n\n  return restore;\n}\n\nfunction getHiddenSiblings(container) {\n  var hiddenSiblings = [];\n  [].forEach.call(container.children, function (node) {\n    if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n      hiddenSiblings.push(node);\n    }\n  });\n  return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\n\n\nvar ModalManager = /*#__PURE__*/function () {\n  function ModalManager() {\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, ModalManager);\n\n    // this.modals[modalIndex] = modal\n    this.modals = []; // this.containers[containerIndex] = {\n    //   modals: [],\n    //   container,\n    //   restore: null,\n    // }\n\n    this.containers = [];\n  }\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(ModalManager, [{\n    key: \"add\",\n    value: function add(modal, container) {\n      var modalIndex = this.modals.indexOf(modal);\n\n      if (modalIndex !== -1) {\n        return modalIndex;\n      }\n\n      modalIndex = this.modals.length;\n      this.modals.push(modal); // If the modal we are adding is already in the DOM.\n\n      if (modal.modalRef) {\n        ariaHidden(modal.modalRef, false);\n      }\n\n      var hiddenSiblingNodes = getHiddenSiblings(container);\n      ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);\n      var containerIndex = findIndexOf(this.containers, function (item) {\n        return item.container === container;\n      });\n\n      if (containerIndex !== -1) {\n        this.containers[containerIndex].modals.push(modal);\n        return modalIndex;\n      }\n\n      this.containers.push({\n        modals: [modal],\n        container: container,\n        restore: null,\n        hiddenSiblingNodes: hiddenSiblingNodes\n      });\n      return modalIndex;\n    }\n  }, {\n    key: \"mount\",\n    value: function mount(modal, props) {\n      var containerIndex = findIndexOf(this.containers, function (item) {\n        return item.modals.indexOf(modal) !== -1;\n      });\n      var containerInfo = this.containers[containerIndex];\n\n      if (!containerInfo.restore) {\n        containerInfo.restore = handleContainer(containerInfo, props);\n      }\n    }\n  }, {\n    key: \"remove\",\n    value: function remove(modal) {\n      var modalIndex = this.modals.indexOf(modal);\n\n      if (modalIndex === -1) {\n        return modalIndex;\n      }\n\n      var containerIndex = findIndexOf(this.containers, function (item) {\n        return item.modals.indexOf(modal) !== -1;\n      });\n      var containerInfo = this.containers[containerIndex];\n      containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n      this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.\n\n      if (containerInfo.modals.length === 0) {\n        // The modal might be closed before it had the chance to be mounted in the DOM.\n        if (containerInfo.restore) {\n          containerInfo.restore();\n        }\n\n        if (modal.modalRef) {\n          // In case the modal wasn't in the DOM yet.\n          ariaHidden(modal.modalRef, true);\n        }\n\n        ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);\n        this.containers.splice(containerIndex, 1);\n      } else {\n        // Otherwise make sure the next top modal is visible to a screen reader.\n        var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set\n        // aria-hidden because the dom element doesn't exist either\n        // when modal was unmounted before modalRef gets null\n\n        if (nextTop.modalRef) {\n          ariaHidden(nextTop.modalRef, false);\n        }\n      }\n\n      return modalIndex;\n    }\n  }, {\n    key: \"isTopModal\",\n    value: function isTopModal(modal) {\n      return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n    }\n  }]);\n\n  return ModalManager;\n}();\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Modal/ModalManager.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js ***!
  \********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    zIndex: -1,\n    position: 'fixed',\n    right: 0,\n    bottom: 0,\n    top: 0,\n    left: 0,\n    backgroundColor: 'rgba(0, 0, 0, 0.5)',\n    WebkitTapHighlightColor: 'transparent'\n  },\n\n  /* Styles applied to the root element if `invisible={true}`. */\n  invisible: {\n    backgroundColor: 'transparent'\n  }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SimpleBackdrop = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function SimpleBackdrop(props, ref) {\n  var _props$invisible = props.invisible,\n      invisible = _props$invisible === void 0 ? false : _props$invisible,\n      open = props.open,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"invisible\", \"open\"]);\n\n  return open ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    \"aria-hidden\": true,\n    ref: ref\n  }, other, {\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, styles.root, invisible ? styles.invisible : {}, other.style)\n  })) : null;\n});\n true ? SimpleBackdrop.propTypes = {\n  /**\n   * If `true`, the backdrop is invisible.\n   * It can be used when rendering a popover or a custom select component.\n   */\n  invisible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the backdrop is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (SimpleBackdrop);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Modal/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Modal/index.js ***!
  \***********************************************************/
/*! exports provided: default, ModalManager */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Modal */ \"./node_modules/@material-ui/core/esm/Modal/Modal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Modal__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _ModalManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ModalManager */ \"./node_modules/@material-ui/core/esm/Modal/ModalManager.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ModalManager\", function() { return _ModalManager__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Modal/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js ***!
  \*************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _NativeSelectInput__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./NativeSelectInput */ \"./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _FormControl_formControlState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl/formControlState */ \"./node_modules/@material-ui/core/esm/FormControl/formControlState.js\");\n/* harmony import */ var _FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../FormControl/useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony import */ var _internal_svg_icons_ArrowDropDown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../internal/svg-icons/ArrowDropDown */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js\");\n/* harmony import */ var _Input__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Input */ \"./node_modules/@material-ui/core/esm/Input/index.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the select component `root` class. */\n    root: {},\n\n    /* Styles applied to the select component `select` class. */\n    select: {\n      '-moz-appearance': 'none',\n      // Reset\n      '-webkit-appearance': 'none',\n      // Reset\n      // When interacting quickly, the text can end up selected.\n      // Native select can't be selected either.\n      userSelect: 'none',\n      borderRadius: 0,\n      // Reset\n      minWidth: 16,\n      // So it doesn't collapse.\n      cursor: 'pointer',\n      '&:focus': {\n        // Show that it's not an text input\n        backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)',\n        borderRadius: 0 // Reset Chrome style\n\n      },\n      // Remove IE 11 arrow\n      '&::-ms-expand': {\n        display: 'none'\n      },\n      '&$disabled': {\n        cursor: 'default'\n      },\n      '&[multiple]': {\n        height: 'auto'\n      },\n      '&:not([multiple]) option, &:not([multiple]) optgroup': {\n        backgroundColor: theme.palette.background.paper\n      },\n      '&&': {\n        paddingRight: 24\n      }\n    },\n\n    /* Styles applied to the select component if `variant=\"filled\"`. */\n    filled: {\n      '&&': {\n        paddingRight: 32\n      }\n    },\n\n    /* Styles applied to the select component if `variant=\"outlined\"`. */\n    outlined: {\n      borderRadius: theme.shape.borderRadius,\n      '&&': {\n        paddingRight: 32\n      }\n    },\n\n    /* Styles applied to the select component `selectMenu` class. */\n    selectMenu: {\n      height: 'auto',\n      // Resets for multpile select with chips\n      minHeight: '1.1876em',\n      // Required for select\\text-field height consistency\n      textOverflow: 'ellipsis',\n      whiteSpace: 'nowrap',\n      overflow: 'hidden'\n    },\n\n    /* Pseudo-class applied to the select component `disabled` class. */\n    disabled: {},\n\n    /* Styles applied to the icon component. */\n    icon: {\n      // We use a position absolute over a flexbox in order to forward the pointer events\n      // to the input and to support wrapping tags..\n      position: 'absolute',\n      right: 0,\n      top: 'calc(50% - 12px)',\n      // Center vertically\n      pointerEvents: 'none',\n      // Don't block pointer events on the select under the icon.\n      color: theme.palette.action.active,\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the icon component if the popup is open. */\n    iconOpen: {\n      transform: 'rotate(180deg)'\n    },\n\n    /* Styles applied to the icon component if `variant=\"filled\"`. */\n    iconFilled: {\n      right: 7\n    },\n\n    /* Styles applied to the icon component if `variant=\"outlined\"`. */\n    iconOutlined: {\n      right: 7\n    },\n\n    /* Styles applied to the underlying native input component. */\n    nativeInput: {\n      bottom: 0,\n      left: 0,\n      position: 'absolute',\n      opacity: 0,\n      pointerEvents: 'none',\n      width: '100%'\n    }\n  };\n};\nvar defaultInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Input__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null);\n/**\n * An alternative to `<Select native />` with a much smaller bundle size footprint.\n */\n\nvar NativeSelect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function NativeSelect(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      _props$IconComponent = props.IconComponent,\n      IconComponent = _props$IconComponent === void 0 ? _internal_svg_icons_ArrowDropDown__WEBPACK_IMPORTED_MODULE_8__[\"default\"] : _props$IconComponent,\n      _props$input = props.input,\n      input = _props$input === void 0 ? defaultInput : _props$input,\n      inputProps = props.inputProps,\n      variant = props.variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"IconComponent\", \"input\", \"inputProps\", \"variant\"]);\n\n  var muiFormControl = Object(_FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n  var fcs = Object(_FormControl_formControlState__WEBPACK_IMPORTED_MODULE_6__[\"default\"])({\n    props: props,\n    muiFormControl: muiFormControl,\n    states: ['variant']\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](input, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    // Most of the logic is implemented in `NativeSelectInput`.\n    // The `Select` component is a simple API wrapper to expose something better to play with.\n    inputComponent: _NativeSelectInput__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n    inputProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      children: children,\n      classes: classes,\n      IconComponent: IconComponent,\n      variant: fcs.variant,\n      type: undefined\n    }, inputProps, input ? input.props.inputProps : {}),\n    ref: ref\n  }, other));\n});\n true ? NativeSelect.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<option>` elements.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * An `Input` element; does not have to be a material-ui specific `Input`.\n   */\n  input: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element,\n\n  /**\n   * Attributes applied to the `select` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The input value. The DOM API casts this to a string.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['filled', 'outlined', 'standard'])\n} : undefined;\nNativeSelect.muiName = 'Select';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiNativeSelect'\n})(NativeSelect));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n/**\n * @ignore - internal component.\n */\n\nvar NativeSelectInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function NativeSelectInput(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      disabled = props.disabled,\n      IconComponent = props.IconComponent,\n      inputRef = props.inputRef,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"disabled\", \"IconComponent\", \"inputRef\", \"variant\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"select\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, // TODO v5: merge root and select\n    classes.select, classes[variant], className, disabled && classes.disabled),\n    disabled: disabled,\n    ref: inputRef || ref\n  }, other)), props.multiple ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](IconComponent, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.icon, classes[\"icon\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(variant))], disabled && classes.disabled)\n  }));\n});\n true ? NativeSelectInput.propTypes = {\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<option>` elements.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * The CSS class name of the select element.\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the select will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType.isRequired,\n\n  /**\n   * Use that prop to pass a ref to the native select element.\n   * @deprecated\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * @ignore\n   */\n  multiple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The input value.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['standard', 'outlined', 'filled'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (NativeSelectInput);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/NativeSelect/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/NativeSelect/index.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NativeSelect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NativeSelect */ \"./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _NativeSelect__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/NativeSelect/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/NoSsr/NoSsr.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/NoSsr/NoSsr.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\n\nvar useEnhancedEffect = typeof window !== 'undefined' && \"development\" !== 'test' ? react__WEBPACK_IMPORTED_MODULE_0__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"];\n/**\n * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).\n *\n * This component can be useful in a variety of situations:\n * - Escape hatch for broken dependencies not supporting SSR.\n * - Improve the time-to-first paint on the client by only rendering above the fold.\n * - Reduce the rendering time on the server.\n * - Under too heavy server load, you can turn on service degradation.\n */\n\nfunction NoSsr(props) {\n  var children = props.children,\n      _props$defer = props.defer,\n      defer = _props$defer === void 0 ? false : _props$defer,\n      _props$fallback = props.fallback,\n      fallback = _props$fallback === void 0 ? null : _props$fallback;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"](false),\n      mountedState = _React$useState[0],\n      setMountedState = _React$useState[1];\n\n  useEnhancedEffect(function () {\n    if (!defer) {\n      setMountedState(true);\n    }\n  }, [defer]);\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    if (defer) {\n      setMountedState(true);\n    }\n  }, [defer]); // We need the Fragment here to force react-docgen to recognise NoSsr as a component.\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, mountedState ? children : fallback);\n}\n\n true ? NoSsr.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * You can wrap a node.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n  /**\n   * If `true`, the component will not only prevent server-side rendering.\n   * It will also defer the rendering of the children into a different screen frame.\n   */\n  defer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * The fallback content to display.\n   */\n  fallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node\n} : undefined;\n\nif (true) {\n  // eslint-disable-next-line\n  NoSsr['propTypes' + ''] = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"exactProp\"])(NoSsr.propTypes);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (NoSsr);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/NoSsr/NoSsr.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/NoSsr/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/NoSsr/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _NoSsr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NoSsr */ \"./node_modules/@material-ui/core/esm/NoSsr/NoSsr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _NoSsr__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/NoSsr/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js ***!
  \****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'absolute',\n      bottom: 0,\n      right: 0,\n      top: -5,\n      left: 0,\n      margin: 0,\n      padding: '0 8px',\n      pointerEvents: 'none',\n      borderRadius: 'inherit',\n      borderStyle: 'solid',\n      borderWidth: 1,\n      overflow: 'hidden'\n    },\n\n    /* Styles applied to the legend element when `labelWidth` is provided. */\n    legend: {\n      textAlign: 'left',\n      padding: 0,\n      lineHeight: '11px',\n      // sync with `height` in `legend` styles\n      transition: theme.transitions.create('width', {\n        duration: 150,\n        easing: theme.transitions.easing.easeOut\n      })\n    },\n\n    /* Styles applied to the legend element. */\n    legendLabelled: {\n      display: 'block',\n      width: 'auto',\n      textAlign: 'left',\n      padding: 0,\n      height: 11,\n      // sync with `lineHeight` in `legend` styles\n      fontSize: '0.75em',\n      visibility: 'hidden',\n      maxWidth: 0.01,\n      transition: theme.transitions.create('max-width', {\n        duration: 50,\n        easing: theme.transitions.easing.easeOut\n      }),\n      '& > span': {\n        paddingLeft: 5,\n        paddingRight: 5,\n        display: 'inline-block'\n      }\n    },\n\n    /* Styles applied to the legend element is notched. */\n    legendNotched: {\n      maxWidth: 1000,\n      transition: theme.transitions.create('max-width', {\n        duration: 100,\n        easing: theme.transitions.easing.easeOut,\n        delay: 50\n      })\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\nvar NotchedOutline = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function NotchedOutline(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      label = props.label,\n      labelWidthProp = props.labelWidth,\n      notched = props.notched,\n      style = props.style,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"label\", \"labelWidth\", \"notched\", \"style\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n  var align = theme.direction === 'rtl' ? 'right' : 'left';\n\n  if (label !== undefined) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"fieldset\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      \"aria-hidden\": true,\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n      ref: ref,\n      style: style\n    }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"legend\", {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.legendLabelled, notched && classes.legendNotched)\n    }, label ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"span\", null, label) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"span\", {\n      dangerouslySetInnerHTML: {\n        __html: '&#8203;'\n      }\n    })));\n  }\n\n  var labelWidth = labelWidthProp > 0 ? labelWidthProp * 0.75 + 8 : 0.01;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"fieldset\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    \"aria-hidden\": true,\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, \"padding\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(align)), 8), style),\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"legend\", {\n    className: classes.legend,\n    style: {\n      // IE 11: fieldset with legend does not render\n      // a border radius. This maintains consistency\n      // by always having a legend rendered\n      width: notched ? labelWidth : 0.01\n    }\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"span\", {\n    dangerouslySetInnerHTML: {\n      __html: '&#8203;'\n    }\n  })));\n});\n true ? NotchedOutline.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The label.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * The width of the label.\n   */\n  labelWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n\n  /**\n   * If `true`, the outline is notched to accommodate the label.\n   */\n  notched: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool.isRequired,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'PrivateNotchedOutline'\n})(NotchedOutline));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js ***!
  \***************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _InputBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../InputBase */ \"./node_modules/@material-ui/core/esm/InputBase/index.js\");\n/* harmony import */ var _NotchedOutline__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./NotchedOutline */ \"./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var borderColor = theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      borderRadius: theme.shape.borderRadius,\n      '&:hover $notchedOutline': {\n        borderColor: theme.palette.text.primary\n      },\n      // Reset on touch devices, it doesn't add specificity\n      '@media (hover: none)': {\n        '&:hover $notchedOutline': {\n          borderColor: borderColor\n        }\n      },\n      '&$focused $notchedOutline': {\n        borderColor: theme.palette.primary.main,\n        borderWidth: 2\n      },\n      '&$error $notchedOutline': {\n        borderColor: theme.palette.error.main\n      },\n      '&$disabled $notchedOutline': {\n        borderColor: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if the color is secondary. */\n    colorSecondary: {\n      '&$focused $notchedOutline': {\n        borderColor: theme.palette.secondary.main\n      }\n    },\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `startAdornment` is provided. */\n    adornedStart: {\n      paddingLeft: 14\n    },\n\n    /* Styles applied to the root element if `endAdornment` is provided. */\n    adornedEnd: {\n      paddingRight: 14\n    },\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    marginDense: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {\n      padding: '18.5px 14px',\n      '&$marginDense': {\n        paddingTop: 10.5,\n        paddingBottom: 10.5\n      }\n    },\n\n    /* Styles applied to the `NotchedOutline` element. */\n    notchedOutline: {\n      borderColor: borderColor\n    },\n\n    /* Styles applied to the `input` element. */\n    input: {\n      padding: '18.5px 14px',\n      '&:-webkit-autofill': {\n        WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',\n        WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',\n        caretColor: theme.palette.type === 'light' ? null : '#fff',\n        borderRadius: 'inherit'\n      }\n    },\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {\n      paddingTop: 10.5,\n      paddingBottom: 10.5\n    },\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {\n      padding: 0\n    },\n\n    /* Styles applied to the `input` element if `startAdornment` is provided. */\n    inputAdornedStart: {\n      paddingLeft: 0\n    },\n\n    /* Styles applied to the `input` element if `endAdornment` is provided. */\n    inputAdornedEnd: {\n      paddingRight: 0\n    }\n  };\n};\nvar OutlinedInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function OutlinedInput(props, ref) {\n  var classes = props.classes,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      _props$inputComponent = props.inputComponent,\n      inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,\n      label = props.label,\n      _props$labelWidth = props.labelWidth,\n      labelWidth = _props$labelWidth === void 0 ? 0 : _props$labelWidth,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      notched = props.notched,\n      _props$type = props.type,\n      type = _props$type === void 0 ? 'text' : _props$type,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"fullWidth\", \"inputComponent\", \"label\", \"labelWidth\", \"multiline\", \"notched\", \"type\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_InputBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    renderSuffix: function renderSuffix(state) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_NotchedOutline__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n        className: classes.notchedOutline,\n        label: label,\n        labelWidth: labelWidth,\n        notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)\n      });\n    },\n    classes: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, classes, {\n      root: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes.underline),\n      notchedOutline: null\n    }),\n    fullWidth: fullWidth,\n    inputComponent: inputComponent,\n    multiline: multiline,\n    ref: ref,\n    type: type\n  }, other));\n});\n true ? OutlinedInput.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * This prop helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n   */\n  autoComplete: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the `input` element will be focused during the first mount.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The default `input` element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * If `true`, the `input` element will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the `input` element.\n   * Either a string to use a HTML element or a component.\n   */\n  inputComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * The label of the input. It is only used for layout. The actual labelling\n   * is handled by `InputLabel`. If specified `labelWidth` is ignored.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The width of the label. Is ignored if `label` is provided. Prefer `label`\n   * if the input label appears with a strike through.\n   */\n  labelWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the outline is notched to accommodate the label.\n   */\n  notched: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The value of the `input` element, required for a controlled component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\nOutlinedInput.muiName = 'Input';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(styles, {\n  name: 'MuiOutlinedInput'\n})(OutlinedInput));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/OutlinedInput/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/OutlinedInput/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _OutlinedInput__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OutlinedInput */ \"./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _OutlinedInput__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/OutlinedInput/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Paper/Paper.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Paper/Paper.js ***!
  \***********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var elevations = {};\n  theme.shadows.forEach(function (shadow, index) {\n    elevations[\"elevation\".concat(index)] = {\n      boxShadow: shadow\n    };\n  });\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    /* Styles applied to the root element. */\n    root: {\n      backgroundColor: theme.palette.background.paper,\n      color: theme.palette.text.primary,\n      transition: theme.transitions.create('box-shadow')\n    },\n\n    /* Styles applied to the root element if `square={false}`. */\n    rounded: {\n      borderRadius: theme.shape.borderRadius\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      border: \"1px solid \".concat(theme.palette.divider)\n    }\n  }, elevations);\n};\nvar Paper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Paper(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$square = props.square,\n      square = _props$square === void 0 ? false : _props$square,\n      _props$elevation = props.elevation,\n      elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n    ref: ref\n  }, other));\n});\n true ? Paper.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Shadow depth, corresponds to `dp` in the spec.\n   * It accepts values between 0 and 24 inclusive.\n   */\n  elevation: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, function (props) {\n    var classes = props.classes,\n        elevation = props.elevation; // in case `withStyles` fails to inject we don't need this warning\n\n    if (classes === undefined) {\n      return null;\n    }\n\n    if (elevation != null && classes[\"elevation\".concat(elevation)] === undefined) {\n      return new Error(\"Material-UI: This elevation `\".concat(elevation, \"` is not implemented.\"));\n    }\n\n    return null;\n  }),\n\n  /**\n   * If `true`, rounded corners are disabled.\n   */\n  square: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['elevation', 'outlined'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiPaper'\n})(Paper));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Paper/Paper.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Paper/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Paper/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Paper */ \"./node_modules/@material-ui/core/esm/Paper/Paper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Paper__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Paper/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Popover/Popover.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Popover/Popover.js ***!
  \***************************************************************/
/*! exports provided: getOffsetTop, getOffsetLeft, styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOffsetTop\", function() { return getOffsetTop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOffsetLeft\", function() { return getOffsetLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_debounce__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_ownerWindow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/ownerWindow */ \"./node_modules/@material-ui/core/esm/utils/ownerWindow.js\");\n/* harmony import */ var _utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/createChainedFunction */ \"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Modal */ \"./node_modules/@material-ui/core/esm/Modal/index.js\");\n/* harmony import */ var _Grow__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Grow */ \"./node_modules/@material-ui/core/esm/Grow/index.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getOffsetTop(rect, vertical) {\n  var offset = 0;\n\n  if (typeof vertical === 'number') {\n    offset = vertical;\n  } else if (vertical === 'center') {\n    offset = rect.height / 2;\n  } else if (vertical === 'bottom') {\n    offset = rect.height;\n  }\n\n  return offset;\n}\nfunction getOffsetLeft(rect, horizontal) {\n  var offset = 0;\n\n  if (typeof horizontal === 'number') {\n    offset = horizontal;\n  } else if (horizontal === 'center') {\n    offset = rect.width / 2;\n  } else if (horizontal === 'right') {\n    offset = rect.width;\n  }\n\n  return offset;\n}\n\nfunction getTransformOriginValue(transformOrigin) {\n  return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {\n    return typeof n === 'number' ? \"\".concat(n, \"px\") : n;\n  }).join(' ');\n} // Sum the scrollTop between two elements.\n\n\nfunction getScrollParent(parent, child) {\n  var element = child;\n  var scrollTop = 0;\n\n  while (element && element !== parent) {\n    element = element.parentElement;\n    scrollTop += element.scrollTop;\n  }\n\n  return scrollTop;\n}\n\nfunction getAnchorEl(anchorEl) {\n  return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {},\n\n  /* Styles applied to the `Paper` component. */\n  paper: {\n    position: 'absolute',\n    overflowY: 'auto',\n    overflowX: 'hidden',\n    // So we see the popover when it's empty.\n    // It's most likely on issue on userland.\n    minWidth: 16,\n    minHeight: 16,\n    maxWidth: 'calc(100% - 32px)',\n    maxHeight: 'calc(100% - 32px)',\n    // We disable the focus ring for mouse, touch and keyboard users.\n    outline: 0\n  }\n};\nvar Popover = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Popover(props, ref) {\n  var action = props.action,\n      anchorEl = props.anchorEl,\n      _props$anchorOrigin = props.anchorOrigin,\n      anchorOrigin = _props$anchorOrigin === void 0 ? {\n    vertical: 'top',\n    horizontal: 'left'\n  } : _props$anchorOrigin,\n      anchorPosition = props.anchorPosition,\n      _props$anchorReferenc = props.anchorReference,\n      anchorReference = _props$anchorReferenc === void 0 ? 'anchorEl' : _props$anchorReferenc,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      containerProp = props.container,\n      _props$elevation = props.elevation,\n      elevation = _props$elevation === void 0 ? 8 : _props$elevation,\n      getContentAnchorEl = props.getContentAnchorEl,\n      _props$marginThreshol = props.marginThreshold,\n      marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      open = props.open,\n      _props$PaperProps = props.PaperProps,\n      PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n      _props$transformOrigi = props.transformOrigin,\n      transformOrigin = _props$transformOrigi === void 0 ? {\n    vertical: 'top',\n    horizontal: 'left'\n  } : _props$transformOrigi,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Grow__WEBPACK_IMPORTED_MODULE_13__[\"default\"] : _props$TransitionComp,\n      _props$transitionDura = props.transitionDuration,\n      transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n      _props$TransitionProp = props.TransitionProps,\n      TransitionProps = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"classes\", \"className\", \"container\", \"elevation\", \"getContentAnchorEl\", \"marginThreshold\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperProps\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n  var paperRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](); // Returns the top/left offset of the position\n  // to attach to on the anchor element (or body if none is provided)\n\n  var getAnchorOffset = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (contentAnchorOffset) {\n    if (anchorReference === 'anchorPosition') {\n      if (true) {\n        if (!anchorPosition) {\n          console.error('Material-UI: You need to provide a `anchorPosition` prop when using ' + '<Popover anchorReference=\"anchorPosition\" />.');\n        }\n      }\n\n      return anchorPosition;\n    }\n\n    var resolvedAnchorEl = getAnchorEl(anchorEl); // If an anchor element wasn't provided, just use the parent body element of this Popover\n\n    var anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(paperRef.current).body;\n    var anchorRect = anchorElement.getBoundingClientRect();\n\n    if (true) {\n      var box = anchorElement.getBoundingClientRect();\n\n      if ( true && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n        console.warn(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n      }\n    }\n\n    var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';\n    return {\n      top: anchorRect.top + getOffsetTop(anchorRect, anchorVertical),\n      left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n    };\n  }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]); // Returns the vertical offset of inner content to anchor the transform on if provided\n\n  var getContentAnchorOffset = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (element) {\n    var contentAnchorOffset = 0;\n\n    if (getContentAnchorEl && anchorReference === 'anchorEl') {\n      var contentAnchorEl = getContentAnchorEl(element);\n\n      if (contentAnchorEl && element.contains(contentAnchorEl)) {\n        var scrollTop = getScrollParent(element, contentAnchorEl);\n        contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;\n      } // != the default value\n\n\n      if (true) {\n        if (anchorOrigin.vertical !== 'top') {\n          console.error(['Material-UI: You can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` prop to the popover component.', 'Only use one of the two props.', 'Set `getContentAnchorEl` to `null | undefined`' + ' or leave `anchorOrigin.vertical` unchanged.'].join('\\n'));\n        }\n      }\n    }\n\n    return contentAnchorOffset;\n  }, [anchorOrigin.vertical, anchorReference, getContentAnchorEl]); // Return the base transform origin using the element\n  // and taking the content anchor offset into account if in use\n\n  var getTransformOrigin = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (elemRect) {\n    var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    return {\n      vertical: getOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,\n      horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n    };\n  }, [transformOrigin.horizontal, transformOrigin.vertical]);\n  var getPositioningStyle = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (element) {\n    // Check if the parent has requested anchoring on an inner content node\n    var contentAnchorOffset = getContentAnchorOffset(element);\n    var elemRect = {\n      width: element.offsetWidth,\n      height: element.offsetHeight\n    }; // Get the transform origin point on the element itself\n\n    var elemTransformOrigin = getTransformOrigin(elemRect, contentAnchorOffset);\n\n    if (anchorReference === 'none') {\n      return {\n        top: null,\n        left: null,\n        transformOrigin: getTransformOriginValue(elemTransformOrigin)\n      };\n    } // Get the offset of of the anchoring element\n\n\n    var anchorOffset = getAnchorOffset(contentAnchorOffset); // Calculate element positioning\n\n    var top = anchorOffset.top - elemTransformOrigin.vertical;\n    var left = anchorOffset.left - elemTransformOrigin.horizontal;\n    var bottom = top + elemRect.height;\n    var right = left + elemRect.width; // Use the parent window of the anchorEl if provided\n\n    var containerWindow = Object(_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account\n\n    var heightThreshold = containerWindow.innerHeight - marginThreshold;\n    var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting\n\n    if (top < marginThreshold) {\n      var diff = top - marginThreshold;\n      top -= diff;\n      elemTransformOrigin.vertical += diff;\n    } else if (bottom > heightThreshold) {\n      var _diff = bottom - heightThreshold;\n\n      top -= _diff;\n      elemTransformOrigin.vertical += _diff;\n    }\n\n    if (true) {\n      if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n        console.error(['Material-UI: The popover component is too tall.', \"Some part of it can not be seen on the screen (\".concat(elemRect.height - heightThreshold, \"px).\"), 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n      }\n    } // Check if the horizontal axis needs shifting\n\n\n    if (left < marginThreshold) {\n      var _diff2 = left - marginThreshold;\n\n      left -= _diff2;\n      elemTransformOrigin.horizontal += _diff2;\n    } else if (right > widthThreshold) {\n      var _diff3 = right - widthThreshold;\n\n      left -= _diff3;\n      elemTransformOrigin.horizontal += _diff3;\n    }\n\n    return {\n      top: \"\".concat(Math.round(top), \"px\"),\n      left: \"\".concat(Math.round(left), \"px\"),\n      transformOrigin: getTransformOriginValue(elemTransformOrigin)\n    };\n  }, [anchorEl, anchorReference, getAnchorOffset, getContentAnchorOffset, getTransformOrigin, marginThreshold]);\n  var setPositioningStyles = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    var element = paperRef.current;\n\n    if (!element) {\n      return;\n    }\n\n    var positioning = getPositioningStyle(element);\n\n    if (positioning.top !== null) {\n      element.style.top = positioning.top;\n    }\n\n    if (positioning.left !== null) {\n      element.style.left = positioning.left;\n    }\n\n    element.style.transformOrigin = positioning.transformOrigin;\n  }, [getPositioningStyle]);\n\n  var handleEntering = function handleEntering(element, isAppearing) {\n    if (onEntering) {\n      onEntering(element, isAppearing);\n    }\n\n    setPositioningStyles();\n  };\n\n  var handlePaperRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    paperRef.current = react_dom__WEBPACK_IMPORTED_MODULE_4__[\"findDOMNode\"](instance);\n  }, []);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (open) {\n      setPositioningStyles();\n    }\n  });\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useImperativeHandle\"](action, function () {\n    return open ? {\n      updatePosition: function updatePosition() {\n        setPositioningStyles();\n      }\n    } : null;\n  }, [open, setPositioningStyles]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (!open) {\n      return undefined;\n    }\n\n    var handleResize = Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(function () {\n      setPositioningStyles();\n    });\n    window.addEventListener('resize', handleResize);\n    return function () {\n      handleResize.clear();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [open, setPositioningStyles]);\n  var transitionDuration = transitionDurationProp;\n\n  if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n    transitionDuration = undefined;\n  } // If the container prop is provided, use that\n  // If the anchorEl prop is provided, use its parent body element as the container\n  // If neither are provided let the Modal take care of choosing the container\n\n\n  var container = containerProp || (anchorEl ? Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(getAnchorEl(anchorEl)).body : undefined);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Modal__WEBPACK_IMPORTED_MODULE_12__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    container: container,\n    open: open,\n    ref: ref,\n    BackdropProps: {\n      invisible: true\n    },\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(classes.root, className)\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    appear: true,\n    in: open,\n    onEnter: onEnter,\n    onEntered: onEntered,\n    onExit: onExit,\n    onExited: onExited,\n    onExiting: onExiting,\n    timeout: transitionDuration\n  }, TransitionProps, {\n    onEntering: Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(handleEntering, TransitionProps.onEntering)\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_14__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    elevation: elevation,\n    ref: handlePaperRef\n  }, PaperProps, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(classes.paper, PaperProps.className)\n  }), children)));\n});\n true ? Popover.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A ref for imperative actions.\n   * It currently only supports updatePosition() action.\n   */\n  action: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * A HTML element, or a function that returns it.\n   * It's used to set the position of the popover.\n   */\n  anchorEl: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]), function (props) {\n    if (props.open && (!props.anchorReference || props.anchorReference === 'anchorEl')) {\n      var resolvedAnchorEl = getAnchorEl(props.anchorEl);\n\n      if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n        var box = resolvedAnchorEl.getBoundingClientRect();\n\n        if ( true && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n          return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n        }\n      } else {\n        return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', \"It should be an Element instance but it's `\".concat(resolvedAnchorEl, \"` instead.\")].join('\\n'));\n      }\n    }\n\n    return null;\n  }),\n\n  /**\n   * This is the point on the anchor where the popover's\n   * `anchorEl` will attach to. This is not used when the\n   * anchorReference is 'anchorPosition'.\n   *\n   * Options:\n   * vertical: [top, center, bottom];\n   * horizontal: [left, center, right].\n   */\n  anchorOrigin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    horizontal: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['center', 'left', 'right']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]).isRequired,\n    vertical: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom', 'center', 'top']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]).isRequired\n  }),\n\n  /**\n   * This is the position that may be used\n   * to set the position of the popover.\n   * The coordinates are relative to\n   * the application's client area.\n   */\n  anchorPosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    left: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n    top: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired\n  }),\n\n  /**\n   * This determines which anchor prop to refer to to set\n   * the position of the popover.\n   */\n  anchorReference: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['anchorEl', 'anchorPosition', 'none']),\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * A HTML element, component instance, or function that returns either.\n   * The `container` will passed to the Modal component.\n   *\n   * By default, it uses the body of the anchorEl's top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.instanceOf(react__WEBPACK_IMPORTED_MODULE_2__[\"Component\"]), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]),\n\n  /**\n   * The elevation of the popover.\n   */\n  elevation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * This function is called in order to retrieve the content anchor element.\n   * It's the opposite of the `anchorEl` prop.\n   * The content anchor element should be an element inside the popover.\n   * It's used to correctly scroll and set the position of the popover.\n   * The positioning strategy tries to make the content anchor element just above the\n   * anchor element.\n   */\n  getContentAnchorEl: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Specifies how close to the edge of the window the popover can appear.\n   */\n  marginThreshold: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired before the component is entering.\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component has entered.\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component is entering.\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired before the component is exiting.\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component has exited.\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component is exiting.\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * If `true`, the popover is visible.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired,\n\n  /**\n   * Props applied to the [`Paper`](/api/paper/) element.\n   */\n  PaperProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .shape({\n    component: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"elementTypeAcceptingRef\"]\n  }),\n\n  /**\n   * This is the point on the popover which\n   * will attach to the anchor's origin.\n   *\n   * Options:\n   * vertical: [top, center, bottom, x(px)];\n   * horizontal: [left, center, right, x(px)].\n   */\n  transformOrigin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    horizontal: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['center', 'left', 'right']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]).isRequired,\n    vertical: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom', 'center', 'top']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]).isRequired\n  }),\n\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['auto']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n  })]),\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(styles, {\n  name: 'MuiPopover'\n})(Popover));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Popover/Popover.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Popover/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Popover/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Popover */ \"./node_modules/@material-ui/core/esm/Popover/Popover.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Popover__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Popover/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Popper/Popper.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Popper/Popper.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var popper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! popper.js */ \"./node_modules/popper.js/dist/esm/popper.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Portal */ \"./node_modules/@material-ui/core/esm/Portal/index.js\");\n/* harmony import */ var _utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/createChainedFunction */ \"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js\");\n/* harmony import */ var _utils_setRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nfunction flipPlacement(placement, theme) {\n  var direction = theme && theme.direction || 'ltr';\n\n  if (direction === 'ltr') {\n    return placement;\n  }\n\n  switch (placement) {\n    case 'bottom-end':\n      return 'bottom-start';\n\n    case 'bottom-start':\n      return 'bottom-end';\n\n    case 'top-end':\n      return 'top-start';\n\n    case 'top-start':\n      return 'top-end';\n\n    default:\n      return placement;\n  }\n}\n\nfunction getAnchorEl(anchorEl) {\n  return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"];\nvar defaultPopperOptions = {};\n/**\n * Poppers rely on the 3rd party library [Popper.js](https://popper.js.org/docs/v1/) for positioning.\n */\n\nvar Popper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Popper(props, ref) {\n  var anchorEl = props.anchorEl,\n      children = props.children,\n      container = props.container,\n      _props$disablePortal = props.disablePortal,\n      disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n      _props$keepMounted = props.keepMounted,\n      keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,\n      modifiers = props.modifiers,\n      open = props.open,\n      _props$placement = props.placement,\n      initialPlacement = _props$placement === void 0 ? 'bottom' : _props$placement,\n      _props$popperOptions = props.popperOptions,\n      popperOptions = _props$popperOptions === void 0 ? defaultPopperOptions : _props$popperOptions,\n      popperRefProp = props.popperRef,\n      style = props.style,\n      _props$transition = props.transition,\n      transition = _props$transition === void 0 ? false : _props$transition,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"anchorEl\", \"children\", \"container\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"popperRef\", \"style\", \"transition\"]);\n\n  var tooltipRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var ownRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(tooltipRef, ref);\n  var popperRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var handlePopperRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(popperRef, popperRefProp);\n  var handlePopperRefRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](handlePopperRef);\n  useEnhancedEffect(function () {\n    handlePopperRefRef.current = handlePopperRef;\n  }, [handlePopperRef]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useImperativeHandle\"](popperRefProp, function () {\n    return popperRef.current;\n  }, []);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](true),\n      exited = _React$useState[0],\n      setExited = _React$useState[1];\n\n  var theme = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_6__[\"useTheme\"])();\n  var rtlPlacement = flipPlacement(initialPlacement, theme);\n  /**\n   * placement initialized from prop but can change during lifetime if modifiers.flip.\n   * modifiers.flip is essentially a flip for controlled/uncontrolled behavior\n   */\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](rtlPlacement),\n      placement = _React$useState2[0],\n      setPlacement = _React$useState2[1];\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (popperRef.current) {\n      popperRef.current.update();\n    }\n  });\n  var handleOpen = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    if (!tooltipRef.current || !anchorEl || !open) {\n      return;\n    }\n\n    if (popperRef.current) {\n      popperRef.current.destroy();\n      handlePopperRefRef.current(null);\n    }\n\n    var handlePopperUpdate = function handlePopperUpdate(data) {\n      setPlacement(data.placement);\n    };\n\n    var resolvedAnchorEl = getAnchorEl(anchorEl);\n\n    if (true) {\n      if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n        var box = resolvedAnchorEl.getBoundingClientRect();\n\n        if ( true && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n          console.warn(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n        }\n      }\n    }\n\n    var popper = new popper_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](getAnchorEl(anchorEl), tooltipRef.current, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      placement: rtlPlacement\n    }, popperOptions, {\n      modifiers: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, disablePortal ? {} : {\n        // It's using scrollParent by default, we can use the viewport when using a portal.\n        preventOverflow: {\n          boundariesElement: 'window'\n        }\n      }, modifiers, popperOptions.modifiers),\n      // We could have been using a custom modifier like react-popper is doing.\n      // But it seems this is the best public API for this use case.\n      onCreate: Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(handlePopperUpdate, popperOptions.onCreate),\n      onUpdate: Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(handlePopperUpdate, popperOptions.onUpdate)\n    }));\n    handlePopperRefRef.current(popper);\n  }, [anchorEl, disablePortal, modifiers, open, rtlPlacement, popperOptions]);\n  var handleRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (node) {\n    Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(ownRef, node);\n    handleOpen();\n  }, [ownRef, handleOpen]);\n\n  var handleEnter = function handleEnter() {\n    setExited(false);\n  };\n\n  var handleClose = function handleClose() {\n    if (!popperRef.current) {\n      return;\n    }\n\n    popperRef.current.destroy();\n    handlePopperRefRef.current(null);\n  };\n\n  var handleExited = function handleExited() {\n    setExited(true);\n    handleClose();\n  };\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    return function () {\n      handleClose();\n    };\n  }, []);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (!open && !transition) {\n      // Otherwise handleExited will call this.\n      handleClose();\n    }\n  }, [open, transition]);\n\n  if (!keepMounted && !open && (!transition || exited)) {\n    return null;\n  }\n\n  var childProps = {\n    placement: placement\n  };\n\n  if (transition) {\n    childProps.TransitionProps = {\n      in: open,\n      onEnter: handleEnter,\n      onExited: handleExited\n    };\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Portal__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n    disablePortal: disablePortal,\n    container: container\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: handleRef,\n    role: \"tooltip\"\n  }, other, {\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n      position: 'fixed',\n      // Fix Popper.js display issue\n      top: 0,\n      left: 0,\n      display: !open && keepMounted && !transition ? 'none' : null\n    }, style)\n  }), typeof children === 'function' ? children(childProps) : children));\n});\n true ? Popper.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A HTML element, [referenceObject](https://popper.js.org/docs/v1/#referenceObject),\n   * or a function that returns either.\n   * It's used to set the position of the popper.\n   * The return value will passed as the reference object of the Popper instance.\n   */\n  anchorEl: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]), function (props) {\n    if (props.open) {\n      var resolvedAnchorEl = getAnchorEl(props.anchorEl);\n\n      if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n        var box = resolvedAnchorEl.getBoundingClientRect();\n\n        if ( true && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n          return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n        }\n      } else if (!resolvedAnchorEl || typeof resolvedAnchorEl.clientWidth !== 'number' || typeof resolvedAnchorEl.clientHeight !== 'number' || typeof resolvedAnchorEl.getBoundingClientRect !== 'function') {\n        return new Error(['Material-UI: The `anchorEl` prop provided to the component is invalid.', 'It should be an HTML element instance or a referenceObject ', '(https://popper.js.org/docs/v1/#referenceObject).'].join('\\n'));\n      }\n    }\n\n    return null;\n  }),\n\n  /**\n   * Popper render function or node.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]).isRequired,\n\n  /**\n   * A HTML element, component instance, or function that returns either.\n   * The `container` will have the portal children appended to it.\n   *\n   * By default, it uses the body of the top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.instanceOf(react__WEBPACK_IMPORTED_MODULE_2__[\"Component\"]), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]),\n\n  /**\n   * Disable the portal behavior.\n   * The children stay within it's parent DOM hierarchy.\n   */\n  disablePortal: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Always keep the children in the DOM.\n   * This prop can be useful in SEO situation or\n   * when you want to maximize the responsiveness of the Popper.\n   */\n  keepMounted: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Popper.js is based on a \"plugin-like\" architecture,\n   * most of its features are fully encapsulated \"modifiers\".\n   *\n   * A modifier is a function that is called each time Popper.js needs to\n   * compute the position of the popper.\n   * For this reason, modifiers should be very performant to avoid bottlenecks.\n   * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v1/#modifiers).\n   */\n  modifiers: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * If `true`, the popper is visible.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired,\n\n  /**\n   * Popper placement.\n   */\n  placement: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n  /**\n   * Options provided to the [`popper.js`](https://popper.js.org/docs/v1/) instance.\n   */\n  popperOptions: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * A ref that points to the used popper instance.\n   */\n  popperRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Help supporting a react-transition-group/Transition component.\n   */\n  transition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Popper);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Popper/Popper.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Popper/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Popper/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Popper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Popper */ \"./node_modules/@material-ui/core/esm/Popper/Popper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Popper__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Popper/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Portal/Portal.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Portal/Portal.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_setRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\nfunction getContainer(container) {\n  container = typeof container === 'function' ? container() : container; // #StrictMode ready\n\n  return react_dom__WEBPACK_IMPORTED_MODULE_1__[\"findDOMNode\"](container);\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"];\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\nvar Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"](function Portal(props, ref) {\n  var children = props.children,\n      container = props.container,\n      _props$disablePortal = props.disablePortal,\n      disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,\n      onRendered = props.onRendered;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"](null),\n      mountNode = _React$useState[0],\n      setMountNode = _React$useState[1];\n\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"](children) ? children.ref : null, ref);\n  useEnhancedEffect(function () {\n    if (!disablePortal) {\n      setMountNode(getContainer(container) || document.body);\n    }\n  }, [container, disablePortal]);\n  useEnhancedEffect(function () {\n    if (mountNode && !disablePortal) {\n      Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(ref, mountNode);\n      return function () {\n        Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(ref, null);\n      };\n    }\n\n    return undefined;\n  }, [ref, mountNode, disablePortal]);\n  useEnhancedEffect(function () {\n    if (onRendered && (mountNode || disablePortal)) {\n      onRendered();\n    }\n  }, [onRendered, mountNode, disablePortal]);\n\n  if (disablePortal) {\n    if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"](children)) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"](children, {\n        ref: handleRef\n      });\n    }\n\n    return children;\n  }\n\n  return mountNode ? /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_1__[\"createPortal\"](children, mountNode) : mountNode;\n});\n true ? Portal.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The children to render into the `container`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node,\n\n  /**\n   * A HTML element, component instance, or function that returns either.\n   * The `container` will have the portal children appended to it.\n   *\n   * By default, it uses the body of the top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a\n  /* @typescript-to-proptypes-ignore */\n  .oneOfType([_material_ui_utils__WEBPACK_IMPORTED_MODULE_3__[\"HTMLElementType\"], prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.instanceOf(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]), prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func]),\n\n  /**\n   * Disable the portal behavior.\n   * The children stay within it's parent DOM hierarchy.\n   */\n  disablePortal: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * Callback fired once the children has been mounted into the `container`.\n   *\n   * This prop will be deprecated and removed in v5, the ref can be used instead.\n   */\n  onRendered: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func\n} : undefined;\n\nif (true) {\n  // eslint-disable-next-line\n  Portal['propTypes' + ''] = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_3__[\"exactProp\"])(Portal.propTypes);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Portal);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Portal/Portal.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Portal/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Portal/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Portal */ \"./node_modules/@material-ui/core/esm/Portal/Portal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Portal__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Portal/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Radio/Radio.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Radio/Radio.js ***!
  \***********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _internal_SwitchBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/SwitchBase */ \"./node_modules/@material-ui/core/esm/internal/SwitchBase.js\");\n/* harmony import */ var _RadioButtonIcon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./RadioButtonIcon */ \"./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/createChainedFunction */ \"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _RadioGroup_useRadioGroup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../RadioGroup/useRadioGroup */ \"./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: theme.palette.text.secondary\n    },\n\n    /* Pseudo-class applied to the root element if `checked={true}`. */\n    checked: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      '&$checked': {\n        color: theme.palette.primary.main,\n        '&:hover': {\n          backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_8__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n          // Reset on touch devices, it doesn't add specificity\n          '@media (hover: none)': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      '&$checked': {\n        color: theme.palette.secondary.main,\n        '&:hover': {\n          backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_8__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n          // Reset on touch devices, it doesn't add specificity\n          '@media (hover: none)': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    }\n  };\n};\nvar defaultCheckedIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_RadioButtonIcon__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n  checked: true\n});\nvar defaultIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_RadioButtonIcon__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null);\nvar Radio = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Radio(props, ref) {\n  var checkedProp = props.checked,\n      classes = props.classes,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'secondary' : _props$color,\n      nameProp = props.name,\n      onChangeProp = props.onChange,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"checked\", \"classes\", \"color\", \"name\", \"onChange\", \"size\"]);\n\n  var radioGroup = Object(_RadioGroup_useRadioGroup__WEBPACK_IMPORTED_MODULE_12__[\"default\"])();\n  var checked = checkedProp;\n  var onChange = Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(onChangeProp, radioGroup && radioGroup.onChange);\n  var name = nameProp;\n\n  if (radioGroup) {\n    if (typeof checked === 'undefined') {\n      checked = radioGroup.value === props.value;\n    }\n\n    if (typeof name === 'undefined') {\n      name = radioGroup.name;\n    }\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_SwitchBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    color: color,\n    type: \"radio\",\n    icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](defaultIcon, {\n      fontSize: size === 'small' ? 'small' : 'default'\n    }),\n    checkedIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](defaultCheckedIcon, {\n      fontSize: size === 'small' ? 'small' : 'default'\n    }),\n    classes: {\n      root: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(color))]),\n      checked: classes.checked,\n      disabled: classes.disabled\n    },\n    name: name,\n    checked: checked,\n    onChange: onChange,\n    ref: ref\n  }, other));\n});\n true ? Radio.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'primary', 'secondary']),\n\n  /**\n   * If `true`, the radio will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The size of the radio.\n   * `small` is equivalent to the dense radio styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * The value of the component. The DOM API casts this to a string.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(styles, {\n  name: 'MuiRadio'\n})(Radio));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Radio/Radio.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _internal_svg_icons_RadioButtonUnchecked__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../internal/svg-icons/RadioButtonUnchecked */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js\");\n/* harmony import */ var _internal_svg_icons_RadioButtonChecked__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/svg-icons/RadioButtonChecked */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    root: {\n      position: 'relative',\n      display: 'flex',\n      '&$checked $layer': {\n        transform: 'scale(1)',\n        transition: theme.transitions.create('transform', {\n          easing: theme.transitions.easing.easeOut,\n          duration: theme.transitions.duration.shortest\n        })\n      }\n    },\n    layer: {\n      left: 0,\n      position: 'absolute',\n      transform: 'scale(0)',\n      transition: theme.transitions.create('transform', {\n        easing: theme.transitions.easing.easeIn,\n        duration: theme.transitions.duration.shortest\n      })\n    },\n    checked: {}\n  };\n};\n/**\n * @ignore - internal component.\n */\n\nfunction RadioButtonIcon(props) {\n  var checked = props.checked,\n      classes = props.classes,\n      fontSize = props.fontSize;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.root, checked && classes.checked)\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](_internal_svg_icons_RadioButtonUnchecked__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n    fontSize: fontSize\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](_internal_svg_icons_RadioButtonChecked__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n    fontSize: fontSize,\n    className: classes.layer\n  }));\n}\n\n true ? RadioButtonIcon.propTypes = {\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n\n  /**\n   * The size of the radio.\n   * `small` is equivalent to the dense radio styling.\n   */\n  fontSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf(['small', 'default'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'PrivateRadioButtonIcon'\n})(RadioButtonIcon));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Radio/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Radio/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Radio */ \"./node_modules/@material-ui/core/esm/Radio/Radio.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Radio__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Radio/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _FormGroup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../FormGroup */ \"./node_modules/@material-ui/core/esm/FormGroup/index.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n/* harmony import */ var _RadioGroupContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./RadioGroupContext */ \"./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js\");\n/* harmony import */ var _utils_unstable_useId__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/unstable_useId */ \"./node_modules/@material-ui/core/esm/utils/unstable_useId.js\");\n\n\n\n\n\n\n\n\n\n\nvar RadioGroup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function RadioGroup(props, ref) {\n  var actions = props.actions,\n      children = props.children,\n      nameProp = props.name,\n      valueProp = props.value,\n      onChange = props.onChange,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"actions\", \"children\", \"name\", \"value\", \"onChange\"]);\n\n  var rootRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_7__[\"default\"])({\n    controlled: valueProp,\n    default: props.defaultValue,\n    name: 'RadioGroup'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useControlled, 2),\n      value = _useControlled2[0],\n      setValue = _useControlled2[1];\n\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useImperativeHandle\"](actions, function () {\n    return {\n      focus: function focus() {\n        var input = rootRef.current.querySelector('input:not(:disabled):checked');\n\n        if (!input) {\n          input = rootRef.current.querySelector('input:not(:disabled)');\n        }\n\n        if (input) {\n          input.focus();\n        }\n      }\n    };\n  }, []);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(ref, rootRef);\n\n  var handleChange = function handleChange(event) {\n    setValue(event.target.value);\n\n    if (onChange) {\n      onChange(event, event.target.value);\n    }\n  };\n\n  var name = Object(_utils_unstable_useId__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(nameProp);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_RadioGroupContext__WEBPACK_IMPORTED_MODULE_8__[\"default\"].Provider, {\n    value: {\n      name: name,\n      onChange: handleChange,\n      value: value\n    }\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_FormGroup__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    role: \"radiogroup\",\n    ref: handleRef\n  }, other), children));\n});\n true ? RadioGroup.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * The default `input` element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string), prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string]),\n\n  /**\n   * The name used to reference the value of the control.\n   * If you don't provide this prop, it falls back to a randomly generated name.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Callback fired when a radio button is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Value of the selected radio button. The DOM API casts this to a string.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (RadioGroup);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n */\n\nvar RadioGroupContext = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]();\n\nif (true) {\n  RadioGroupContext.displayName = 'RadioGroupContext';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RadioGroupContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/RadioGroup/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/RadioGroup/index.js ***!
  \****************************************************************/
/*! exports provided: default, useRadioGroup */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _RadioGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RadioGroup */ \"./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _RadioGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _useRadioGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useRadioGroup */ \"./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useRadioGroup\", function() { return _useRadioGroup__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/RadioGroup/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useRadioGroup; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _RadioGroupContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RadioGroupContext */ \"./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js\");\n\n\nfunction useRadioGroup() {\n  return react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"](_RadioGroupContext__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/RootRef/RootRef.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/RootRef/RootRef.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"./node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_setRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n\n\n\n\n\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\n\n\n/**\n * ⚠️⚠️⚠️\n * If you want the DOM element of a Material-UI component check out\n * [FAQ: How can I access the DOM element?](/getting-started/faq/#how-can-i-access-the-dom-element)\n * first.\n *\n * This component uses `findDOMNode` which is deprecated in React.StrictMode.\n *\n * Helper component to allow attaching a ref to a\n * wrapped element to access the underlying DOM element.\n *\n * It's highly inspired by https://github.com/facebook/react/issues/11401#issuecomment-340543801.\n * For example:\n * ```jsx\n * import React from 'react';\n * import RootRef from '@material-ui/core/RootRef';\n *\n * function MyComponent() {\n *   const domRef = React.useRef();\n *\n *   React.useEffect(() => {\n *     console.log(domRef.current); // DOM node\n *   }, []);\n *\n *   return (\n *     <RootRef rootRef={domRef}>\n *       <SomeChildComponent />\n *     </RootRef>\n *   );\n * }\n * ```\n */\n\nvar RootRef = /*#__PURE__*/function (_React$Component) {\n  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(RootRef, _React$Component);\n\n  var _super = _createSuper(RootRef);\n\n  function RootRef() {\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, RootRef);\n\n    return _super.apply(this, arguments);\n  }\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(RootRef, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.ref = react_dom__WEBPACK_IMPORTED_MODULE_6__[\"findDOMNode\"](this);\n      Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this.props.rootRef, this.ref);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var ref = react_dom__WEBPACK_IMPORTED_MODULE_6__[\"findDOMNode\"](this);\n\n      if (prevProps.rootRef !== this.props.rootRef || this.ref !== ref) {\n        if (prevProps.rootRef !== this.props.rootRef) {\n          Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(prevProps.rootRef, null);\n        }\n\n        this.ref = ref;\n        Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this.props.rootRef, this.ref);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.ref = null;\n      Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this.props.rootRef, null);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n\n  return RootRef;\n}(react__WEBPACK_IMPORTED_MODULE_5__[\"Component\"]);\n\n true ? RootRef.propTypes = {\n  /**\n   * The wrapped element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.element.isRequired,\n\n  /**\n   * A ref that points to the first DOM node of the wrapped element.\n   */\n  rootRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"refType\"].isRequired\n} : undefined;\n\nif (true) {\n   true ? RootRef.propTypes = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"exactProp\"])(RootRef.propTypes) : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (RootRef);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/RootRef/RootRef.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/RootRef/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/RootRef/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _RootRef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RootRef */ \"./node_modules/@material-ui/core/esm/RootRef/RootRef.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _RootRef__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/RootRef/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Select/Select.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Select/Select.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _SelectInput__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SelectInput */ \"./node_modules/@material-ui/core/esm/Select/SelectInput.js\");\n/* harmony import */ var _FormControl_formControlState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../FormControl/formControlState */ \"./node_modules/@material-ui/core/esm/FormControl/formControlState.js\");\n/* harmony import */ var _FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../FormControl/useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _internal_svg_icons_ArrowDropDown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../internal/svg-icons/ArrowDropDown */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js\");\n/* harmony import */ var _Input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Input */ \"./node_modules/@material-ui/core/esm/Input/index.js\");\n/* harmony import */ var _NativeSelect_NativeSelect__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../NativeSelect/NativeSelect */ \"./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js\");\n/* harmony import */ var _NativeSelect_NativeSelectInput__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../NativeSelect/NativeSelectInput */ \"./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js\");\n/* harmony import */ var _FilledInput__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../FilledInput */ \"./node_modules/@material-ui/core/esm/FilledInput/index.js\");\n/* harmony import */ var _OutlinedInput__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../OutlinedInput */ \"./node_modules/@material-ui/core/esm/OutlinedInput/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = _NativeSelect_NativeSelect__WEBPACK_IMPORTED_MODULE_11__[\"styles\"];\n\nvar _ref = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Input__WEBPACK_IMPORTED_MODULE_10__[\"default\"], null);\n\nvar _ref2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_FilledInput__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null);\n\nvar Select = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Select(props, ref) {\n  var _props$autoWidth = props.autoWidth,\n      autoWidth = _props$autoWidth === void 0 ? false : _props$autoWidth,\n      children = props.children,\n      classes = props.classes,\n      _props$displayEmpty = props.displayEmpty,\n      displayEmpty = _props$displayEmpty === void 0 ? false : _props$displayEmpty,\n      _props$IconComponent = props.IconComponent,\n      IconComponent = _props$IconComponent === void 0 ? _internal_svg_icons_ArrowDropDown__WEBPACK_IMPORTED_MODULE_9__[\"default\"] : _props$IconComponent,\n      id = props.id,\n      input = props.input,\n      inputProps = props.inputProps,\n      label = props.label,\n      labelId = props.labelId,\n      _props$labelWidth = props.labelWidth,\n      labelWidth = _props$labelWidth === void 0 ? 0 : _props$labelWidth,\n      MenuProps = props.MenuProps,\n      _props$multiple = props.multiple,\n      multiple = _props$multiple === void 0 ? false : _props$multiple,\n      _props$native = props.native,\n      native = _props$native === void 0 ? false : _props$native,\n      onClose = props.onClose,\n      onOpen = props.onOpen,\n      open = props.open,\n      renderValue = props.renderValue,\n      SelectDisplayProps = props.SelectDisplayProps,\n      _props$variant = props.variant,\n      variantProps = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"autoWidth\", \"children\", \"classes\", \"displayEmpty\", \"IconComponent\", \"id\", \"input\", \"inputProps\", \"label\", \"labelId\", \"labelWidth\", \"MenuProps\", \"multiple\", \"native\", \"onClose\", \"onOpen\", \"open\", \"renderValue\", \"SelectDisplayProps\", \"variant\"]);\n\n  var inputComponent = native ? _NativeSelect_NativeSelectInput__WEBPACK_IMPORTED_MODULE_12__[\"default\"] : _SelectInput__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n  var muiFormControl = Object(_FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n  var fcs = Object(_FormControl_formControlState__WEBPACK_IMPORTED_MODULE_6__[\"default\"])({\n    props: props,\n    muiFormControl: muiFormControl,\n    states: ['variant']\n  });\n  var variant = fcs.variant || variantProps;\n  var InputComponent = input || {\n    standard: _ref,\n    outlined: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_OutlinedInput__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n      label: label,\n      labelWidth: labelWidth\n    }),\n    filled: _ref2\n  }[variant];\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](InputComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    // Most of the logic is implemented in `SelectInput`.\n    // The `Select` component is a simple API wrapper to expose something better to play with.\n    inputComponent: inputComponent,\n    inputProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      children: children,\n      IconComponent: IconComponent,\n      variant: variant,\n      type: undefined,\n      // We render a select. We can ignore the type provided by the `Input`.\n      multiple: multiple\n    }, native ? {\n      id: id\n    } : {\n      autoWidth: autoWidth,\n      displayEmpty: displayEmpty,\n      labelId: labelId,\n      MenuProps: MenuProps,\n      onClose: onClose,\n      onOpen: onOpen,\n      open: open,\n      renderValue: renderValue,\n      SelectDisplayProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        id: id\n      }, SelectDisplayProps)\n    }, inputProps, {\n      classes: inputProps ? Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_4__[\"mergeClasses\"])({\n        baseClasses: classes,\n        newClasses: inputProps.classes,\n        Component: Select\n      }) : classes\n    }, input ? input.props.inputProps : {}),\n    ref: ref\n  }, other));\n});\n true ? Select.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The option elements to populate the select with.\n   * Can be some `MenuItem` when `native` is false and `option` when `native` is true.\n   *\n   * ⚠️The `MenuItem` elements **must** be direct descendants when `native` is false.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The default element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * If `true`, a value is displayed even if no items are selected.\n   *\n   * In order to display a meaningful value, a function should be passed to the `renderValue` prop which returns the value to be displayed when no items are selected.\n   * You can only use it when the `native` prop is `false` (default).\n   */\n  displayEmpty: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * The `id` of the wrapper element or the `select` element when `native`.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * An `Input` element; does not have to be a material-ui specific `Input`.\n   */\n  input: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   * When `native` is `true`, the attributes are applied on the `select` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * See [OutlinedInput#label](/api/outlined-input/#props)\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The ID of an element that acts as an additional label. The Select will\n   * be labelled by the additional label and the selected value.\n   */\n  labelId: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * See [OutlinedInput#label](/api/outlined-input/#props)\n   */\n  labelWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * Props applied to the [`Menu`](/api/menu/) element.\n   */\n  MenuProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * If `true`, `value` must be an array and the menu will support multiple selections.\n   */\n  multiple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the component will be using a native `select` element.\n   */\n  native: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (any).\n   * @param {object} [child] The react element that was selected when `native` is `false` (default).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Control `select` open state.\n   * You can only use it when the `native` prop is `false` (default).\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Render the selected value.\n   * You can only use it when the `native` prop is `false` (default).\n   *\n   * @param {any} value The `value` provided to the component.\n   * @returns {ReactNode}\n   */\n  renderValue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Props applied to the clickable div element.\n   */\n  SelectDisplayProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The input value. Providing an empty string will select no options.\n   * This prop is required when the `native` prop is `false` (default).\n   * Set to an empty string `''` if you don't want any of the available options to be selected.\n   *\n   * If the value is an object it must have reference equality with the option in order to be selected.\n   * If the value is not an object, the string representation must match with the string representation of the option in order to be selected.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['filled', 'outlined', 'standard'])\n} : undefined;\nSelect.muiName = 'Select';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(styles, {\n  name: 'MuiSelect'\n})(Select));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Select/Select.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Select/SelectInput.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Select/SelectInput.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _Menu_Menu__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Menu/Menu */ \"./node_modules/@material-ui/core/esm/Menu/Menu.js\");\n/* harmony import */ var _InputBase_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../InputBase/utils */ \"./node_modules/@material-ui/core/esm/InputBase/utils.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction areEqualValues(a, b) {\n  if (Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(b) === 'object' && b !== null) {\n    return a === b;\n  }\n\n  return String(a) === String(b);\n}\n\nfunction isEmpty(display) {\n  return display == null || typeof display === 'string' && !display.trim();\n}\n/**\n * @ignore - internal component.\n */\n\n\nvar SelectInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"forwardRef\"](function SelectInput(props, ref) {\n  var ariaLabel = props['aria-label'],\n      autoFocus = props.autoFocus,\n      autoWidth = props.autoWidth,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      defaultValue = props.defaultValue,\n      disabled = props.disabled,\n      displayEmpty = props.displayEmpty,\n      IconComponent = props.IconComponent,\n      inputRefProp = props.inputRef,\n      labelId = props.labelId,\n      _props$MenuProps = props.MenuProps,\n      MenuProps = _props$MenuProps === void 0 ? {} : _props$MenuProps,\n      multiple = props.multiple,\n      name = props.name,\n      onBlur = props.onBlur,\n      onChange = props.onChange,\n      onClose = props.onClose,\n      onFocus = props.onFocus,\n      onOpen = props.onOpen,\n      openProp = props.open,\n      readOnly = props.readOnly,\n      renderValue = props.renderValue,\n      _props$SelectDisplayP = props.SelectDisplayProps,\n      SelectDisplayProps = _props$SelectDisplayP === void 0 ? {} : _props$SelectDisplayP,\n      tabIndexProp = props.tabIndex,\n      type = props.type,\n      valueProp = props.value,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"aria-label\", \"autoFocus\", \"autoWidth\", \"children\", \"classes\", \"className\", \"defaultValue\", \"disabled\", \"displayEmpty\", \"IconComponent\", \"inputRef\", \"labelId\", \"MenuProps\", \"multiple\", \"name\", \"onBlur\", \"onChange\", \"onClose\", \"onFocus\", \"onOpen\", \"open\", \"readOnly\", \"renderValue\", \"SelectDisplayProps\", \"tabIndex\", \"type\", \"value\", \"variant\"]);\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_14__[\"default\"])({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Select'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useControlled, 2),\n      value = _useControlled2[0],\n      setValue = _useControlled2[1];\n\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_5__[\"useRef\"](null);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_5__[\"useState\"](null),\n      displayNode = _React$useState[0],\n      setDisplayNode = _React$useState[1];\n\n  var _React$useRef = react__WEBPACK_IMPORTED_MODULE_5__[\"useRef\"](openProp != null),\n      isOpenControlled = _React$useRef.current;\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_5__[\"useState\"](),\n      menuMinWidthState = _React$useState2[0],\n      setMenuMinWidthState = _React$useState2[1];\n\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_5__[\"useState\"](false),\n      openState = _React$useState3[0],\n      setOpenState = _React$useState3[1];\n\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(ref, inputRefProp);\n  react__WEBPACK_IMPORTED_MODULE_5__[\"useImperativeHandle\"](handleRef, function () {\n    return {\n      focus: function focus() {\n        displayNode.focus();\n      },\n      node: inputRef.current,\n      value: value\n    };\n  }, [displayNode, value]);\n  react__WEBPACK_IMPORTED_MODULE_5__[\"useEffect\"](function () {\n    if (autoFocus && displayNode) {\n      displayNode.focus();\n    }\n  }, [autoFocus, displayNode]);\n  react__WEBPACK_IMPORTED_MODULE_5__[\"useEffect\"](function () {\n    if (displayNode) {\n      var label = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(displayNode).getElementById(labelId);\n\n      if (label) {\n        var handler = function handler() {\n          if (getSelection().isCollapsed) {\n            displayNode.focus();\n          }\n        };\n\n        label.addEventListener('click', handler);\n        return function () {\n          label.removeEventListener('click', handler);\n        };\n      }\n    }\n\n    return undefined;\n  }, [labelId, displayNode]);\n\n  var update = function update(open, event) {\n    if (open) {\n      if (onOpen) {\n        onOpen(event);\n      }\n    } else if (onClose) {\n      onClose(event);\n    }\n\n    if (!isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);\n      setOpenState(open);\n    }\n  };\n\n  var handleMouseDown = function handleMouseDown(event) {\n    // Ignore everything but left-click\n    if (event.button !== 0) {\n      return;\n    } // Hijack the default focus behavior.\n\n\n    event.preventDefault();\n    displayNode.focus();\n    update(true, event);\n  };\n\n  var handleClose = function handleClose(event) {\n    update(false, event);\n  };\n\n  var childrenArray = react__WEBPACK_IMPORTED_MODULE_5__[\"Children\"].toArray(children); // Support autofill.\n\n  var handleChange = function handleChange(event) {\n    var index = childrenArray.map(function (child) {\n      return child.props.value;\n    }).indexOf(event.target.value);\n\n    if (index === -1) {\n      return;\n    }\n\n    var child = childrenArray[index];\n    setValue(child.props.value);\n\n    if (onChange) {\n      onChange(event, child);\n    }\n  };\n\n  var handleItemClick = function handleItemClick(child) {\n    return function (event) {\n      if (!multiple) {\n        update(false, event);\n      }\n\n      var newValue;\n\n      if (multiple) {\n        newValue = Array.isArray(value) ? value.slice() : [];\n        var itemIndex = value.indexOf(child.props.value);\n\n        if (itemIndex === -1) {\n          newValue.push(child.props.value);\n        } else {\n          newValue.splice(itemIndex, 1);\n        }\n      } else {\n        newValue = child.props.value;\n      }\n\n      if (child.props.onClick) {\n        child.props.onClick(event);\n      }\n\n      if (value === newValue) {\n        return;\n      }\n\n      setValue(newValue);\n\n      if (onChange) {\n        event.persist(); // Preact support, target is read only property on a native event.\n\n        Object.defineProperty(event, 'target', {\n          writable: true,\n          value: {\n            value: newValue,\n            name: name\n          }\n        });\n        onChange(event, child);\n      }\n    };\n  };\n\n  var handleKeyDown = function handleKeyDown(event) {\n    if (!readOnly) {\n      var validKeys = [' ', 'ArrowUp', 'ArrowDown', // The native select doesn't respond to enter on MacOS, but it's recommended by\n      // https://www.w3.org/TR/wai-aria-practices/examples/listbox/listbox-collapsible.html\n      'Enter'];\n\n      if (validKeys.indexOf(event.key) !== -1) {\n        event.preventDefault();\n        update(true, event);\n      }\n    }\n  };\n\n  var open = displayNode !== null && (isOpenControlled ? openProp : openState);\n\n  var handleBlur = function handleBlur(event) {\n    // if open event.stopImmediatePropagation\n    if (!open && onBlur) {\n      event.persist(); // Preact support, target is read only property on a native event.\n\n      Object.defineProperty(event, 'target', {\n        writable: true,\n        value: {\n          value: value,\n          name: name\n        }\n      });\n      onBlur(event);\n    }\n  };\n\n  delete other['aria-invalid'];\n  var display;\n  var displaySingle;\n  var displayMultiple = [];\n  var computeDisplay = false;\n  var foundMatch = false; // No need to display any value if the field is empty.\n\n  if (Object(_InputBase_utils__WEBPACK_IMPORTED_MODULE_12__[\"isFilled\"])({\n    value: value\n  }) || displayEmpty) {\n    if (renderValue) {\n      display = renderValue(value);\n    } else {\n      computeDisplay = true;\n    }\n  }\n\n  var items = childrenArray.map(function (child) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_6__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The Select component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    var selected;\n\n    if (multiple) {\n      if (!Array.isArray(value)) {\n        throw new Error( true ? \"Material-UI: The `value` prop must be an array when using the `Select` component with `multiple`.\" : undefined);\n      }\n\n      selected = value.some(function (v) {\n        return areEqualValues(v, child.props.value);\n      });\n\n      if (selected && computeDisplay) {\n        displayMultiple.push(child.props.children);\n      }\n    } else {\n      selected = areEqualValues(value, child.props.value);\n\n      if (selected && computeDisplay) {\n        displaySingle = child.props.children;\n      }\n    }\n\n    if (selected) {\n      foundMatch = true;\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"cloneElement\"](child, {\n      'aria-selected': selected ? 'true' : undefined,\n      onClick: handleItemClick(child),\n      onKeyUp: function onKeyUp(event) {\n        if (event.key === ' ') {\n          // otherwise our MenuItems dispatches a click event\n          // it's not behavior of the native <option> and causes\n          // the select to close immediately since we open on space keydown\n          event.preventDefault();\n        }\n\n        if (child.props.onKeyUp) {\n          child.props.onKeyUp(event);\n        }\n      },\n      role: 'option',\n      selected: selected,\n      value: undefined,\n      // The value is most likely not a valid HTML attribute.\n      'data-value': child.props.value // Instead, we provide it as a data attribute.\n\n    });\n  });\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_5__[\"useEffect\"](function () {\n      if (!foundMatch && !multiple && value !== '') {\n        var values = childrenArray.map(function (child) {\n          return child.props.value;\n        });\n        console.warn([\"Material-UI: You have provided an out-of-range value `\".concat(value, \"` for the select \").concat(name ? \"(name=\\\"\".concat(name, \"\\\") \") : '', \"component.\"), \"Consider providing a value that matches one of the available options or ''.\", \"The available values are \".concat(values.filter(function (x) {\n          return x != null;\n        }).map(function (x) {\n          return \"`\".concat(x, \"`\");\n        }).join(', ') || '\"\"', \".\")].join('\\n'));\n      }\n    }, [foundMatch, childrenArray, multiple, name, value]);\n  }\n\n  if (computeDisplay) {\n    display = multiple ? displayMultiple.join(', ') : displaySingle;\n  } // Avoid performing a layout computation in the render method.\n\n\n  var menuMinWidth = menuMinWidthState;\n\n  if (!autoWidth && isOpenControlled && displayNode) {\n    menuMinWidth = displayNode.clientWidth;\n  }\n\n  var tabIndex;\n\n  if (typeof tabIndexProp !== 'undefined') {\n    tabIndex = tabIndexProp;\n  } else {\n    tabIndex = disabled ? null : 0;\n  }\n\n  var buttonId = SelectDisplayProps.id || (name ? \"mui-component-select-\".concat(name) : undefined);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_5__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(classes.root, // TODO v5: merge root and select\n    classes.select, classes.selectMenu, classes[variant], className, disabled && classes.disabled),\n    ref: setDisplayNode,\n    tabIndex: tabIndex,\n    role: \"button\",\n    \"aria-disabled\": disabled ? 'true' : undefined,\n    \"aria-expanded\": open ? 'true' : undefined,\n    \"aria-haspopup\": \"listbox\",\n    \"aria-label\": ariaLabel,\n    \"aria-labelledby\": [labelId, buttonId].filter(Boolean).join(' ') || undefined,\n    onKeyDown: handleKeyDown,\n    onMouseDown: disabled || readOnly ? null : handleMouseDown,\n    onBlur: handleBlur,\n    onFocus: onFocus\n  }, SelectDisplayProps, {\n    // The id is required for proper a11y\n    id: buttonId\n  }), isEmpty(display) ?\n  /*#__PURE__*/\n  // eslint-disable-next-line react/no-danger\n  react__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"](\"span\", {\n    dangerouslySetInnerHTML: {\n      __html: '&#8203;'\n    }\n  }) : display), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"](\"input\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    value: Array.isArray(value) ? value.join(',') : value,\n    name: name,\n    ref: inputRef,\n    \"aria-hidden\": true,\n    onChange: handleChange,\n    tabIndex: -1,\n    className: classes.nativeInput,\n    autoFocus: autoFocus\n  }, other)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"](IconComponent, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(classes.icon, classes[\"icon\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(variant))], open && classes.iconOpen, disabled && classes.disabled)\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"](_Menu_Menu__WEBPACK_IMPORTED_MODULE_11__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    id: \"menu-\".concat(name || ''),\n    anchorEl: displayNode,\n    open: open,\n    onClose: handleClose\n  }, MenuProps, {\n    MenuListProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      'aria-labelledby': labelId,\n      role: 'listbox',\n      disableListWrap: true\n    }, MenuProps.MenuListProps),\n    PaperProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, MenuProps.PaperProps, {\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        minWidth: menuMinWidth\n      }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null)\n    })\n  }), items));\n});\n true ? SelectInput.propTypes = {\n  /**\n   * @ignore\n   */\n  'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string,\n\n  /**\n   * @ignore\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * If `true`, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<MenuItem>` elements.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.object.isRequired,\n\n  /**\n   * The CSS class name of the select element.\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string,\n\n  /**\n   * The default element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.any,\n\n  /**\n   * If `true`, the select will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * If `true`, the selected item is displayed even if its value is empty.\n   */\n  displayEmpty: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.elementType.isRequired,\n\n  /**\n   * Imperative handle implementing `{ value: T, node: HTMLElement, focus(): void }`\n   * Equivalent to `ref`\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_4__[\"refType\"],\n\n  /**\n   * The ID of an element that acts as an additional label. The Select will\n   * be labelled by the additional label and the selected value.\n   */\n  labelId: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string,\n\n  /**\n   * Props applied to the [`Menu`](/api/menu/) element.\n   */\n  MenuProps: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.object,\n\n  /**\n   * If `true`, `value` must be an array and the menu will support multiple selections.\n   */\n  multiple: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (any).\n   * @param {object} [child] The react element that was selected.\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n  /**\n   * Control `select` open state.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  readOnly: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n  /**\n   * Render the selected value.\n   *\n   * @param {any} value The `value` provided to the component.\n   * @returns {ReactNode}\n   */\n  renderValue: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func,\n\n  /**\n   * Props applied to the clickable div element.\n   */\n  SelectDisplayProps: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.object,\n\n  /**\n   * @ignore\n   */\n  tabIndex: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string]),\n\n  /**\n   * @ignore\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.any,\n\n  /**\n   * The input value.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.any,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOf(['standard', 'outlined', 'filled'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (SelectInput);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Select/SelectInput.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Select/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Select/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Select__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Select */ \"./node_modules/@material-ui/core/esm/Select/Select.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Select__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Select/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Slide/Slide.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Slide/Slide.js ***!
  \***********************************************************/
/*! exports provided: setTranslateValue, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setTranslateValue\", function() { return setTranslateValue; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils_debounce__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/esm/index.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _transitions_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../transitions/utils */ \"./node_modules/@material-ui/core/esm/transitions/utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n // Translate the node so he can't be seen on the screen.\n// Later, we gonna translate back the node to his original location\n// with `none`.`\n\nfunction getTranslateValue(direction, node) {\n  var rect = node.getBoundingClientRect();\n  var transform;\n\n  if (node.fakeTransform) {\n    transform = node.fakeTransform;\n  } else {\n    var computedStyle = window.getComputedStyle(node);\n    transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n  }\n\n  var offsetX = 0;\n  var offsetY = 0;\n\n  if (transform && transform !== 'none' && typeof transform === 'string') {\n    var transformValues = transform.split('(')[1].split(')')[0].split(',');\n    offsetX = parseInt(transformValues[4], 10);\n    offsetY = parseInt(transformValues[5], 10);\n  }\n\n  if (direction === 'left') {\n    return \"translateX(\".concat(window.innerWidth, \"px) translateX(\").concat(offsetX - rect.left, \"px)\");\n  }\n\n  if (direction === 'right') {\n    return \"translateX(-\".concat(rect.left + rect.width - offsetX, \"px)\");\n  }\n\n  if (direction === 'up') {\n    return \"translateY(\".concat(window.innerHeight, \"px) translateY(\").concat(offsetY - rect.top, \"px)\");\n  } // direction === 'down'\n\n\n  return \"translateY(-\".concat(rect.top + rect.height - offsetY, \"px)\");\n}\n\nfunction setTranslateValue(direction, node) {\n  var transform = getTranslateValue(direction, node);\n\n  if (transform) {\n    node.style.webkitTransform = transform;\n    node.style.transform = transform;\n  }\n}\nvar defaultTimeout = {\n  enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_10__[\"duration\"].enteringScreen,\n  exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_10__[\"duration\"].leavingScreen\n};\n/**\n * The Slide transition is used by the [Drawer](/components/drawers/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Slide = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Slide(props, ref) {\n  var children = props.children,\n      _props$direction = props.direction,\n      direction = _props$direction === void 0 ? 'down' : _props$direction,\n      inProp = props.in,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      style = props.style,\n      _props$timeout = props.timeout,\n      timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? react_transition_group__WEBPACK_IMPORTED_MODULE_6__[\"Transition\"] : _props$TransitionComp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"direction\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_9__[\"default\"])();\n  var childrenRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  /**\n   * used in cloneElement(children, { ref: handleRef })\n   */\n\n  var handleOwnRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    childrenRef.current = react_dom__WEBPACK_IMPORTED_MODULE_4__[\"findDOMNode\"](instance);\n  }, []);\n  var handleRefIntermediary = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(children.ref, handleOwnRef);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(handleRefIntermediary, ref);\n\n  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n    return function (isAppearing) {\n      if (callback) {\n        // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n        if (isAppearing === undefined) {\n          callback(childrenRef.current);\n        } else {\n          callback(childrenRef.current, isAppearing);\n        }\n      }\n    };\n  };\n\n  var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n    setTranslateValue(direction, node);\n    Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_11__[\"reflow\"])(node);\n\n    if (onEnter) {\n      onEnter(node, isAppearing);\n    }\n  });\n  var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {\n    var transitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_11__[\"getTransitionProps\"])({\n      timeout: timeout,\n      style: style\n    }, {\n      mode: 'enter'\n    });\n    node.style.webkitTransition = theme.transitions.create('-webkit-transform', Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, transitionProps, {\n      easing: theme.transitions.easing.easeOut\n    }));\n    node.style.transition = theme.transitions.create('transform', Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, transitionProps, {\n      easing: theme.transitions.easing.easeOut\n    }));\n    node.style.webkitTransform = 'none';\n    node.style.transform = 'none';\n\n    if (onEntering) {\n      onEntering(node, isAppearing);\n    }\n  });\n  var handleEntered = normalizedTransitionCallback(onEntered);\n  var handleExiting = normalizedTransitionCallback(onExiting);\n  var handleExit = normalizedTransitionCallback(function (node) {\n    var transitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_11__[\"getTransitionProps\"])({\n      timeout: timeout,\n      style: style\n    }, {\n      mode: 'exit'\n    });\n    node.style.webkitTransition = theme.transitions.create('-webkit-transform', Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, transitionProps, {\n      easing: theme.transitions.easing.sharp\n    }));\n    node.style.transition = theme.transitions.create('transform', Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, transitionProps, {\n      easing: theme.transitions.easing.sharp\n    }));\n    setTranslateValue(direction, node);\n\n    if (onExit) {\n      onExit(node);\n    }\n  });\n  var handleExited = normalizedTransitionCallback(function (node) {\n    // No need for transitions when the component is hidden\n    node.style.webkitTransition = '';\n    node.style.transition = '';\n\n    if (onExited) {\n      onExited(node);\n    }\n  });\n  var updatePosition = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    if (childrenRef.current) {\n      setTranslateValue(direction, childrenRef.current);\n    }\n  }, [direction]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    // Skip configuration where the position is screen size invariant.\n    if (inProp || direction === 'down' || direction === 'right') {\n      return undefined;\n    }\n\n    var handleResize = Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(function () {\n      if (childrenRef.current) {\n        setTranslateValue(direction, childrenRef.current);\n      }\n    });\n    window.addEventListener('resize', handleResize);\n    return function () {\n      handleResize.clear();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [direction, inProp]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (!inProp) {\n      // We need to update the position of the drawer when the direction change and\n      // when it's hidden.\n      updatePosition();\n    }\n  }, [inProp, updatePosition]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    nodeRef: childrenRef,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    appear: true,\n    in: inProp,\n    timeout: timeout\n  }, other), function (state, childProps) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](children, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      ref: handleRef,\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n      }, style, children.props.style)\n    }, childProps));\n  });\n});\n true ? Slide.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__[\"elementAcceptingRef\"],\n\n  /**\n   * Direction the child node will enter from.\n   */\n  direction: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['down', 'left', 'right', 'up']),\n\n  /**\n   * If `true`, show the component; triggers the enter or exit animation.\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  timeout: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n  })])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Slide);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Slide/Slide.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Slide/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Slide/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Slide__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Slide */ \"./node_modules/@material-ui/core/esm/Slide/Slide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Slide__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Slide/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Slider/Slider.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Slider/Slider.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/useIsFocusVisible */ \"./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js\");\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n/* harmony import */ var _ValueLabel__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ValueLabel */ \"./node_modules/@material-ui/core/esm/Slider/ValueLabel.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction asc(a, b) {\n  return a - b;\n}\n\nfunction clamp(value, min, max) {\n  return Math.min(Math.max(min, value), max);\n}\n\nfunction findClosest(values, currentValue) {\n  var _values$reduce = values.reduce(function (acc, value, index) {\n    var distance = Math.abs(currentValue - value);\n\n    if (acc === null || distance < acc.distance || distance === acc.distance) {\n      return {\n        distance: distance,\n        index: index\n      };\n    }\n\n    return acc;\n  }, null),\n      closestIndex = _values$reduce.index;\n\n  return closestIndex;\n}\n\nfunction trackFinger(event, touchId) {\n  if (touchId.current !== undefined && event.changedTouches) {\n    for (var i = 0; i < event.changedTouches.length; i += 1) {\n      var touch = event.changedTouches[i];\n\n      if (touch.identifier === touchId.current) {\n        return {\n          x: touch.clientX,\n          y: touch.clientY\n        };\n      }\n    }\n\n    return false;\n  }\n\n  return {\n    x: event.clientX,\n    y: event.clientY\n  };\n}\n\nfunction valueToPercent(value, min, max) {\n  return (value - min) * 100 / (max - min);\n}\n\nfunction percentToValue(percent, min, max) {\n  return (max - min) * percent + min;\n}\n\nfunction getDecimalPrecision(num) {\n  // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n  // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n  if (Math.abs(num) < 1) {\n    var parts = num.toExponential().split('e-');\n    var matissaDecimalPart = parts[0].split('.')[1];\n    return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n  }\n\n  var decimalPart = num.toString().split('.')[1];\n  return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value, step, min) {\n  var nearest = Math.round((value - min) / step) * step + min;\n  return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction setValueIndex(_ref) {\n  var values = _ref.values,\n      source = _ref.source,\n      newValue = _ref.newValue,\n      index = _ref.index;\n\n  // Performance shortcut\n  if (values[index] === newValue) {\n    return source;\n  }\n\n  var output = values.slice();\n  output[index] = newValue;\n  return output;\n}\n\nfunction focusThumb(_ref2) {\n  var sliderRef = _ref2.sliderRef,\n      activeIndex = _ref2.activeIndex,\n      setActive = _ref2.setActive;\n\n  if (!sliderRef.current.contains(document.activeElement) || Number(document.activeElement.getAttribute('data-index')) !== activeIndex) {\n    sliderRef.current.querySelector(\"[role=\\\"slider\\\"][data-index=\\\"\".concat(activeIndex, \"\\\"]\")).focus();\n  }\n\n  if (setActive) {\n    setActive(activeIndex);\n  }\n}\n\nvar axisProps = {\n  horizontal: {\n    offset: function offset(percent) {\n      return {\n        left: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        width: \"\".concat(percent, \"%\")\n      };\n    }\n  },\n  'horizontal-reverse': {\n    offset: function offset(percent) {\n      return {\n        right: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        width: \"\".concat(percent, \"%\")\n      };\n    }\n  },\n  vertical: {\n    offset: function offset(percent) {\n      return {\n        bottom: \"\".concat(percent, \"%\")\n      };\n    },\n    leap: function leap(percent) {\n      return {\n        height: \"\".concat(percent, \"%\")\n      };\n    }\n  }\n};\n\nvar Identity = function Identity(x) {\n  return x;\n};\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      height: 2,\n      width: '100%',\n      boxSizing: 'content-box',\n      padding: '13px 0',\n      display: 'inline-block',\n      position: 'relative',\n      cursor: 'pointer',\n      touchAction: 'none',\n      color: theme.palette.primary.main,\n      WebkitTapHighlightColor: 'transparent',\n      '&$disabled': {\n        pointerEvents: 'none',\n        cursor: 'default',\n        color: theme.palette.grey[400]\n      },\n      '&$vertical': {\n        width: 2,\n        height: '100%',\n        padding: '0 13px'\n      },\n      // The primary input mechanism of the device includes a pointing device of limited accuracy.\n      '@media (pointer: coarse)': {\n        // Reach 42px touch target, about ~8mm on screen.\n        padding: '20px 0',\n        '&$vertical': {\n          padding: '0 20px'\n        }\n      },\n      '@media print': {\n        colorAdjust: 'exact'\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {// TODO v5: move the style here\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `marks` is provided with at least one label. */\n    marked: {\n      marginBottom: 20,\n      '&$vertical': {\n        marginBottom: 'auto',\n        marginRight: 20\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {},\n\n    /* Pseudo-class applied to the root and thumb element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the rail element. */\n    rail: {\n      display: 'block',\n      position: 'absolute',\n      width: '100%',\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor',\n      opacity: 0.38,\n      '$vertical &': {\n        height: '100%',\n        width: 2\n      }\n    },\n\n    /* Styles applied to the track element. */\n    track: {\n      display: 'block',\n      position: 'absolute',\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor',\n      '$vertical &': {\n        width: 2\n      }\n    },\n\n    /* Styles applied to the track element if `track={false}`. */\n    trackFalse: {\n      '& $track': {\n        display: 'none'\n      }\n    },\n\n    /* Styles applied to the track element if `track=\"inverted\"`. */\n    trackInverted: {\n      '& $track': {\n        backgroundColor: // Same logic as the LinearProgress track color\n        theme.palette.type === 'light' ? Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__[\"lighten\"])(theme.palette.primary.main, 0.62) : Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__[\"darken\"])(theme.palette.primary.main, 0.5)\n      },\n      '& $rail': {\n        opacity: 1\n      }\n    },\n\n    /* Styles applied to the thumb element. */\n    thumb: {\n      position: 'absolute',\n      width: 12,\n      height: 12,\n      marginLeft: -6,\n      marginTop: -5,\n      boxSizing: 'border-box',\n      borderRadius: '50%',\n      outline: 0,\n      backgroundColor: 'currentColor',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      transition: theme.transitions.create(['box-shadow'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&::after': {\n        position: 'absolute',\n        content: '\"\"',\n        borderRadius: '50%',\n        // reach 42px hit target (2 * 15 + thumb diameter)\n        left: -15,\n        top: -15,\n        right: -15,\n        bottom: -15\n      },\n      '&$focusVisible,&:hover': {\n        boxShadow: \"0px 0px 0px 8px \".concat(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__[\"fade\"])(theme.palette.primary.main, 0.16)),\n        '@media (hover: none)': {\n          boxShadow: 'none'\n        }\n      },\n      '&$active': {\n        boxShadow: \"0px 0px 0px 14px \".concat(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__[\"fade\"])(theme.palette.primary.main, 0.16))\n      },\n      '&$disabled': {\n        width: 8,\n        height: 8,\n        marginLeft: -4,\n        marginTop: -3,\n        '&:hover': {\n          boxShadow: 'none'\n        }\n      },\n      '$vertical &': {\n        marginLeft: -5,\n        marginBottom: -6\n      },\n      '$vertical &$disabled': {\n        marginLeft: -3,\n        marginBottom: -4\n      }\n    },\n\n    /* Styles applied to the thumb element if `color=\"primary\"`. */\n    thumbColorPrimary: {// TODO v5: move the style here\n    },\n\n    /* Styles applied to the thumb element if `color=\"secondary\"`. */\n    thumbColorSecondary: {\n      '&$focusVisible,&:hover': {\n        boxShadow: \"0px 0px 0px 8px \".concat(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__[\"fade\"])(theme.palette.secondary.main, 0.16))\n      },\n      '&$active': {\n        boxShadow: \"0px 0px 0px 14px \".concat(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_10__[\"fade\"])(theme.palette.secondary.main, 0.16))\n      }\n    },\n\n    /* Pseudo-class applied to the thumb element if it's active. */\n    active: {},\n\n    /* Pseudo-class applied to the thumb element if keyboard focused. */\n    focusVisible: {},\n\n    /* Styles applied to the thumb label element. */\n    valueLabel: {\n      // IE 11 centering bug, to remove from the customization demos once no longer supported\n      left: 'calc(-50% - 4px)'\n    },\n\n    /* Styles applied to the mark element. */\n    mark: {\n      position: 'absolute',\n      width: 2,\n      height: 2,\n      borderRadius: 1,\n      backgroundColor: 'currentColor'\n    },\n\n    /* Styles applied to the mark element if active (depending on the value). */\n    markActive: {\n      backgroundColor: theme.palette.background.paper,\n      opacity: 0.8\n    },\n\n    /* Styles applied to the mark label element. */\n    markLabel: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, theme.typography.body2, {\n      color: theme.palette.text.secondary,\n      position: 'absolute',\n      top: 26,\n      transform: 'translateX(-50%)',\n      whiteSpace: 'nowrap',\n      '$vertical &': {\n        top: 'auto',\n        left: 26,\n        transform: 'translateY(50%)'\n      },\n      '@media (pointer: coarse)': {\n        top: 40,\n        '$vertical &': {\n          left: 31\n        }\n      }\n    }),\n\n    /* Styles applied to the mark label element if active (depending on the value). */\n    markLabelActive: {\n      color: theme.palette.text.primary\n    }\n  };\n};\nvar Slider = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"forwardRef\"](function Slider(props, ref) {\n  var ariaLabel = props['aria-label'],\n      ariaLabelledby = props['aria-labelledby'],\n      ariaValuetext = props['aria-valuetext'],\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'span' : _props$component,\n      defaultValue = props.defaultValue,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      getAriaLabel = props.getAriaLabel,\n      getAriaValueText = props.getAriaValueText,\n      _props$marks = props.marks,\n      marksProp = _props$marks === void 0 ? false : _props$marks,\n      _props$max = props.max,\n      max = _props$max === void 0 ? 100 : _props$max,\n      _props$min = props.min,\n      min = _props$min === void 0 ? 0 : _props$min,\n      name = props.name,\n      onChange = props.onChange,\n      onChangeCommitted = props.onChangeCommitted,\n      onMouseDown = props.onMouseDown,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      _props$scale = props.scale,\n      scale = _props$scale === void 0 ? Identity : _props$scale,\n      _props$step = props.step,\n      step = _props$step === void 0 ? 1 : _props$step,\n      _props$ThumbComponent = props.ThumbComponent,\n      ThumbComponent = _props$ThumbComponent === void 0 ? 'span' : _props$ThumbComponent,\n      _props$track = props.track,\n      track = _props$track === void 0 ? 'normal' : _props$track,\n      valueProp = props.value,\n      _props$ValueLabelComp = props.ValueLabelComponent,\n      ValueLabelComponent = _props$ValueLabelComp === void 0 ? _ValueLabel__WEBPACK_IMPORTED_MODULE_17__[\"default\"] : _props$ValueLabelComp,\n      _props$valueLabelDisp = props.valueLabelDisplay,\n      valueLabelDisplay = _props$valueLabelDisp === void 0 ? 'off' : _props$valueLabelDisp,\n      _props$valueLabelForm = props.valueLabelFormat,\n      valueLabelFormat = _props$valueLabelForm === void 0 ? Identity : _props$valueLabelForm,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"aria-label\", \"aria-labelledby\", \"aria-valuetext\", \"classes\", \"className\", \"color\", \"component\", \"defaultValue\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"onMouseDown\", \"orientation\", \"scale\", \"step\", \"ThumbComponent\", \"track\", \"value\", \"ValueLabelComponent\", \"valueLabelDisplay\", \"valueLabelFormat\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_9__[\"default\"])();\n  var touchId = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"](); // We can't use the :active browser pseudo-classes.\n  // - The active state isn't triggered when clicking on the rail.\n  // - The active state isn't transfered when inversing a range slider.\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](-1),\n      active = _React$useState[0],\n      setActive = _React$useState[1];\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](-1),\n      open = _React$useState2[0],\n      setOpen = _React$useState2[1];\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_16__[\"default\"])({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Slider'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useControlled, 2),\n      valueDerived = _useControlled2[0],\n      setValueState = _useControlled2[1];\n\n  var range = Array.isArray(valueDerived);\n  var values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n  values = values.map(function (value) {\n    return clamp(value, min, max);\n  });\n  var marks = marksProp === true && step !== null ? Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Array(Math.floor((max - min) / step) + 1)).map(function (_, index) {\n    return {\n      value: min + step * index\n    };\n  }) : marksProp || [];\n\n  var _useIsFocusVisible = Object(_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(),\n      isFocusVisible = _useIsFocusVisible.isFocusVisible,\n      onBlurVisible = _useIsFocusVisible.onBlurVisible,\n      focusVisibleRef = _useIsFocusVisible.ref;\n\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](-1),\n      focusVisible = _React$useState3[0],\n      setFocusVisible = _React$useState3[1];\n\n  var sliderRef = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"]();\n  var handleFocusRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(focusVisibleRef, sliderRef);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(ref, handleFocusRef);\n  var handleFocus = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n\n    if (isFocusVisible(event)) {\n      setFocusVisible(index);\n    }\n\n    setOpen(index);\n  });\n  var handleBlur = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function () {\n    if (focusVisible !== -1) {\n      setFocusVisible(-1);\n      onBlurVisible();\n    }\n\n    setOpen(-1);\n  });\n  var handleMouseOver = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n    setOpen(index);\n  });\n  var handleMouseLeave = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function () {\n    setOpen(-1);\n  });\n  var isRtl = theme.direction === 'rtl';\n  var handleKeyDown = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    var index = Number(event.currentTarget.getAttribute('data-index'));\n    var value = values[index];\n    var tenPercents = (max - min) / 10;\n    var marksValues = marks.map(function (mark) {\n      return mark.value;\n    });\n    var marksIndex = marksValues.indexOf(value);\n    var newValue;\n    var increaseKey = isRtl ? 'ArrowLeft' : 'ArrowRight';\n    var decreaseKey = isRtl ? 'ArrowRight' : 'ArrowLeft';\n\n    switch (event.key) {\n      case 'Home':\n        newValue = min;\n        break;\n\n      case 'End':\n        newValue = max;\n        break;\n\n      case 'PageUp':\n        if (step) {\n          newValue = value + tenPercents;\n        }\n\n        break;\n\n      case 'PageDown':\n        if (step) {\n          newValue = value - tenPercents;\n        }\n\n        break;\n\n      case increaseKey:\n      case 'ArrowUp':\n        if (step) {\n          newValue = value + step;\n        } else {\n          newValue = marksValues[marksIndex + 1] || marksValues[marksValues.length - 1];\n        }\n\n        break;\n\n      case decreaseKey:\n      case 'ArrowDown':\n        if (step) {\n          newValue = value - step;\n        } else {\n          newValue = marksValues[marksIndex - 1] || marksValues[0];\n        }\n\n        break;\n\n      default:\n        return;\n    } // Prevent scroll of the page\n\n\n    event.preventDefault();\n\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    }\n\n    newValue = clamp(newValue, min, max);\n\n    if (range) {\n      var previousValue = newValue;\n      newValue = setValueIndex({\n        values: values,\n        source: valueDerived,\n        newValue: newValue,\n        index: index\n      }).sort(asc);\n      focusThumb({\n        sliderRef: sliderRef,\n        activeIndex: newValue.indexOf(previousValue)\n      });\n    }\n\n    setValueState(newValue);\n    setFocusVisible(index);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n  });\n  var previousIndex = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"]();\n  var axis = orientation;\n\n  if (isRtl && orientation !== \"vertical\") {\n    axis += '-reverse';\n  }\n\n  var getFingerNewValue = function getFingerNewValue(_ref3) {\n    var finger = _ref3.finger,\n        _ref3$move = _ref3.move,\n        move = _ref3$move === void 0 ? false : _ref3$move,\n        values2 = _ref3.values,\n        source = _ref3.source;\n    var slider = sliderRef.current;\n\n    var _slider$getBoundingCl = slider.getBoundingClientRect(),\n        width = _slider$getBoundingCl.width,\n        height = _slider$getBoundingCl.height,\n        bottom = _slider$getBoundingCl.bottom,\n        left = _slider$getBoundingCl.left;\n\n    var percent;\n\n    if (axis.indexOf('vertical') === 0) {\n      percent = (bottom - finger.y) / height;\n    } else {\n      percent = (finger.x - left) / width;\n    }\n\n    if (axis.indexOf('-reverse') !== -1) {\n      percent = 1 - percent;\n    }\n\n    var newValue;\n    newValue = percentToValue(percent, min, max);\n\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    } else {\n      var marksValues = marks.map(function (mark) {\n        return mark.value;\n      });\n      var closestIndex = findClosest(marksValues, newValue);\n      newValue = marksValues[closestIndex];\n    }\n\n    newValue = clamp(newValue, min, max);\n    var activeIndex = 0;\n\n    if (range) {\n      if (!move) {\n        activeIndex = findClosest(values2, newValue);\n      } else {\n        activeIndex = previousIndex.current;\n      }\n\n      var previousValue = newValue;\n      newValue = setValueIndex({\n        values: values2,\n        source: source,\n        newValue: newValue,\n        index: activeIndex\n      }).sort(asc);\n      activeIndex = newValue.indexOf(previousValue);\n      previousIndex.current = activeIndex;\n    }\n\n    return {\n      newValue: newValue,\n      activeIndex: activeIndex\n    };\n  };\n\n  var handleTouchMove = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    var finger = trackFinger(event, touchId);\n\n    if (!finger) {\n      return;\n    }\n\n    var _getFingerNewValue = getFingerNewValue({\n      finger: finger,\n      move: true,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue.newValue,\n        activeIndex = _getFingerNewValue.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n  });\n  var handleTouchEnd = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    var finger = trackFinger(event, touchId);\n\n    if (!finger) {\n      return;\n    }\n\n    var _getFingerNewValue2 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue2.newValue;\n\n    setActive(-1);\n\n    if (event.type === 'touchend') {\n      setOpen(-1);\n    }\n\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n\n    touchId.current = undefined;\n    var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(sliderRef.current);\n    doc.removeEventListener('mousemove', handleTouchMove);\n    doc.removeEventListener('mouseup', handleTouchEnd);\n    doc.removeEventListener('touchmove', handleTouchMove);\n    doc.removeEventListener('touchend', handleTouchEnd);\n  });\n  var handleTouchStart = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    // Workaround as Safari has partial support for touchAction: 'none'.\n    event.preventDefault();\n    var touch = event.changedTouches[0];\n\n    if (touch != null) {\n      // A number that uniquely identifies the current finger in the touch session.\n      touchId.current = touch.identifier;\n    }\n\n    var finger = trackFinger(event, touchId);\n\n    var _getFingerNewValue3 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue3.newValue,\n        activeIndex = _getFingerNewValue3.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(sliderRef.current);\n    doc.addEventListener('touchmove', handleTouchMove);\n    doc.addEventListener('touchend', handleTouchEnd);\n  });\n  react__WEBPACK_IMPORTED_MODULE_4__[\"useEffect\"](function () {\n    var slider = sliderRef.current;\n    slider.addEventListener('touchstart', handleTouchStart);\n    var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(slider);\n    return function () {\n      slider.removeEventListener('touchstart', handleTouchStart);\n      doc.removeEventListener('mousemove', handleTouchMove);\n      doc.removeEventListener('mouseup', handleTouchEnd);\n      doc.removeEventListener('touchmove', handleTouchMove);\n      doc.removeEventListener('touchend', handleTouchEnd);\n    };\n  }, [handleTouchEnd, handleTouchMove, handleTouchStart]);\n  var handleMouseDown = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(function (event) {\n    if (onMouseDown) {\n      onMouseDown(event);\n    }\n\n    event.preventDefault();\n    var finger = trackFinger(event, touchId);\n\n    var _getFingerNewValue4 = getFingerNewValue({\n      finger: finger,\n      values: values,\n      source: valueDerived\n    }),\n        newValue = _getFingerNewValue4.newValue,\n        activeIndex = _getFingerNewValue4.activeIndex;\n\n    focusThumb({\n      sliderRef: sliderRef,\n      activeIndex: activeIndex,\n      setActive: setActive\n    });\n    setValueState(newValue);\n\n    if (onChange) {\n      onChange(event, newValue);\n    }\n\n    var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(sliderRef.current);\n    doc.addEventListener('mousemove', handleTouchMove);\n    doc.addEventListener('mouseup', handleTouchEnd);\n  });\n  var trackOffset = valueToPercent(range ? values[0] : min, min, max);\n  var trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n\n  var trackStyle = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap));\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n    ref: handleRef,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(color))], className, disabled && classes.disabled, marks.length > 0 && marks.some(function (mark) {\n      return mark.label;\n    }) && classes.marked, track === false && classes.trackFalse, orientation === 'vertical' && classes.vertical, track === 'inverted' && classes.trackInverted),\n    onMouseDown: handleMouseDown\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"span\", {\n    className: classes.rail\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"span\", {\n    className: classes.track,\n    style: trackStyle\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"input\", {\n    value: values.join(','),\n    name: name,\n    type: \"hidden\"\n  }), marks.map(function (mark, index) {\n    var percent = valueToPercent(mark.value, min, max);\n    var style = axisProps[axis].offset(percent);\n    var markActive;\n\n    if (track === false) {\n      markActive = values.indexOf(mark.value) !== -1;\n    } else {\n      markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_4__[\"Fragment\"], {\n      key: mark.value\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"span\", {\n      style: style,\n      \"data-index\": index,\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.mark, markActive && classes.markActive)\n    }), mark.label != null ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"span\", {\n      \"aria-hidden\": true,\n      \"data-index\": index,\n      style: style,\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.markLabel, markActive && classes.markLabelActive)\n    }, mark.label) : null);\n  }), values.map(function (value, index) {\n    var percent = valueToPercent(value, min, max);\n    var style = axisProps[axis].offset(percent);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](ValueLabelComponent, {\n      key: index,\n      valueLabelFormat: valueLabelFormat,\n      valueLabelDisplay: valueLabelDisplay,\n      className: classes.valueLabel,\n      value: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat,\n      index: index,\n      open: open === index || active === index || valueLabelDisplay === 'on',\n      disabled: disabled\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](ThumbComponent, {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.thumb, classes[\"thumbColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(color))], active === index && classes.active, disabled && classes.disabled, focusVisible === index && classes.focusVisible),\n      tabIndex: disabled ? null : 0,\n      role: \"slider\",\n      style: style,\n      \"data-index\": index,\n      \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n      \"aria-labelledby\": ariaLabelledby,\n      \"aria-orientation\": orientation,\n      \"aria-valuemax\": scale(max),\n      \"aria-valuemin\": scale(min),\n      \"aria-valuenow\": scale(value),\n      \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n      onKeyDown: handleKeyDown,\n      onFocus: handleFocus,\n      onBlur: handleBlur,\n      onMouseOver: handleMouseOver,\n      onMouseLeave: handleMouseLeave\n    }));\n  }));\n});\n true ? Slider.propTypes = {\n  /**\n   * The label of the slider.\n   */\n  'aria-label': Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_7__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string, function (props) {\n    var range = Array.isArray(props.value || props.defaultValue);\n\n    if (range && props['aria-label'] != null) {\n      return new Error('Material-UI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * The id of the element containing a label for the slider.\n   */\n  'aria-labelledby': prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * A string value that provides a user-friendly name for the current value of the slider.\n   */\n  'aria-valuetext': Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_7__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string, function (props) {\n    var range = Array.isArray(props.value || props.defaultValue);\n\n    if (range && props['aria-valuetext'] != null) {\n      return new Error('Material-UI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n    }\n\n    return null;\n  }),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The default element value. Use when the component is not controlled.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number)]),\n\n  /**\n   * If `true`, the slider will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n   *\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaLabel: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n   *\n   * @param {number} value The thumb label's value to format.\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaValueText: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * Marks indicate predetermined values to which the user can move the slider.\n   * If `true` the marks will be spaced according the value of the `step` prop.\n   * If an array, it should contain objects with `value` and an optional `label` keys.\n   */\n  marks: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.array]),\n\n  /**\n   * The maximum allowed value of the slider.\n   * Should not be equal to min.\n   */\n  max: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n  /**\n   * The minimum allowed value of the slider.\n   * Should not be equal to max.\n   */\n  min: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n  /**\n   * Name attribute of the hidden `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * Callback function that is fired when the slider's value changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number | number[]} value The new value.\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * Callback function that is fired when the `mouseup` is triggered.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number | number[]} value The new value.\n   */\n  onChangeCommitted: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * The slider orientation.\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * A transformation function, to change the scale of the slider.\n   */\n  scale: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n   * The `min` prop serves as the origin for the valid values.\n   * We recommend (max - min) to be evenly divisible by the step.\n   *\n   * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n   */\n  step: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n  /**\n   * The component used to display the value label.\n   */\n  ThumbComponent: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.elementType,\n\n  /**\n   * The track presentation:\n   *\n   * - `normal` the track will render a bar representing the slider value.\n   * - `inverted` the track will render a bar representing the remaining slider value.\n   * - `false` the track will render without a bar.\n   */\n  track: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['normal', false, 'inverted']),\n\n  /**\n   * The value of the slider.\n   * For ranged sliders, provide an array with two values.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number)]),\n\n  /**\n   * The value label component.\n   */\n  ValueLabelComponent: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.elementType,\n\n  /**\n   * Controls when the value label is displayed:\n   *\n   * - `auto` the value label will display when the thumb is hovered or focused.\n   * - `on` will display persistently.\n   * - `off` will never display.\n   */\n  valueLabelDisplay: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['on', 'auto', 'off']),\n\n  /**\n   * The format function the value label's value.\n   *\n   * When a function is provided, it should have the following signature:\n   *\n   * - {number} value The value label's value to format\n   * - {number} index The value label's index to format\n   */\n  valueLabelFormat: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(styles, {\n  name: 'MuiSlider'\n})(Slider));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Slider/Slider.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Slider/ValueLabel.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Slider/ValueLabel.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    thumb: {\n      '&$open': {\n        '& $offset': {\n          transform: 'scale(1) translateY(-10px)'\n        }\n      }\n    },\n    open: {},\n    offset: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      zIndex: 1\n    }, theme.typography.body2, {\n      fontSize: theme.typography.pxToRem(12),\n      lineHeight: 1.2,\n      transition: theme.transitions.create(['transform'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      top: -34,\n      transformOrigin: 'bottom center',\n      transform: 'scale(0)',\n      position: 'absolute'\n    }),\n    circle: {\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      width: 32,\n      height: 32,\n      borderRadius: '50% 50% 50% 0',\n      backgroundColor: 'currentColor',\n      transform: 'rotate(-45deg)'\n    },\n    label: {\n      color: theme.palette.primary.contrastText,\n      transform: 'rotate(45deg)'\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction ValueLabel(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      open = props.open,\n      value = props.value,\n      valueLabelDisplay = props.valueLabelDisplay;\n\n  if (valueLabelDisplay === 'off') {\n    return children;\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"cloneElement\"](children, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(children.props.className, (open || valueLabelDisplay === 'on') && classes.open, classes.thumb)\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.offset, className)\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"](\"span\", {\n    className: classes.circle\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"](\"span\", {\n    className: classes.label\n  }, value))));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(styles, {\n  name: 'PrivateValueLabel'\n})(ValueLabel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Slider/ValueLabel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Slider/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Slider/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Slider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Slider */ \"./node_modules/@material-ui/core/esm/Slider/Slider.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Slider__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Slider/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Snackbar/Snackbar.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Snackbar/Snackbar.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _ClickAwayListener__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ClickAwayListener */ \"./node_modules/@material-ui/core/esm/ClickAwayListener/index.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/createChainedFunction */ \"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js\");\n/* harmony import */ var _Grow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Grow */ \"./node_modules/@material-ui/core/esm/Grow/index.js\");\n/* harmony import */ var _SnackbarContent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../SnackbarContent */ \"./node_modules/@material-ui/core/esm/SnackbarContent/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var top1 = {\n    top: 8\n  };\n  var bottom1 = {\n    bottom: 8\n  };\n  var right = {\n    justifyContent: 'flex-end'\n  };\n  var left = {\n    justifyContent: 'flex-start'\n  };\n  var top3 = {\n    top: 24\n  };\n  var bottom3 = {\n    bottom: 24\n  };\n  var right3 = {\n    right: 24\n  };\n  var left3 = {\n    left: 24\n  };\n  var center = {\n    left: '50%',\n    right: 'auto',\n    transform: 'translateX(-50%)'\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      zIndex: theme.zIndex.snackbar,\n      position: 'fixed',\n      display: 'flex',\n      left: 8,\n      right: 8,\n      justifyContent: 'center',\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'center' }}`. */\n    anchorOriginTopCenter: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, top1, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, top3, center))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'center' }}`. */\n    anchorOriginBottomCenter: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, bottom1, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, bottom3, center))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }}`. */\n    anchorOriginTopRight: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, top1, right, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      left: 'auto'\n    }, top3, right3))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }}`. */\n    anchorOriginBottomRight: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, bottom1, right, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      left: 'auto'\n    }, bottom3, right3))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }}`. */\n    anchorOriginTopLeft: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, top1, left, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      right: 'auto'\n    }, top3, left3))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }}`. */\n    anchorOriginBottomLeft: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, bottom1, left, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      right: 'auto'\n    }, bottom3, left3)))\n  };\n};\nvar Snackbar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Snackbar(props, ref) {\n  var action = props.action,\n      _props$anchorOrigin = props.anchorOrigin;\n  _props$anchorOrigin = _props$anchorOrigin === void 0 ? {\n    vertical: 'bottom',\n    horizontal: 'center'\n  } : _props$anchorOrigin;\n\n  var vertical = _props$anchorOrigin.vertical,\n      horizontal = _props$anchorOrigin.horizontal,\n      _props$autoHideDurati = props.autoHideDuration,\n      autoHideDuration = _props$autoHideDurati === void 0 ? null : _props$autoHideDurati,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      ClickAwayListenerProps = props.ClickAwayListenerProps,\n      ContentProps = props.ContentProps,\n      _props$disableWindowB = props.disableWindowBlurListener,\n      disableWindowBlurListener = _props$disableWindowB === void 0 ? false : _props$disableWindowB,\n      message = props.message,\n      onClose = props.onClose,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      onMouseEnter = props.onMouseEnter,\n      onMouseLeave = props.onMouseLeave,\n      open = props.open,\n      resumeHideDuration = props.resumeHideDuration,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Grow__WEBPACK_IMPORTED_MODULE_12__[\"default\"] : _props$TransitionComp,\n      _props$transitionDura = props.transitionDuration,\n      transitionDuration = _props$transitionDura === void 0 ? {\n    enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_7__[\"duration\"].enteringScreen,\n    exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_7__[\"duration\"].leavingScreen\n  } : _props$transitionDura,\n      TransitionProps = props.TransitionProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"action\", \"anchorOrigin\", \"autoHideDuration\", \"children\", \"classes\", \"className\", \"ClickAwayListenerProps\", \"ContentProps\", \"disableWindowBlurListener\", \"message\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n  var timerAutoHide = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"]();\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"](true),\n      exited = _React$useState[0],\n      setExited = _React$useState[1];\n\n  var handleClose = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(function () {\n    if (onClose) {\n      onClose.apply(void 0, arguments);\n    }\n  });\n  var setAutoHideTimer = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(function (autoHideDurationParam) {\n    if (!onClose || autoHideDurationParam == null) {\n      return;\n    }\n\n    clearTimeout(timerAutoHide.current);\n    timerAutoHide.current = setTimeout(function () {\n      handleClose(null, 'timeout');\n    }, autoHideDurationParam);\n  });\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    if (open) {\n      setAutoHideTimer(autoHideDuration);\n    }\n\n    return function () {\n      clearTimeout(timerAutoHide.current);\n    };\n  }, [open, autoHideDuration, setAutoHideTimer]); // Pause the timer when the user is interacting with the Snackbar\n  // or when the user hide the window.\n\n  var handlePause = function handlePause() {\n    clearTimeout(timerAutoHide.current);\n  }; // Restart the timer when the user is no longer interacting with the Snackbar\n  // or when the window is shown back.\n\n\n  var handleResume = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function () {\n    if (autoHideDuration != null) {\n      setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n    }\n  }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n  var handleMouseEnter = function handleMouseEnter(event) {\n    if (onMouseEnter) {\n      onMouseEnter(event);\n    }\n\n    handlePause();\n  };\n\n  var handleMouseLeave = function handleMouseLeave(event) {\n    if (onMouseLeave) {\n      onMouseLeave(event);\n    }\n\n    handleResume();\n  };\n\n  var handleClickAway = function handleClickAway(event) {\n    if (onClose) {\n      onClose(event, 'clickaway');\n    }\n  };\n\n  var handleExited = function handleExited() {\n    setExited(true);\n  };\n\n  var handleEnter = function handleEnter() {\n    setExited(false);\n  };\n\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    if (!disableWindowBlurListener && open) {\n      window.addEventListener('focus', handleResume);\n      window.addEventListener('blur', handlePause);\n      return function () {\n        window.removeEventListener('focus', handleResume);\n        window.removeEventListener('blur', handlePause);\n      };\n    }\n\n    return undefined;\n  }, [disableWindowBlurListener, handleResume, open]); // So we only render active snackbars.\n\n  if (!open && exited) {\n    return null;\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_ClickAwayListener__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    onClickAway: handleClickAway\n  }, ClickAwayListenerProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[\"anchorOrigin\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(vertical)).concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(horizontal))], className),\n    onMouseEnter: handleMouseEnter,\n    onMouseLeave: handleMouseLeave,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    appear: true,\n    in: open,\n    onEnter: Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(handleEnter, onEnter),\n    onEntered: onEntered,\n    onEntering: onEntering,\n    onExit: onExit,\n    onExited: Object(_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(handleExited, onExited),\n    onExiting: onExiting,\n    timeout: transitionDuration,\n    direction: vertical === 'top' ? 'down' : 'up'\n  }, TransitionProps), children || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_SnackbarContent__WEBPACK_IMPORTED_MODULE_13__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    message: message,\n    action: action\n  }, ContentProps)))));\n});\n true ? Snackbar.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The action to display. It renders after the message, at the end of the snackbar.\n   */\n  action: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * The anchor of the `Snackbar`.\n   */\n  anchorOrigin: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    horizontal: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['center', 'left', 'right']).isRequired,\n    vertical: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['bottom', 'top']).isRequired\n  }),\n\n  /**\n   * The number of milliseconds to wait before automatically calling the\n   * `onClose` function. `onClose` should then set the state of the `open`\n   * prop to hide the Snackbar. This behavior is disabled by default with\n   * the `null` value.\n   */\n  autoHideDuration: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n  /**\n   * Replace the `SnackbarContent` component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.element,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Props applied to the `ClickAwayListener` element.\n   */\n  ClickAwayListenerProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Props applied to the [`SnackbarContent`](/api/snackbar-content/) element.\n   */\n  ContentProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n   */\n  disableWindowBlurListener: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * When displaying multiple consecutive Snackbars from a parent rendering a single\n   * <Snackbar/>, add the key prop to ensure independent treatment of each message.\n   * e.g. <Snackbar key={message} />, otherwise, the message may update-in-place and\n   * features such as autoHideDuration may be canceled.\n   */\n  key: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any,\n\n  /**\n   * The message to display.\n   */\n  message: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * Typically `onClose` is used to set state in the parent component,\n   * which is used to control the `Snackbar` `open` prop.\n   * The `reason` parameter can optionally be used to control the response to `onClose`,\n   * for example ignoring `clickaway`.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired before the transition is entering.\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the transition has entered.\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the transition is entering.\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired before the transition is exiting.\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the transition has exited.\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the transition is exiting.\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * If `true`, `Snackbar` is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The number of milliseconds to wait before dismissing after user interaction.\n   * If `autoHideDuration` prop isn't specified, it does nothing.\n   * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n   * we default to `autoHideDuration / 2` ms.\n   */\n  resumeHideDuration: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.elementType,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n  })]),\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  flip: false,\n  name: 'MuiSnackbar'\n})(Snackbar));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Snackbar/Snackbar.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Snackbar/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Snackbar/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Snackbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Snackbar */ \"./node_modules/@material-ui/core/esm/Snackbar/Snackbar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Snackbar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Snackbar/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js ***!
  \*******************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var emphasis = theme.palette.type === 'light' ? 0.8 : 0.98;\n  var backgroundColor = Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_8__[\"emphasize\"])(theme.palette.background.default, emphasis);\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.typography.body2, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      color: theme.palette.getContrastText(backgroundColor),\n      backgroundColor: backgroundColor,\n      display: 'flex',\n      alignItems: 'center',\n      flexWrap: 'wrap',\n      padding: '6px 16px',\n      borderRadius: theme.shape.borderRadius,\n      flexGrow: 1\n    }, theme.breakpoints.up('sm'), {\n      flexGrow: 'initial',\n      minWidth: 288\n    })),\n\n    /* Styles applied to the message wrapper element. */\n    message: {\n      padding: '8px 0'\n    },\n\n    /* Styles applied to the action wrapper element if `action` is provided. */\n    action: {\n      display: 'flex',\n      alignItems: 'center',\n      marginLeft: 'auto',\n      paddingLeft: 16,\n      marginRight: -8\n    }\n  };\n};\nvar SnackbarContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function SnackbarContent(props, ref) {\n  var action = props.action,\n      classes = props.classes,\n      className = props.className,\n      message = props.message,\n      _props$role = props.role,\n      role = _props$role === void 0 ? 'alert' : _props$role,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"action\", \"classes\", \"className\", \"message\", \"role\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    role: role,\n    square: true,\n    elevation: 6,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    className: classes.message\n  }, message), action ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    className: classes.action\n  }, action) : null);\n});\n true ? SnackbarContent.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The action to display. It renders after the message, at the end of the snackbar.\n   */\n  action: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The message to display.\n   */\n  message: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * The ARIA role attribute of the element.\n   */\n  role: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiSnackbarContent'\n})(SnackbarContent));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SnackbarContent/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SnackbarContent/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _SnackbarContent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SnackbarContent */ \"./node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _SnackbarContent__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SnackbarContent/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Step/Step.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Step/Step.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {},\n\n  /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n  horizontal: {\n    paddingLeft: 8,\n    paddingRight: 8\n  },\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {},\n\n  /* Styles applied to the root element if `alternativeLabel={true}`. */\n  alternativeLabel: {\n    flex: 1,\n    position: 'relative'\n  },\n\n  /* Pseudo-class applied to the root element if `completed={true}`. */\n  completed: {}\n};\nvar Step = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Step(props, ref) {\n  var _props$active = props.active,\n      active = _props$active === void 0 ? false : _props$active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$completed = props.completed,\n      completed = _props$completed === void 0 ? false : _props$completed,\n      connectorProp = props.connector,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$expanded = props.expanded,\n      expanded = _props$expanded === void 0 ? false : _props$expanded,\n      index = props.index,\n      last = props.last,\n      orientation = props.orientation,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"connector\", \"disabled\", \"expanded\", \"index\", \"last\", \"orientation\"]);\n\n  var connector = connectorProp ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](connectorProp, {\n    orientation: orientation,\n    alternativeLabel: alternativeLabel,\n    index: index,\n    active: active,\n    completed: completed,\n    disabled: disabled\n  }) : null;\n  var newChildren = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[orientation], className, alternativeLabel && classes.alternativeLabel, completed && classes.completed),\n    ref: ref\n  }, other), connector && alternativeLabel && index !== 0 ? connector : null, react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].map(children, function (child) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_3__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The Step component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](child, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      active: active,\n      alternativeLabel: alternativeLabel,\n      completed: completed,\n      disabled: disabled,\n      expanded: expanded,\n      last: last,\n      icon: index + 1,\n      orientation: orientation\n    }, child.props));\n  }));\n\n  if (connector && !alternativeLabel && index !== 0) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"], null, connector, newChildren);\n  }\n\n  return newChildren;\n});\n true ? Step.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Sets the step as active. Is passed to child components.\n   */\n  active: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Should be `Step` sub-components such as `StepLabel`, `StepContent`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * Mark the step as completed. Is passed to child components.\n   */\n  completed: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Mark the step as disabled, will also disable the button if\n   * `StepButton` is a child of `Step`. Is passed to child components.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * Expand the step.\n   */\n  expanded: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiStep'\n})(Step));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Step/Step.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Step/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Step/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Step__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Step */ \"./node_modules/@material-ui/core/esm/Step/Step.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Step__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Step/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepButton/StepButton.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepButton/StepButton.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _StepLabel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../StepLabel */ \"./node_modules/@material-ui/core/esm/StepLabel/index.js\");\n/* harmony import */ var _utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/isMuiElement */ \"./node_modules/@material-ui/core/esm/utils/isMuiElement.js\");\n\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    width: '100%',\n    padding: '24px 16px',\n    margin: '-24px -16px',\n    boxSizing: 'content-box'\n  },\n\n  /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n  horizontal: {},\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {\n    justifyContent: 'flex-start',\n    padding: '8px',\n    margin: '-8px'\n  },\n\n  /* Styles applied to the `ButtonBase` touch-ripple. */\n  touchRipple: {\n    color: 'rgba(0, 0, 0, 0.3)'\n  }\n};\nvar StepButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function StepButton(props, ref) {\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      completed = props.completed,\n      disabled = props.disabled,\n      expanded = props.expanded,\n      icon = props.icon,\n      last = props.last,\n      optional = props.optional,\n      orientation = props.orientation,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"disabled\", \"expanded\", \"icon\", \"last\", \"optional\", \"orientation\"]);\n\n  var childProps = {\n    active: active,\n    alternativeLabel: alternativeLabel,\n    completed: completed,\n    disabled: disabled,\n    icon: icon,\n    optional: optional,\n    orientation: orientation\n  };\n  var child = Object(_utils_isMuiElement__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(children, ['StepLabel']) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](children, childProps) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_StepLabel__WEBPACK_IMPORTED_MODULE_7__[\"default\"], childProps, children);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    focusRipple: true,\n    disabled: disabled,\n    TouchRippleProps: {\n      className: classes.touchRipple\n    },\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[orientation], className),\n    ref: ref\n  }, other), child);\n});\n true ? StepButton.propTypes = {\n  /**\n   * @ignore\n   * Passed in via `Step` - passed through to `StepLabel`.\n   */\n  active: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   * Set internally by Stepper when it's supplied with the alternativeLabel property.\n   */\n  alternativeLabel: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Can be a `StepLabel` or a node to place inside `StepLabel` as children.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   * Sets completed styling. Is passed to StepLabel.\n   */\n  completed: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   * Disables the button and sets disabled styling. Is passed to StepLabel.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   * potentially passed from parent `Step`\n   */\n  expanded: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon displayed by the step label.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  last: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The optional node to display.\n   */\n  optional: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['horizontal', 'vertical'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiStepButton'\n})(StepButton));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepButton/StepButton.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepButton/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepButton/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _StepButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StepButton */ \"./node_modules/@material-ui/core/esm/StepButton/StepButton.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _StepButton__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepButton/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepConnector/StepConnector.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepConnector/StepConnector.js ***!
  \***************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      flex: '1 1 auto'\n    },\n\n    /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n    horizontal: {},\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {\n      marginLeft: 12,\n      // half icon\n      padding: '0 0 8px'\n    },\n\n    /* Styles applied to the root element if `alternativeLabel={true}`. */\n    alternativeLabel: {\n      position: 'absolute',\n      top: 8 + 4,\n      left: 'calc(-50% + 20px)',\n      right: 'calc(50% + 20px)'\n    },\n\n    /* Pseudo-class applied to the root element if `active={true}`. */\n    active: {},\n\n    /* Pseudo-class applied to the root element if `completed={true}`. */\n    completed: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the line element. */\n    line: {\n      display: 'block',\n      borderColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n    },\n\n    /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n    lineHorizontal: {\n      borderTopStyle: 'solid',\n      borderTopWidth: 1\n    },\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    lineVertical: {\n      borderLeftStyle: 'solid',\n      borderLeftWidth: 1,\n      minHeight: 24\n    }\n  };\n};\nvar StepConnector = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function StepConnector(props, ref) {\n  var active = props.active,\n      _props$alternativeLab = props.alternativeLabel,\n      alternativeLabel = _props$alternativeLab === void 0 ? false : _props$alternativeLab,\n      classes = props.classes,\n      className = props.className,\n      completed = props.completed,\n      disabled = props.disabled,\n      index = props.index,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"active\", \"alternativeLabel\", \"classes\", \"className\", \"completed\", \"disabled\", \"index\", \"orientation\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[orientation], className, alternativeLabel && classes.alternativeLabel, active && classes.active, completed && classes.completed, disabled && classes.disabled),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.line, {\n      'horizontal': classes.lineHorizontal,\n      'vertical': classes.lineVertical\n    }[orientation])\n  }));\n});\n true ? StepConnector.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiStepConnector'\n})(StepConnector));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepConnector/StepConnector.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepConnector/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepConnector/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _StepConnector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StepConnector */ \"./node_modules/@material-ui/core/esm/StepConnector/StepConnector.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _StepConnector__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepConnector/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepContent/StepContent.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepContent/StepContent.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _Collapse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Collapse */ \"./node_modules/@material-ui/core/esm/Collapse/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      marginTop: 8,\n      marginLeft: 12,\n      // half icon\n      paddingLeft: 8 + 12,\n      // margin + half icon\n      paddingRight: 8,\n      borderLeft: \"1px solid \".concat(theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600])\n    },\n\n    /* Styles applied to the root element if `last={true}` (controlled by `Step`). */\n    last: {\n      borderLeft: 'none'\n    },\n\n    /* Styles applied to the Transition component. */\n    transition: {}\n  };\n};\nvar StepContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function StepContent(props, ref) {\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      completed = props.completed,\n      expanded = props.expanded,\n      last = props.last,\n      optional = props.optional,\n      orientation = props.orientation,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Collapse__WEBPACK_IMPORTED_MODULE_5__[\"default\"] : _props$TransitionComp,\n      _props$transitionDura = props.transitionDuration,\n      transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,\n      TransitionProps = props.TransitionProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"expanded\", \"last\", \"optional\", \"orientation\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n\n  if (true) {\n    if (orientation !== 'vertical') {\n      console.error('Material-UI: <StepContent /> is only designed for use with the vertical stepper.');\n    }\n  }\n\n  var transitionDuration = transitionDurationProp;\n\n  if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n    transitionDuration = undefined;\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, last && classes.last),\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    in: active || expanded,\n    className: classes.transition,\n    timeout: transitionDuration,\n    unmountOnExit: true\n  }, TransitionProps), children));\n});\n true ? StepContent.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Step content.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * Adjust the duration of the content expand transition.\n   * Passed as a prop to the transition component.\n   *\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['auto']), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n  })]),\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiStepContent'\n})(StepContent));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepContent/StepContent.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepContent/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepContent/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _StepContent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StepContent */ \"./node_modules/@material-ui/core/esm/StepContent/StepContent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _StepContent__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepContent/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepIcon/StepIcon.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepIcon/StepIcon.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _internal_svg_icons_CheckCircle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../internal/svg-icons/CheckCircle */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/CheckCircle.js\");\n/* harmony import */ var _internal_svg_icons_Warning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/svg-icons/Warning */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/Warning.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _SvgIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../SvgIcon */ \"./node_modules/@material-ui/core/esm/SvgIcon/index.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      color: theme.palette.text.disabled,\n      '&$completed': {\n        color: theme.palette.primary.main\n      },\n      '&$active': {\n        color: theme.palette.primary.main\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    },\n\n    /* Styles applied to the SVG text element. */\n    text: {\n      fill: theme.palette.primary.contrastText,\n      fontSize: theme.typography.caption.fontSize,\n      fontFamily: theme.typography.fontFamily\n    },\n\n    /* Pseudo-class applied to the root element if `active={true}`. */\n    active: {},\n\n    /* Pseudo-class applied to the root element if `completed={true}`. */\n    completed: {},\n\n    /* Pseudo-class applied to the root element if `error={true}`. */\n    error: {}\n  };\n};\n\nvar _ref = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"circle\", {\n  cx: \"12\",\n  cy: \"12\",\n  r: \"12\"\n});\n\nvar StepIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"](function StepIcon(props, ref) {\n  var _props$completed = props.completed,\n      completed = _props$completed === void 0 ? false : _props$completed,\n      icon = props.icon,\n      _props$active = props.active,\n      active = _props$active === void 0 ? false : _props$active,\n      _props$error = props.error,\n      error = _props$error === void 0 ? false : _props$error,\n      classes = props.classes;\n\n  if (typeof icon === 'number' || typeof icon === 'string') {\n    var className = Object(clsx__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(classes.root, active && classes.active, error && classes.error, completed && classes.completed);\n\n    if (error) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](_internal_svg_icons_Warning__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n        className: className,\n        ref: ref\n      });\n    }\n\n    if (completed) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](_internal_svg_icons_CheckCircle__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n        className: className,\n        ref: ref\n      });\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](_SvgIcon__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n      className: className,\n      ref: ref\n    }, _ref, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"text\", {\n      className: classes.text,\n      x: \"12\",\n      y: \"16\",\n      textAnchor: \"middle\"\n    }, icon));\n  }\n\n  return icon;\n});\n true ? StepIcon.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Whether this step is active.\n   */\n  active: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object,\n\n  /**\n   * Mark the step as completed. Is passed to child components.\n   */\n  completed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * Mark the step as failed.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n  /**\n   * The label displayed in the step icon.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiStepIcon'\n})(StepIcon));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepIcon/StepIcon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepIcon/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepIcon/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _StepIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StepIcon */ \"./node_modules/@material-ui/core/esm/StepIcon/StepIcon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _StepIcon__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepIcon/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepLabel/StepLabel.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepLabel/StepLabel.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony import */ var _StepIcon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../StepIcon */ \"./node_modules/@material-ui/core/esm/StepIcon/index.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      alignItems: 'center',\n      '&$alternativeLabel': {\n        flexDirection: 'column'\n      },\n      '&$disabled': {\n        cursor: 'default'\n      }\n    },\n\n    /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n    horizontal: {},\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {},\n\n    /* Styles applied to the `Typography` component which wraps `children`. */\n    label: {\n      color: theme.palette.text.secondary,\n      '&$active': {\n        color: theme.palette.text.primary,\n        fontWeight: 500\n      },\n      '&$completed': {\n        color: theme.palette.text.primary,\n        fontWeight: 500\n      },\n      '&$alternativeLabel': {\n        textAlign: 'center',\n        marginTop: 16\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    },\n\n    /* Pseudo-class applied to the `Typography` component if `active={true}`. */\n    active: {},\n\n    /* Pseudo-class applied to the `Typography` component if `completed={true}`. */\n    completed: {},\n\n    /* Pseudo-class applied to the root element and `Typography` component if `error={true}`. */\n    error: {},\n\n    /* Pseudo-class applied to the root element and `Typography` component if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the `icon` container element. */\n    iconContainer: {\n      flexShrink: 0,\n      // Fix IE 11 issue\n      display: 'flex',\n      paddingRight: 8,\n      '&$alternativeLabel': {\n        paddingRight: 0\n      }\n    },\n\n    /* Pseudo-class applied to the root and icon container and `Typography` if `alternativeLabel={true}`. */\n    alternativeLabel: {},\n\n    /* Styles applied to the container element which wraps `Typography` and `optional`. */\n    labelContainer: {\n      width: '100%'\n    }\n  };\n};\nvar StepLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function StepLabel(props, ref) {\n  var _props$active = props.active,\n      active = _props$active === void 0 ? false : _props$active,\n      _props$alternativeLab = props.alternativeLabel,\n      alternativeLabel = _props$alternativeLab === void 0 ? false : _props$alternativeLab,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$completed = props.completed,\n      completed = _props$completed === void 0 ? false : _props$completed,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$error = props.error,\n      error = _props$error === void 0 ? false : _props$error,\n      expanded = props.expanded,\n      icon = props.icon,\n      last = props.last,\n      optional = props.optional,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      StepIconComponentProp = props.StepIconComponent,\n      StepIconProps = props.StepIconProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"disabled\", \"error\", \"expanded\", \"icon\", \"last\", \"optional\", \"orientation\", \"StepIconComponent\", \"StepIconProps\"]);\n\n  var StepIconComponent = StepIconComponentProp;\n\n  if (icon && !StepIconComponent) {\n    StepIconComponent = _StepIcon__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[orientation], className, disabled && classes.disabled, alternativeLabel && classes.alternativeLabel, error && classes.error),\n    ref: ref\n  }, other), icon || StepIconComponent ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.iconContainer, alternativeLabel && classes.alternativeLabel)\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](StepIconComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    completed: completed,\n    active: active,\n    error: error,\n    icon: icon\n  }, StepIconProps))) : null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.labelContainer\n  }, children ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n    variant: \"body2\",\n    component: \"span\",\n    display: \"block\",\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.label, alternativeLabel && classes.alternativeLabel, completed && classes.completed, active && classes.active, error && classes.error)\n  }, children) : null, optional));\n});\n true ? StepLabel.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * In most cases will simply be a string containing a title for the label.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Mark the step as disabled, will also disable the button if\n   * `StepLabelButton` is a child of `StepLabel`. Is passed to child components.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Mark the step as failed.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Override the default label of the step icon.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The optional node to display.\n   */\n  optional: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The component to render in place of the [`StepIcon`](/api/step-icon/).\n   */\n  StepIconComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * Props applied to the [`StepIcon`](/api/step-icon/) element.\n   */\n  StepIconProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\nStepLabel.muiName = 'StepLabel';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiStepLabel'\n})(StepLabel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepLabel/StepLabel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/StepLabel/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/StepLabel/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _StepLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StepLabel */ \"./node_modules/@material-ui/core/esm/StepLabel/StepLabel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _StepLabel__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/StepLabel/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Stepper/Stepper.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Stepper/Stepper.js ***!
  \***************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony import */ var _StepConnector__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../StepConnector */ \"./node_modules/@material-ui/core/esm/StepConnector/index.js\");\n\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    padding: 24\n  },\n\n  /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n  horizontal: {\n    flexDirection: 'row',\n    alignItems: 'center'\n  },\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {\n    flexDirection: 'column'\n  },\n\n  /* Styles applied to the root element if `alternativeLabel={true}`. */\n  alternativeLabel: {\n    alignItems: 'flex-start'\n  }\n};\nvar defaultConnector = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_StepConnector__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null);\nvar Stepper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Stepper(props, ref) {\n  var _props$activeStep = props.activeStep,\n      activeStep = _props$activeStep === void 0 ? 0 : _props$activeStep,\n      _props$alternativeLab = props.alternativeLabel,\n      alternativeLabel = _props$alternativeLab === void 0 ? false : _props$alternativeLab,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$connector = props.connector,\n      connectorProp = _props$connector === void 0 ? defaultConnector : _props$connector,\n      _props$nonLinear = props.nonLinear,\n      nonLinear = _props$nonLinear === void 0 ? false : _props$nonLinear,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"activeStep\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"connector\", \"nonLinear\", \"orientation\"]);\n\n  var connector = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"isValidElement\"](connectorProp) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](connectorProp, {\n    orientation: orientation\n  }) : null;\n  var childrenArray = react__WEBPACK_IMPORTED_MODULE_2__[\"Children\"].toArray(children);\n  var steps = childrenArray.map(function (step, index) {\n    var state = {\n      index: index,\n      active: false,\n      completed: false,\n      disabled: false\n    };\n\n    if (activeStep === index) {\n      state.active = true;\n    } else if (!nonLinear && activeStep > index) {\n      state.completed = true;\n    } else if (!nonLinear && activeStep < index) {\n      state.disabled = true;\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"](step, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      alternativeLabel: alternativeLabel,\n      connector: connector,\n      last: index + 1 === childrenArray.length,\n      orientation: orientation\n    }, state, step.props));\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Paper__WEBPACK_IMPORTED_MODULE_6__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    square: true,\n    elevation: 0,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[orientation], className, alternativeLabel && classes.alternativeLabel),\n    ref: ref\n  }, other), steps);\n});\n true ? Stepper.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Set the active step (zero based index).\n   * Set to -1 to disable all the steps.\n   */\n  activeStep: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * If set to 'true' and orientation is horizontal,\n   * then the step label will be positioned under the icon.\n   */\n  alternativeLabel: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Two or more `<Step />` components.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * An element to be placed between each step.\n   */\n  connector: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element,\n\n  /**\n   * If set the `Stepper` will not assist in controlling steps for linear flow.\n   */\n  nonLinear: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The stepper orientation (layout flow direction).\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['horizontal', 'vertical'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiStepper'\n})(Stepper));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Stepper/Stepper.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Stepper/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Stepper/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Stepper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Stepper */ \"./node_modules/@material-ui/core/esm/Stepper/Stepper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Stepper__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Stepper/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js ***!
  \***************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      userSelect: 'none',\n      width: '1em',\n      height: '1em',\n      display: 'inline-block',\n      fill: 'currentColor',\n      flexShrink: 0,\n      fontSize: theme.typography.pxToRem(24),\n      transition: theme.transitions.create('fill', {\n        duration: theme.transitions.duration.shorter\n      })\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `color=\"action\"`. */\n    colorAction: {\n      color: theme.palette.action.active\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      color: theme.palette.error.main\n    },\n\n    /* Styles applied to the root element if `color=\"disabled\"`. */\n    colorDisabled: {\n      color: theme.palette.action.disabled\n    },\n\n    /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n    fontSizeInherit: {\n      fontSize: 'inherit'\n    },\n\n    /* Styles applied to the root element if `fontSize=\"small\"`. */\n    fontSizeSmall: {\n      fontSize: theme.typography.pxToRem(20)\n    },\n\n    /* Styles applied to the root element if `fontSize=\"large\"`. */\n    fontSizeLarge: {\n      fontSize: theme.typography.pxToRem(35)\n    }\n  };\n};\nvar SvgIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function SvgIcon(props, ref) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'inherit' : _props$color,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'svg' : _props$component,\n      _props$fontSize = props.fontSize,\n      fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,\n      htmlColor = props.htmlColor,\n      titleAccess = props.titleAccess,\n      _props$viewBox = props.viewBox,\n      viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"titleAccess\", \"viewBox\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, color !== 'inherit' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], fontSize !== 'default' && classes[\"fontSize\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(fontSize))]),\n    focusable: \"false\",\n    viewBox: viewBox,\n    color: htmlColor,\n    \"aria-hidden\": titleAccess ? undefined : true,\n    role: titleAccess ? 'img' : undefined,\n    ref: ref\n  }, other), children, titleAccess ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"title\", null, titleAccess) : null);\n});\n true ? SvgIcon.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Node passed into the SVG element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['action', 'disabled', 'error', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n   */\n  fontSize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'inherit', 'large', 'small']),\n\n  /**\n   * Applies a color attribute to the SVG element.\n   */\n  htmlColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The shape-rendering attribute. The behavior of the different options is described on the\n   * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n   * If you are having issues with blurry icons you should investigate this property.\n   */\n  shapeRendering: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Provides a human-readable title for the element that contains it.\n   * https://www.w3.org/TR/SVG-access/#Equivalent\n   */\n  titleAccess: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Allows you to redefine what the coordinates without units mean inside an SVG element.\n   * For example, if the SVG element is 500 (width) by 200 (height),\n   * and you pass viewBox=\"0 0 50 20\",\n   * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n   * to bottom right (50,20) and each unit will be worth 10px.\n   */\n  viewBox: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string\n} : undefined;\nSvgIcon.muiName = 'SvgIcon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiSvgIcon'\n})(SvgIcon));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SvgIcon/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SvgIcon/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _SvgIcon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SvgIcon */ \"./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _SvgIcon__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SvgIcon/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeArea.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeArea.js ***!
  \*************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _Drawer_Drawer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Drawer/Drawer */ \"./node_modules/@material-ui/core/esm/Drawer/Drawer.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      bottom: 0,\n      zIndex: theme.zIndex.drawer - 1\n    },\n    anchorLeft: {\n      right: 'auto'\n    },\n    anchorRight: {\n      left: 'auto',\n      right: 0\n    },\n    anchorTop: {\n      bottom: 'auto',\n      right: 0\n    },\n    anchorBottom: {\n      top: 'auto',\n      bottom: 0,\n      right: 0\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\nvar SwipeArea = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function SwipeArea(props, ref) {\n  var anchor = props.anchor,\n      classes = props.classes,\n      className = props.className,\n      width = props.width,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"anchor\", \"classes\", \"className\", \"width\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[\"anchor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(anchor))], className),\n    ref: ref,\n    style: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_8__[\"isHorizontal\"])(anchor) ? 'width' : 'height', width)\n  }, other));\n});\n true ? SwipeArea.propTypes = {\n  /**\n   * Side on which to attach the discovery area.\n   */\n  anchor: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['left', 'top', 'right', 'bottom']).isRequired,\n\n  /**\n   * @ignore\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The width of the left most (or right most) area in pixels where the\n   * drawer can be swiped open from.\n   */\n  width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'PrivateSwipeArea'\n})(SwipeArea));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeArea.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeableDrawer.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeableDrawer.js ***!
  \*******************************************************************************/
/*! exports provided: reset, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reset\", function() { return reset; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Drawer/Drawer */ \"./node_modules/@material-ui/core/esm/Drawer/Drawer.js\");\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _transitions_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../transitions/utils */ \"./node_modules/@material-ui/core/esm/transitions/utils.js\");\n/* harmony import */ var _NoSsr__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../NoSsr */ \"./node_modules/@material-ui/core/esm/NoSsr/index.js\");\n/* harmony import */ var _SwipeArea__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./SwipeArea */ \"./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeArea.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // This value is closed to what browsers are using internally to\n// trigger a native scroll.\n\nvar UNCERTAINTY_THRESHOLD = 3; // px\n// We can only have one node at the time claiming ownership for handling the swipe.\n// Otherwise, the UX would be confusing.\n// That's why we use a singleton here.\n\nvar nodeThatClaimedTheSwipe = null; // Exported for test purposes.\n\nfunction reset() {\n  nodeThatClaimedTheSwipe = null;\n}\n\nfunction calculateCurrentX(anchor, touches) {\n  return anchor === 'right' ? document.body.offsetWidth - touches[0].pageX : touches[0].pageX;\n}\n\nfunction calculateCurrentY(anchor, touches) {\n  return anchor === 'bottom' ? window.innerHeight - touches[0].clientY : touches[0].clientY;\n}\n\nfunction getMaxTranslate(horizontalSwipe, paperInstance) {\n  return horizontalSwipe ? paperInstance.clientWidth : paperInstance.clientHeight;\n}\n\nfunction getTranslate(currentTranslate, startLocation, open, maxTranslate) {\n  return Math.min(Math.max(open ? startLocation - currentTranslate : maxTranslate + startLocation - currentTranslate, 0), maxTranslate);\n}\n\nfunction getDomTreeShapes(element, rootNode) {\n  // Adapted from https://github.com/oliviertassinari/react-swipeable-views/blob/7666de1dba253b896911adf2790ce51467670856/packages/react-swipeable-views/src/SwipeableViews.js#L129\n  var domTreeShapes = [];\n\n  while (element && element !== rootNode) {\n    var style = window.getComputedStyle(element);\n\n    if ( // Ignore the scroll children if the element is absolute positioned.\n    style.getPropertyValue('position') === 'absolute' || // Ignore the scroll children if the element has an overflowX hidden\n    style.getPropertyValue('overflow-x') === 'hidden') {\n      domTreeShapes = [];\n    } else if (element.clientWidth > 0 && element.scrollWidth > element.clientWidth || element.clientHeight > 0 && element.scrollHeight > element.clientHeight) {\n      // Ignore the nodes that have no width.\n      // Keep elements with a scroll\n      domTreeShapes.push(element);\n    }\n\n    element = element.parentElement;\n  }\n\n  return domTreeShapes;\n}\n\nfunction findNativeHandler(_ref) {\n  var domTreeShapes = _ref.domTreeShapes,\n      start = _ref.start,\n      current = _ref.current,\n      anchor = _ref.anchor;\n  // Adapted from https://github.com/oliviertassinari/react-swipeable-views/blob/7666de1dba253b896911adf2790ce51467670856/packages/react-swipeable-views/src/SwipeableViews.js#L175\n  var axisProperties = {\n    scrollPosition: {\n      x: 'scrollLeft',\n      y: 'scrollTop'\n    },\n    scrollLength: {\n      x: 'scrollWidth',\n      y: 'scrollHeight'\n    },\n    clientLength: {\n      x: 'clientWidth',\n      y: 'clientHeight'\n    }\n  };\n  return domTreeShapes.some(function (shape) {\n    // Determine if we are going backward or forward.\n    var goingForward = current >= start;\n\n    if (anchor === 'top' || anchor === 'left') {\n      goingForward = !goingForward;\n    }\n\n    var axis = anchor === 'left' || anchor === 'right' ? 'x' : 'y';\n    var scrollPosition = shape[axisProperties.scrollPosition[axis]];\n    var areNotAtStart = scrollPosition > 0;\n    var areNotAtEnd = scrollPosition + shape[axisProperties.clientLength[axis]] < shape[axisProperties.scrollLength[axis]];\n\n    if (goingForward && areNotAtEnd || !goingForward && areNotAtStart) {\n      return shape;\n    }\n\n    return null;\n  });\n}\n\nvar iOS = typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar transitionDurationDefault = {\n  enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_10__[\"duration\"].enteringScreen,\n  exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_10__[\"duration\"].leavingScreen\n};\nvar useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"];\nvar SwipeableDrawer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function SwipeableDrawer(inProps, ref) {\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_11__[\"default\"])();\n  var props = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_6__[\"getThemeProps\"])({\n    name: 'MuiSwipeableDrawer',\n    props: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, inProps),\n    theme: theme\n  });\n  var _props$anchor = props.anchor,\n      anchor = _props$anchor === void 0 ? 'left' : _props$anchor,\n      _props$disableBackdro = props.disableBackdropTransition,\n      disableBackdropTransition = _props$disableBackdro === void 0 ? false : _props$disableBackdro,\n      _props$disableDiscove = props.disableDiscovery,\n      disableDiscovery = _props$disableDiscove === void 0 ? false : _props$disableDiscove,\n      _props$disableSwipeTo = props.disableSwipeToOpen,\n      disableSwipeToOpen = _props$disableSwipeTo === void 0 ? iOS : _props$disableSwipeTo,\n      hideBackdrop = props.hideBackdrop,\n      _props$hysteresis = props.hysteresis,\n      hysteresis = _props$hysteresis === void 0 ? 0.52 : _props$hysteresis,\n      _props$minFlingVeloci = props.minFlingVelocity,\n      minFlingVelocity = _props$minFlingVeloci === void 0 ? 450 : _props$minFlingVeloci,\n      _props$ModalProps = props.ModalProps;\n  _props$ModalProps = _props$ModalProps === void 0 ? {} : _props$ModalProps;\n\n  var BackdropProps = _props$ModalProps.BackdropProps,\n      ModalPropsProp = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_props$ModalProps, [\"BackdropProps\"]),\n      onClose = props.onClose,\n      onOpen = props.onOpen,\n      open = props.open,\n      _props$PaperProps = props.PaperProps,\n      PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,\n      SwipeAreaProps = props.SwipeAreaProps,\n      _props$swipeAreaWidth = props.swipeAreaWidth,\n      swipeAreaWidth = _props$swipeAreaWidth === void 0 ? 20 : _props$swipeAreaWidth,\n      _props$transitionDura = props.transitionDuration,\n      transitionDuration = _props$transitionDura === void 0 ? transitionDurationDefault : _props$transitionDura,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'temporary' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"anchor\", \"disableBackdropTransition\", \"disableDiscovery\", \"disableSwipeToOpen\", \"hideBackdrop\", \"hysteresis\", \"minFlingVelocity\", \"ModalProps\", \"onClose\", \"onOpen\", \"open\", \"PaperProps\", \"SwipeAreaProps\", \"swipeAreaWidth\", \"transitionDuration\", \"variant\"]);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n      maybeSwiping = _React$useState[0],\n      setMaybeSwiping = _React$useState[1];\n\n  var swipeInstance = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]({\n    isSwiping: null\n  });\n  var swipeAreaRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]();\n  var backdropRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]();\n  var paperRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]();\n  var touchDetected = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](false); // Ref for transition duration based on / to match swipe speed\n\n  var calculatedDurationRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](); // Use a ref so the open value used is always up to date inside useCallback.\n\n  useEnhancedEffect(function () {\n    calculatedDurationRef.current = null;\n  }, [open]);\n  var setPosition = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (translate) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _options$mode = options.mode,\n        mode = _options$mode === void 0 ? null : _options$mode,\n        _options$changeTransi = options.changeTransition,\n        changeTransition = _options$changeTransi === void 0 ? true : _options$changeTransi;\n    var anchorRtl = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"getAnchor\"])(theme, anchor);\n    var rtlTranslateMultiplier = ['right', 'bottom'].indexOf(anchorRtl) !== -1 ? 1 : -1;\n    var horizontalSwipe = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"isHorizontal\"])(anchor);\n    var transform = horizontalSwipe ? \"translate(\".concat(rtlTranslateMultiplier * translate, \"px, 0)\") : \"translate(0, \".concat(rtlTranslateMultiplier * translate, \"px)\");\n    var drawerStyle = paperRef.current.style;\n    drawerStyle.webkitTransform = transform;\n    drawerStyle.transform = transform;\n    var transition = '';\n\n    if (mode) {\n      transition = theme.transitions.create('all', Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_12__[\"getTransitionProps\"])({\n        timeout: transitionDuration\n      }, {\n        mode: mode\n      }));\n    }\n\n    if (changeTransition) {\n      drawerStyle.webkitTransition = transition;\n      drawerStyle.transition = transition;\n    }\n\n    if (!disableBackdropTransition && !hideBackdrop) {\n      var backdropStyle = backdropRef.current.style;\n      backdropStyle.opacity = 1 - translate / getMaxTranslate(horizontalSwipe, paperRef.current);\n\n      if (changeTransition) {\n        backdropStyle.webkitTransition = transition;\n        backdropStyle.transition = transition;\n      }\n    }\n  }, [anchor, disableBackdropTransition, hideBackdrop, theme, transitionDuration]);\n  var handleBodyTouchEnd = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(function (event) {\n    if (!touchDetected.current) {\n      return;\n    }\n\n    nodeThatClaimedTheSwipe = null;\n    touchDetected.current = false;\n    setMaybeSwiping(false); // The swipe wasn't started.\n\n    if (!swipeInstance.current.isSwiping) {\n      swipeInstance.current.isSwiping = null;\n      return;\n    }\n\n    swipeInstance.current.isSwiping = null;\n    var anchorRtl = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"getAnchor\"])(theme, anchor);\n    var horizontal = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"isHorizontal\"])(anchor);\n    var current;\n\n    if (horizontal) {\n      current = calculateCurrentX(anchorRtl, event.changedTouches);\n    } else {\n      current = calculateCurrentY(anchorRtl, event.changedTouches);\n    }\n\n    var startLocation = horizontal ? swipeInstance.current.startX : swipeInstance.current.startY;\n    var maxTranslate = getMaxTranslate(horizontal, paperRef.current);\n    var currentTranslate = getTranslate(current, startLocation, open, maxTranslate);\n    var translateRatio = currentTranslate / maxTranslate;\n\n    if (Math.abs(swipeInstance.current.velocity) > minFlingVelocity) {\n      // Calculate transition duration to match swipe speed\n      calculatedDurationRef.current = Math.abs((maxTranslate - currentTranslate) / swipeInstance.current.velocity) * 1000;\n    }\n\n    if (open) {\n      if (swipeInstance.current.velocity > minFlingVelocity || translateRatio > hysteresis) {\n        onClose();\n      } else {\n        // Reset the position, the swipe was aborted.\n        setPosition(0, {\n          mode: 'exit'\n        });\n      }\n\n      return;\n    }\n\n    if (swipeInstance.current.velocity < -minFlingVelocity || 1 - translateRatio > hysteresis) {\n      onOpen();\n    } else {\n      // Reset the position, the swipe was aborted.\n      setPosition(getMaxTranslate(horizontal, paperRef.current), {\n        mode: 'enter'\n      });\n    }\n  });\n  var handleBodyTouchMove = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(function (event) {\n    // the ref may be null when a parent component updates while swiping\n    if (!paperRef.current || !touchDetected.current) {\n      return;\n    } // We are not supposed to handle this touch move because the swipe was started in a scrollable container in the drawer\n\n\n    if (nodeThatClaimedTheSwipe != null && nodeThatClaimedTheSwipe !== swipeInstance.current) {\n      return;\n    }\n\n    var anchorRtl = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"getAnchor\"])(theme, anchor);\n    var horizontalSwipe = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"isHorizontal\"])(anchor);\n    var currentX = calculateCurrentX(anchorRtl, event.touches);\n    var currentY = calculateCurrentY(anchorRtl, event.touches);\n\n    if (open && paperRef.current.contains(event.target) && nodeThatClaimedTheSwipe == null) {\n      var domTreeShapes = getDomTreeShapes(event.target, paperRef.current);\n      var nativeHandler = findNativeHandler({\n        domTreeShapes: domTreeShapes,\n        start: horizontalSwipe ? swipeInstance.current.startX : swipeInstance.current.startY,\n        current: horizontalSwipe ? currentX : currentY,\n        anchor: anchor\n      });\n\n      if (nativeHandler) {\n        nodeThatClaimedTheSwipe = nativeHandler;\n        return;\n      }\n\n      nodeThatClaimedTheSwipe = swipeInstance.current;\n    } // We don't know yet.\n\n\n    if (swipeInstance.current.isSwiping == null) {\n      var dx = Math.abs(currentX - swipeInstance.current.startX);\n      var dy = Math.abs(currentY - swipeInstance.current.startY); // We are likely to be swiping, let's prevent the scroll event on iOS.\n\n      if (dx > dy) {\n        if (event.cancelable) {\n          event.preventDefault();\n        }\n      }\n\n      var definitelySwiping = horizontalSwipe ? dx > dy && dx > UNCERTAINTY_THRESHOLD : dy > dx && dy > UNCERTAINTY_THRESHOLD;\n\n      if (definitelySwiping === true || (horizontalSwipe ? dy > UNCERTAINTY_THRESHOLD : dx > UNCERTAINTY_THRESHOLD)) {\n        swipeInstance.current.isSwiping = definitelySwiping;\n\n        if (!definitelySwiping) {\n          handleBodyTouchEnd(event);\n          return;\n        } // Shift the starting point.\n\n\n        swipeInstance.current.startX = currentX;\n        swipeInstance.current.startY = currentY; // Compensate for the part of the drawer displayed on touch start.\n\n        if (!disableDiscovery && !open) {\n          if (horizontalSwipe) {\n            swipeInstance.current.startX -= swipeAreaWidth;\n          } else {\n            swipeInstance.current.startY -= swipeAreaWidth;\n          }\n        }\n      }\n    }\n\n    if (!swipeInstance.current.isSwiping) {\n      return;\n    }\n\n    var maxTranslate = getMaxTranslate(horizontalSwipe, paperRef.current);\n    var startLocation = horizontalSwipe ? swipeInstance.current.startX : swipeInstance.current.startY;\n\n    if (open && !swipeInstance.current.paperHit) {\n      startLocation = Math.min(startLocation, maxTranslate);\n    }\n\n    var translate = getTranslate(horizontalSwipe ? currentX : currentY, startLocation, open, maxTranslate);\n\n    if (open) {\n      if (!swipeInstance.current.paperHit) {\n        var paperHit = horizontalSwipe ? currentX < maxTranslate : currentY < maxTranslate;\n\n        if (paperHit) {\n          swipeInstance.current.paperHit = true;\n          swipeInstance.current.startX = currentX;\n          swipeInstance.current.startY = currentY;\n        } else {\n          return;\n        }\n      } else if (translate === 0) {\n        swipeInstance.current.startX = currentX;\n        swipeInstance.current.startY = currentY;\n      }\n    }\n\n    if (swipeInstance.current.lastTranslate === null) {\n      swipeInstance.current.lastTranslate = translate;\n      swipeInstance.current.lastTime = performance.now() + 1;\n    }\n\n    var velocity = (translate - swipeInstance.current.lastTranslate) / (performance.now() - swipeInstance.current.lastTime) * 1e3; // Low Pass filter.\n\n    swipeInstance.current.velocity = swipeInstance.current.velocity * 0.4 + velocity * 0.6;\n    swipeInstance.current.lastTranslate = translate;\n    swipeInstance.current.lastTime = performance.now(); // We are swiping, let's prevent the scroll event on iOS.\n\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n\n    setPosition(translate);\n  });\n  var handleBodyTouchStart = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(function (event) {\n    // We are not supposed to handle this touch move.\n    // Example of use case: ignore the event if there is a Slider.\n    if (event.defaultPrevented) {\n      return;\n    } // We can only have one node at the time claiming ownership for handling the swipe.\n\n\n    if (event.muiHandled) {\n      return;\n    } // At least one element clogs the drawer interaction zone.\n\n\n    if (open && !backdropRef.current.contains(event.target) && !paperRef.current.contains(event.target)) {\n      return;\n    }\n\n    var anchorRtl = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"getAnchor\"])(theme, anchor);\n    var horizontalSwipe = Object(_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"isHorizontal\"])(anchor);\n    var currentX = calculateCurrentX(anchorRtl, event.touches);\n    var currentY = calculateCurrentY(anchorRtl, event.touches);\n\n    if (!open) {\n      if (disableSwipeToOpen || event.target !== swipeAreaRef.current) {\n        return;\n      }\n\n      if (horizontalSwipe) {\n        if (currentX > swipeAreaWidth) {\n          return;\n        }\n      } else if (currentY > swipeAreaWidth) {\n        return;\n      }\n    }\n\n    event.muiHandled = true;\n    nodeThatClaimedTheSwipe = null;\n    swipeInstance.current.startX = currentX;\n    swipeInstance.current.startY = currentY;\n    setMaybeSwiping(true);\n\n    if (!open && paperRef.current) {\n      // The ref may be null when a parent component updates while swiping.\n      setPosition(getMaxTranslate(horizontalSwipe, paperRef.current) + (disableDiscovery ? 20 : -swipeAreaWidth), {\n        changeTransition: false\n      });\n    }\n\n    swipeInstance.current.velocity = 0;\n    swipeInstance.current.lastTime = null;\n    swipeInstance.current.lastTranslate = null;\n    swipeInstance.current.paperHit = false;\n    touchDetected.current = true;\n  });\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (variant === 'temporary') {\n      var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(paperRef.current);\n      doc.addEventListener('touchstart', handleBodyTouchStart);\n      doc.addEventListener('touchmove', handleBodyTouchMove, {\n        passive: false\n      });\n      doc.addEventListener('touchend', handleBodyTouchEnd);\n      return function () {\n        doc.removeEventListener('touchstart', handleBodyTouchStart);\n        doc.removeEventListener('touchmove', handleBodyTouchMove, {\n          passive: false\n        });\n        doc.removeEventListener('touchend', handleBodyTouchEnd);\n      };\n    }\n\n    return undefined;\n  }, [variant, handleBodyTouchStart, handleBodyTouchMove, handleBodyTouchEnd]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    return function () {\n      // We need to release the lock.\n      if (nodeThatClaimedTheSwipe === swipeInstance.current) {\n        nodeThatClaimedTheSwipe = null;\n      }\n    };\n  }, []);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    if (!open) {\n      setMaybeSwiping(false);\n    }\n  }, [open]);\n  var handleBackdropRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    backdropRef.current = react_dom__WEBPACK_IMPORTED_MODULE_4__[\"findDOMNode\"](instance);\n  }, []);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Drawer_Drawer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    open: variant === 'temporary' && maybeSwiping ? true : open,\n    variant: variant,\n    ModalProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      BackdropProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, BackdropProps, {\n        ref: handleBackdropRef\n      })\n    }, ModalPropsProp),\n    PaperProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, PaperProps, {\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        pointerEvents: variant === 'temporary' && !open ? 'none' : ''\n      }, PaperProps.style),\n      ref: paperRef\n    }),\n    anchor: anchor,\n    transitionDuration: calculatedDurationRef.current || transitionDuration,\n    onClose: onClose,\n    ref: ref\n  }, other)), !disableSwipeToOpen && variant === 'temporary' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_NoSsr__WEBPACK_IMPORTED_MODULE_13__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_SwipeArea__WEBPACK_IMPORTED_MODULE_14__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    anchor: anchor,\n    ref: swipeAreaRef,\n    width: swipeAreaWidth\n  }, SwipeAreaProps))));\n});\n true ? SwipeableDrawer.propTypes = {\n  /**\n   * @ignore\n   */\n  anchor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['left', 'top', 'right', 'bottom']),\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Disable the backdrop transition.\n   * This can improve the FPS on low-end devices.\n   */\n  disableBackdropTransition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, touching the screen near the edge of the drawer will not slide in the drawer a bit\n   * to promote accidental discovery of the swipe gesture.\n   */\n  disableDiscovery: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, swipe to open is disabled. This is useful in browsers where swiping triggers\n   * navigation actions. Swipe to open is disabled on iOS browsers by default.\n   */\n  disableSwipeToOpen: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  hideBackdrop: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Affects how far the drawer must be opened/closed to change his state.\n   * Specified as percent (0-1) of the width of the drawer\n   */\n  hysteresis: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * Defines, from which (average) velocity on, the swipe is\n   * defined as complete although hysteresis isn't reached.\n   * Good threshold is between 250 - 1000 px/s\n   */\n  minFlingVelocity: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * @ignore\n   */\n  ModalProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    BackdropProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n      component: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"elementTypeAcceptingRef\"]\n    })\n  }),\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired,\n\n  /**\n   * Callback fired when the component requests to be opened.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired,\n\n  /**\n   * If `true`, the drawer is open.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired,\n\n  /**\n   * @ignore\n   */\n  PaperProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    component: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"elementTypeAcceptingRef\"],\n    style: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n  }),\n\n  /**\n   * The element is used to intercept the touch events on the edge.\n   */\n  SwipeAreaProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The width of the left most (or right most) area in pixels where the\n   * drawer can be swiped open from.\n   */\n  swipeAreaWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.shape({\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n  })]),\n\n  /**\n   * @ignore\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['permanent', 'persistent', 'temporary'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (SwipeableDrawer);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeableDrawer.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/SwipeableDrawer/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/SwipeableDrawer/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _SwipeableDrawer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SwipeableDrawer */ \"./node_modules/@material-ui/core/esm/SwipeableDrawer/SwipeableDrawer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _SwipeableDrawer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/SwipeableDrawer/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Switch/Switch.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Switch/Switch.js ***!
  \*************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _internal_SwitchBase__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../internal/SwitchBase */ \"./node_modules/@material-ui/core/esm/internal/SwitchBase.js\");\n\n\n// @inheritedComponent IconButton\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-flex',\n      width: 34 + 12 * 2,\n      height: 14 + 12 * 2,\n      overflow: 'hidden',\n      padding: 12,\n      boxSizing: 'border-box',\n      position: 'relative',\n      flexShrink: 0,\n      zIndex: 0,\n      // Reset the stacking context.\n      verticalAlign: 'middle',\n      // For correct alignment with the text.\n      '@media print': {\n        colorAdjust: 'exact'\n      }\n    },\n\n    /* Styles applied to the root element if `edge=\"start\"`. */\n    edgeStart: {\n      marginLeft: -8\n    },\n\n    /* Styles applied to the root element if `edge=\"end\"`. */\n    edgeEnd: {\n      marginRight: -8\n    },\n\n    /* Styles applied to the internal `SwitchBase` component's `root` class. */\n    switchBase: {\n      position: 'absolute',\n      top: 0,\n      left: 0,\n      zIndex: 1,\n      // Render above the focus ripple.\n      color: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[400],\n      transition: theme.transitions.create(['left', 'transform'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&$checked': {\n        transform: 'translateX(20px)'\n      },\n      '&$disabled': {\n        color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]\n      },\n      '&$checked + $track': {\n        opacity: 0.5\n      },\n      '&$disabled + $track': {\n        opacity: theme.palette.type === 'light' ? 0.12 : 0.1\n      }\n    },\n\n    /* Styles applied to the internal SwitchBase component's root element if `color=\"primary\"`. */\n    colorPrimary: {\n      '&$checked': {\n        color: theme.palette.primary.main,\n        '&:hover': {\n          backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n          '@media (hover: none)': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]\n      },\n      '&$checked + $track': {\n        backgroundColor: theme.palette.primary.main\n      },\n      '&$disabled + $track': {\n        backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white\n      }\n    },\n\n    /* Styles applied to the internal SwitchBase component's root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      '&$checked': {\n        color: theme.palette.secondary.main,\n        '&:hover': {\n          backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n          '@media (hover: none)': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800]\n      },\n      '&$checked + $track': {\n        backgroundColor: theme.palette.secondary.main\n      },\n      '&$disabled + $track': {\n        backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white\n      }\n    },\n\n    /* Styles applied to the root element if `size=\"small\"`. */\n    sizeSmall: {\n      width: 40,\n      height: 24,\n      padding: 7,\n      '& $thumb': {\n        width: 16,\n        height: 16\n      },\n      '& $switchBase': {\n        padding: 4,\n        '&$checked': {\n          transform: 'translateX(16px)'\n        }\n      }\n    },\n\n    /* Pseudo-class applied to the internal `SwitchBase` component's `checked` class. */\n    checked: {},\n\n    /* Pseudo-class applied to the internal SwitchBase component's disabled class. */\n    disabled: {},\n\n    /* Styles applied to the internal SwitchBase component's input element. */\n    input: {\n      left: '-100%',\n      width: '300%'\n    },\n\n    /* Styles used to create the thumb passed to the internal `SwitchBase` component `icon` prop. */\n    thumb: {\n      boxShadow: theme.shadows[1],\n      backgroundColor: 'currentColor',\n      width: 20,\n      height: 20,\n      borderRadius: '50%'\n    },\n\n    /* Styles applied to the track element. */\n    track: {\n      height: '100%',\n      width: '100%',\n      borderRadius: 14 / 2,\n      zIndex: -1,\n      transition: theme.transitions.create(['opacity', 'background-color'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white,\n      opacity: theme.palette.type === 'light' ? 0.38 : 0.3\n    }\n  };\n};\nvar Switch = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Switch(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'secondary' : _props$color,\n      _props$edge = props.edge,\n      edge = _props$edge === void 0 ? false : _props$edge,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"edge\", \"size\"]);\n\n  var icon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.thumb\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, {\n      'start': classes.edgeStart,\n      'end': classes.edgeEnd\n    }[edge], size === \"small\" && classes[\"size\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(size))])\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_SwitchBase__WEBPACK_IMPORTED_MODULE_9__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    type: \"checkbox\",\n    icon: icon,\n    checkedIcon: icon,\n    classes: {\n      root: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.switchBase, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(color))]),\n      input: classes.input,\n      checked: classes.checked,\n      disabled: classes.disabled\n    },\n    ref: ref\n  }, other)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", {\n    className: classes.track\n  }));\n});\n true ? Switch.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'primary', 'secondary']),\n\n  /**\n   * @ignore\n   */\n  defaultChecked: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the switch will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If given, uses a negative margin to counteract the padding on one\n   * side (this is often helpful for aligning the left or right\n   * side of the icon with content above or below, without ruining the border\n   * size and shape).\n   */\n  edge: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['end', 'start', false]),\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The size of the switch.\n   * `small` is equivalent to the dense switch styling.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * The value of the component. The DOM API casts this to a string.\n   * The browser uses \"on\" as the default value.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiSwitch'\n})(Switch));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Switch/Switch.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Switch/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Switch/index.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Switch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Switch */ \"./node_modules/@material-ui/core/esm/Switch/Switch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Switch__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Switch/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tab/Tab.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tab/Tab.js ***!
  \*******************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _utils_unsupportedProp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/unsupportedProp */ \"./node_modules/@material-ui/core/esm/utils/unsupportedProp.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  var _extends2;\n\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.typography.button, (_extends2 = {\n      maxWidth: 264,\n      minWidth: 72,\n      position: 'relative',\n      boxSizing: 'border-box',\n      minHeight: 48,\n      flexShrink: 0,\n      padding: '6px 12px'\n    }, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_extends2, theme.breakpoints.up('sm'), {\n      padding: '6px 24px'\n    }), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_extends2, \"overflow\", 'hidden'), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_extends2, \"whiteSpace\", 'normal'), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_extends2, \"textAlign\", 'center'), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_extends2, theme.breakpoints.up('sm'), {\n      minWidth: 160\n    }), _extends2)),\n\n    /* Styles applied to the root element if both `icon` and `label` are provided. */\n    labelIcon: {\n      minHeight: 72,\n      paddingTop: 9,\n      '& $wrapper > *:first-child': {\n        marginBottom: 6\n      }\n    },\n\n    /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"inherit\"`. */\n    textColorInherit: {\n      color: 'inherit',\n      opacity: 0.7,\n      '&$selected': {\n        opacity: 1\n      },\n      '&$disabled': {\n        opacity: 0.5\n      }\n    },\n\n    /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"primary\"`. */\n    textColorPrimary: {\n      color: theme.palette.text.secondary,\n      '&$selected': {\n        color: theme.palette.primary.main\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    },\n\n    /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"secondary\"`. */\n    textColorSecondary: {\n      color: theme.palette.text.secondary,\n      '&$selected': {\n        color: theme.palette.secondary.main\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `selected={true}` (controlled by the Tabs component). */\n    selected: {},\n\n    /* Pseudo-class applied to the root element if `disabled={true}` (controlled by the Tabs component). */\n    disabled: {},\n\n    /* Styles applied to the root element if `fullWidth={true}` (controlled by the Tabs component). */\n    fullWidth: {\n      flexShrink: 1,\n      flexGrow: 1,\n      flexBasis: 0,\n      maxWidth: 'none'\n    },\n\n    /* Styles applied to the root element if `wrapped={true}`. */\n    wrapped: {\n      fontSize: theme.typography.pxToRem(12),\n      lineHeight: 1.5\n    },\n\n    /* Styles applied to the `icon` and `label`'s wrapper element. */\n    wrapper: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      width: '100%',\n      flexDirection: 'column'\n    }\n  };\n};\nvar Tab = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Tab(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$disableFocusRi = props.disableFocusRipple,\n      disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n      fullWidth = props.fullWidth,\n      icon = props.icon,\n      indicator = props.indicator,\n      label = props.label,\n      onChange = props.onChange,\n      onClick = props.onClick,\n      onFocus = props.onFocus,\n      selected = props.selected,\n      selectionFollowsFocus = props.selectionFollowsFocus,\n      _props$textColor = props.textColor,\n      textColor = _props$textColor === void 0 ? 'inherit' : _props$textColor,\n      value = props.value,\n      _props$wrapped = props.wrapped,\n      wrapped = _props$wrapped === void 0 ? false : _props$wrapped,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"classes\", \"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"]);\n\n  var handleClick = function handleClick(event) {\n    if (onChange) {\n      onChange(event, value);\n    }\n\n    if (onClick) {\n      onClick(event);\n    }\n  };\n\n  var handleFocus = function handleFocus(event) {\n    if (selectionFollowsFocus && !selected && onChange) {\n      onChange(event, value);\n    }\n\n    if (onFocus) {\n      onFocus(event);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n    focusRipple: !disableFocusRipple,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[\"textColor\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(textColor))], className, disabled && classes.disabled, selected && classes.selected, label && icon && classes.labelIcon, fullWidth && classes.fullWidth, wrapped && classes.wrapped),\n    ref: ref,\n    role: \"tab\",\n    \"aria-selected\": selected,\n    disabled: disabled,\n    onClick: handleClick,\n    onFocus: handleFocus,\n    tabIndex: selected ? 0 : -1\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"span\", {\n    className: classes.wrapper\n  }, icon, label), indicator);\n});\n true ? Tab.propTypes = {\n  /**\n   * This prop isn't supported.\n   * Use the `component` prop if you need to change the children structure.\n   */\n  children: _utils_unsupportedProp__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * If `true`, the tab will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the  keyboard focus ripple will be disabled.\n   */\n  disableFocusRipple: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The icon element.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * @ignore\n   * For server-side rendering consideration, we let the selected tab\n   * render the indicator.\n   */\n  indicator: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * The label element.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * @ignore\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onClick: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  selected: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  selectionFollowsFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  textColor: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['secondary', 'primary', 'inherit']),\n\n  /**\n   * You can provide your own value. Otherwise, we fallback to the child position index.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any,\n\n  /**\n   * Tab labels appear in a single row.\n   * They can use a second line if needed.\n   */\n  wrapped: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiTab'\n})(Tab));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tab/Tab.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tab/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tab/index.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Tab__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tab */ \"./node_modules/@material-ui/core/esm/Tab/Tab.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Tab__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tab/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js ***!
  \*******************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _internal_svg_icons_KeyboardArrowLeft__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/svg-icons/KeyboardArrowLeft */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js\");\n/* harmony import */ var _internal_svg_icons_KeyboardArrowRight__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/svg-icons/KeyboardArrowRight */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n\n\n\n/* eslint-disable jsx-a11y/aria-role */\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    width: 40,\n    flexShrink: 0,\n    opacity: 0.8,\n    '&$disabled': {\n      opacity: 0\n    }\n  },\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {\n    width: '100%',\n    height: 40,\n    '& svg': {\n      transform: 'rotate(90deg)'\n    }\n  },\n\n  /* Pseudo-class applied to the root element if `disabled={true}`. */\n  disabled: {}\n};\n\nvar _ref = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_KeyboardArrowLeft__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n  fontSize: \"small\"\n});\n\nvar _ref2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_KeyboardArrowRight__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n  fontSize: \"small\"\n});\n\nvar TabScrollButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TabScrollButton(props, ref) {\n  var classes = props.classes,\n      classNameProp = props.className,\n      direction = props.direction,\n      orientation = props.orientation,\n      disabled = props.disabled,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"direction\", \"orientation\", \"disabled\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_8__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    component: \"div\",\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classNameProp, disabled && classes.disabled, orientation === 'vertical' && classes.vertical),\n    ref: ref,\n    role: null,\n    tabIndex: null\n  }, other), direction === 'left' ? _ref : _ref2);\n});\n true ? TabScrollButton.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Which direction should the button indicate?\n   */\n  direction: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['left', 'right']).isRequired,\n\n  /**\n   * If `true`, the element will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The tabs orientation (layout flow direction).\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['horizontal', 'vertical']).isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(styles, {\n  name: 'MuiTabScrollButton'\n})(TabScrollButton));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TabScrollButton/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TabScrollButton/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TabScrollButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TabScrollButton */ \"./node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TabScrollButton__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TabScrollButton/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Table/Table.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Table/Table.js ***!
  \***********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _TableContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./TableContext */ \"./node_modules/@material-ui/core/esm/Table/TableContext.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'table',\n      width: '100%',\n      borderCollapse: 'collapse',\n      borderSpacing: 0,\n      '& caption': Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.typography.body2, {\n        padding: theme.spacing(2),\n        color: theme.palette.text.secondary,\n        textAlign: 'left',\n        captionSide: 'bottom'\n      })\n    },\n\n    /* Styles applied to the root element if `stickyHeader={true}`. */\n    stickyHeader: {\n      borderCollapse: 'separate'\n    }\n  };\n};\nvar defaultComponent = 'table';\nvar Table = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Table(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? defaultComponent : _props$component,\n      _props$padding = props.padding,\n      padding = _props$padding === void 0 ? 'default' : _props$padding,\n      _props$size = props.size,\n      size = _props$size === void 0 ? 'medium' : _props$size,\n      _props$stickyHeader = props.stickyHeader,\n      stickyHeader = _props$stickyHeader === void 0 ? false : _props$stickyHeader,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"classes\", \"className\", \"component\", \"padding\", \"size\", \"stickyHeader\"]);\n\n  var table = react__WEBPACK_IMPORTED_MODULE_2__[\"useMemo\"](function () {\n    return {\n      padding: padding,\n      size: size,\n      stickyHeader: stickyHeader\n    };\n  }, [padding, size, stickyHeader]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_TableContext__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n    value: table\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    role: Component === defaultComponent ? null : 'table',\n    ref: ref,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, stickyHeader && classes.stickyHeader)\n  }, other)));\n});\n true ? Table.propTypes = {\n  /**\n   * The content of the table, normally `TableHead` and `TableBody`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Allows TableCells to inherit padding of the Table.\n   */\n  padding: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['default', 'checkbox', 'none']),\n\n  /**\n   * Allows TableCells to inherit size of the Table.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['small', 'medium']),\n\n  /**\n   * Set the header sticky.\n   *\n   * ⚠️ It doesn't work with IE 11.\n   */\n  stickyHeader: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTable'\n})(Table));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Table/Table.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Table/TableContext.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Table/TableContext.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n */\n\nvar TableContext = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]();\n\nif (true) {\n  TableContext.displayName = 'TableContext';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TableContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Table/TableContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * @ignore - internal component.\n */\n\nvar Tablelvl2Context = react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"]();\n\nif (true) {\n  Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Tablelvl2Context);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Table/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Table/index.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Table */ \"./node_modules/@material-ui/core/esm/Table/Table.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Table__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Table/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableBody/TableBody.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableBody/TableBody.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Table/Tablelvl2Context */ \"./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'table-row-group'\n  }\n};\nvar tablelvl2 = {\n  variant: 'body'\n};\nvar defaultComponent = 'tbody';\nvar TableBody = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableBody(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? defaultComponent : _props$component,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n    value: tablelvl2\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref,\n    role: Component === defaultComponent ? null : 'rowgroup'\n  }, other)));\n});\n true ? TableBody.propTypes = {\n  /**\n   * The content of the component, normally `TableRow`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTableBody'\n})(TableBody));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableBody/TableBody.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableBody/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableBody/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableBody__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableBody */ \"./node_modules/@material-ui/core/esm/TableBody/TableBody.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableBody__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableBody/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableCell/TableCell.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableCell/TableCell.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _Table_TableContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Table/TableContext */ \"./node_modules/@material-ui/core/esm/Table/TableContext.js\");\n/* harmony import */ var _Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Table/Tablelvl2Context */ \"./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, theme.typography.body2, {\n      display: 'table-cell',\n      verticalAlign: 'inherit',\n      // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n      // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n      borderBottom: \"1px solid\\n    \".concat(theme.palette.type === 'light' ? Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"lighten\"])(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.divider, 1), 0.88) : Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"darken\"])(Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.divider, 1), 0.68)),\n      textAlign: 'left',\n      padding: 16\n    }),\n\n    /* Styles applied to the root element if `variant=\"head\"` or `context.table.head`. */\n    head: {\n      color: theme.palette.text.primary,\n      lineHeight: theme.typography.pxToRem(24),\n      fontWeight: theme.typography.fontWeightMedium\n    },\n\n    /* Styles applied to the root element if `variant=\"body\"` or `context.table.body`. */\n    body: {\n      color: theme.palette.text.primary\n    },\n\n    /* Styles applied to the root element if `variant=\"footer\"` or `context.table.footer`. */\n    footer: {\n      color: theme.palette.text.secondary,\n      lineHeight: theme.typography.pxToRem(21),\n      fontSize: theme.typography.pxToRem(12)\n    },\n\n    /* Styles applied to the root element if `size=\"small\"`. */\n    sizeSmall: {\n      padding: '6px 24px 6px 16px',\n      '&:last-child': {\n        paddingRight: 16\n      },\n      '&$paddingCheckbox': {\n        width: 24,\n        // prevent the checkbox column from growing\n        padding: '0 12px 0 16px',\n        '&:last-child': {\n          paddingLeft: 12,\n          paddingRight: 16\n        },\n        '& > *': {\n          padding: 0\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `padding=\"checkbox\"`. */\n    paddingCheckbox: {\n      width: 48,\n      // prevent the checkbox column from growing\n      padding: '0 0 0 4px',\n      '&:last-child': {\n        paddingLeft: 0,\n        paddingRight: 4\n      }\n    },\n\n    /* Styles applied to the root element if `padding=\"none\"`. */\n    paddingNone: {\n      padding: 0,\n      '&:last-child': {\n        padding: 0\n      }\n    },\n\n    /* Styles applied to the root element if `align=\"left\"`. */\n    alignLeft: {\n      textAlign: 'left'\n    },\n\n    /* Styles applied to the root element if `align=\"center\"`. */\n    alignCenter: {\n      textAlign: 'center'\n    },\n\n    /* Styles applied to the root element if `align=\"right\"`. */\n    alignRight: {\n      textAlign: 'right',\n      flexDirection: 'row-reverse'\n    },\n\n    /* Styles applied to the root element if `align=\"justify\"`. */\n    alignJustify: {\n      textAlign: 'justify'\n    },\n\n    /* Styles applied to the root element if `context.table.stickyHeader={true}`. */\n    stickyHeader: {\n      position: 'sticky',\n      top: 0,\n      left: 0,\n      zIndex: 2,\n      backgroundColor: theme.palette.background.default\n    }\n  };\n};\n/**\n * The component renders a `<th>` element when the parent context is a header\n * or otherwise a `<td>` element.\n */\n\nvar TableCell = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableCell(props, ref) {\n  var _props$align = props.align,\n      align = _props$align === void 0 ? 'inherit' : _props$align,\n      classes = props.classes,\n      className = props.className,\n      component = props.component,\n      paddingProp = props.padding,\n      scopeProp = props.scope,\n      sizeProp = props.size,\n      sortDirection = props.sortDirection,\n      variantProp = props.variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(props, [\"align\", \"classes\", \"className\", \"component\", \"padding\", \"scope\", \"size\", \"sortDirection\", \"variant\"]);\n\n  var table = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_Table_TableContext__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n  var tablelvl2 = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_9__[\"default\"]);\n  var isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n  var role;\n  var Component;\n\n  if (component) {\n    Component = component;\n    role = isHeadCell ? 'columnheader' : 'cell';\n  } else {\n    Component = isHeadCell ? 'th' : 'td';\n  }\n\n  var scope = scopeProp;\n\n  if (!scope && isHeadCell) {\n    scope = 'col';\n  }\n\n  var padding = paddingProp || (table && table.padding ? table.padding : 'default');\n  var size = sizeProp || (table && table.size ? table.size : 'medium');\n  var variant = variantProp || tablelvl2 && tablelvl2.variant;\n  var ariaSort = null;\n\n  if (sortDirection) {\n    ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    ref: ref,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[variant], className, align !== 'inherit' && classes[\"align\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(align))], padding !== 'default' && classes[\"padding\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(padding))], size !== 'medium' && classes[\"size\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(size))], variant === 'head' && table && table.stickyHeader && classes.stickyHeader),\n    \"aria-sort\": ariaSort,\n    role: role,\n    scope: scope\n  }, other));\n});\n true ? TableCell.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Set the text-align on the table cell content.\n   *\n   * Monetary or generally number fields **should be right aligned** as that allows\n   * you to add them up quickly in your head without having to worry about decimals.\n   */\n  align: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n\n  /**\n   * The table cell contents.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Sets the padding applied to the cell.\n   * By default, the Table parent component set the value (`default`).\n   */\n  padding: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['checkbox', 'default', 'none']),\n\n  /**\n   * Set scope attribute.\n   */\n  scope: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Specify the size of the cell.\n   * By default, the Table parent component set the value (`medium`).\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * Set aria-sort direction.\n   */\n  sortDirection: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['asc', 'desc', false]),\n\n  /**\n   * Specify the cell type.\n   * By default, the TableHead, TableBody or TableFooter parent component set the value.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['body', 'footer', 'head'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTableCell'\n})(TableCell));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableCell/TableCell.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableCell/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableCell/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableCell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableCell */ \"./node_modules/@material-ui/core/esm/TableCell/TableCell.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableCell__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableCell/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableContainer/TableContainer.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableContainer/TableContainer.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    width: '100%',\n    overflowX: 'auto'\n  }\n};\nvar TableContainer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableContainer(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className)\n  }, other));\n});\n true ? TableContainer.propTypes = {\n  /**\n   * The table itself, normally `<Table />`\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTableContainer'\n})(TableContainer));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableContainer/TableContainer.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableContainer/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableContainer/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableContainer */ \"./node_modules/@material-ui/core/esm/TableContainer/TableContainer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableContainer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableContainer/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableFooter/TableFooter.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableFooter/TableFooter.js ***!
  \***********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Table/Tablelvl2Context */ \"./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'table-footer-group'\n  }\n};\nvar tablelvl2 = {\n  variant: 'footer'\n};\nvar defaultComponent = 'tfoot';\nvar TableFooter = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableFooter(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? defaultComponent : _props$component,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n    value: tablelvl2\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref,\n    role: Component === defaultComponent ? null : 'rowgroup'\n  }, other)));\n});\n true ? TableFooter.propTypes = {\n  /**\n   * The content of the component, normally `TableRow`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTableFooter'\n})(TableFooter));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableFooter/TableFooter.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableFooter/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableFooter/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableFooter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableFooter */ \"./node_modules/@material-ui/core/esm/TableFooter/TableFooter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableFooter__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableFooter/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableHead/TableHead.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableHead/TableHead.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Table/Tablelvl2Context */ \"./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js\");\n\n\n\n\n\n\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'table-header-group'\n  }\n};\nvar tablelvl2 = {\n  variant: 'head'\n};\nvar defaultComponent = 'thead';\nvar TableHead = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableHead(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? defaultComponent : _props$component,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n    value: tablelvl2\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    ref: ref,\n    role: Component === defaultComponent ? null : 'rowgroup'\n  }, other)));\n});\n true ? TableHead.propTypes = {\n  /**\n   * The content of the component, normally `TableRow`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTableHead'\n})(TableHead));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableHead/TableHead.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableHead/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableHead/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableHead__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableHead */ \"./node_modules/@material-ui/core/esm/TableHead/TableHead.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableHead__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableHead/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TablePagination/TablePagination.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TablePagination/TablePagination.js ***!
  \*******************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _InputBase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../InputBase */ \"./node_modules/@material-ui/core/esm/InputBase/index.js\");\n/* harmony import */ var _MenuItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../MenuItem */ \"./node_modules/@material-ui/core/esm/MenuItem/index.js\");\n/* harmony import */ var _Select__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Select */ \"./node_modules/@material-ui/core/esm/Select/index.js\");\n/* harmony import */ var _TableCell__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../TableCell */ \"./node_modules/@material-ui/core/esm/TableCell/index.js\");\n/* harmony import */ var _Toolbar__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Toolbar */ \"./node_modules/@material-ui/core/esm/Toolbar/index.js\");\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony import */ var _TablePaginationActions__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./TablePaginationActions */ \"./node_modules/@material-ui/core/esm/TablePagination/TablePaginationActions.js\");\n/* harmony import */ var _utils_unstable_useId__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/unstable_useId */ \"./node_modules/@material-ui/core/esm/utils/unstable_useId.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: theme.palette.text.primary,\n      fontSize: theme.typography.pxToRem(14),\n      overflow: 'auto',\n      // Increase the specificity to override TableCell.\n      '&:last-child': {\n        padding: 0\n      }\n    },\n\n    /* Styles applied to the Toolbar component. */\n    toolbar: {\n      minHeight: 52,\n      paddingRight: 2\n    },\n\n    /* Styles applied to the spacer element. */\n    spacer: {\n      flex: '1 1 100%'\n    },\n\n    /* Styles applied to the caption Typography components if `variant=\"caption\"`. */\n    caption: {\n      flexShrink: 0\n    },\n    // TODO v5: `.selectRoot` should be merged with `.input`\n\n    /* Styles applied to the Select component root element. */\n    selectRoot: {\n      marginRight: 32,\n      marginLeft: 8\n    },\n\n    /* Styles applied to the Select component `select` class. */\n    select: {\n      paddingLeft: 8,\n      paddingRight: 24,\n      textAlign: 'right',\n      textAlignLast: 'right' // Align <select> on Chrome.\n\n    },\n    // TODO v5: remove\n\n    /* Styles applied to the Select component `icon` class. */\n    selectIcon: {},\n\n    /* Styles applied to the `InputBase` component. */\n    input: {\n      color: 'inherit',\n      fontSize: 'inherit',\n      flexShrink: 0\n    },\n\n    /* Styles applied to the MenuItem component. */\n    menuItem: {},\n\n    /* Styles applied to the internal `TablePaginationActions` component. */\n    actions: {\n      flexShrink: 0,\n      marginLeft: 20\n    }\n  };\n};\n\nvar defaultLabelDisplayedRows = function defaultLabelDisplayedRows(_ref) {\n  var from = _ref.from,\n      to = _ref.to,\n      count = _ref.count;\n  return \"\".concat(from, \"-\").concat(to, \" of \").concat(count !== -1 ? count : \"more than \".concat(to));\n};\n\nvar defaultRowsPerPageOptions = [10, 25, 50, 100];\n/**\n * A `TableCell` based component for placing inside `TableFooter` for pagination.\n */\n\nvar TablePagination = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TablePagination(props, ref) {\n  var _props$ActionsCompone = props.ActionsComponent,\n      ActionsComponent = _props$ActionsCompone === void 0 ? _TablePaginationActions__WEBPACK_IMPORTED_MODULE_13__[\"default\"] : _props$ActionsCompone,\n      backIconButtonProps = props.backIconButtonProps,\n      _props$backIconButton = props.backIconButtonText,\n      backIconButtonText = _props$backIconButton === void 0 ? 'Previous page' : _props$backIconButton,\n      classes = props.classes,\n      className = props.className,\n      colSpanProp = props.colSpan,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? _TableCell__WEBPACK_IMPORTED_MODULE_10__[\"default\"] : _props$component,\n      count = props.count,\n      _props$labelDisplayed = props.labelDisplayedRows,\n      labelDisplayedRows = _props$labelDisplayed === void 0 ? defaultLabelDisplayedRows : _props$labelDisplayed,\n      _props$labelRowsPerPa = props.labelRowsPerPage,\n      labelRowsPerPage = _props$labelRowsPerPa === void 0 ? 'Rows per page:' : _props$labelRowsPerPa,\n      nextIconButtonProps = props.nextIconButtonProps,\n      _props$nextIconButton = props.nextIconButtonText,\n      nextIconButtonText = _props$nextIconButton === void 0 ? 'Next page' : _props$nextIconButton,\n      onChangePage = props.onChangePage,\n      onChangeRowsPerPage = props.onChangeRowsPerPage,\n      page = props.page,\n      rowsPerPage = props.rowsPerPage,\n      _props$rowsPerPageOpt = props.rowsPerPageOptions,\n      rowsPerPageOptions = _props$rowsPerPageOpt === void 0 ? defaultRowsPerPageOptions : _props$rowsPerPageOpt,\n      _props$SelectProps = props.SelectProps,\n      SelectProps = _props$SelectProps === void 0 ? {} : _props$SelectProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"ActionsComponent\", \"backIconButtonProps\", \"backIconButtonText\", \"classes\", \"className\", \"colSpan\", \"component\", \"count\", \"labelDisplayedRows\", \"labelRowsPerPage\", \"nextIconButtonProps\", \"nextIconButtonText\", \"onChangePage\", \"onChangeRowsPerPage\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"SelectProps\"]);\n\n  var colSpan;\n\n  if (Component === _TableCell__WEBPACK_IMPORTED_MODULE_10__[\"default\"] || Component === 'td') {\n    colSpan = colSpanProp || 1000; // col-span over everything\n  }\n\n  var selectId = Object(_utils_unstable_useId__WEBPACK_IMPORTED_MODULE_14__[\"default\"])();\n  var labelId = Object(_utils_unstable_useId__WEBPACK_IMPORTED_MODULE_14__[\"default\"])();\n  var MenuItemComponent = SelectProps.native ? 'option' : _MenuItem__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className),\n    colSpan: colSpan,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Toolbar__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n    className: classes.toolbar\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", {\n    className: classes.spacer\n  }), rowsPerPageOptions.length > 1 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n    color: \"inherit\",\n    variant: \"body2\",\n    className: classes.caption,\n    id: labelId\n  }, labelRowsPerPage), rowsPerPageOptions.length > 1 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Select__WEBPACK_IMPORTED_MODULE_9__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    classes: {\n      select: classes.select,\n      icon: classes.selectIcon\n    },\n    input: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_InputBase__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.input, classes.selectRoot)\n    }),\n    value: rowsPerPage,\n    onChange: onChangeRowsPerPage,\n    id: selectId,\n    labelId: labelId\n  }, SelectProps), rowsPerPageOptions.map(function (rowsPerPageOption) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](MenuItemComponent, {\n      className: classes.menuItem,\n      key: rowsPerPageOption.value ? rowsPerPageOption.value : rowsPerPageOption,\n      value: rowsPerPageOption.value ? rowsPerPageOption.value : rowsPerPageOption\n    }, rowsPerPageOption.label ? rowsPerPageOption.label : rowsPerPageOption);\n  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Typography__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n    color: \"inherit\",\n    variant: \"body2\",\n    className: classes.caption\n  }, labelDisplayedRows({\n    from: count === 0 ? 0 : page * rowsPerPage + 1,\n    to: count !== -1 ? Math.min(count, (page + 1) * rowsPerPage) : (page + 1) * rowsPerPage,\n    count: count === -1 ? -1 : count,\n    page: page\n  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](ActionsComponent, {\n    className: classes.actions,\n    backIconButtonProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      title: backIconButtonText,\n      'aria-label': backIconButtonText\n    }, backIconButtonProps),\n    count: count,\n    nextIconButtonProps: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      title: nextIconButtonText,\n      'aria-label': nextIconButtonText\n    }, nextIconButtonProps),\n    onChangePage: onChangePage,\n    page: page,\n    rowsPerPage: rowsPerPage\n  })));\n});\n true ? TablePagination.propTypes = {\n  /**\n   * The component used for displaying the actions.\n   * Either a string to use a HTML element or a component.\n   */\n  ActionsComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType,\n\n  /**\n   * Props applied to the back arrow [`IconButton`](/api/icon-button/) component.\n   */\n  backIconButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Text label for the back arrow icon button.\n   *\n   * For localization purposes, you can use the provided [translations](/guides/localization/).\n   */\n  backIconButtonText: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  colSpan: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * The total number of rows.\n   *\n   * To enable server side pagination for an unknown number of items, provide -1.\n   */\n  count: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n  /**\n   * Customize the displayed rows label. Invoked with a `{ from, to, count, page }`\n   * object.\n   *\n   * For localization purposes, you can use the provided [translations](/guides/localization/).\n   */\n  labelDisplayedRows: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Customize the rows per page label.\n   *\n   * For localization purposes, you can use the provided [translations](/guides/localization/).\n   */\n  labelRowsPerPage: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Props applied to the next arrow [`IconButton`](/api/icon-button/) element.\n   */\n  nextIconButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Text label for the next arrow icon button.\n   *\n   * For localization purposes, you can use the provided [translations](/guides/localization/).\n   */\n  nextIconButtonText: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Callback fired when the page is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number} page The page selected.\n   */\n  onChangePage: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired,\n\n  /**\n   * Callback fired when the number of rows per page is changed.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onChangeRowsPerPage: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The zero-based index of the current page.\n   */\n  page: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_4__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired, function (props) {\n    var count = props.count,\n        page = props.page,\n        rowsPerPage = props.rowsPerPage;\n\n    if (count === -1) {\n      return null;\n    }\n\n    var newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1);\n\n    if (page < 0 || page > newLastPage) {\n      return new Error('Material-UI: The page prop of a TablePagination is out of range ' + \"(0 to \".concat(newLastPage, \", but page is \").concat(page, \").\"));\n    }\n\n    return null;\n  }),\n\n  /**\n   * The number of rows per page.\n   */\n  rowsPerPage: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n  /**\n   * Customizes the options of the rows per page select field. If less than two options are\n   * available, no select field will be displayed.\n   */\n  rowsPerPageOptions: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.array,\n\n  /**\n   * Props applied to the rows per page [`Select`](/api/select/) element.\n   */\n  SelectProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiTablePagination'\n})(TablePagination));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TablePagination/TablePagination.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TablePagination/TablePaginationActions.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TablePagination/TablePaginationActions.js ***!
  \**************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _internal_svg_icons_KeyboardArrowLeft__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/svg-icons/KeyboardArrowLeft */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js\");\n/* harmony import */ var _internal_svg_icons_KeyboardArrowRight__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/svg-icons/KeyboardArrowRight */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/index.js\");\n\n\n\n\n\n\n\n\n/**\n * @ignore - internal component.\n */\n\nvar _ref = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_KeyboardArrowRight__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null);\n\nvar _ref2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_KeyboardArrowLeft__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null);\n\nvar _ref3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_KeyboardArrowLeft__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null);\n\nvar _ref4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_internal_svg_icons_KeyboardArrowRight__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null);\n\nvar TablePaginationActions = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TablePaginationActions(props, ref) {\n  var backIconButtonProps = props.backIconButtonProps,\n      count = props.count,\n      nextIconButtonProps = props.nextIconButtonProps,\n      onChangePage = props.onChangePage,\n      page = props.page,\n      rowsPerPage = props.rowsPerPage,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"backIconButtonProps\", \"count\", \"nextIconButtonProps\", \"onChangePage\", \"page\", \"rowsPerPage\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n\n  var handleBackButtonClick = function handleBackButtonClick(event) {\n    onChangePage(event, page - 1);\n  };\n\n  var handleNextButtonClick = function handleNextButtonClick(event) {\n    onChangePage(event, page + 1);\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_IconButton__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    onClick: handleBackButtonClick,\n    disabled: page === 0,\n    color: \"inherit\"\n  }, backIconButtonProps), theme.direction === 'rtl' ? _ref : _ref2), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_IconButton__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    onClick: handleNextButtonClick,\n    disabled: count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false,\n    color: \"inherit\"\n  }, nextIconButtonProps), theme.direction === 'rtl' ? _ref3 : _ref4));\n});\n true ? TablePaginationActions.propTypes = {\n  /**\n   * Props applied to the back arrow [`IconButton`](/api/icon-button/) element.\n   */\n  backIconButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The total number of rows.\n   */\n  count: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n  /**\n   * Props applied to the next arrow [`IconButton`](/api/icon-button/) element.\n   */\n  nextIconButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Callback fired when the page is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {number} page The page selected.\n   */\n  onChangePage: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired,\n\n  /**\n   * The zero-based index of the current page.\n   */\n  page: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n  /**\n   * The number of rows per page.\n   */\n  rowsPerPage: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (TablePaginationActions);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TablePagination/TablePaginationActions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TablePagination/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TablePagination/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TablePagination__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TablePagination */ \"./node_modules/@material-ui/core/esm/TablePagination/TablePagination.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TablePagination__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TablePagination/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableRow/TableRow.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableRow/TableRow.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Table/Tablelvl2Context */ \"./node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: 'inherit',\n      display: 'table-row',\n      verticalAlign: 'middle',\n      // We disable the focus ring for mouse, touch and keyboard users.\n      outline: 0,\n      '&$hover:hover': {\n        backgroundColor: theme.palette.action.hover\n      },\n      '&$selected, &$selected:hover': {\n        backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_7__[\"fade\"])(theme.palette.secondary.main, theme.palette.action.selectedOpacity)\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `selected={true}`. */\n    selected: {},\n\n    /* Pseudo-class applied to the root element if `hover={true}`. */\n    hover: {},\n\n    /* Styles applied to the root element if table variant=\"head\". */\n    head: {},\n\n    /* Styles applied to the root element if table variant=\"footer\". */\n    footer: {}\n  };\n};\nvar defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\n\nvar TableRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableRow(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? defaultComponent : _props$component,\n      _props$hover = props.hover,\n      hover = _props$hover === void 0 ? false : _props$hover,\n      _props$selected = props.selected,\n      selected = _props$selected === void 0 ? false : _props$selected,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\", \"hover\", \"selected\"]);\n\n  var tablelvl2 = react__WEBPACK_IMPORTED_MODULE_2__[\"useContext\"](_Table_Tablelvl2Context__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, tablelvl2 && {\n      'head': classes.head,\n      'footer': classes.footer\n    }[tablelvl2.variant], hover && classes.hover, selected && classes.selected),\n    role: Component === defaultComponent ? null : 'row'\n  }, other));\n});\n true ? TableRow.propTypes = {\n  /**\n   * Should be valid <tr> children such as `TableCell`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, the table row will shade on hover.\n   */\n  hover: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the table row will have the selected shading.\n   */\n  selected: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTableRow'\n})(TableRow));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableRow/TableRow.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableRow/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableRow/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableRow */ \"./node_modules/@material-ui/core/esm/TableRow/TableRow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableRow__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableRow/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableSortLabel/TableSortLabel.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableSortLabel/TableSortLabel.js ***!
  \*****************************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _internal_svg_icons_ArrowDownward__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/svg-icons/ArrowDownward */ \"./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDownward.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      cursor: 'pointer',\n      display: 'inline-flex',\n      justifyContent: 'flex-start',\n      flexDirection: 'inherit',\n      alignItems: 'center',\n      '&:focus': {\n        color: theme.palette.text.secondary\n      },\n      '&:hover': {\n        color: theme.palette.text.secondary,\n        '& $icon': {\n          opacity: 0.5\n        }\n      },\n      '&$active': {\n        color: theme.palette.text.primary,\n        // && instead of & is a workaround for https://github.com/cssinjs/jss/issues/1045\n        '&& $icon': {\n          opacity: 1,\n          color: theme.palette.text.secondary\n        }\n      }\n    },\n\n    /* Pseudo-class applied to the root element if `active={true}`. */\n    active: {},\n\n    /* Styles applied to the icon component. */\n    icon: {\n      fontSize: 18,\n      marginRight: 4,\n      marginLeft: 4,\n      opacity: 0,\n      transition: theme.transitions.create(['opacity', 'transform'], {\n        duration: theme.transitions.duration.shorter\n      }),\n      userSelect: 'none'\n    },\n\n    /* Styles applied to the icon component if `direction=\"desc\"`. */\n    iconDirectionDesc: {\n      transform: 'rotate(0deg)'\n    },\n\n    /* Styles applied to the icon component if `direction=\"asc\"`. */\n    iconDirectionAsc: {\n      transform: 'rotate(180deg)'\n    }\n  };\n};\n/**\n * A button based label for placing inside `TableCell` for column sorting.\n */\n\nvar TableSortLabel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TableSortLabel(props, ref) {\n  var _props$active = props.active,\n      active = _props$active === void 0 ? false : _props$active,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$direction = props.direction,\n      direction = _props$direction === void 0 ? 'asc' : _props$direction,\n      _props$hideSortIcon = props.hideSortIcon,\n      hideSortIcon = _props$hideSortIcon === void 0 ? false : _props$hideSortIcon,\n      _props$IconComponent = props.IconComponent,\n      IconComponent = _props$IconComponent === void 0 ? _internal_svg_icons_ArrowDownward__WEBPACK_IMPORTED_MODULE_5__[\"default\"] : _props$IconComponent,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"active\", \"children\", \"classes\", \"className\", \"direction\", \"hideSortIcon\", \"IconComponent\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_ButtonBase__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, active && classes.active),\n    component: \"span\",\n    disableRipple: true,\n    ref: ref\n  }, other), children, hideSortIcon && !active ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](IconComponent, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.icon, classes[\"iconDirection\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(direction))])\n  }));\n});\n true ? TableSortLabel.propTypes = {\n  /**\n   * If `true`, the label will have the active styling (should be true for the sorted column).\n   */\n  active: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Label contents, the arrow will be appended automatically.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The current sort direction.\n   */\n  direction: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['asc', 'desc']),\n\n  /**\n   * Hide sort icon when active is false.\n   */\n  hideSortIcon: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Sort icon to use.\n   */\n  IconComponent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.elementType\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiTableSortLabel'\n})(TableSortLabel));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableSortLabel/TableSortLabel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TableSortLabel/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TableSortLabel/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TableSortLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TableSortLabel */ \"./node_modules/@material-ui/core/esm/TableSortLabel/TableSortLabel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TableSortLabel__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TableSortLabel/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ScrollbarSize; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_debounce__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n\n\n\n\n\nvar styles = {\n  width: 99,\n  height: 99,\n  position: 'absolute',\n  top: -9999,\n  overflow: 'scroll'\n};\n/**\n * @ignore - internal component.\n * The component originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\n\nfunction ScrollbarSize(props) {\n  var onChange = props.onChange,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"onChange\"]);\n\n  var scrollbarHeight = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]();\n  var nodeRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n\n  var setMeasurements = function setMeasurements() {\n    scrollbarHeight.current = nodeRef.current.offsetHeight - nodeRef.current.clientHeight;\n  };\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    var handleResize = Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function () {\n      var prevHeight = scrollbarHeight.current;\n      setMeasurements();\n\n      if (prevHeight !== scrollbarHeight.current) {\n        onChange(scrollbarHeight.current);\n      }\n    });\n    window.addEventListener('resize', handleResize);\n    return function () {\n      handleResize.clear();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [onChange]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    setMeasurements();\n    onChange(scrollbarHeight.current);\n  }, [onChange]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    style: styles,\n    ref: nodeRef\n  }, other));\n}\n true ? ScrollbarSize.propTypes = {\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func.isRequired\n} : undefined;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tabs/TabIndicator.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tabs/TabIndicator.js ***!
  \*****************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    root: {\n      position: 'absolute',\n      height: 2,\n      bottom: 0,\n      width: '100%',\n      transition: theme.transitions.create()\n    },\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main\n    },\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main\n    },\n    vertical: {\n      height: '100%',\n      width: 2,\n      right: 0\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\nvar TabIndicator = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TabIndicator(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      color = props.color,\n      orientation = props.orientation,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"color\", \"orientation\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"span\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], className, orientation === 'vertical' && classes.vertical),\n    ref: ref\n  }, other));\n});\n true ? TabIndicator.propTypes = {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   * The color of the tab indicator.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']).isRequired,\n\n  /**\n   * The tabs orientation (layout flow direction).\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['horizontal', 'vertical']).isRequired\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'PrivateTabIndicator'\n})(TabIndicator));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tabs/TabIndicator.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tabs/Tabs.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tabs/Tabs.js ***!
  \*********************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_debounce__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n/* harmony import */ var _utils_ownerWindow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/ownerWindow */ \"./node_modules/@material-ui/core/esm/utils/ownerWindow.js\");\n/* harmony import */ var _utils_scrollLeft__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/scrollLeft */ \"./node_modules/@material-ui/core/esm/utils/scrollLeft.js\");\n/* harmony import */ var _internal_animate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../internal/animate */ \"./node_modules/@material-ui/core/esm/internal/animate.js\");\n/* harmony import */ var _ScrollbarSize__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ScrollbarSize */ \"./node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _TabIndicator__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./TabIndicator */ \"./node_modules/@material-ui/core/esm/Tabs/TabIndicator.js\");\n/* harmony import */ var _TabScrollButton__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../TabScrollButton */ \"./node_modules/@material-ui/core/esm/TabScrollButton/index.js\");\n/* harmony import */ var _utils_useEventCallback__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      overflow: 'hidden',\n      minHeight: 48,\n      WebkitOverflowScrolling: 'touch',\n      // Add iOS momentum scrolling.\n      display: 'flex'\n    },\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the flex container element. */\n    flexContainer: {\n      display: 'flex'\n    },\n\n    /* Styles applied to the flex container element if `orientation=\"vertical\"`. */\n    flexContainerVertical: {\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the flex container element if `centered={true}` & `!variant=\"scrollable\"`. */\n    centered: {\n      justifyContent: 'center'\n    },\n\n    /* Styles applied to the tablist element. */\n    scroller: {\n      position: 'relative',\n      display: 'inline-block',\n      flex: '1 1 auto',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the tablist element if `!variant=\"scrollable\"`\b\b\b. */\n    fixed: {\n      overflowX: 'hidden',\n      width: '100%'\n    },\n\n    /* Styles applied to the tablist element if `variant=\"scrollable\"`. */\n    scrollable: {\n      overflowX: 'scroll',\n      // Hide dimensionless scrollbar on MacOS\n      scrollbarWidth: 'none',\n      // Firefox\n      '&::-webkit-scrollbar': {\n        display: 'none' // Safari + Chrome\n\n      }\n    },\n\n    /* Styles applied to the `ScrollButtonComponent` component. */\n    scrollButtons: {},\n\n    /* Styles applied to the `ScrollButtonComponent` component if `scrollButtons=\"auto\"` or scrollButtons=\"desktop\"`. */\n    scrollButtonsDesktop: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, theme.breakpoints.down('xs'), {\n      display: 'none'\n    }),\n\n    /* Styles applied to the `TabIndicator` component. */\n    indicator: {}\n  };\n};\nvar Tabs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Tabs(props, ref) {\n  var ariaLabel = props['aria-label'],\n      ariaLabelledBy = props['aria-labelledby'],\n      action = props.action,\n      _props$centered = props.centered,\n      centered = _props$centered === void 0 ? false : _props$centered,\n      childrenProp = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$indicatorColor = props.indicatorColor,\n      indicatorColor = _props$indicatorColor === void 0 ? 'secondary' : _props$indicatorColor,\n      onChange = props.onChange,\n      _props$orientation = props.orientation,\n      orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,\n      _props$ScrollButtonCo = props.ScrollButtonComponent,\n      ScrollButtonComponent = _props$ScrollButtonCo === void 0 ? _TabScrollButton__WEBPACK_IMPORTED_MODULE_15__[\"default\"] : _props$ScrollButtonCo,\n      _props$scrollButtons = props.scrollButtons,\n      scrollButtons = _props$scrollButtons === void 0 ? 'auto' : _props$scrollButtons,\n      selectionFollowsFocus = props.selectionFollowsFocus,\n      _props$TabIndicatorPr = props.TabIndicatorProps,\n      TabIndicatorProps = _props$TabIndicatorPr === void 0 ? {} : _props$TabIndicatorPr,\n      TabScrollButtonProps = props.TabScrollButtonProps,\n      _props$textColor = props.textColor,\n      textColor = _props$textColor === void 0 ? 'inherit' : _props$textColor,\n      value = props.value,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"aria-label\", \"aria-labelledby\", \"action\", \"centered\", \"children\", \"classes\", \"className\", \"component\", \"indicatorColor\", \"onChange\", \"orientation\", \"ScrollButtonComponent\", \"scrollButtons\", \"selectionFollowsFocus\", \"TabIndicatorProps\", \"TabScrollButtonProps\", \"textColor\", \"value\", \"variant\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_17__[\"default\"])();\n  var scrollable = variant === 'scrollable';\n  var isRtl = theme.direction === 'rtl';\n  var vertical = orientation === 'vertical';\n  var scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n  var start = vertical ? 'top' : 'left';\n  var end = vertical ? 'bottom' : 'right';\n  var clientSize = vertical ? 'clientHeight' : 'clientWidth';\n  var size = vertical ? 'height' : 'width';\n\n  if (true) {\n    if (centered && scrollable) {\n      console.error('Material-UI: You can not use the `centered={true}` and `variant=\"scrollable\"` properties ' + 'at the same time on a `Tabs` component.');\n    }\n  }\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"](false),\n      mounted = _React$useState[0],\n      setMounted = _React$useState[1];\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"]({}),\n      indicatorStyle = _React$useState2[0],\n      setIndicatorStyle = _React$useState2[1];\n\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"]({\n    start: false,\n    end: false\n  }),\n      displayScroll = _React$useState3[0],\n      setDisplayScroll = _React$useState3[1];\n\n  var _React$useState4 = react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"]({\n    overflow: 'hidden',\n    marginBottom: null\n  }),\n      scrollerStyle = _React$useState4[0],\n      setScrollerStyle = _React$useState4[1];\n\n  var valueToIndex = new Map();\n  var tabsRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var tabListRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n\n  var getTabsMeta = function getTabsMeta() {\n    var tabsNode = tabsRef.current;\n    var tabsMeta;\n\n    if (tabsNode) {\n      var rect = tabsNode.getBoundingClientRect(); // create a new object with ClientRect class props + scrollLeft\n\n      tabsMeta = {\n        clientWidth: tabsNode.clientWidth,\n        scrollLeft: tabsNode.scrollLeft,\n        scrollTop: tabsNode.scrollTop,\n        scrollLeftNormalized: Object(_utils_scrollLeft__WEBPACK_IMPORTED_MODULE_10__[\"getNormalizedScrollLeft\"])(tabsNode, theme.direction),\n        scrollWidth: tabsNode.scrollWidth,\n        top: rect.top,\n        bottom: rect.bottom,\n        left: rect.left,\n        right: rect.right\n      };\n    }\n\n    var tabMeta;\n\n    if (tabsNode && value !== false) {\n      var _children = tabListRef.current.children;\n\n      if (_children.length > 0) {\n        var tab = _children[valueToIndex.get(value)];\n\n        if (true) {\n          if (!tab) {\n            console.error([\"Material-UI: The value provided to the Tabs component is invalid.\", \"None of the Tabs' children match with `\".concat(value, \"`.\"), valueToIndex.keys ? \"You can provide one of the following values: \".concat(Array.from(valueToIndex.keys()).join(', '), \".\") : null].join('\\n'));\n          }\n        }\n\n        tabMeta = tab ? tab.getBoundingClientRect() : null;\n      }\n    }\n\n    return {\n      tabsMeta: tabsMeta,\n      tabMeta: tabMeta\n    };\n  };\n\n  var updateIndicatorState = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(function () {\n    var _newIndicatorStyle;\n\n    var _getTabsMeta = getTabsMeta(),\n        tabsMeta = _getTabsMeta.tabsMeta,\n        tabMeta = _getTabsMeta.tabMeta;\n\n    var startValue = 0;\n\n    if (tabMeta && tabsMeta) {\n      if (vertical) {\n        startValue = tabMeta.top - tabsMeta.top + tabsMeta.scrollTop;\n      } else {\n        var correction = isRtl ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n        startValue = tabMeta.left - tabsMeta.left + correction;\n      }\n    }\n\n    var newIndicatorStyle = (_newIndicatorStyle = {}, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_newIndicatorStyle, start, startValue), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_newIndicatorStyle, size, tabMeta ? tabMeta[size] : 0), _newIndicatorStyle);\n\n    if (isNaN(indicatorStyle[start]) || isNaN(indicatorStyle[size])) {\n      setIndicatorStyle(newIndicatorStyle);\n    } else {\n      var dStart = Math.abs(indicatorStyle[start] - newIndicatorStyle[start]);\n      var dSize = Math.abs(indicatorStyle[size] - newIndicatorStyle[size]);\n\n      if (dStart >= 1 || dSize >= 1) {\n        setIndicatorStyle(newIndicatorStyle);\n      }\n    }\n  });\n\n  var scroll = function scroll(scrollValue) {\n    Object(_internal_animate__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(scrollStart, tabsRef.current, scrollValue);\n  };\n\n  var moveTabsScroll = function moveTabsScroll(delta) {\n    var scrollValue = tabsRef.current[scrollStart];\n\n    if (vertical) {\n      scrollValue += delta;\n    } else {\n      scrollValue += delta * (isRtl ? -1 : 1); // Fix for Edge\n\n      scrollValue *= isRtl && Object(_utils_scrollLeft__WEBPACK_IMPORTED_MODULE_10__[\"detectScrollType\"])() === 'reverse' ? -1 : 1;\n    }\n\n    scroll(scrollValue);\n  };\n\n  var handleStartScrollClick = function handleStartScrollClick() {\n    moveTabsScroll(-tabsRef.current[clientSize]);\n  };\n\n  var handleEndScrollClick = function handleEndScrollClick() {\n    moveTabsScroll(tabsRef.current[clientSize]);\n  };\n\n  var handleScrollbarSizeChange = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](function (scrollbarHeight) {\n    setScrollerStyle({\n      overflow: null,\n      marginBottom: -scrollbarHeight\n    });\n  }, []);\n\n  var getConditionalElements = function getConditionalElements() {\n    var conditionalElements = {};\n    conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_ScrollbarSize__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n      className: classes.scrollable,\n      onChange: handleScrollbarSizeChange\n    }) : null;\n    var scrollButtonsActive = displayScroll.start || displayScroll.end;\n    var showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === 'desktop' || scrollButtons === 'on');\n    conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](ScrollButtonComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      orientation: orientation,\n      direction: isRtl ? 'right' : 'left',\n      onClick: handleStartScrollClick,\n      disabled: !displayScroll.start,\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.scrollButtons, scrollButtons !== 'on' && classes.scrollButtonsDesktop)\n    }, TabScrollButtonProps)) : null;\n    conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](ScrollButtonComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      orientation: orientation,\n      direction: isRtl ? 'left' : 'right',\n      onClick: handleEndScrollClick,\n      disabled: !displayScroll.end,\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.scrollButtons, scrollButtons !== 'on' && classes.scrollButtonsDesktop)\n    }, TabScrollButtonProps)) : null;\n    return conditionalElements;\n  };\n\n  var scrollSelectedIntoView = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(function () {\n    var _getTabsMeta2 = getTabsMeta(),\n        tabsMeta = _getTabsMeta2.tabsMeta,\n        tabMeta = _getTabsMeta2.tabMeta;\n\n    if (!tabMeta || !tabsMeta) {\n      return;\n    }\n\n    if (tabMeta[start] < tabsMeta[start]) {\n      // left side of button is out of view\n      var nextScrollStart = tabsMeta[scrollStart] + (tabMeta[start] - tabsMeta[start]);\n      scroll(nextScrollStart);\n    } else if (tabMeta[end] > tabsMeta[end]) {\n      // right side of button is out of view\n      var _nextScrollStart = tabsMeta[scrollStart] + (tabMeta[end] - tabsMeta[end]);\n\n      scroll(_nextScrollStart);\n    }\n  });\n  var updateScrollButtonState = Object(_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(function () {\n    if (scrollable && scrollButtons !== 'off') {\n      var _tabsRef$current = tabsRef.current,\n          scrollTop = _tabsRef$current.scrollTop,\n          scrollHeight = _tabsRef$current.scrollHeight,\n          clientHeight = _tabsRef$current.clientHeight,\n          scrollWidth = _tabsRef$current.scrollWidth,\n          clientWidth = _tabsRef$current.clientWidth;\n      var showStartScroll;\n      var showEndScroll;\n\n      if (vertical) {\n        showStartScroll = scrollTop > 1;\n        showEndScroll = scrollTop < scrollHeight - clientHeight - 1;\n      } else {\n        var scrollLeft = Object(_utils_scrollLeft__WEBPACK_IMPORTED_MODULE_10__[\"getNormalizedScrollLeft\"])(tabsRef.current, theme.direction); // use 1 for the potential rounding error with browser zooms.\n\n        showStartScroll = isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n        showEndScroll = !isRtl ? scrollLeft < scrollWidth - clientWidth - 1 : scrollLeft > 1;\n      }\n\n      if (showStartScroll !== displayScroll.start || showEndScroll !== displayScroll.end) {\n        setDisplayScroll({\n          start: showStartScroll,\n          end: showEndScroll\n        });\n      }\n    }\n  });\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    var handleResize = Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function () {\n      updateIndicatorState();\n      updateScrollButtonState();\n    });\n    var win = Object(_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(tabsRef.current);\n    win.addEventListener('resize', handleResize);\n    return function () {\n      handleResize.clear();\n      win.removeEventListener('resize', handleResize);\n    };\n  }, [updateIndicatorState, updateScrollButtonState]);\n  var handleTabsScroll = react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"](Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(function () {\n    updateScrollButtonState();\n  }));\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    return function () {\n      handleTabsScroll.clear();\n    };\n  }, [handleTabsScroll]);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    setMounted(true);\n  }, []);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    updateIndicatorState();\n    updateScrollButtonState();\n  });\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"](function () {\n    scrollSelectedIntoView();\n  }, [scrollSelectedIntoView, indicatorStyle]);\n  react__WEBPACK_IMPORTED_MODULE_3__[\"useImperativeHandle\"](action, function () {\n    return {\n      updateIndicator: updateIndicatorState,\n      updateScrollButtons: updateScrollButtonState\n    };\n  }, [updateIndicatorState, updateScrollButtonState]);\n  var indicator = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_TabIndicator__WEBPACK_IMPORTED_MODULE_14__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: classes.indicator,\n    orientation: orientation,\n    color: indicatorColor\n  }, TabIndicatorProps, {\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, indicatorStyle, TabIndicatorProps.style)\n  }));\n  var childIndex = 0;\n  var children = react__WEBPACK_IMPORTED_MODULE_3__[\"Children\"].map(childrenProp, function (child) {\n    if (! /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"isValidElement\"](child)) {\n      return null;\n    }\n\n    if (true) {\n      if (Object(react_is__WEBPACK_IMPORTED_MODULE_4__[\"isFragment\"])(child)) {\n        console.error([\"Material-UI: The Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n\n    var childValue = child.props.value === undefined ? childIndex : child.props.value;\n    valueToIndex.set(childValue, childIndex);\n    var selected = childValue === value;\n    childIndex += 1;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"](child, {\n      fullWidth: variant === 'fullWidth',\n      indicator: selected && !mounted && indicator,\n      selected: selected,\n      selectionFollowsFocus: selectionFollowsFocus,\n      onChange: onChange,\n      textColor: textColor,\n      value: childValue\n    });\n  });\n\n  var handleKeyDown = function handleKeyDown(event) {\n    var target = event.target; // Keyboard navigation assumes that [role=\"tab\"] are siblings\n    // though we might warn in the future about nested, interactive elements\n    // as a a11y violation\n\n    var role = target.getAttribute('role');\n\n    if (role !== 'tab') {\n      return;\n    }\n\n    var newFocusTarget = null;\n    var previousItemKey = orientation !== \"vertical\" ? 'ArrowLeft' : 'ArrowUp';\n    var nextItemKey = orientation !== \"vertical\" ? 'ArrowRight' : 'ArrowDown';\n\n    if (orientation !== \"vertical\" && theme.direction === 'rtl') {\n      // swap previousItemKey with nextItemKey\n      previousItemKey = 'ArrowRight';\n      nextItemKey = 'ArrowLeft';\n    }\n\n    switch (event.key) {\n      case previousItemKey:\n        newFocusTarget = target.previousElementSibling || tabListRef.current.lastChild;\n        break;\n\n      case nextItemKey:\n        newFocusTarget = target.nextElementSibling || tabListRef.current.firstChild;\n        break;\n\n      case 'Home':\n        newFocusTarget = tabListRef.current.firstChild;\n        break;\n\n      case 'End':\n        newFocusTarget = tabListRef.current.lastChild;\n        break;\n\n      default:\n        break;\n    }\n\n    if (newFocusTarget !== null) {\n      newFocusTarget.focus();\n      event.preventDefault();\n    }\n  };\n\n  var conditionalElements = getConditionalElements();\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.root, className, vertical && classes.vertical),\n    ref: ref\n  }, other), conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.scroller, scrollable ? classes.scrollable : classes.fixed),\n    style: scrollerStyle,\n    ref: tabsRef,\n    onScroll: handleTabsScroll\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"div\", {\n    \"aria-label\": ariaLabel,\n    \"aria-labelledby\": ariaLabelledBy,\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(classes.flexContainer, vertical && classes.flexContainerVertical, centered && !scrollable && classes.centered),\n    onKeyDown: handleKeyDown,\n    ref: tabListRef,\n    role: \"tablist\"\n  }, children), mounted && indicator), conditionalElements.scrollButtonEnd);\n});\n true ? Tabs.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * Callback fired when the component mounts.\n   * This is useful when you want to trigger an action programmatically.\n   * It supports two actions: `updateIndicator()` and `updateScrollButtons()`\n   *\n   * @param {object} actions This object contains all possible actions\n   * that can be triggered programmatically.\n   */\n  action: _material_ui_utils__WEBPACK_IMPORTED_MODULE_7__[\"refType\"],\n\n  /**\n   * The label for the Tabs as a string.\n   */\n  'aria-label': prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * An id or list of ids separated by a space that label the Tabs.\n   */\n  'aria-labelledby': prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * If `true`, the tabs will be centered.\n   * This property is intended for large views.\n   */\n  centered: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Determines the color of the indicator.\n   */\n  indicatorColor: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * Callback fired when the value changes.\n   *\n   * @param {object} event The event source of the callback\n   * @param {any} value We default to the index of the child (number)\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n  /**\n   * The tabs orientation (layout flow direction).\n   */\n  orientation: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * The component used to render the scroll buttons.\n   */\n  ScrollButtonComponent: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.elementType,\n\n  /**\n   * Determine behavior of scroll buttons when tabs are set to scroll:\n   *\n   * - `auto` will only present them when not all the items are visible.\n   * - `desktop` will only present them on medium and larger viewports.\n   * - `on` will always present them.\n   * - `off` will never present them.\n   */\n  scrollButtons: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['auto', 'desktop', 'off', 'on']),\n\n  /**\n   * If `true` the selected tab changes on focus. Otherwise it only\n   * changes on activation.\n   */\n  selectionFollowsFocus: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n  /**\n   * Props applied to the tab indicator element.\n   */\n  TabIndicatorProps: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object,\n\n  /**\n   * Props applied to the [`TabScrollButton`](/api/tab-scroll-button/) element.\n   */\n  TabScrollButtonProps: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.object,\n\n  /**\n   * Determines the color of the `Tab`.\n   */\n  textColor: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['inherit', 'primary', 'secondary']),\n\n  /**\n   * The value of the currently selected `Tab`.\n   * If you don't want any selected `Tab`, you can set this property to `false`.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.any,\n\n  /**\n   * Determines additional display behavior of the tabs:\n   *\n   *  - `scrollable` will invoke scrolling properties and allow for horizontally\n   *  scrolling (or swiping) of the tab bar.\n   *  -`fullWidth` will make the tabs grow to use all the available space,\n   *  which should be used for small views, like on mobile.\n   *  - `standard` will render the default state.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['fullWidth', 'scrollable', 'standard'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(styles, {\n  name: 'MuiTabs'\n})(Tabs));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tabs/Tabs.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tabs/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tabs/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Tabs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tabs */ \"./node_modules/@material-ui/core/esm/Tabs/Tabs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Tabs__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tabs/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TextField/TextField.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TextField/TextField.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _Input__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Input */ \"./node_modules/@material-ui/core/esm/Input/index.js\");\n/* harmony import */ var _FilledInput__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../FilledInput */ \"./node_modules/@material-ui/core/esm/FilledInput/index.js\");\n/* harmony import */ var _OutlinedInput__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../OutlinedInput */ \"./node_modules/@material-ui/core/esm/OutlinedInput/index.js\");\n/* harmony import */ var _InputLabel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../InputLabel */ \"./node_modules/@material-ui/core/esm/InputLabel/index.js\");\n/* harmony import */ var _FormControl__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../FormControl */ \"./node_modules/@material-ui/core/esm/FormControl/index.js\");\n/* harmony import */ var _FormHelperText__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../FormHelperText */ \"./node_modules/@material-ui/core/esm/FormHelperText/index.js\");\n/* harmony import */ var _Select__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Select */ \"./node_modules/@material-ui/core/esm/Select/index.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar variantComponent = {\n  standard: _Input__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  filled: _FilledInput__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n  outlined: _OutlinedInput__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n};\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {}\n};\n/**\n * The `TextField` is a convenience wrapper for the most common cases (80%).\n * It cannot be all things to all people, otherwise the API would grow out of control.\n *\n * ## Advanced Configuration\n *\n * It's important to understand that the text field is a simple abstraction\n * on top of the following components:\n *\n * - [FormControl](/api/form-control/)\n * - [InputLabel](/api/input-label/)\n * - [FilledInput](/api/filled-input/)\n * - [OutlinedInput](/api/outlined-input/)\n * - [Input](/api/input/)\n * - [FormHelperText](/api/form-helper-text/)\n *\n * If you wish to alter the props applied to the `input` element, you can do so as follows:\n *\n * ```jsx\n * const inputProps = {\n *   step: 300,\n * };\n *\n * return <TextField id=\"time\" type=\"time\" inputProps={inputProps} />;\n * ```\n *\n * For advanced cases, please look at the source of TextField by clicking on the\n * \"Edit this page\" button above. Consider either:\n *\n * - using the upper case props for passing values directly to the components\n * - using the underlying components directly as shown in the demos\n */\n\nvar TextField = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TextField(props, ref) {\n  var autoComplete = props.autoComplete,\n      _props$autoFocus = props.autoFocus,\n      autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'primary' : _props$color,\n      defaultValue = props.defaultValue,\n      _props$disabled = props.disabled,\n      disabled = _props$disabled === void 0 ? false : _props$disabled,\n      _props$error = props.error,\n      error = _props$error === void 0 ? false : _props$error,\n      FormHelperTextProps = props.FormHelperTextProps,\n      _props$fullWidth = props.fullWidth,\n      fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,\n      helperText = props.helperText,\n      hiddenLabel = props.hiddenLabel,\n      id = props.id,\n      InputLabelProps = props.InputLabelProps,\n      inputProps = props.inputProps,\n      InputProps = props.InputProps,\n      inputRef = props.inputRef,\n      label = props.label,\n      _props$multiline = props.multiline,\n      multiline = _props$multiline === void 0 ? false : _props$multiline,\n      name = props.name,\n      onBlur = props.onBlur,\n      onChange = props.onChange,\n      onFocus = props.onFocus,\n      placeholder = props.placeholder,\n      _props$required = props.required,\n      required = _props$required === void 0 ? false : _props$required,\n      rows = props.rows,\n      rowsMax = props.rowsMax,\n      _props$select = props.select,\n      select = _props$select === void 0 ? false : _props$select,\n      SelectProps = props.SelectProps,\n      type = props.type,\n      value = props.value,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'standard' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"autoComplete\", \"autoFocus\", \"children\", \"classes\", \"className\", \"color\", \"defaultValue\", \"disabled\", \"error\", \"FormHelperTextProps\", \"fullWidth\", \"helperText\", \"hiddenLabel\", \"id\", \"InputLabelProps\", \"inputProps\", \"InputProps\", \"inputRef\", \"label\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"placeholder\", \"required\", \"rows\", \"rowsMax\", \"select\", \"SelectProps\", \"type\", \"value\", \"variant\"]);\n\n  if (true) {\n    if (select && !children) {\n      console.error('Material-UI: `children` must be passed when using the `TextField` component with `select`.');\n    }\n  }\n\n  var InputMore = {};\n\n  if (variant === 'outlined') {\n    if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {\n      InputMore.notched = InputLabelProps.shrink;\n    }\n\n    if (label) {\n      var _InputLabelProps$requ;\n\n      var displayRequired = (_InputLabelProps$requ = InputLabelProps === null || InputLabelProps === void 0 ? void 0 : InputLabelProps.required) !== null && _InputLabelProps$requ !== void 0 ? _InputLabelProps$requ : required;\n      InputMore.label = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"], null, label, displayRequired && \"\\xA0*\");\n    }\n  }\n\n  if (select) {\n    // unset defaults from textbox inputs\n    if (!SelectProps || !SelectProps.native) {\n      InputMore.id = undefined;\n    }\n\n    InputMore['aria-describedby'] = undefined;\n  }\n\n  var helperTextId = helperText && id ? \"\".concat(id, \"-helper-text\") : undefined;\n  var inputLabelId = label && id ? \"\".concat(id, \"-label\") : undefined;\n  var InputComponent = variantComponent[variant];\n  var InputElement = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](InputComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    \"aria-describedby\": helperTextId,\n    autoComplete: autoComplete,\n    autoFocus: autoFocus,\n    defaultValue: defaultValue,\n    fullWidth: fullWidth,\n    multiline: multiline,\n    name: name,\n    rows: rows,\n    rowsMax: rowsMax,\n    type: type,\n    value: value,\n    id: id,\n    inputRef: inputRef,\n    onBlur: onBlur,\n    onChange: onChange,\n    onFocus: onFocus,\n    placeholder: placeholder,\n    inputProps: inputProps\n  }, InputMore, InputProps));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_FormControl__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className),\n    disabled: disabled,\n    error: error,\n    fullWidth: fullWidth,\n    hiddenLabel: hiddenLabel,\n    ref: ref,\n    required: required,\n    color: color,\n    variant: variant\n  }, other), label && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_InputLabel__WEBPACK_IMPORTED_MODULE_9__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    htmlFor: id,\n    id: inputLabelId\n  }, InputLabelProps), label), select ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_Select__WEBPACK_IMPORTED_MODULE_12__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    \"aria-describedby\": helperTextId,\n    id: id,\n    labelId: inputLabelId,\n    value: value,\n    input: InputElement\n  }, SelectProps), children) : InputElement, helperText && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](_FormHelperText__WEBPACK_IMPORTED_MODULE_11__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    id: helperTextId\n  }, FormHelperTextProps), helperText));\n});\n true ? TextField.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * This prop helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n   */\n  autoComplete: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the `input` element will be focused during the first mount.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['primary', 'secondary']),\n\n  /**\n   * The default value of the `input` element.\n   */\n  defaultValue: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * If `true`, the `input` element will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the label will be displayed in an error state.\n   */\n  error: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Props applied to the [`FormHelperText`](/api/form-helper-text/) element.\n   */\n  FormHelperTextProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The helper text content.\n   */\n  helperText: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * @ignore\n   */\n  hiddenLabel: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * The id of the `input` element.\n   * Use this prop to make `label` and `helperText` accessible for screen readers.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Props applied to the [`InputLabel`](/api/input-label/) element.\n   */\n  InputLabelProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Props applied to the Input element.\n   * It will be a [`FilledInput`](/api/filled-input/),\n   * [`OutlinedInput`](/api/outlined-input/) or [`Input`](/api/input/)\n   * component depending on the `variant` prop value.\n   */\n  InputProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"refType\"],\n\n  /**\n   * The label content.\n   */\n  label: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n   */\n  margin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['dense', 'none', 'normal']),\n\n  /**\n   * If `true`, a textarea element will be rendered instead of an input.\n   */\n  multiline: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (string).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * If `true`, the label is displayed as required and the `input` element` will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Render a [`Select`](/api/select/) element while passing the Input element to `Select` as `input` parameter.\n   * If this option is set you must pass the options of the select as children.\n   */\n  select: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Props applied to the [`Select`](/api/select/) element.\n   */\n  SelectProps: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * The size of the text field.\n   */\n  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['medium', 'small']),\n\n  /**\n   * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The value of the `input` element, required for a controlled component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.any,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['filled', 'outlined', 'standard'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(styles, {\n  name: 'MuiTextField'\n})(TextField));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TextField/TextField.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TextField/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TextField/index.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TextField */ \"./node_modules/@material-ui/core/esm/TextField/TextField.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TextField__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TextField/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _utils_debounce__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\nfunction getStyleValue(computedStyle, property) {\n  return parseInt(computedStyle[property], 10) || 0;\n}\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"];\nvar styles = {\n  /* Styles applied to the shadow textarea element. */\n  shadow: {\n    // Visibility needed to hide the extra text area on iPads\n    visibility: 'hidden',\n    // Remove from the content flow\n    position: 'absolute',\n    // Ignore the scrollbar width\n    overflow: 'hidden',\n    height: 0,\n    top: 0,\n    left: 0,\n    // Create a new layer, increase the isolation of the computed values\n    transform: 'translateZ(0)'\n  }\n};\nvar TextareaAutosize = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function TextareaAutosize(props, ref) {\n  var onChange = props.onChange,\n      rows = props.rows,\n      rowsMax = props.rowsMax,\n      _props$rowsMin = props.rowsMin,\n      rowsMinProp = _props$rowsMin === void 0 ? 1 : _props$rowsMin,\n      style = props.style,\n      value = props.value,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"onChange\", \"rows\", \"rowsMax\", \"rowsMin\", \"style\", \"value\"]);\n\n  var rowsMin = rows || rowsMinProp;\n\n  var _React$useRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](value != null),\n      isControlled = _React$useRef.current;\n\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(ref, inputRef);\n  var shadowRef = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](null);\n  var renders = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"](0);\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"]({}),\n      state = _React$useState[0],\n      setState = _React$useState[1];\n\n  var syncHeight = react__WEBPACK_IMPORTED_MODULE_2__[\"useCallback\"](function () {\n    var input = inputRef.current;\n    var computedStyle = window.getComputedStyle(input);\n    var inputShallow = shadowRef.current;\n    inputShallow.style.width = computedStyle.width;\n    inputShallow.value = input.value || props.placeholder || 'x';\n\n    if (inputShallow.value.slice(-1) === '\\n') {\n      // Certain fonts which overflow the line height will cause the textarea\n      // to report a different scrollHeight depending on whether the last line\n      // is empty. Make it non-empty to avoid this issue.\n      inputShallow.value += ' ';\n    }\n\n    var boxSizing = computedStyle['box-sizing'];\n    var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');\n    var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content\n\n    var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row\n\n    inputShallow.value = 'x';\n    var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content\n\n    var outerHeight = innerHeight;\n\n    if (rowsMin) {\n      outerHeight = Math.max(Number(rowsMin) * singleRowHeight, outerHeight);\n    }\n\n    if (rowsMax) {\n      outerHeight = Math.min(Number(rowsMax) * singleRowHeight, outerHeight);\n    }\n\n    outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n    var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n    var overflow = Math.abs(outerHeight - innerHeight) <= 1;\n    setState(function (prevState) {\n      // Need a large enough difference to update the height.\n      // This prevents infinite rendering loop.\n      if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n        renders.current += 1;\n        return {\n          overflow: overflow,\n          outerHeightStyle: outerHeightStyle\n        };\n      }\n\n      if (true) {\n        if (renders.current === 20) {\n          console.error(['Material-UI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n        }\n      }\n\n      return prevState;\n    });\n  }, [rowsMax, rowsMin, props.placeholder]);\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    var handleResize = Object(_utils_debounce__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function () {\n      renders.current = 0;\n      syncHeight();\n    });\n    window.addEventListener('resize', handleResize);\n    return function () {\n      handleResize.clear();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [syncHeight]);\n  useEnhancedEffect(function () {\n    syncHeight();\n  });\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    renders.current = 0;\n  }, [value]);\n\n  var handleChange = function handleChange(event) {\n    renders.current = 0;\n\n    if (!isControlled) {\n      syncHeight();\n    }\n\n    if (onChange) {\n      onChange(event);\n    }\n  };\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_2__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"textarea\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    value: value,\n    onChange: handleChange,\n    ref: handleRef // Apply the rows prop to get a \"correct\" first SSR paint\n    ,\n    rows: rowsMin,\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      height: state.outerHeightStyle,\n      // Need a large enough difference to allow scrolling.\n      // This prevents infinite rendering loop.\n      overflow: state.overflow ? 'hidden' : null\n    }, style)\n  }, other)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](\"textarea\", {\n    \"aria-hidden\": true,\n    className: props.className,\n    readOnly: true,\n    ref: shadowRef,\n    tabIndex: -1,\n    style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, styles.shadow, style)\n  }));\n});\n true ? TextareaAutosize.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * @ignore\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   */\n  placeholder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * Use `rowsMin` instead. The prop will be removed in v5.\n   *\n   * @deprecated\n   */\n  rows: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Maximum number of rows to display.\n   */\n  rowsMax: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * Minimum number of rows to display.\n   */\n  rowsMin: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string]),\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string), prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (TextareaAutosize);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/TextareaAutosize/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/TextareaAutosize/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _TextareaAutosize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TextareaAutosize */ \"./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _TextareaAutosize__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/TextareaAutosize/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Toolbar/Toolbar.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Toolbar/Toolbar.js ***!
  \***************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      display: 'flex',\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `disableGutters={false}`. */\n    gutters: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      paddingLeft: theme.spacing(2),\n      paddingRight: theme.spacing(2)\n    }, theme.breakpoints.up('sm'), {\n      paddingLeft: theme.spacing(3),\n      paddingRight: theme.spacing(3)\n    }),\n\n    /* Styles applied to the root element if `variant=\"regular\"`. */\n    regular: theme.mixins.toolbar,\n\n    /* Styles applied to the root element if `variant=\"dense\"`. */\n    dense: {\n      minHeight: 48\n    }\n  };\n};\nvar Toolbar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Toolbar(props, ref) {\n  var classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _props$disableGutters = props.disableGutters,\n      disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'regular' : _props$variant,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"variant\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, classes[variant], className, !disableGutters && classes.gutters),\n    ref: ref\n  }, other));\n});\n true ? Toolbar.propTypes = {\n  /**\n   * Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * If `true`, disables gutter padding.\n   */\n  disableGutters: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['regular', 'dense'])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(styles, {\n  name: 'MuiToolbar'\n})(Toolbar));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Toolbar/Toolbar.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Toolbar/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Toolbar/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Toolbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Toolbar */ \"./node_modules/@material-ui/core/esm/Toolbar/Toolbar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Toolbar__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Toolbar/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tooltip/Tooltip.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tooltip/Tooltip.js ***!
  \***************************************************************/
/*! exports provided: styles, testReset, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"testReset\", function() { return testReset; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _styles_colorManipulator__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony import */ var _Grow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Grow */ \"./node_modules/@material-ui/core/esm/Grow/index.js\");\n/* harmony import */ var _Popper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Popper */ \"./node_modules/@material-ui/core/esm/Popper/index.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _utils_unstable_useId__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/unstable_useId */ \"./node_modules/@material-ui/core/esm/utils/unstable_useId.js\");\n/* harmony import */ var _utils_setRef__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n/* harmony import */ var _utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../utils/useIsFocusVisible */ \"./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction round(value) {\n  return Math.round(value * 1e5) / 1e5;\n}\n\nfunction arrowGenerator() {\n  return {\n    '&[x-placement*=\"bottom\"] $arrow': {\n      top: 0,\n      left: 0,\n      marginTop: '-0.71em',\n      marginLeft: 4,\n      marginRight: 4,\n      '&::before': {\n        transformOrigin: '0 100%'\n      }\n    },\n    '&[x-placement*=\"top\"] $arrow': {\n      bottom: 0,\n      left: 0,\n      marginBottom: '-0.71em',\n      marginLeft: 4,\n      marginRight: 4,\n      '&::before': {\n        transformOrigin: '100% 0'\n      }\n    },\n    '&[x-placement*=\"right\"] $arrow': {\n      left: 0,\n      marginLeft: '-0.71em',\n      height: '1em',\n      width: '0.71em',\n      marginTop: 4,\n      marginBottom: 4,\n      '&::before': {\n        transformOrigin: '100% 100%'\n      }\n    },\n    '&[x-placement*=\"left\"] $arrow': {\n      right: 0,\n      marginRight: '-0.71em',\n      height: '1em',\n      width: '0.71em',\n      marginTop: 4,\n      marginBottom: 4,\n      '&::before': {\n        transformOrigin: '0 0'\n      }\n    }\n  };\n}\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the Popper component. */\n    popper: {\n      zIndex: theme.zIndex.tooltip,\n      pointerEvents: 'none' // disable jss-rtl plugin\n\n    },\n\n    /* Styles applied to the Popper component if `interactive={true}`. */\n    popperInteractive: {\n      pointerEvents: 'auto'\n    },\n\n    /* Styles applied to the Popper component if `arrow={true}`. */\n    popperArrow: arrowGenerator(),\n\n    /* Styles applied to the tooltip (label wrapper) element. */\n    tooltip: {\n      backgroundColor: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_9__[\"fade\"])(theme.palette.grey[700], 0.9),\n      borderRadius: theme.shape.borderRadius,\n      color: theme.palette.common.white,\n      fontFamily: theme.typography.fontFamily,\n      padding: '4px 8px',\n      fontSize: theme.typography.pxToRem(10),\n      lineHeight: \"\".concat(round(14 / 10), \"em\"),\n      maxWidth: 300,\n      wordWrap: 'break-word',\n      fontWeight: theme.typography.fontWeightMedium\n    },\n\n    /* Styles applied to the tooltip (label wrapper) element if `arrow={true}`. */\n    tooltipArrow: {\n      position: 'relative',\n      margin: '0'\n    },\n\n    /* Styles applied to the arrow element. */\n    arrow: {\n      overflow: 'hidden',\n      position: 'absolute',\n      width: '1em',\n      height: '0.71em'\n      /* = width / sqrt(2) = (length of the hypotenuse) */\n      ,\n      boxSizing: 'border-box',\n      color: Object(_styles_colorManipulator__WEBPACK_IMPORTED_MODULE_9__[\"fade\"])(theme.palette.grey[700], 0.9),\n      '&::before': {\n        content: '\"\"',\n        margin: 'auto',\n        display: 'block',\n        width: '100%',\n        height: '100%',\n        backgroundColor: 'currentColor',\n        transform: 'rotate(45deg)'\n      }\n    },\n\n    /* Styles applied to the tooltip (label wrapper) element if the tooltip is opened by touch. */\n    touch: {\n      padding: '8px 16px',\n      fontSize: theme.typography.pxToRem(14),\n      lineHeight: \"\".concat(round(16 / 14), \"em\"),\n      fontWeight: theme.typography.fontWeightRegular\n    },\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"left\". */\n    tooltipPlacementLeft: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n      transformOrigin: 'right center',\n      margin: '0 24px '\n    }, theme.breakpoints.up('sm'), {\n      margin: '0 14px'\n    }),\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"right\". */\n    tooltipPlacementRight: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n      transformOrigin: 'left center',\n      margin: '0 24px'\n    }, theme.breakpoints.up('sm'), {\n      margin: '0 14px'\n    }),\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"top\". */\n    tooltipPlacementTop: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n      transformOrigin: 'center bottom',\n      margin: '24px 0'\n    }, theme.breakpoints.up('sm'), {\n      margin: '14px 0'\n    }),\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"bottom\". */\n    tooltipPlacementBottom: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n      transformOrigin: 'center top',\n      margin: '24px 0'\n    }, theme.breakpoints.up('sm'), {\n      margin: '14px 0'\n    })\n  };\n};\nvar hystersisOpen = false;\nvar hystersisTimer = null;\nfunction testReset() {\n  hystersisOpen = false;\n  clearTimeout(hystersisTimer);\n}\nvar Tooltip = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"forwardRef\"](function Tooltip(props, ref) {\n  var _props$arrow = props.arrow,\n      arrow = _props$arrow === void 0 ? false : _props$arrow,\n      children = props.children,\n      classes = props.classes,\n      _props$disableFocusLi = props.disableFocusListener,\n      disableFocusListener = _props$disableFocusLi === void 0 ? false : _props$disableFocusLi,\n      _props$disableHoverLi = props.disableHoverListener,\n      disableHoverListener = _props$disableHoverLi === void 0 ? false : _props$disableHoverLi,\n      _props$disableTouchLi = props.disableTouchListener,\n      disableTouchListener = _props$disableTouchLi === void 0 ? false : _props$disableTouchLi,\n      _props$enterDelay = props.enterDelay,\n      enterDelay = _props$enterDelay === void 0 ? 100 : _props$enterDelay,\n      _props$enterNextDelay = props.enterNextDelay,\n      enterNextDelay = _props$enterNextDelay === void 0 ? 0 : _props$enterNextDelay,\n      _props$enterTouchDela = props.enterTouchDelay,\n      enterTouchDelay = _props$enterTouchDela === void 0 ? 700 : _props$enterTouchDela,\n      idProp = props.id,\n      _props$interactive = props.interactive,\n      interactive = _props$interactive === void 0 ? false : _props$interactive,\n      _props$leaveDelay = props.leaveDelay,\n      leaveDelay = _props$leaveDelay === void 0 ? 0 : _props$leaveDelay,\n      _props$leaveTouchDela = props.leaveTouchDelay,\n      leaveTouchDelay = _props$leaveTouchDela === void 0 ? 1500 : _props$leaveTouchDela,\n      onClose = props.onClose,\n      onOpen = props.onOpen,\n      openProp = props.open,\n      _props$placement = props.placement,\n      placement = _props$placement === void 0 ? 'bottom' : _props$placement,\n      _props$PopperComponen = props.PopperComponent,\n      PopperComponent = _props$PopperComponen === void 0 ? _Popper__WEBPACK_IMPORTED_MODULE_13__[\"default\"] : _props$PopperComponen,\n      PopperProps = props.PopperProps,\n      title = props.title,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? _Grow__WEBPACK_IMPORTED_MODULE_12__[\"default\"] : _props$TransitionComp,\n      TransitionProps = props.TransitionProps,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"arrow\", \"children\", \"classes\", \"disableFocusListener\", \"disableHoverListener\", \"disableTouchListener\", \"enterDelay\", \"enterNextDelay\", \"enterTouchDelay\", \"id\", \"interactive\", \"leaveDelay\", \"leaveTouchDelay\", \"onClose\", \"onOpen\", \"open\", \"placement\", \"PopperComponent\", \"PopperProps\", \"title\", \"TransitionComponent\", \"TransitionProps\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_19__[\"default\"])();\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](),\n      childNode = _React$useState[0],\n      setChildNode = _React$useState[1];\n\n  var _React$useState2 = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](null),\n      arrowRef = _React$useState2[0],\n      setArrowRef = _React$useState2[1];\n\n  var ignoreNonTouchEvents = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"](false);\n  var closeTimer = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"]();\n  var enterTimer = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"]();\n  var leaveTimer = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"]();\n  var touchTimer = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"]();\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_18__[\"default\"])({\n    controlled: openProp,\n    default: false,\n    name: 'Tooltip',\n    state: 'open'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useControlled, 2),\n      openState = _useControlled2[0],\n      setOpenState = _useControlled2[1];\n\n  var open = openState;\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    var _React$useRef = react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"](openProp !== undefined),\n        isControlled = _React$useRef.current; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n\n    react__WEBPACK_IMPORTED_MODULE_4__[\"useEffect\"](function () {\n      if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {\n        console.error(['Material-UI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Add a simple wrapper element, such as a `span`.'].join('\\n'));\n      }\n    }, [title, childNode, isControlled]);\n  }\n\n  var id = Object(_utils_unstable_useId__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(idProp);\n  react__WEBPACK_IMPORTED_MODULE_4__[\"useEffect\"](function () {\n    return function () {\n      clearTimeout(closeTimer.current);\n      clearTimeout(enterTimer.current);\n      clearTimeout(leaveTimer.current);\n      clearTimeout(touchTimer.current);\n    };\n  }, []);\n\n  var handleOpen = function handleOpen(event) {\n    clearTimeout(hystersisTimer);\n    hystersisOpen = true; // The mouseover event will trigger for every nested element in the tooltip.\n    // We can skip rerendering when the tooltip is already open.\n    // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n\n    setOpenState(true);\n\n    if (onOpen) {\n      onOpen(event);\n    }\n  };\n\n  var handleEnter = function handleEnter() {\n    var forward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    return function (event) {\n      var childrenProps = children.props;\n\n      if (event.type === 'mouseover' && childrenProps.onMouseOver && forward) {\n        childrenProps.onMouseOver(event);\n      }\n\n      if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {\n        return;\n      } // Remove the title ahead of time.\n      // We don't want to wait for the next render commit.\n      // We would risk displaying two tooltips at the same time (native + this one).\n\n\n      if (childNode) {\n        childNode.removeAttribute('title');\n      }\n\n      clearTimeout(enterTimer.current);\n      clearTimeout(leaveTimer.current);\n\n      if (enterDelay || hystersisOpen && enterNextDelay) {\n        event.persist();\n        enterTimer.current = setTimeout(function () {\n          handleOpen(event);\n        }, hystersisOpen ? enterNextDelay : enterDelay);\n      } else {\n        handleOpen(event);\n      }\n    };\n  };\n\n  var _useIsFocusVisible = Object(_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(),\n      isFocusVisible = _useIsFocusVisible.isFocusVisible,\n      onBlurVisible = _useIsFocusVisible.onBlurVisible,\n      focusVisibleRef = _useIsFocusVisible.ref;\n\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"](false),\n      childIsFocusVisible = _React$useState3[0],\n      setChildIsFocusVisible = _React$useState3[1];\n\n  var handleBlur = function handleBlur() {\n    if (childIsFocusVisible) {\n      setChildIsFocusVisible(false);\n      onBlurVisible();\n    }\n  };\n\n  var handleFocus = function handleFocus() {\n    var forward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    return function (event) {\n      // Workaround for https://github.com/facebook/react/issues/7769\n      // The autoFocus of React might trigger the event before the componentDidMount.\n      // We need to account for this eventuality.\n      if (!childNode) {\n        setChildNode(event.currentTarget);\n      }\n\n      if (isFocusVisible(event)) {\n        setChildIsFocusVisible(true);\n        handleEnter()(event);\n      }\n\n      var childrenProps = children.props;\n\n      if (childrenProps.onFocus && forward) {\n        childrenProps.onFocus(event);\n      }\n    };\n  };\n\n  var handleClose = function handleClose(event) {\n    clearTimeout(hystersisTimer);\n    hystersisTimer = setTimeout(function () {\n      hystersisOpen = false;\n    }, 800 + leaveDelay);\n    setOpenState(false);\n\n    if (onClose) {\n      onClose(event);\n    }\n\n    clearTimeout(closeTimer.current);\n    closeTimer.current = setTimeout(function () {\n      ignoreNonTouchEvents.current = false;\n    }, theme.transitions.duration.shortest);\n  };\n\n  var handleLeave = function handleLeave() {\n    var forward = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    return function (event) {\n      var childrenProps = children.props;\n\n      if (event.type === 'blur') {\n        if (childrenProps.onBlur && forward) {\n          childrenProps.onBlur(event);\n        }\n\n        handleBlur();\n      }\n\n      if (event.type === 'mouseleave' && childrenProps.onMouseLeave && event.currentTarget === childNode) {\n        childrenProps.onMouseLeave(event);\n      }\n\n      clearTimeout(enterTimer.current);\n      clearTimeout(leaveTimer.current);\n      event.persist();\n      leaveTimer.current = setTimeout(function () {\n        handleClose(event);\n      }, leaveDelay);\n    };\n  };\n\n  var detectTouchStart = function detectTouchStart(event) {\n    ignoreNonTouchEvents.current = true;\n    var childrenProps = children.props;\n\n    if (childrenProps.onTouchStart) {\n      childrenProps.onTouchStart(event);\n    }\n  };\n\n  var handleTouchStart = function handleTouchStart(event) {\n    detectTouchStart(event);\n    clearTimeout(leaveTimer.current);\n    clearTimeout(closeTimer.current);\n    clearTimeout(touchTimer.current);\n    event.persist();\n    touchTimer.current = setTimeout(function () {\n      handleEnter()(event);\n    }, enterTouchDelay);\n  };\n\n  var handleTouchEnd = function handleTouchEnd(event) {\n    if (children.props.onTouchEnd) {\n      children.props.onTouchEnd(event);\n    }\n\n    clearTimeout(touchTimer.current);\n    clearTimeout(leaveTimer.current);\n    event.persist();\n    leaveTimer.current = setTimeout(function () {\n      handleClose(event);\n    }, leaveTouchDelay);\n  };\n\n  var handleUseRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(setChildNode, ref);\n  var handleFocusRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(focusVisibleRef, handleUseRef); // can be removed once we drop support for non ref forwarding class components\n\n  var handleOwnRef = react__WEBPACK_IMPORTED_MODULE_4__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    Object(_utils_setRef__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(handleFocusRef, react_dom__WEBPACK_IMPORTED_MODULE_5__[\"findDOMNode\"](instance));\n  }, [handleFocusRef]);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(children.ref, handleOwnRef); // There is no point in displaying an empty tooltip.\n\n  if (title === '') {\n    open = false;\n  } // For accessibility and SEO concerns, we render the title to the DOM node when\n  // the tooltip is hidden. However, we have made a tradeoff when\n  // `disableHoverListener` is set. This title logic is disabled.\n  // It's allowing us to keep the implementation size minimal.\n  // We are open to change the tradeoff.\n\n\n  var shouldShowNativeTitle = !open && !disableHoverListener;\n\n  var childrenProps = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    'aria-describedby': open ? id : null,\n    title: shouldShowNativeTitle && typeof title === 'string' ? title : null\n  }, other, children.props, {\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(other.className, children.props.className),\n    onTouchStart: detectTouchStart,\n    ref: handleRef\n  });\n\n  var interactiveWrapperListeners = {};\n\n  if (!disableTouchListener) {\n    childrenProps.onTouchStart = handleTouchStart;\n    childrenProps.onTouchEnd = handleTouchEnd;\n  }\n\n  if (!disableHoverListener) {\n    childrenProps.onMouseOver = handleEnter();\n    childrenProps.onMouseLeave = handleLeave();\n\n    if (interactive) {\n      interactiveWrapperListeners.onMouseOver = handleEnter(false);\n      interactiveWrapperListeners.onMouseLeave = handleLeave(false);\n    }\n  }\n\n  if (!disableFocusListener) {\n    childrenProps.onFocus = handleFocus();\n    childrenProps.onBlur = handleLeave();\n\n    if (interactive) {\n      interactiveWrapperListeners.onFocus = handleFocus(false);\n      interactiveWrapperListeners.onBlur = handleLeave(false);\n    }\n  }\n\n  if (true) {\n    if (children.props.title) {\n      console.error(['Material-UI: You have provided a `title` prop to the child of <Tooltip />.', \"Remove this title prop `\".concat(children.props.title, \"` or the Tooltip component.\")].join('\\n'));\n    }\n  }\n\n  var mergedPopperProps = react__WEBPACK_IMPORTED_MODULE_4__[\"useMemo\"](function () {\n    return Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"deepmerge\"])({\n      popperOptions: {\n        modifiers: {\n          arrow: {\n            enabled: Boolean(arrowRef),\n            element: arrowRef\n          }\n        }\n      }\n    }, PopperProps);\n  }, [arrowRef, PopperProps]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_4__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"cloneElement\"](children, childrenProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](PopperComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(classes.popper, interactive && classes.popperInteractive, arrow && classes.popperArrow),\n    placement: placement,\n    anchorEl: childNode,\n    open: childNode ? open : false,\n    id: childrenProps['aria-describedby'],\n    transition: true\n  }, interactiveWrapperListeners, mergedPopperProps), function (_ref) {\n    var placementInner = _ref.placement,\n        TransitionPropsInner = _ref.TransitionProps;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      timeout: theme.transitions.duration.shorter\n    }, TransitionPropsInner, TransitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"div\", {\n      className: Object(clsx__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(classes.tooltip, classes[\"tooltipPlacement\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(placementInner.split('-')[0]))], ignoreNonTouchEvents.current && classes.touch, arrow && classes.tooltipArrow)\n    }, title, arrow ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__[\"createElement\"](\"span\", {\n      className: classes.arrow,\n      ref: setArrowRef\n    }) : null));\n  }));\n});\n true ? Tooltip.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, adds an arrow to the tooltip.\n   */\n  arrow: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * Tooltip reference element.\n   */\n  children: _material_ui_utils__WEBPACK_IMPORTED_MODULE_8__[\"elementAcceptingRef\"].isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.string,\n\n  /**\n   * Do not respond to focus events.\n   */\n  disableFocusListener: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * Do not respond to hover events.\n   */\n  disableHoverListener: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * Do not respond to long press touch events.\n   */\n  disableTouchListener: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * The number of milliseconds to wait before showing the tooltip.\n   * This prop won't impact the enter touch delay (`enterTouchDelay`).\n   */\n  enterDelay: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.number,\n\n  /**\n   * The number of milliseconds to wait before showing the tooltip when one was already recently opened.\n   */\n  enterNextDelay: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.number,\n\n  /**\n   * The number of milliseconds a user must touch the element before showing the tooltip.\n   */\n  enterTouchDelay: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.number,\n\n  /**\n   * This prop is used to help implement the accessibility logic.\n   * If you don't provide this prop. It falls back to a randomly generated id.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.string,\n\n  /**\n   * Makes a tooltip interactive, i.e. will not close when the user\n   * hovers over the tooltip before the `leaveDelay` is expired.\n   */\n  interactive: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * The number of milliseconds to wait before hiding the tooltip.\n   * This prop won't impact the leave touch delay (`leaveTouchDelay`).\n   */\n  leaveDelay: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.number,\n\n  /**\n   * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n   */\n  leaveTouchDelay: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.number,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.func,\n\n  /**\n   * Callback fired when the component requests to be open.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.func,\n\n  /**\n   * If `true`, the tooltip is shown.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool,\n\n  /**\n   * Tooltip placement.\n   */\n  placement: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n  /**\n   * The component used for the popper.\n   */\n  PopperComponent: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.elementType,\n\n  /**\n   * Props applied to the [`Popper`](/api/popper/) element.\n   */\n  PopperProps: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object,\n\n  /**\n   * Tooltip title. Zero-length titles string are never displayed.\n   */\n  title: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a\n  /* @typescript-to-proptypes-ignore */\n  .node.isRequired,\n\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/components/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   */\n  TransitionComponent: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.elementType,\n\n  /**\n   * Props applied to the [`Transition`](http://reactcommunity.org/react-transition-group/transition#Transition-props) element.\n   */\n  TransitionProps: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(styles, {\n  name: 'MuiTooltip',\n  flip: false\n})(Tooltip));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tooltip/Tooltip.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Tooltip/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Tooltip/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tooltip */ \"./node_modules/@material-ui/core/esm/Tooltip/Tooltip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Tooltip/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Typography/Typography.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Typography/Typography.js ***!
  \*********************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      margin: 0\n    },\n\n    /* Styles applied to the root element if `variant=\"body2\"`. */\n    body2: theme.typography.body2,\n\n    /* Styles applied to the root element if `variant=\"body1\"`. */\n    body1: theme.typography.body1,\n\n    /* Styles applied to the root element if `variant=\"caption\"`. */\n    caption: theme.typography.caption,\n\n    /* Styles applied to the root element if `variant=\"button\"`. */\n    button: theme.typography.button,\n\n    /* Styles applied to the root element if `variant=\"h1\"`. */\n    h1: theme.typography.h1,\n\n    /* Styles applied to the root element if `variant=\"h2\"`. */\n    h2: theme.typography.h2,\n\n    /* Styles applied to the root element if `variant=\"h3\"`. */\n    h3: theme.typography.h3,\n\n    /* Styles applied to the root element if `variant=\"h4\"`. */\n    h4: theme.typography.h4,\n\n    /* Styles applied to the root element if `variant=\"h5\"`. */\n    h5: theme.typography.h5,\n\n    /* Styles applied to the root element if `variant=\"h6\"`. */\n    h6: theme.typography.h6,\n\n    /* Styles applied to the root element if `variant=\"subtitle1\"`. */\n    subtitle1: theme.typography.subtitle1,\n\n    /* Styles applied to the root element if `variant=\"subtitle2\"`. */\n    subtitle2: theme.typography.subtitle2,\n\n    /* Styles applied to the root element if `variant=\"overline\"`. */\n    overline: theme.typography.overline,\n\n    /* Styles applied to the root element if `variant=\"srOnly\"`. Only accessible to screen readers. */\n    srOnly: {\n      position: 'absolute',\n      height: 1,\n      width: 1,\n      overflow: 'hidden'\n    },\n\n    /* Styles applied to the root element if `align=\"left\"`. */\n    alignLeft: {\n      textAlign: 'left'\n    },\n\n    /* Styles applied to the root element if `align=\"center\"`. */\n    alignCenter: {\n      textAlign: 'center'\n    },\n\n    /* Styles applied to the root element if `align=\"right\"`. */\n    alignRight: {\n      textAlign: 'right'\n    },\n\n    /* Styles applied to the root element if `align=\"justify\"`. */\n    alignJustify: {\n      textAlign: 'justify'\n    },\n\n    /* Styles applied to the root element if `nowrap={true}`. */\n    noWrap: {\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the root element if `gutterBottom={true}`. */\n    gutterBottom: {\n      marginBottom: '0.35em'\n    },\n\n    /* Styles applied to the root element if `paragraph={true}`. */\n    paragraph: {\n      marginBottom: 16\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `color=\"textPrimary\"`. */\n    colorTextPrimary: {\n      color: theme.palette.text.primary\n    },\n\n    /* Styles applied to the root element if `color=\"textSecondary\"`. */\n    colorTextSecondary: {\n      color: theme.palette.text.secondary\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      color: theme.palette.error.main\n    },\n\n    /* Styles applied to the root element if `display=\"inline\"`. */\n    displayInline: {\n      display: 'inline'\n    },\n\n    /* Styles applied to the root element if `display=\"block\"`. */\n    displayBlock: {\n      display: 'block'\n    }\n  };\n};\nvar defaultVariantMapping = {\n  h1: 'h1',\n  h2: 'h2',\n  h3: 'h3',\n  h4: 'h4',\n  h5: 'h5',\n  h6: 'h6',\n  subtitle1: 'h6',\n  subtitle2: 'h6',\n  body1: 'p',\n  body2: 'p'\n};\nvar Typography = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"](function Typography(props, ref) {\n  var _props$align = props.align,\n      align = _props$align === void 0 ? 'inherit' : _props$align,\n      classes = props.classes,\n      className = props.className,\n      _props$color = props.color,\n      color = _props$color === void 0 ? 'initial' : _props$color,\n      component = props.component,\n      _props$display = props.display,\n      display = _props$display === void 0 ? 'initial' : _props$display,\n      _props$gutterBottom = props.gutterBottom,\n      gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,\n      _props$noWrap = props.noWrap,\n      noWrap = _props$noWrap === void 0 ? false : _props$noWrap,\n      _props$paragraph = props.paragraph,\n      paragraph = _props$paragraph === void 0 ? false : _props$paragraph,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'body1' : _props$variant,\n      _props$variantMapping = props.variantMapping,\n      variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"align\", \"classes\", \"className\", \"color\", \"component\", \"display\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"]);\n\n  var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes[\"color\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes[\"align\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(align))], display !== 'initial' && classes[\"display\".concat(Object(_utils_capitalize__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(display))]),\n    ref: ref\n  }, other));\n});\n true ? Typography.propTypes = {\n  /**\n   * Set the text-align on the component.\n   */\n  align: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['inherit', 'left', 'center', 'right', 'justify']),\n\n  /**\n   * The content of the component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['initial', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary', 'error']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   * Overrides the behavior of the `variantMapping` prop.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Controls the display type\n   */\n  display: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['initial', 'block', 'inline']),\n\n  /**\n   * If `true`, the text will have a bottom margin.\n   */\n  gutterBottom: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n   *\n   * Note that text overflow can only happen with block or inline-block level elements\n   * (the element needs to have a width in order to overflow).\n   */\n  noWrap: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * If `true`, the text will have a bottom margin.\n   */\n  paragraph: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * Applies the theme typography styles.\n   */\n  variant: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'caption', 'button', 'overline', 'srOnly', 'inherit']),\n\n  /**\n   * The component maps the variant prop to a range of different HTML element types.\n   * For instance, subtitle1 to `<h6>`.\n   * If you wish to change that mapping, you can provide your own.\n   * Alternatively, you can use the `component` prop.\n   */\n  variantMapping: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(styles, {\n  name: 'MuiTypography'\n})(Typography));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Typography/Typography.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Typography/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Typography/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Typography */ \"./node_modules/@material-ui/core/esm/Typography/Typography.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Typography__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Typography/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_ownerDocument__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */\n\n\n\n\n\n\n/**\n * Utility component that locks focus inside the component.\n */\n\nfunction Unstable_TrapFocus(props) {\n  var children = props.children,\n      _props$disableAutoFoc = props.disableAutoFocus,\n      disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,\n      _props$disableEnforce = props.disableEnforceFocus,\n      disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,\n      _props$disableRestore = props.disableRestoreFocus,\n      disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,\n      getDoc = props.getDoc,\n      isEnabled = props.isEnabled,\n      open = props.open;\n  var ignoreNextEnforceFocus = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"]();\n  var sentinelStart = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](null);\n  var sentinelEnd = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](null);\n  var nodeToRestore = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"]();\n  var rootRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](null); // can be removed once we drop support for non ref forwarding class components\n\n  var handleOwnRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"](function (instance) {\n    // #StrictMode ready\n    rootRef.current = react_dom__WEBPACK_IMPORTED_MODULE_1__[\"findDOMNode\"](instance);\n  }, []);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(children.ref, handleOwnRef);\n  var prevOpenRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"]();\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    prevOpenRef.current = open;\n  }, [open]);\n\n  if (!prevOpenRef.current && open && typeof window !== 'undefined') {\n    // WARNING: Potentially unsafe in concurrent mode.\n    // The way the read on `nodeToRestore` is setup could make this actually safe.\n    // Say we render `open={false}` -> `open={true}` but never commit.\n    // We have now written a state that wasn't committed. But no committed effect\n    // will read this wrong value. We only read from `nodeToRestore` in effects\n    // that were committed on `open={true}`\n    // WARNING: Prevents the instance from being garbage collected. Should only\n    // hold a weak ref.\n    nodeToRestore.current = getDoc().activeElement;\n  }\n\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    if (!open) {\n      return;\n    }\n\n    var doc = Object(_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(rootRef.current); // We might render an empty child.\n\n    if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n      if (!rootRef.current.hasAttribute('tabIndex')) {\n        if (true) {\n          console.error(['Material-UI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n        }\n\n        rootRef.current.setAttribute('tabIndex', -1);\n      }\n\n      rootRef.current.focus();\n    }\n\n    var contain = function contain() {\n      var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.\n      // Contain can be called between the component being unmounted and its cleanup function being run.\n\n      if (rootElement === null) {\n        return;\n      }\n\n      if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {\n        ignoreNextEnforceFocus.current = false;\n        return;\n      }\n\n      if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {\n        rootRef.current.focus();\n      }\n    };\n\n    var loopFocus = function loopFocus(event) {\n      // 9 = Tab\n      if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {\n        return;\n      } // Make sure the next tab starts from the right place.\n\n\n      if (doc.activeElement === rootRef.current) {\n        // We need to ignore the next contain as\n        // it will try to move the focus back to the rootRef element.\n        ignoreNextEnforceFocus.current = true;\n\n        if (event.shiftKey) {\n          sentinelEnd.current.focus();\n        } else {\n          sentinelStart.current.focus();\n        }\n      }\n    };\n\n    doc.addEventListener('focus', contain, true);\n    doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area\n    // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n    //\n    // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n    // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n\n    var interval = setInterval(function () {\n      contain();\n    }, 50);\n    return function () {\n      clearInterval(interval);\n      doc.removeEventListener('focus', contain, true);\n      doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()\n\n      if (!disableRestoreFocus) {\n        // In IE 11 it is possible for document.activeElement to be null resulting\n        // in nodeToRestore.current being null.\n        // Not all elements in IE 11 have a focus method.\n        // Once IE 11 support is dropped the focus() call can be unconditional.\n        if (nodeToRestore.current && nodeToRestore.current.focus) {\n          nodeToRestore.current.focus();\n        }\n\n        nodeToRestore.current = null;\n      }\n    };\n  }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"div\", {\n    tabIndex: 0,\n    ref: sentinelStart,\n    \"data-test\": \"sentinelStart\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"](children, {\n    ref: handleRef\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"div\", {\n    tabIndex: 0,\n    ref: sentinelEnd,\n    \"data-test\": \"sentinelEnd\"\n  }));\n}\n\n true ? Unstable_TrapFocus.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node,\n\n  /**\n   * If `true`, the trap focus will not automatically shift focus to itself when it opens, and\n   * replace it to the last focused element when it closes.\n   * This also works correctly with any trap focus children that have the `disableAutoFocus` prop.\n   *\n   * Generally this should never be set to `true` as it makes the trap focus less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableAutoFocus: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * If `true`, the trap focus will not prevent focus from leaving the trap focus while open.\n   *\n   * Generally this should never be set to `true` as it makes the trap focus less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableEnforceFocus: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * If `true`, the trap focus will not restore focus to previously focused element once\n   * trap focus is hidden.\n   */\n  disableRestoreFocus: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * Return the document to consider.\n   * We use it to implement the restore focus between different browser documents.\n   */\n  getDoc: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n\n  /**\n   * Do we still want to enforce the focus?\n   * This prop helps nesting TrapFocus elements.\n   */\n  isEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n\n  /**\n   * If `true`, focus will be locked.\n   */\n  open: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired\n} : undefined;\n\nif (true) {\n  // eslint-disable-next-line\n  Unstable_TrapFocus['propTypes' + ''] = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"exactProp\"])(Unstable_TrapFocus.propTypes);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Unstable_TrapFocus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Unstable_TrapFocus/index.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/index.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Unstable_TrapFocus */ \"./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Unstable_TrapFocus/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Zoom/Zoom.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Zoom/Zoom.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-transition-group */ \"./node_modules/react-transition-group/esm/index.js\");\n/* harmony import */ var _styles_transitions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../styles/transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _transitions_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../transitions/utils */ \"./node_modules/@material-ui/core/esm/transitions/utils.js\");\n/* harmony import */ var _utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  entering: {\n    transform: 'none'\n  },\n  entered: {\n    transform: 'none'\n  }\n};\nvar defaultTimeout = {\n  enter: _styles_transitions__WEBPACK_IMPORTED_MODULE_6__[\"duration\"].enteringScreen,\n  exit: _styles_transitions__WEBPACK_IMPORTED_MODULE_6__[\"duration\"].leavingScreen\n};\n/**\n * The Zoom transition can be used for the floating variant of the\n * [Button](/components/buttons/#floating-action-buttons) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Zoom = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function Zoom(props, ref) {\n  var children = props.children,\n      _props$disableStrictM = props.disableStrictModeCompat,\n      disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,\n      inProp = props.in,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      style = props.style,\n      _props$timeout = props.timeout,\n      timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n      _props$TransitionComp = props.TransitionComponent,\n      TransitionComponent = _props$TransitionComp === void 0 ? react_transition_group__WEBPACK_IMPORTED_MODULE_5__[\"Transition\"] : _props$TransitionComp,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"children\", \"disableStrictModeCompat\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n  var theme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n  var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;\n  var nodeRef = react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"](null);\n  var foreignRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(children.ref, ref);\n  var handleRef = Object(_utils_useForkRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(enableStrictModeCompat ? nodeRef : undefined, foreignRef);\n\n  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n    return function (nodeOrAppearing, maybeAppearing) {\n      if (callback) {\n        var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],\n            _ref2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, 2),\n            node = _ref2[0],\n            isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n\n        if (isAppearing === undefined) {\n          callback(node);\n        } else {\n          callback(node, isAppearing);\n        }\n      }\n    };\n  };\n\n  var handleEntering = normalizedTransitionCallback(onEntering);\n  var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n    Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_8__[\"reflow\"])(node); // So the animation always start from the start.\n\n    var transitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_8__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'enter'\n    });\n    node.style.webkitTransition = theme.transitions.create('transform', transitionProps);\n    node.style.transition = theme.transitions.create('transform', transitionProps);\n\n    if (onEnter) {\n      onEnter(node, isAppearing);\n    }\n  });\n  var handleEntered = normalizedTransitionCallback(onEntered);\n  var handleExiting = normalizedTransitionCallback(onExiting);\n  var handleExit = normalizedTransitionCallback(function (node) {\n    var transitionProps = Object(_transitions_utils__WEBPACK_IMPORTED_MODULE_8__[\"getTransitionProps\"])({\n      style: style,\n      timeout: timeout\n    }, {\n      mode: 'exit'\n    });\n    node.style.webkitTransition = theme.transitions.create('transform', transitionProps);\n    node.style.transition = theme.transitions.create('transform', transitionProps);\n\n    if (onExit) {\n      onExit(node);\n    }\n  });\n  var handleExited = normalizedTransitionCallback(onExited);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](TransitionComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    appear: true,\n    in: inProp,\n    nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n    onEnter: handleEnter,\n    onEntered: handleEntered,\n    onEntering: handleEntering,\n    onExit: handleExit,\n    onExited: handleExited,\n    onExiting: handleExiting,\n    timeout: timeout\n  }, other), function (state, childProps) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"](children, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      style: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        transform: 'scale(0)',\n        visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n      }, styles[state], style, children.props.style),\n      ref: handleRef\n    }, childProps));\n  });\n});\n true ? Zoom.propTypes = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * A single child content element.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.element,\n\n  /**\n   * Enable this prop if you encounter 'Function components cannot be given refs',\n   * use `unstable_createStrictModeTheme`,\n   * and can't forward the ref in the child component.\n   */\n  disableStrictModeCompat: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the component will transition in.\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  style: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  timeout: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.shape({\n    appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n    exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n  })])\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Zoom);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Zoom/Zoom.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/Zoom/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/Zoom/index.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Zoom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Zoom */ \"./node_modules/@material-ui/core/esm/Zoom/Zoom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _Zoom__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/Zoom/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/amber.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/amber.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar amber = {\n  50: '#fff8e1',\n  100: '#ffecb3',\n  200: '#ffe082',\n  300: '#ffd54f',\n  400: '#ffca28',\n  500: '#ffc107',\n  600: '#ffb300',\n  700: '#ffa000',\n  800: '#ff8f00',\n  900: '#ff6f00',\n  A100: '#ffe57f',\n  A200: '#ffd740',\n  A400: '#ffc400',\n  A700: '#ffab00'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (amber);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/amber.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/blue.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/blue.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar blue = {\n  50: '#e3f2fd',\n  100: '#bbdefb',\n  200: '#90caf9',\n  300: '#64b5f6',\n  400: '#42a5f5',\n  500: '#2196f3',\n  600: '#1e88e5',\n  700: '#1976d2',\n  800: '#1565c0',\n  900: '#0d47a1',\n  A100: '#82b1ff',\n  A200: '#448aff',\n  A400: '#2979ff',\n  A700: '#2962ff'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (blue);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/blue.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/blueGrey.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/blueGrey.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar blueGrey = {\n  50: '#eceff1',\n  100: '#cfd8dc',\n  200: '#b0bec5',\n  300: '#90a4ae',\n  400: '#78909c',\n  500: '#607d8b',\n  600: '#546e7a',\n  700: '#455a64',\n  800: '#37474f',\n  900: '#263238',\n  A100: '#cfd8dc',\n  A200: '#b0bec5',\n  A400: '#78909c',\n  A700: '#455a64'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (blueGrey);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/blueGrey.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/brown.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/brown.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar brown = {\n  50: '#efebe9',\n  100: '#d7ccc8',\n  200: '#bcaaa4',\n  300: '#a1887f',\n  400: '#8d6e63',\n  500: '#795548',\n  600: '#6d4c41',\n  700: '#5d4037',\n  800: '#4e342e',\n  900: '#3e2723',\n  A100: '#d7ccc8',\n  A200: '#bcaaa4',\n  A400: '#8d6e63',\n  A700: '#5d4037'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (brown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/brown.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/common.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/common.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar common = {\n  black: '#000',\n  white: '#fff'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (common);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/common.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/cyan.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/cyan.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar cyan = {\n  50: '#e0f7fa',\n  100: '#b2ebf2',\n  200: '#80deea',\n  300: '#4dd0e1',\n  400: '#26c6da',\n  500: '#00bcd4',\n  600: '#00acc1',\n  700: '#0097a7',\n  800: '#00838f',\n  900: '#006064',\n  A100: '#84ffff',\n  A200: '#18ffff',\n  A400: '#00e5ff',\n  A700: '#00b8d4'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (cyan);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/cyan.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/deepOrange.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/deepOrange.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar deepOrange = {\n  50: '#fbe9e7',\n  100: '#ffccbc',\n  200: '#ffab91',\n  300: '#ff8a65',\n  400: '#ff7043',\n  500: '#ff5722',\n  600: '#f4511e',\n  700: '#e64a19',\n  800: '#d84315',\n  900: '#bf360c',\n  A100: '#ff9e80',\n  A200: '#ff6e40',\n  A400: '#ff3d00',\n  A700: '#dd2c00'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (deepOrange);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/deepOrange.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/deepPurple.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/deepPurple.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar deepPurple = {\n  50: '#ede7f6',\n  100: '#d1c4e9',\n  200: '#b39ddb',\n  300: '#9575cd',\n  400: '#7e57c2',\n  500: '#673ab7',\n  600: '#5e35b1',\n  700: '#512da8',\n  800: '#4527a0',\n  900: '#311b92',\n  A100: '#b388ff',\n  A200: '#7c4dff',\n  A400: '#651fff',\n  A700: '#6200ea'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (deepPurple);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/deepPurple.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/green.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/green.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar green = {\n  50: '#e8f5e9',\n  100: '#c8e6c9',\n  200: '#a5d6a7',\n  300: '#81c784',\n  400: '#66bb6a',\n  500: '#4caf50',\n  600: '#43a047',\n  700: '#388e3c',\n  800: '#2e7d32',\n  900: '#1b5e20',\n  A100: '#b9f6ca',\n  A200: '#69f0ae',\n  A400: '#00e676',\n  A700: '#00c853'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (green);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/green.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/grey.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/grey.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar grey = {\n  50: '#fafafa',\n  100: '#f5f5f5',\n  200: '#eeeeee',\n  300: '#e0e0e0',\n  400: '#bdbdbd',\n  500: '#9e9e9e',\n  600: '#757575',\n  700: '#616161',\n  800: '#424242',\n  900: '#212121',\n  A100: '#d5d5d5',\n  A200: '#aaaaaa',\n  A400: '#303030',\n  A700: '#616161'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (grey);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/grey.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/index.js ***!
  \************************************************************/
/*! exports provided: common, red, pink, purple, deepPurple, indigo, blue, lightBlue, cyan, teal, green, lightGreen, lime, yellow, amber, orange, deepOrange, brown, grey, blueGrey */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common */ \"./node_modules/@material-ui/core/esm/colors/common.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"common\", function() { return _common__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _red__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./red */ \"./node_modules/@material-ui/core/esm/colors/red.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"red\", function() { return _red__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _pink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pink */ \"./node_modules/@material-ui/core/esm/colors/pink.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pink\", function() { return _pink__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _purple__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./purple */ \"./node_modules/@material-ui/core/esm/colors/purple.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"purple\", function() { return _purple__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _deepPurple__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./deepPurple */ \"./node_modules/@material-ui/core/esm/colors/deepPurple.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepPurple\", function() { return _deepPurple__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _indigo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./indigo */ \"./node_modules/@material-ui/core/esm/colors/indigo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indigo\", function() { return _indigo__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _blue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blue */ \"./node_modules/@material-ui/core/esm/colors/blue.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"blue\", function() { return _blue__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _lightBlue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./lightBlue */ \"./node_modules/@material-ui/core/esm/colors/lightBlue.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lightBlue\", function() { return _lightBlue__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _cyan__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cyan */ \"./node_modules/@material-ui/core/esm/colors/cyan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cyan\", function() { return _cyan__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _teal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./teal */ \"./node_modules/@material-ui/core/esm/colors/teal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"teal\", function() { return _teal__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _green__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./green */ \"./node_modules/@material-ui/core/esm/colors/green.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"green\", function() { return _green__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _lightGreen__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./lightGreen */ \"./node_modules/@material-ui/core/esm/colors/lightGreen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lightGreen\", function() { return _lightGreen__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _lime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./lime */ \"./node_modules/@material-ui/core/esm/colors/lime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lime\", function() { return _lime__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _yellow__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./yellow */ \"./node_modules/@material-ui/core/esm/colors/yellow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"yellow\", function() { return _yellow__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _amber__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./amber */ \"./node_modules/@material-ui/core/esm/colors/amber.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"amber\", function() { return _amber__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _orange__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./orange */ \"./node_modules/@material-ui/core/esm/colors/orange.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"orange\", function() { return _orange__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _deepOrange__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./deepOrange */ \"./node_modules/@material-ui/core/esm/colors/deepOrange.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepOrange\", function() { return _deepOrange__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _brown__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./brown */ \"./node_modules/@material-ui/core/esm/colors/brown.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"brown\", function() { return _brown__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _grey__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./grey */ \"./node_modules/@material-ui/core/esm/colors/grey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"grey\", function() { return _grey__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _blueGrey__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./blueGrey */ \"./node_modules/@material-ui/core/esm/colors/blueGrey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"blueGrey\", function() { return _blueGrey__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/indigo.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/indigo.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar indigo = {\n  50: '#e8eaf6',\n  100: '#c5cae9',\n  200: '#9fa8da',\n  300: '#7986cb',\n  400: '#5c6bc0',\n  500: '#3f51b5',\n  600: '#3949ab',\n  700: '#303f9f',\n  800: '#283593',\n  900: '#1a237e',\n  A100: '#8c9eff',\n  A200: '#536dfe',\n  A400: '#3d5afe',\n  A700: '#304ffe'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (indigo);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/indigo.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/lightBlue.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/lightBlue.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar lightBlue = {\n  50: '#e1f5fe',\n  100: '#b3e5fc',\n  200: '#81d4fa',\n  300: '#4fc3f7',\n  400: '#29b6f6',\n  500: '#03a9f4',\n  600: '#039be5',\n  700: '#0288d1',\n  800: '#0277bd',\n  900: '#01579b',\n  A100: '#80d8ff',\n  A200: '#40c4ff',\n  A400: '#00b0ff',\n  A700: '#0091ea'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (lightBlue);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/lightBlue.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/lightGreen.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/lightGreen.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar lightGreen = {\n  50: '#f1f8e9',\n  100: '#dcedc8',\n  200: '#c5e1a5',\n  300: '#aed581',\n  400: '#9ccc65',\n  500: '#8bc34a',\n  600: '#7cb342',\n  700: '#689f38',\n  800: '#558b2f',\n  900: '#33691e',\n  A100: '#ccff90',\n  A200: '#b2ff59',\n  A400: '#76ff03',\n  A700: '#64dd17'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (lightGreen);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/lightGreen.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/lime.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/lime.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar lime = {\n  50: '#f9fbe7',\n  100: '#f0f4c3',\n  200: '#e6ee9c',\n  300: '#dce775',\n  400: '#d4e157',\n  500: '#cddc39',\n  600: '#c0ca33',\n  700: '#afb42b',\n  800: '#9e9d24',\n  900: '#827717',\n  A100: '#f4ff81',\n  A200: '#eeff41',\n  A400: '#c6ff00',\n  A700: '#aeea00'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (lime);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/lime.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/orange.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/orange.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar orange = {\n  50: '#fff3e0',\n  100: '#ffe0b2',\n  200: '#ffcc80',\n  300: '#ffb74d',\n  400: '#ffa726',\n  500: '#ff9800',\n  600: '#fb8c00',\n  700: '#f57c00',\n  800: '#ef6c00',\n  900: '#e65100',\n  A100: '#ffd180',\n  A200: '#ffab40',\n  A400: '#ff9100',\n  A700: '#ff6d00'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (orange);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/orange.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/pink.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/pink.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar pink = {\n  50: '#fce4ec',\n  100: '#f8bbd0',\n  200: '#f48fb1',\n  300: '#f06292',\n  400: '#ec407a',\n  500: '#e91e63',\n  600: '#d81b60',\n  700: '#c2185b',\n  800: '#ad1457',\n  900: '#880e4f',\n  A100: '#ff80ab',\n  A200: '#ff4081',\n  A400: '#f50057',\n  A700: '#c51162'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (pink);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/pink.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/purple.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/purple.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar purple = {\n  50: '#f3e5f5',\n  100: '#e1bee7',\n  200: '#ce93d8',\n  300: '#ba68c8',\n  400: '#ab47bc',\n  500: '#9c27b0',\n  600: '#8e24aa',\n  700: '#7b1fa2',\n  800: '#6a1b9a',\n  900: '#4a148c',\n  A100: '#ea80fc',\n  A200: '#e040fb',\n  A400: '#d500f9',\n  A700: '#aa00ff'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (purple);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/purple.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/red.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/red.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar red = {\n  50: '#ffebee',\n  100: '#ffcdd2',\n  200: '#ef9a9a',\n  300: '#e57373',\n  400: '#ef5350',\n  500: '#f44336',\n  600: '#e53935',\n  700: '#d32f2f',\n  800: '#c62828',\n  900: '#b71c1c',\n  A100: '#ff8a80',\n  A200: '#ff5252',\n  A400: '#ff1744',\n  A700: '#d50000'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (red);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/red.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/teal.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/teal.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar teal = {\n  50: '#e0f2f1',\n  100: '#b2dfdb',\n  200: '#80cbc4',\n  300: '#4db6ac',\n  400: '#26a69a',\n  500: '#009688',\n  600: '#00897b',\n  700: '#00796b',\n  800: '#00695c',\n  900: '#004d40',\n  A100: '#a7ffeb',\n  A200: '#64ffda',\n  A400: '#1de9b6',\n  A700: '#00bfa5'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (teal);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/teal.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/colors/yellow.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/colors/yellow.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar yellow = {\n  50: '#fffde7',\n  100: '#fff9c4',\n  200: '#fff59d',\n  300: '#fff176',\n  400: '#ffee58',\n  500: '#ffeb3b',\n  600: '#fdd835',\n  700: '#fbc02d',\n  800: '#f9a825',\n  900: '#f57f17',\n  A100: '#ffff8d',\n  A200: '#ffff00',\n  A400: '#ffea00',\n  A700: '#ffd600'\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (yellow);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/colors/yellow.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/index.js ***!
  \*****************************************************/
/*! exports provided: colors, hexToRgb, rgbToHex, hslToRgb, decomposeColor, recomposeColor, getContrastRatio, getLuminance, emphasize, fade, darken, lighten, createMuiTheme, unstable_createMuiStrictModeTheme, createStyles, makeStyles, responsiveFontSizes, styled, easing, duration, useTheme, withStyles, withTheme, createGenerateClassName, jssPreset, ServerStyleSheets, StylesProvider, MuiThemeProvider, ThemeProvider, capitalize, createChainedFunction, createSvgIcon, debounce, deprecatedPropType, isMuiElement, ownerDocument, ownerWindow, requirePropFactory, setRef, unsupportedProp, useControlled, useEventCallback, useForkRef, unstable_useId, useIsFocusVisible, Accordion, AccordionActions, AccordionDetails, AccordionSummary, AppBar, Avatar, Backdrop, Badge, BottomNavigation, BottomNavigationAction, Box, styleFunction, Breadcrumbs, Button, ButtonBase, ButtonGroup, Card, CardActionArea, CardActions, CardContent, CardHeader, CardMedia, Checkbox, Chip, CircularProgress, ClickAwayListener, Collapse, Container, CssBaseline, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, Drawer, ExpansionPanel, ExpansionPanelActions, ExpansionPanelDetails, ExpansionPanelSummary, Fab, Fade, FilledInput, FormControl, useFormControl, FormControlLabel, FormGroup, FormHelperText, FormLabel, Grid, GridList, GridListTile, GridListTileBar, Grow, Hidden, Icon, IconButton, Input, InputAdornment, InputBase, InputLabel, LinearProgress, Link, List, ListItem, ListItemAvatar, ListItemIcon, ListItemSecondaryAction, ListItemText, ListSubheader, Menu, MenuItem, MenuList, MobileStepper, Modal, ModalManager, NativeSelect, NoSsr, OutlinedInput, Paper, Popover, Popper, Portal, Radio, RadioGroup, useRadioGroup, RootRef, Select, Slide, Slider, Snackbar, SnackbarContent, Step, StepButton, StepConnector, StepContent, StepIcon, StepLabel, Stepper, SvgIcon, SwipeableDrawer, Switch, Tab, Table, TableBody, TableCell, TableContainer, TableFooter, TableHead, TablePagination, TableRow, TableSortLabel, Tabs, TabScrollButton, TextField, TextareaAutosize, Toolbar, Tooltip, Typography, Unstable_TrapFocus, useMediaQuery, useScrollTrigger, withMobileDialog, withWidth, isWidthUp, isWidthDown, Zoom */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colors */ \"./node_modules/@material-ui/core/esm/colors/index.js\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"colors\", function() { return _colors__WEBPACK_IMPORTED_MODULE_0__; });\n/* harmony import */ var _styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./styles */ \"./node_modules/@material-ui/core/esm/styles/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hexToRgb\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"hexToRgb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rgbToHex\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"rgbToHex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hslToRgb\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"hslToRgb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"decomposeColor\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"decomposeColor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"recomposeColor\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"recomposeColor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getContrastRatio\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"getContrastRatio\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLuminance\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"getLuminance\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"emphasize\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"emphasize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fade\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"fade\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"darken\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"darken\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lighten\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"lighten\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createMuiTheme\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"createMuiTheme\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unstable_createMuiStrictModeTheme\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"unstable_createMuiStrictModeTheme\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createStyles\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"createStyles\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeStyles\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"makeStyles\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"responsiveFontSizes\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"responsiveFontSizes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"styled\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"styled\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easing\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"easing\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"duration\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"duration\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useTheme\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"useTheme\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withStyles\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"withStyles\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withTheme\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"withTheme\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createGenerateClassName\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"createGenerateClassName\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"jssPreset\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"jssPreset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ServerStyleSheets\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"ServerStyleSheets\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StylesProvider\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"StylesProvider\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MuiThemeProvider\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"MuiThemeProvider\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThemeProvider\", function() { return _styles__WEBPACK_IMPORTED_MODULE_1__[\"ThemeProvider\"]; });\n\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./node_modules/@material-ui/core/esm/utils/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"capitalize\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"capitalize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createChainedFunction\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"createChainedFunction\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createSvgIcon\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"createSvgIcon\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"debounce\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deprecatedPropType\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"deprecatedPropType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isMuiElement\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"isMuiElement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ownerDocument\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"ownerDocument\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ownerWindow\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"ownerWindow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"requirePropFactory\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"requirePropFactory\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setRef\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"setRef\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unsupportedProp\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"unsupportedProp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useControlled\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"useControlled\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useEventCallback\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"useEventCallback\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useForkRef\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"useForkRef\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unstable_useId\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"unstable_useId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useIsFocusVisible\", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__[\"useIsFocusVisible\"]; });\n\n/* harmony import */ var _Accordion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Accordion */ \"./node_modules/@material-ui/core/esm/Accordion/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Accordion\", function() { return _Accordion__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _AccordionActions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AccordionActions */ \"./node_modules/@material-ui/core/esm/AccordionActions/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AccordionActions\", function() { return _AccordionActions__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _AccordionDetails__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AccordionDetails */ \"./node_modules/@material-ui/core/esm/AccordionDetails/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AccordionDetails\", function() { return _AccordionDetails__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _AccordionSummary__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AccordionSummary */ \"./node_modules/@material-ui/core/esm/AccordionSummary/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AccordionSummary\", function() { return _AccordionSummary__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _AppBar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AppBar */ \"./node_modules/@material-ui/core/esm/AppBar/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AppBar\", function() { return _AppBar__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Avatar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Avatar */ \"./node_modules/@material-ui/core/esm/Avatar/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Avatar\", function() { return _Avatar__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Backdrop__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Backdrop */ \"./node_modules/@material-ui/core/esm/Backdrop/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Backdrop\", function() { return _Backdrop__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Badge__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Badge */ \"./node_modules/@material-ui/core/esm/Badge/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Badge\", function() { return _Badge__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _BottomNavigation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./BottomNavigation */ \"./node_modules/@material-ui/core/esm/BottomNavigation/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BottomNavigation\", function() { return _BottomNavigation__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _BottomNavigationAction__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./BottomNavigationAction */ \"./node_modules/@material-ui/core/esm/BottomNavigationAction/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BottomNavigationAction\", function() { return _BottomNavigationAction__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Box__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Box */ \"./node_modules/@material-ui/core/esm/Box/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Box\", function() { return _Box__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"styleFunction\", function() { return _Box__WEBPACK_IMPORTED_MODULE_13__[\"styleFunction\"]; });\n\n/* harmony import */ var _Breadcrumbs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Breadcrumbs */ \"./node_modules/@material-ui/core/esm/Breadcrumbs/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Breadcrumbs\", function() { return _Breadcrumbs__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Button */ \"./node_modules/@material-ui/core/esm/Button/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Button\", function() { return _Button__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ButtonBase__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ButtonBase */ \"./node_modules/@material-ui/core/esm/ButtonBase/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ButtonBase\", function() { return _ButtonBase__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ButtonGroup__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ButtonGroup */ \"./node_modules/@material-ui/core/esm/ButtonGroup/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ButtonGroup\", function() { return _ButtonGroup__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Card__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Card */ \"./node_modules/@material-ui/core/esm/Card/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Card\", function() { return _Card__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CardActionArea__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./CardActionArea */ \"./node_modules/@material-ui/core/esm/CardActionArea/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CardActionArea\", function() { return _CardActionArea__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CardActions__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./CardActions */ \"./node_modules/@material-ui/core/esm/CardActions/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CardActions\", function() { return _CardActions__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CardContent__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./CardContent */ \"./node_modules/@material-ui/core/esm/CardContent/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CardContent\", function() { return _CardContent__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CardHeader__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./CardHeader */ \"./node_modules/@material-ui/core/esm/CardHeader/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CardHeader\", function() { return _CardHeader__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CardMedia__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./CardMedia */ \"./node_modules/@material-ui/core/esm/CardMedia/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CardMedia\", function() { return _CardMedia__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Checkbox__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Checkbox */ \"./node_modules/@material-ui/core/esm/Checkbox/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Checkbox\", function() { return _Checkbox__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Chip__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Chip */ \"./node_modules/@material-ui/core/esm/Chip/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Chip\", function() { return _Chip__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CircularProgress__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./CircularProgress */ \"./node_modules/@material-ui/core/esm/CircularProgress/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CircularProgress\", function() { return _CircularProgress__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ClickAwayListener__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./ClickAwayListener */ \"./node_modules/@material-ui/core/esm/ClickAwayListener/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ClickAwayListener\", function() { return _ClickAwayListener__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Collapse__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./Collapse */ \"./node_modules/@material-ui/core/esm/Collapse/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Collapse\", function() { return _Collapse__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Container__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Container */ \"./node_modules/@material-ui/core/esm/Container/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Container\", function() { return _Container__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _CssBaseline__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./CssBaseline */ \"./node_modules/@material-ui/core/esm/CssBaseline/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CssBaseline\", function() { return _CssBaseline__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Dialog */ \"./node_modules/@material-ui/core/esm/Dialog/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Dialog\", function() { return _Dialog__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _DialogActions__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./DialogActions */ \"./node_modules/@material-ui/core/esm/DialogActions/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DialogActions\", function() { return _DialogActions__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _DialogContent__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./DialogContent */ \"./node_modules/@material-ui/core/esm/DialogContent/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DialogContent\", function() { return _DialogContent__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _DialogContentText__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./DialogContentText */ \"./node_modules/@material-ui/core/esm/DialogContentText/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DialogContentText\", function() { return _DialogContentText__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _DialogTitle__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./DialogTitle */ \"./node_modules/@material-ui/core/esm/DialogTitle/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DialogTitle\", function() { return _DialogTitle__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Divider__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Divider */ \"./node_modules/@material-ui/core/esm/Divider/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Divider\", function() { return _Divider__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Drawer__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Drawer */ \"./node_modules/@material-ui/core/esm/Drawer/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Drawer\", function() { return _Drawer__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ExpansionPanel__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./ExpansionPanel */ \"./node_modules/@material-ui/core/esm/ExpansionPanel/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExpansionPanel\", function() { return _ExpansionPanel__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ExpansionPanelActions__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./ExpansionPanelActions */ \"./node_modules/@material-ui/core/esm/ExpansionPanelActions/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExpansionPanelActions\", function() { return _ExpansionPanelActions__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ExpansionPanelDetails__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./ExpansionPanelDetails */ \"./node_modules/@material-ui/core/esm/ExpansionPanelDetails/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExpansionPanelDetails\", function() { return _ExpansionPanelDetails__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ExpansionPanelSummary__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./ExpansionPanelSummary */ \"./node_modules/@material-ui/core/esm/ExpansionPanelSummary/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExpansionPanelSummary\", function() { return _ExpansionPanelSummary__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Fab__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./Fab */ \"./node_modules/@material-ui/core/esm/Fab/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Fab\", function() { return _Fab__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Fade__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./Fade */ \"./node_modules/@material-ui/core/esm/Fade/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Fade\", function() { return _Fade__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _FilledInput__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./FilledInput */ \"./node_modules/@material-ui/core/esm/FilledInput/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FilledInput\", function() { return _FilledInput__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _FormControl__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./FormControl */ \"./node_modules/@material-ui/core/esm/FormControl/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormControl\", function() { return _FormControl__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useFormControl\", function() { return _FormControl__WEBPACK_IMPORTED_MODULE_45__[\"useFormControl\"]; });\n\n/* harmony import */ var _FormControlLabel__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./FormControlLabel */ \"./node_modules/@material-ui/core/esm/FormControlLabel/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormControlLabel\", function() { return _FormControlLabel__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _FormGroup__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./FormGroup */ \"./node_modules/@material-ui/core/esm/FormGroup/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormGroup\", function() { return _FormGroup__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _FormHelperText__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./FormHelperText */ \"./node_modules/@material-ui/core/esm/FormHelperText/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormHelperText\", function() { return _FormHelperText__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _FormLabel__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./FormLabel */ \"./node_modules/@material-ui/core/esm/FormLabel/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormLabel\", function() { return _FormLabel__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Grid__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./Grid */ \"./node_modules/@material-ui/core/esm/Grid/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Grid\", function() { return _Grid__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _GridList__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./GridList */ \"./node_modules/@material-ui/core/esm/GridList/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GridList\", function() { return _GridList__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _GridListTile__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./GridListTile */ \"./node_modules/@material-ui/core/esm/GridListTile/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GridListTile\", function() { return _GridListTile__WEBPACK_IMPORTED_MODULE_52__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _GridListTileBar__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./GridListTileBar */ \"./node_modules/@material-ui/core/esm/GridListTileBar/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GridListTileBar\", function() { return _GridListTileBar__WEBPACK_IMPORTED_MODULE_53__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Grow__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./Grow */ \"./node_modules/@material-ui/core/esm/Grow/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Grow\", function() { return _Grow__WEBPACK_IMPORTED_MODULE_54__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Hidden__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./Hidden */ \"./node_modules/@material-ui/core/esm/Hidden/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Hidden\", function() { return _Hidden__WEBPACK_IMPORTED_MODULE_55__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./Icon */ \"./node_modules/@material-ui/core/esm/Icon/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Icon\", function() { return _Icon__WEBPACK_IMPORTED_MODULE_56__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"IconButton\", function() { return _IconButton__WEBPACK_IMPORTED_MODULE_57__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Input__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./Input */ \"./node_modules/@material-ui/core/esm/Input/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Input\", function() { return _Input__WEBPACK_IMPORTED_MODULE_58__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _InputAdornment__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./InputAdornment */ \"./node_modules/@material-ui/core/esm/InputAdornment/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InputAdornment\", function() { return _InputAdornment__WEBPACK_IMPORTED_MODULE_59__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _InputBase__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./InputBase */ \"./node_modules/@material-ui/core/esm/InputBase/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InputBase\", function() { return _InputBase__WEBPACK_IMPORTED_MODULE_60__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _InputLabel__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./InputLabel */ \"./node_modules/@material-ui/core/esm/InputLabel/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"InputLabel\", function() { return _InputLabel__WEBPACK_IMPORTED_MODULE_61__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _LinearProgress__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./LinearProgress */ \"./node_modules/@material-ui/core/esm/LinearProgress/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LinearProgress\", function() { return _LinearProgress__WEBPACK_IMPORTED_MODULE_62__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./Link */ \"./node_modules/@material-ui/core/esm/Link/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Link\", function() { return _Link__WEBPACK_IMPORTED_MODULE_63__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _List__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./List */ \"./node_modules/@material-ui/core/esm/List/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"List\", function() { return _List__WEBPACK_IMPORTED_MODULE_64__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ListItem__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./ListItem */ \"./node_modules/@material-ui/core/esm/ListItem/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ListItem\", function() { return _ListItem__WEBPACK_IMPORTED_MODULE_65__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ListItemAvatar__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./ListItemAvatar */ \"./node_modules/@material-ui/core/esm/ListItemAvatar/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ListItemAvatar\", function() { return _ListItemAvatar__WEBPACK_IMPORTED_MODULE_66__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ListItemIcon__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./ListItemIcon */ \"./node_modules/@material-ui/core/esm/ListItemIcon/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ListItemIcon\", function() { return _ListItemIcon__WEBPACK_IMPORTED_MODULE_67__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ListItemSecondaryAction__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./ListItemSecondaryAction */ \"./node_modules/@material-ui/core/esm/ListItemSecondaryAction/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ListItemSecondaryAction\", function() { return _ListItemSecondaryAction__WEBPACK_IMPORTED_MODULE_68__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ListItemText__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./ListItemText */ \"./node_modules/@material-ui/core/esm/ListItemText/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ListItemText\", function() { return _ListItemText__WEBPACK_IMPORTED_MODULE_69__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ListSubheader__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./ListSubheader */ \"./node_modules/@material-ui/core/esm/ListSubheader/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ListSubheader\", function() { return _ListSubheader__WEBPACK_IMPORTED_MODULE_70__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Menu__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./Menu */ \"./node_modules/@material-ui/core/esm/Menu/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Menu\", function() { return _Menu__WEBPACK_IMPORTED_MODULE_71__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _MenuItem__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./MenuItem */ \"./node_modules/@material-ui/core/esm/MenuItem/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MenuItem\", function() { return _MenuItem__WEBPACK_IMPORTED_MODULE_72__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _MenuList__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./MenuList */ \"./node_modules/@material-ui/core/esm/MenuList/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MenuList\", function() { return _MenuList__WEBPACK_IMPORTED_MODULE_73__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _MobileStepper__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./MobileStepper */ \"./node_modules/@material-ui/core/esm/MobileStepper/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MobileStepper\", function() { return _MobileStepper__WEBPACK_IMPORTED_MODULE_74__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Modal__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./Modal */ \"./node_modules/@material-ui/core/esm/Modal/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Modal\", function() { return _Modal__WEBPACK_IMPORTED_MODULE_75__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ModalManager\", function() { return _Modal__WEBPACK_IMPORTED_MODULE_75__[\"ModalManager\"]; });\n\n/* harmony import */ var _NativeSelect__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./NativeSelect */ \"./node_modules/@material-ui/core/esm/NativeSelect/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NativeSelect\", function() { return _NativeSelect__WEBPACK_IMPORTED_MODULE_76__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _NoSsr__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./NoSsr */ \"./node_modules/@material-ui/core/esm/NoSsr/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"NoSsr\", function() { return _NoSsr__WEBPACK_IMPORTED_MODULE_77__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _OutlinedInput__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./OutlinedInput */ \"./node_modules/@material-ui/core/esm/OutlinedInput/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"OutlinedInput\", function() { return _OutlinedInput__WEBPACK_IMPORTED_MODULE_78__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Paper__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./Paper */ \"./node_modules/@material-ui/core/esm/Paper/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Paper\", function() { return _Paper__WEBPACK_IMPORTED_MODULE_79__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Popover__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./Popover */ \"./node_modules/@material-ui/core/esm/Popover/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Popover\", function() { return _Popover__WEBPACK_IMPORTED_MODULE_80__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Popper__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./Popper */ \"./node_modules/@material-ui/core/esm/Popper/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Popper\", function() { return _Popper__WEBPACK_IMPORTED_MODULE_81__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./Portal */ \"./node_modules/@material-ui/core/esm/Portal/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Portal\", function() { return _Portal__WEBPACK_IMPORTED_MODULE_82__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Radio__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./Radio */ \"./node_modules/@material-ui/core/esm/Radio/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Radio\", function() { return _Radio__WEBPACK_IMPORTED_MODULE_83__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _RadioGroup__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./RadioGroup */ \"./node_modules/@material-ui/core/esm/RadioGroup/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RadioGroup\", function() { return _RadioGroup__WEBPACK_IMPORTED_MODULE_84__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useRadioGroup\", function() { return _RadioGroup__WEBPACK_IMPORTED_MODULE_84__[\"useRadioGroup\"]; });\n\n/* harmony import */ var _RootRef__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./RootRef */ \"./node_modules/@material-ui/core/esm/RootRef/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RootRef\", function() { return _RootRef__WEBPACK_IMPORTED_MODULE_85__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Select__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./Select */ \"./node_modules/@material-ui/core/esm/Select/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Select\", function() { return _Select__WEBPACK_IMPORTED_MODULE_86__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Slide__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./Slide */ \"./node_modules/@material-ui/core/esm/Slide/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Slide\", function() { return _Slide__WEBPACK_IMPORTED_MODULE_87__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Slider__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./Slider */ \"./node_modules/@material-ui/core/esm/Slider/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Slider\", function() { return _Slider__WEBPACK_IMPORTED_MODULE_88__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Snackbar__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./Snackbar */ \"./node_modules/@material-ui/core/esm/Snackbar/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Snackbar\", function() { return _Snackbar__WEBPACK_IMPORTED_MODULE_89__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _SnackbarContent__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./SnackbarContent */ \"./node_modules/@material-ui/core/esm/SnackbarContent/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SnackbarContent\", function() { return _SnackbarContent__WEBPACK_IMPORTED_MODULE_90__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Step__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./Step */ \"./node_modules/@material-ui/core/esm/Step/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Step\", function() { return _Step__WEBPACK_IMPORTED_MODULE_91__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _StepButton__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./StepButton */ \"./node_modules/@material-ui/core/esm/StepButton/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StepButton\", function() { return _StepButton__WEBPACK_IMPORTED_MODULE_92__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _StepConnector__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./StepConnector */ \"./node_modules/@material-ui/core/esm/StepConnector/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StepConnector\", function() { return _StepConnector__WEBPACK_IMPORTED_MODULE_93__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _StepContent__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./StepContent */ \"./node_modules/@material-ui/core/esm/StepContent/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StepContent\", function() { return _StepContent__WEBPACK_IMPORTED_MODULE_94__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _StepIcon__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./StepIcon */ \"./node_modules/@material-ui/core/esm/StepIcon/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StepIcon\", function() { return _StepIcon__WEBPACK_IMPORTED_MODULE_95__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _StepLabel__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./StepLabel */ \"./node_modules/@material-ui/core/esm/StepLabel/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StepLabel\", function() { return _StepLabel__WEBPACK_IMPORTED_MODULE_96__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Stepper__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./Stepper */ \"./node_modules/@material-ui/core/esm/Stepper/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Stepper\", function() { return _Stepper__WEBPACK_IMPORTED_MODULE_97__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _SvgIcon__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./SvgIcon */ \"./node_modules/@material-ui/core/esm/SvgIcon/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SvgIcon\", function() { return _SvgIcon__WEBPACK_IMPORTED_MODULE_98__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _SwipeableDrawer__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./SwipeableDrawer */ \"./node_modules/@material-ui/core/esm/SwipeableDrawer/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SwipeableDrawer\", function() { return _SwipeableDrawer__WEBPACK_IMPORTED_MODULE_99__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Switch__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./Switch */ \"./node_modules/@material-ui/core/esm/Switch/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Switch\", function() { return _Switch__WEBPACK_IMPORTED_MODULE_100__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Tab__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./Tab */ \"./node_modules/@material-ui/core/esm/Tab/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tab\", function() { return _Tab__WEBPACK_IMPORTED_MODULE_101__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Table__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./Table */ \"./node_modules/@material-ui/core/esm/Table/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return _Table__WEBPACK_IMPORTED_MODULE_102__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableBody__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./TableBody */ \"./node_modules/@material-ui/core/esm/TableBody/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableBody\", function() { return _TableBody__WEBPACK_IMPORTED_MODULE_103__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableCell__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./TableCell */ \"./node_modules/@material-ui/core/esm/TableCell/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableCell\", function() { return _TableCell__WEBPACK_IMPORTED_MODULE_104__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableContainer__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./TableContainer */ \"./node_modules/@material-ui/core/esm/TableContainer/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableContainer\", function() { return _TableContainer__WEBPACK_IMPORTED_MODULE_105__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableFooter__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./TableFooter */ \"./node_modules/@material-ui/core/esm/TableFooter/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableFooter\", function() { return _TableFooter__WEBPACK_IMPORTED_MODULE_106__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableHead__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./TableHead */ \"./node_modules/@material-ui/core/esm/TableHead/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableHead\", function() { return _TableHead__WEBPACK_IMPORTED_MODULE_107__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TablePagination__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./TablePagination */ \"./node_modules/@material-ui/core/esm/TablePagination/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TablePagination\", function() { return _TablePagination__WEBPACK_IMPORTED_MODULE_108__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableRow__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./TableRow */ \"./node_modules/@material-ui/core/esm/TableRow/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableRow\", function() { return _TableRow__WEBPACK_IMPORTED_MODULE_109__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TableSortLabel__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./TableSortLabel */ \"./node_modules/@material-ui/core/esm/TableSortLabel/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TableSortLabel\", function() { return _TableSortLabel__WEBPACK_IMPORTED_MODULE_110__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Tabs__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./Tabs */ \"./node_modules/@material-ui/core/esm/Tabs/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tabs\", function() { return _Tabs__WEBPACK_IMPORTED_MODULE_111__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TabScrollButton__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./TabScrollButton */ \"./node_modules/@material-ui/core/esm/TabScrollButton/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TabScrollButton\", function() { return _TabScrollButton__WEBPACK_IMPORTED_MODULE_112__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./TextField */ \"./node_modules/@material-ui/core/esm/TextField/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextField\", function() { return _TextField__WEBPACK_IMPORTED_MODULE_113__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _TextareaAutosize__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./TextareaAutosize */ \"./node_modules/@material-ui/core/esm/TextareaAutosize/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TextareaAutosize\", function() { return _TextareaAutosize__WEBPACK_IMPORTED_MODULE_114__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Toolbar__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./Toolbar */ \"./node_modules/@material-ui/core/esm/Toolbar/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Toolbar\", function() { return _Toolbar__WEBPACK_IMPORTED_MODULE_115__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./Tooltip */ \"./node_modules/@material-ui/core/esm/Tooltip/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tooltip\", function() { return _Tooltip__WEBPACK_IMPORTED_MODULE_116__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./Typography */ \"./node_modules/@material-ui/core/esm/Typography/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Typography\", function() { return _Typography__WEBPACK_IMPORTED_MODULE_117__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./Unstable_TrapFocus */ \"./node_modules/@material-ui/core/esm/Unstable_TrapFocus/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Unstable_TrapFocus\", function() { return _Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_118__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./useMediaQuery */ \"./node_modules/@material-ui/core/esm/useMediaQuery/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useMediaQuery\", function() { return _useMediaQuery__WEBPACK_IMPORTED_MODULE_119__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _useScrollTrigger__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./useScrollTrigger */ \"./node_modules/@material-ui/core/esm/useScrollTrigger/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useScrollTrigger\", function() { return _useScrollTrigger__WEBPACK_IMPORTED_MODULE_120__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _withMobileDialog__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./withMobileDialog */ \"./node_modules/@material-ui/core/esm/withMobileDialog/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withMobileDialog\", function() { return _withMobileDialog__WEBPACK_IMPORTED_MODULE_121__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _withWidth__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./withWidth */ \"./node_modules/@material-ui/core/esm/withWidth/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withWidth\", function() { return _withWidth__WEBPACK_IMPORTED_MODULE_122__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isWidthUp\", function() { return _withWidth__WEBPACK_IMPORTED_MODULE_122__[\"isWidthUp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isWidthDown\", function() { return _withWidth__WEBPACK_IMPORTED_MODULE_122__[\"isWidthDown\"]; });\n\n/* harmony import */ var _Zoom__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./Zoom */ \"./node_modules/@material-ui/core/esm/Zoom/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Zoom\", function() { return _Zoom__WEBPACK_IMPORTED_MODULE_123__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//** @license Material-UI v4.11.1\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/* eslint-disable import/export */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // eslint-disable-next-line camelcase\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/SwitchBase.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/SwitchBase.js ***!
  \*******************************************************************/
/*! exports provided: styles, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styles\", function() { return styles; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _utils_useControlled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n/* harmony import */ var _FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../FormControl/useFormControl */ \"./node_modules/@material-ui/core/esm/FormControl/useFormControl.js\");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony import */ var _IconButton__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/index.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar styles = {\n  root: {\n    padding: 9\n  },\n  checked: {},\n  disabled: {},\n  input: {\n    cursor: 'inherit',\n    position: 'absolute',\n    opacity: 0,\n    width: '100%',\n    height: '100%',\n    top: 0,\n    left: 0,\n    margin: 0,\n    padding: 0,\n    zIndex: 1\n  }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SwitchBase = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"](function SwitchBase(props, ref) {\n  var autoFocus = props.autoFocus,\n      checkedProp = props.checked,\n      checkedIcon = props.checkedIcon,\n      classes = props.classes,\n      className = props.className,\n      defaultChecked = props.defaultChecked,\n      disabledProp = props.disabled,\n      icon = props.icon,\n      id = props.id,\n      inputProps = props.inputProps,\n      inputRef = props.inputRef,\n      name = props.name,\n      onBlur = props.onBlur,\n      onChange = props.onChange,\n      onFocus = props.onFocus,\n      readOnly = props.readOnly,\n      required = props.required,\n      tabIndex = props.tabIndex,\n      type = props.type,\n      value = props.value,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(props, [\"autoFocus\", \"checked\", \"checkedIcon\", \"classes\", \"className\", \"defaultChecked\", \"disabled\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"]);\n\n  var _useControlled = Object(_utils_useControlled__WEBPACK_IMPORTED_MODULE_7__[\"default\"])({\n    controlled: checkedProp,\n    default: Boolean(defaultChecked),\n    name: 'SwitchBase',\n    state: 'checked'\n  }),\n      _useControlled2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useControlled, 2),\n      checked = _useControlled2[0],\n      setCheckedState = _useControlled2[1];\n\n  var muiFormControl = Object(_FormControl_useFormControl__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n\n  var handleFocus = function handleFocus(event) {\n    if (onFocus) {\n      onFocus(event);\n    }\n\n    if (muiFormControl && muiFormControl.onFocus) {\n      muiFormControl.onFocus(event);\n    }\n  };\n\n  var handleBlur = function handleBlur(event) {\n    if (onBlur) {\n      onBlur(event);\n    }\n\n    if (muiFormControl && muiFormControl.onBlur) {\n      muiFormControl.onBlur(event);\n    }\n  };\n\n  var handleInputChange = function handleInputChange(event) {\n    var newChecked = event.target.checked;\n    setCheckedState(newChecked);\n\n    if (onChange) {\n      // TODO v5: remove the second argument.\n      onChange(event, newChecked);\n    }\n  };\n\n  var disabled = disabledProp;\n\n  if (muiFormControl) {\n    if (typeof disabled === 'undefined') {\n      disabled = muiFormControl.disabled;\n    }\n  }\n\n  var hasLabelFor = type === 'checkbox' || type === 'radio';\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](_IconButton__WEBPACK_IMPORTED_MODULE_10__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    component: \"span\",\n    className: Object(clsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(classes.root, className, checked && classes.checked, disabled && classes.disabled),\n    disabled: disabled,\n    tabIndex: null,\n    role: undefined,\n    onFocus: handleFocus,\n    onBlur: handleBlur,\n    ref: ref\n  }, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"](\"input\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    autoFocus: autoFocus,\n    checked: checkedProp,\n    defaultChecked: defaultChecked,\n    className: classes.input,\n    disabled: disabled,\n    id: hasLabelFor && id,\n    name: name,\n    onChange: handleInputChange,\n    readOnly: readOnly,\n    ref: inputRef,\n    required: required,\n    tabIndex: tabIndex,\n    type: type,\n    value: value\n  }, inputProps)), checked ? checkedIcon : icon);\n}); // NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\n\n true ? SwitchBase.propTypes = {\n  /**\n   * If `true`, the `input` element will be focused during the first mount.\n   */\n  autoFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * @ignore\n   */\n  defaultChecked: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the switch will be disabled.\n   */\n  disabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node.isRequired,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n   */\n  inputProps: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object,\n\n  /**\n   * Pass a ref to the `input` element.\n   */\n  inputRef: _material_ui_utils__WEBPACK_IMPORTED_MODULE_6__[\"refType\"],\n\n  /*\n   * @ignore\n   */\n  name: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n   */\n  onChange: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * If `true`, the `input` element will be required.\n   */\n  required: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * @ignore\n   */\n  tabIndex: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string]),\n\n  /**\n   * The input component prop `type`.\n   */\n  type: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string.isRequired,\n\n  /**\n   * The value of the component.\n   */\n  value: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_styles_withStyles__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(styles, {\n  name: 'PrivateSwitchBase'\n})(SwitchBase));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/SwitchBase.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/animate.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/animate.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return animate; });\nfunction easeInOutSin(time) {\n  return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nfunction animate(property, element, to) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var cb = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {};\n  var _options$ease = options.ease,\n      ease = _options$ease === void 0 ? easeInOutSin : _options$ease,\n      _options$duration = options.duration,\n      duration = _options$duration === void 0 ? 300 : _options$duration;\n  var start = null;\n  var from = element[property];\n  var cancelled = false;\n\n  var cancel = function cancel() {\n    cancelled = true;\n  };\n\n  var step = function step(timestamp) {\n    if (cancelled) {\n      cb(new Error('Animation cancelled'));\n      return;\n    }\n\n    if (start === null) {\n      start = timestamp;\n    }\n\n    var time = Math.min(1, (timestamp - start) / duration);\n    element[property] = ease(time) * (to - from) + from;\n\n    if (time >= 1) {\n      requestAnimationFrame(function () {\n        cb(null);\n      });\n      return;\n    }\n\n    requestAnimationFrame(step);\n  };\n\n  if (from === to) {\n    cb(new Error('Element already at target position'));\n    return cancel;\n  }\n\n  requestAnimationFrame(step);\n  return cancel;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/animate.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDownward.js":
/*!********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDownward.js ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDownward.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js":
/*!********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/CheckCircle.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/CheckCircle.js ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z\"\n}), 'CheckCircle'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/CheckCircle.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js":
/*!************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/MoreHoriz.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/MoreHoriz.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreHoriz'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/MoreHoriz.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/Person.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/Person.js ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/Person.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js ***!
  \***************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/internal/svg-icons/Warning.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/internal/svg-icons/Warning.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n\n\n/**\n * @ignore - internal component.\n */\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_utils_createSvgIcon__WEBPACK_IMPORTED_MODULE_1__[\"default\"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"](\"path\", {\n  d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning'));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/internal/svg-icons/Warning.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/colorManipulator.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/colorManipulator.js ***!
  \***********************************************************************/
/*! exports provided: hexToRgb, rgbToHex, hslToRgb, decomposeColor, recomposeColor, getContrastRatio, getLuminance, emphasize, fade, darken, lighten */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hexToRgb\", function() { return hexToRgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgbToHex\", function() { return rgbToHex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hslToRgb\", function() { return hslToRgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decomposeColor\", function() { return decomposeColor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"recomposeColor\", function() { return recomposeColor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getContrastRatio\", function() { return getContrastRatio; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLuminance\", function() { return getLuminance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emphasize\", function() { return emphasize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fade\", function() { return fade; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"darken\", function() { return darken; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lighten\", function() { return lighten; });\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n  var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n  if (true) {\n    if (value < min || value > max) {\n      console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n    }\n  }\n\n  return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nfunction hexToRgb(color) {\n  color = color.substr(1);\n  var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n  var colors = color.match(re);\n\n  if (colors && colors[0].length === 1) {\n    colors = colors.map(function (n) {\n      return n + n;\n    });\n  }\n\n  return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n    return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n  }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n  var hex = int.toString(16);\n  return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nfunction rgbToHex(color) {\n  // Idempotent\n  if (color.indexOf('#') === 0) {\n    return color;\n  }\n\n  var _decomposeColor = decomposeColor(color),\n      values = _decomposeColor.values;\n\n  return \"#\".concat(values.map(function (n) {\n    return intToHex(n);\n  }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nfunction hslToRgb(color) {\n  color = decomposeColor(color);\n  var _color = color,\n      values = _color.values;\n  var h = values[0];\n  var s = values[1] / 100;\n  var l = values[2] / 100;\n  var a = s * Math.min(l, 1 - l);\n\n  var f = function f(n) {\n    var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n    return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n  };\n\n  var type = 'rgb';\n  var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n  if (color.type === 'hsla') {\n    type += 'a';\n    rgb.push(values[3]);\n  }\n\n  return recomposeColor({\n    type: type,\n    values: rgb\n  });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nfunction decomposeColor(color) {\n  // Idempotent\n  if (color.type) {\n    return color;\n  }\n\n  if (color.charAt(0) === '#') {\n    return decomposeColor(hexToRgb(color));\n  }\n\n  var marker = color.indexOf('(');\n  var type = color.substring(0, marker);\n\n  if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n    throw new Error( true ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : undefined);\n  }\n\n  var values = color.substring(marker + 1, color.length - 1).split(',');\n  values = values.map(function (value) {\n    return parseFloat(value);\n  });\n  return {\n    type: type,\n    values: values\n  };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nfunction recomposeColor(color) {\n  var type = color.type;\n  var values = color.values;\n\n  if (type.indexOf('rgb') !== -1) {\n    // Only convert the first 3 values to int (i.e. not alpha)\n    values = values.map(function (n, i) {\n      return i < 3 ? parseInt(n, 10) : n;\n    });\n  } else if (type.indexOf('hsl') !== -1) {\n    values[1] = \"\".concat(values[1], \"%\");\n    values[2] = \"\".concat(values[2], \"%\");\n  }\n\n  return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nfunction getContrastRatio(foreground, background) {\n  var lumA = getLuminance(foreground);\n  var lumB = getLuminance(background);\n  return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nfunction getLuminance(color) {\n  color = decomposeColor(color);\n  var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n  rgb = rgb.map(function (val) {\n    val /= 255; // normalized\n\n    return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n  }); // Truncate at 3 digits\n\n  return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction emphasize(color) {\n  var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n  return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction fade(color, value) {\n  color = decomposeColor(color);\n  value = clamp(value);\n\n  if (color.type === 'rgb' || color.type === 'hsl') {\n    color.type += 'a';\n  }\n\n  color.values[3] = value;\n  return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction darken(color, coefficient) {\n  color = decomposeColor(color);\n  coefficient = clamp(coefficient);\n\n  if (color.type.indexOf('hsl') !== -1) {\n    color.values[2] *= 1 - coefficient;\n  } else if (color.type.indexOf('rgb') !== -1) {\n    for (var i = 0; i < 3; i += 1) {\n      color.values[i] *= 1 - coefficient;\n    }\n  }\n\n  return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction lighten(color, coefficient) {\n  color = decomposeColor(color);\n  coefficient = clamp(coefficient);\n\n  if (color.type.indexOf('hsl') !== -1) {\n    color.values[2] += (100 - color.values[2]) * coefficient;\n  } else if (color.type.indexOf('rgb') !== -1) {\n    for (var i = 0; i < 3; i += 1) {\n      color.values[i] += (255 - color.values[i]) * coefficient;\n    }\n  }\n\n  return recomposeColor(color);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/colorManipulator.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createBreakpoints.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createBreakpoints.js ***!
  \************************************************************************/
/*! exports provided: keys, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createBreakpoints; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n\n\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nvar keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nfunction createBreakpoints(breakpoints) {\n  var _breakpoints$values = breakpoints.values,\n      values = _breakpoints$values === void 0 ? {\n    xs: 0,\n    sm: 600,\n    md: 960,\n    lg: 1280,\n    xl: 1920\n  } : _breakpoints$values,\n      _breakpoints$unit = breakpoints.unit,\n      unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n      _breakpoints$step = breakpoints.step,\n      step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n  function up(key) {\n    var value = typeof values[key] === 'number' ? values[key] : key;\n    return \"@media (min-width:\".concat(value).concat(unit, \")\");\n  }\n\n  function down(key) {\n    var endIndex = keys.indexOf(key) + 1;\n    var upperbound = values[keys[endIndex]];\n\n    if (endIndex === keys.length) {\n      // xl down applies to all sizes\n      return up('xs');\n    }\n\n    var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n    return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n  }\n\n  function between(start, end) {\n    var endIndex = keys.indexOf(end);\n\n    if (endIndex === keys.length - 1) {\n      return up(start);\n    }\n\n    return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n  }\n\n  function only(key) {\n    return between(key, key);\n  }\n\n  function width(key) {\n    return values[key];\n  }\n\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    keys: keys,\n    values: values,\n    up: up,\n    down: down,\n    between: between,\n    only: only,\n    width: width\n  }, other);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createBreakpoints.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createMixins.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createMixins.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createMixins; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n\n\nfunction createMixins(breakpoints, spacing, mixins) {\n  var _toolbar;\n\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    gutters: function gutters() {\n      var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      // To deprecate in v4.1\n      //       warning(\n      //         false,\n      //         [\n      //           'Material-UI: Theme.mixins.gutters() is deprecated.',\n      //           'You can use the source of the mixin directly:',\n      //           `\n      // paddingLeft: theme.spacing(2),\n      // paddingRight: theme.spacing(2),\n      // [theme.breakpoints.up('sm')]: {\n      //   paddingLeft: theme.spacing(3),\n      //   paddingRight: theme.spacing(3),\n      // },\n      // `,\n      //         ].join('\\n'),\n      //       );\n      return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        paddingLeft: spacing(2),\n        paddingRight: spacing(2)\n      }, styles, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, breakpoints.up('sm'), Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        paddingLeft: spacing(3),\n        paddingRight: spacing(3)\n      }, styles[breakpoints.up('sm')])));\n    },\n    toolbar: (_toolbar = {\n      minHeight: 56\n    }, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n      minHeight: 48\n    }), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_toolbar, breakpoints.up('sm'), {\n      minHeight: 64\n    }), _toolbar)\n  }, mixins);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createMixins.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createMuiStrictModeTheme.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createMuiStrictModeTheme.js ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createMuiStrictModeTheme; });\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _createMuiTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createMuiTheme */ \"./node_modules/@material-ui/core/esm/styles/createMuiTheme.js\");\n\n\nfunction createMuiStrictModeTheme(options) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  return _createMuiTheme__WEBPACK_IMPORTED_MODULE_1__[\"default\"].apply(void 0, [Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"deepmerge\"])({\n    unstable_strictMode: true\n  }, options)].concat(args));\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createMuiStrictModeTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createMuiTheme.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createMuiTheme.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _createBreakpoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createBreakpoints */ \"./node_modules/@material-ui/core/esm/styles/createBreakpoints.js\");\n/* harmony import */ var _createMixins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createMixins */ \"./node_modules/@material-ui/core/esm/styles/createMixins.js\");\n/* harmony import */ var _createPalette__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createPalette */ \"./node_modules/@material-ui/core/esm/styles/createPalette.js\");\n/* harmony import */ var _createTypography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createTypography */ \"./node_modules/@material-ui/core/esm/styles/createTypography.js\");\n/* harmony import */ var _shadows__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shadows */ \"./node_modules/@material-ui/core/esm/styles/shadows.js\");\n/* harmony import */ var _shape__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./shape */ \"./node_modules/@material-ui/core/esm/styles/shape.js\");\n/* harmony import */ var _createSpacing__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./createSpacing */ \"./node_modules/@material-ui/core/esm/styles/createSpacing.js\");\n/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony import */ var _zIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./zIndex */ \"./node_modules/@material-ui/core/esm/styles/zIndex.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction createMuiTheme() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var _options$breakpoints = options.breakpoints,\n      breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n      _options$mixins = options.mixins,\n      mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n      _options$palette = options.palette,\n      paletteInput = _options$palette === void 0 ? {} : _options$palette,\n      spacingInput = options.spacing,\n      _options$typography = options.typography,\n      typographyInput = _options$typography === void 0 ? {} : _options$typography,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n  var palette = Object(_createPalette__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(paletteInput);\n  var breakpoints = Object(_createBreakpoints__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(breakpointsInput);\n  var spacing = Object(_createSpacing__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(spacingInput);\n  var muiTheme = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"deepmerge\"])({\n    breakpoints: breakpoints,\n    direction: 'ltr',\n    mixins: Object(_createMixins__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(breakpoints, spacing, mixinsInput),\n    overrides: {},\n    // Inject custom styles\n    palette: palette,\n    props: {},\n    // Provide default props\n    shadows: _shadows__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n    typography: Object(_createTypography__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(palette, typographyInput),\n    spacing: spacing,\n    shape: _shape__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n    transitions: _transitions__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n    zIndex: _zIndex__WEBPACK_IMPORTED_MODULE_11__[\"default\"]\n  }, other);\n\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  muiTheme = args.reduce(function (acc, argument) {\n    return Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"deepmerge\"])(acc, argument);\n  }, muiTheme);\n\n  if (true) {\n    var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n    var traverse = function traverse(node, parentKey) {\n      var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n      var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n      for (key in node) {\n        var child = node[key];\n\n        if (depth === 1) {\n          if (key.indexOf('Mui') === 0 && child) {\n            traverse(child, key, depth + 1);\n          }\n        } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n          if (true) {\n            console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n              root: Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, \"&$\".concat(key), child)\n            }, null, 2), '', 'https://material-ui.com/r/pseudo-classes-guide'].join('\\n'));\n          } // Remove the style to prevent global conflicts.\n\n\n          node[key] = {};\n        }\n      }\n    };\n\n    traverse(muiTheme.overrides);\n  }\n\n  return muiTheme;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createMuiTheme);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createMuiTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createPalette.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createPalette.js ***!
  \********************************************************************/
/*! exports provided: light, dark, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"light\", function() { return light; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dark\", function() { return dark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createPalette; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _colors_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../colors/common */ \"./node_modules/@material-ui/core/esm/colors/common.js\");\n/* harmony import */ var _colors_grey__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../colors/grey */ \"./node_modules/@material-ui/core/esm/colors/grey.js\");\n/* harmony import */ var _colors_indigo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../colors/indigo */ \"./node_modules/@material-ui/core/esm/colors/indigo.js\");\n/* harmony import */ var _colors_pink__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../colors/pink */ \"./node_modules/@material-ui/core/esm/colors/pink.js\");\n/* harmony import */ var _colors_red__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../colors/red */ \"./node_modules/@material-ui/core/esm/colors/red.js\");\n/* harmony import */ var _colors_orange__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../colors/orange */ \"./node_modules/@material-ui/core/esm/colors/orange.js\");\n/* harmony import */ var _colors_blue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../colors/blue */ \"./node_modules/@material-ui/core/esm/colors/blue.js\");\n/* harmony import */ var _colors_green__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../colors/green */ \"./node_modules/@material-ui/core/esm/colors/green.js\");\n/* harmony import */ var _colorManipulator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar light = {\n  // The colors used to style the text.\n  text: {\n    // The most important text.\n    primary: 'rgba(0, 0, 0, 0.87)',\n    // Secondary text.\n    secondary: 'rgba(0, 0, 0, 0.54)',\n    // Disabled text have even lower visual prominence.\n    disabled: 'rgba(0, 0, 0, 0.38)',\n    // Text hints.\n    hint: 'rgba(0, 0, 0, 0.38)'\n  },\n  // The color used to divide different elements.\n  divider: 'rgba(0, 0, 0, 0.12)',\n  // The background colors used to style the surfaces.\n  // Consistency between these values is important.\n  background: {\n    paper: _colors_common__WEBPACK_IMPORTED_MODULE_3__[\"default\"].white,\n    default: _colors_grey__WEBPACK_IMPORTED_MODULE_4__[\"default\"][50]\n  },\n  // The colors used to style the action elements.\n  action: {\n    // The color of an active action like an icon button.\n    active: 'rgba(0, 0, 0, 0.54)',\n    // The color of an hovered action.\n    hover: 'rgba(0, 0, 0, 0.04)',\n    hoverOpacity: 0.04,\n    // The color of a selected action.\n    selected: 'rgba(0, 0, 0, 0.08)',\n    selectedOpacity: 0.08,\n    // The color of a disabled action.\n    disabled: 'rgba(0, 0, 0, 0.26)',\n    // The background color of a disabled action.\n    disabledBackground: 'rgba(0, 0, 0, 0.12)',\n    disabledOpacity: 0.38,\n    focus: 'rgba(0, 0, 0, 0.12)',\n    focusOpacity: 0.12,\n    activatedOpacity: 0.12\n  }\n};\nvar dark = {\n  text: {\n    primary: _colors_common__WEBPACK_IMPORTED_MODULE_3__[\"default\"].white,\n    secondary: 'rgba(255, 255, 255, 0.7)',\n    disabled: 'rgba(255, 255, 255, 0.5)',\n    hint: 'rgba(255, 255, 255, 0.5)',\n    icon: 'rgba(255, 255, 255, 0.5)'\n  },\n  divider: 'rgba(255, 255, 255, 0.12)',\n  background: {\n    paper: _colors_grey__WEBPACK_IMPORTED_MODULE_4__[\"default\"][800],\n    default: '#303030'\n  },\n  action: {\n    active: _colors_common__WEBPACK_IMPORTED_MODULE_3__[\"default\"].white,\n    hover: 'rgba(255, 255, 255, 0.08)',\n    hoverOpacity: 0.08,\n    selected: 'rgba(255, 255, 255, 0.16)',\n    selectedOpacity: 0.16,\n    disabled: 'rgba(255, 255, 255, 0.3)',\n    disabledBackground: 'rgba(255, 255, 255, 0.12)',\n    disabledOpacity: 0.38,\n    focus: 'rgba(255, 255, 255, 0.12)',\n    focusOpacity: 0.12,\n    activatedOpacity: 0.24\n  }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n  var tonalOffsetLight = tonalOffset.light || tonalOffset;\n  var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n  if (!intent[direction]) {\n    if (intent.hasOwnProperty(shade)) {\n      intent[direction] = intent[shade];\n    } else if (direction === 'light') {\n      intent.light = Object(_colorManipulator__WEBPACK_IMPORTED_MODULE_11__[\"lighten\"])(intent.main, tonalOffsetLight);\n    } else if (direction === 'dark') {\n      intent.dark = Object(_colorManipulator__WEBPACK_IMPORTED_MODULE_11__[\"darken\"])(intent.main, tonalOffsetDark);\n    }\n  }\n}\n\nfunction createPalette(palette) {\n  var _palette$primary = palette.primary,\n      primary = _palette$primary === void 0 ? {\n    light: _colors_indigo__WEBPACK_IMPORTED_MODULE_5__[\"default\"][300],\n    main: _colors_indigo__WEBPACK_IMPORTED_MODULE_5__[\"default\"][500],\n    dark: _colors_indigo__WEBPACK_IMPORTED_MODULE_5__[\"default\"][700]\n  } : _palette$primary,\n      _palette$secondary = palette.secondary,\n      secondary = _palette$secondary === void 0 ? {\n    light: _colors_pink__WEBPACK_IMPORTED_MODULE_6__[\"default\"].A200,\n    main: _colors_pink__WEBPACK_IMPORTED_MODULE_6__[\"default\"].A400,\n    dark: _colors_pink__WEBPACK_IMPORTED_MODULE_6__[\"default\"].A700\n  } : _palette$secondary,\n      _palette$error = palette.error,\n      error = _palette$error === void 0 ? {\n    light: _colors_red__WEBPACK_IMPORTED_MODULE_7__[\"default\"][300],\n    main: _colors_red__WEBPACK_IMPORTED_MODULE_7__[\"default\"][500],\n    dark: _colors_red__WEBPACK_IMPORTED_MODULE_7__[\"default\"][700]\n  } : _palette$error,\n      _palette$warning = palette.warning,\n      warning = _palette$warning === void 0 ? {\n    light: _colors_orange__WEBPACK_IMPORTED_MODULE_8__[\"default\"][300],\n    main: _colors_orange__WEBPACK_IMPORTED_MODULE_8__[\"default\"][500],\n    dark: _colors_orange__WEBPACK_IMPORTED_MODULE_8__[\"default\"][700]\n  } : _palette$warning,\n      _palette$info = palette.info,\n      info = _palette$info === void 0 ? {\n    light: _colors_blue__WEBPACK_IMPORTED_MODULE_9__[\"default\"][300],\n    main: _colors_blue__WEBPACK_IMPORTED_MODULE_9__[\"default\"][500],\n    dark: _colors_blue__WEBPACK_IMPORTED_MODULE_9__[\"default\"][700]\n  } : _palette$info,\n      _palette$success = palette.success,\n      success = _palette$success === void 0 ? {\n    light: _colors_green__WEBPACK_IMPORTED_MODULE_10__[\"default\"][300],\n    main: _colors_green__WEBPACK_IMPORTED_MODULE_10__[\"default\"][500],\n    dark: _colors_green__WEBPACK_IMPORTED_MODULE_10__[\"default\"][700]\n  } : _palette$success,\n      _palette$type = palette.type,\n      type = _palette$type === void 0 ? 'light' : _palette$type,\n      _palette$contrastThre = palette.contrastThreshold,\n      contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n      _palette$tonalOffset = palette.tonalOffset,\n      tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n  // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n  // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n  function getContrastText(background) {\n    var contrastText = Object(_colorManipulator__WEBPACK_IMPORTED_MODULE_11__[\"getContrastRatio\"])(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n    if (true) {\n      var contrast = Object(_colorManipulator__WEBPACK_IMPORTED_MODULE_11__[\"getContrastRatio\"])(background, contrastText);\n\n      if (contrast < 3) {\n        console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n      }\n    }\n\n    return contrastText;\n  }\n\n  var augmentColor = function augmentColor(color) {\n    var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n    var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n    var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n    color = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, color);\n\n    if (!color.main && color[mainShade]) {\n      color.main = color[mainShade];\n    }\n\n    if (!color.main) {\n      throw new Error( true ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : undefined);\n    }\n\n    if (typeof color.main !== 'string') {\n      throw new Error( true ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createMuiTheme({ palette: {\\n  primary: green,\\n} });\\n\\nconst theme2 = createMuiTheme({ palette: {\\n  primary: { main: green[500] },\\n} });\") : undefined);\n    }\n\n    addLightOrDark(color, 'light', lightShade, tonalOffset);\n    addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n    if (!color.contrastText) {\n      color.contrastText = getContrastText(color.main);\n    }\n\n    return color;\n  };\n\n  var types = {\n    dark: dark,\n    light: light\n  };\n\n  if (true) {\n    if (!types[type]) {\n      console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n    }\n  }\n\n  var paletteOutput = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"deepmerge\"])(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    // A collection of common colors.\n    common: _colors_common__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n    // The palette type, can be light or dark.\n    type: type,\n    // The colors used to represent primary interface elements for a user.\n    primary: augmentColor(primary),\n    // The colors used to represent secondary interface elements for a user.\n    secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n    // The colors used to represent interface elements that the user should be made aware of.\n    error: augmentColor(error),\n    // The colors used to represent potentially dangerous actions or important messages.\n    warning: augmentColor(warning),\n    // The colors used to present information to the user that is neutral and not necessarily important.\n    info: augmentColor(info),\n    // The colors used to indicate the successful completion of an action that user triggered.\n    success: augmentColor(success),\n    // The grey colors.\n    grey: _colors_grey__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n    // Used by `getContrastText()` to maximize the contrast between\n    // the background and the text.\n    contrastThreshold: contrastThreshold,\n    // Takes a background color and returns the text color that maximizes the contrast.\n    getContrastText: getContrastText,\n    // Generate a rich color object.\n    augmentColor: augmentColor,\n    // Used by the functions below to shift a color's luminance by approximately\n    // two indexes within its tonal palette.\n    // E.g., shift from Red 500 to Red 300 or Red 700.\n    tonalOffset: tonalOffset\n  }, types[type]), other);\n  return paletteOutput;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createPalette.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createSpacing.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createSpacing.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createSpacing; });\n/* harmony import */ var _material_ui_system__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/system */ \"./node_modules/@material-ui/system/esm/index.js\");\n\nvar warnOnce;\nfunction createSpacing() {\n  var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n  // Already transformed.\n  if (spacingInput.mui) {\n    return spacingInput;\n  } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n  // Smaller components, such as icons and type, can align to a 4dp grid.\n  // https://material.io/design/layout/understanding-layout.html#usage\n\n\n  var transform = Object(_material_ui_system__WEBPACK_IMPORTED_MODULE_0__[\"createUnarySpacing\"])({\n    spacing: spacingInput\n  });\n\n  var spacing = function spacing() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    if (true) {\n      if (!(args.length <= 4)) {\n        console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n      }\n    }\n\n    if (args.length === 0) {\n      return transform(1);\n    }\n\n    if (args.length === 1) {\n      return transform(args[0]);\n    }\n\n    return args.map(function (argument) {\n      if (typeof argument === 'string') {\n        return argument;\n      }\n\n      var output = transform(argument);\n      return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n    }).join(' ');\n  }; // Backward compatibility, to remove in v5.\n\n\n  Object.defineProperty(spacing, 'unit', {\n    get: function get() {\n      if (true) {\n        if (!warnOnce || \"development\" === 'test') {\n          console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n        }\n\n        warnOnce = true;\n      }\n\n      return spacingInput;\n    }\n  });\n  spacing.mui = true;\n  return spacing;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createSpacing.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createStyles.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createStyles.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createStyles; });\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n // let warnOnce = false;\n// To remove in v5\n\nfunction createStyles(styles) {\n  // warning(\n  //   warnOnce,\n  //   [\n  //     'Material-UI: createStyles from @material-ui/core/styles is deprecated.',\n  //     'Please use @material-ui/styles/createStyles',\n  //   ].join('\\n'),\n  // );\n  // warnOnce = true;\n  return Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_0__[\"createStyles\"])(styles);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createStyles.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/createTypography.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/createTypography.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createTypography; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\n\n\nfunction round(value) {\n  return Math.round(value * 1e5) / 1e5;\n}\n\nvar caseAllCaps = {\n  textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nfunction createTypography(palette, typography) {\n  var _ref = typeof typography === 'function' ? typography(palette) : typography,\n      _ref$fontFamily = _ref.fontFamily,\n      fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n      _ref$fontSize = _ref.fontSize,\n      fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n      _ref$fontWeightLight = _ref.fontWeightLight,\n      fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n      _ref$fontWeightRegula = _ref.fontWeightRegular,\n      fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n      _ref$fontWeightMedium = _ref.fontWeightMedium,\n      fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n      _ref$fontWeightBold = _ref.fontWeightBold,\n      fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n      _ref$htmlFontSize = _ref.htmlFontSize,\n      htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n      allVariants = _ref.allVariants,\n      pxToRem2 = _ref.pxToRem,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n  if (true) {\n    if (typeof fontSize !== 'number') {\n      console.error('Material-UI: `fontSize` is required to be a number.');\n    }\n\n    if (typeof htmlFontSize !== 'number') {\n      console.error('Material-UI: `htmlFontSize` is required to be a number.');\n    }\n  }\n\n  var coef = fontSize / 14;\n\n  var pxToRem = pxToRem2 || function (size) {\n    return \"\".concat(size / htmlFontSize * coef, \"rem\");\n  };\n\n  var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n    return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      fontFamily: fontFamily,\n      fontWeight: fontWeight,\n      fontSize: pxToRem(size),\n      // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n      lineHeight: lineHeight\n    }, fontFamily === defaultFontFamily ? {\n      letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n    } : {}, casing, allVariants);\n  };\n\n  var variants = {\n    h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n    h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n    h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n    h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n    h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n    h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n    subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n    subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n    body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n    body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n    button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n    caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n    overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n  };\n  return Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"deepmerge\"])(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    htmlFontSize: htmlFontSize,\n    pxToRem: pxToRem,\n    round: round,\n    // TODO v5: remove\n    fontFamily: fontFamily,\n    fontSize: fontSize,\n    fontWeightLight: fontWeightLight,\n    fontWeightRegular: fontWeightRegular,\n    fontWeightMedium: fontWeightMedium,\n    fontWeightBold: fontWeightBold\n  }, variants), other, {\n    clone: false // No need to clone deep\n\n  });\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/createTypography.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/cssUtils.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/cssUtils.js ***!
  \***************************************************************/
/*! exports provided: isUnitless, getUnit, toUnitless, convertLength, alignProperty, fontGrid, responsiveProperty */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUnitless\", function() { return isUnitless; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUnit\", function() { return getUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toUnitless\", function() { return toUnitless; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"convertLength\", function() { return convertLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignProperty\", function() { return alignProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontGrid\", function() { return fontGrid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"responsiveProperty\", function() { return responsiveProperty; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n\nfunction isUnitless(value) {\n  return String(parseFloat(value)).length === String(value).length;\n} // Ported from Compass\n// https://github.com/Compass/compass/blob/master/core/stylesheets/compass/typography/_units.scss\n// Emulate the sass function \"unit\"\n\nfunction getUnit(input) {\n  return String(input).match(/[\\d.\\-+]*\\s*(.*)/)[1] || '';\n} // Emulate the sass function \"unitless\"\n\nfunction toUnitless(length) {\n  return parseFloat(length);\n} // Convert any CSS <length> or <percentage> value to any another.\n// From https://github.com/KyleAMathews/convert-css-length\n\nfunction convertLength(baseFontSize) {\n  return function (length, toUnit) {\n    var fromUnit = getUnit(length); // Optimize for cases where `from` and `to` units are accidentally the same.\n\n    if (fromUnit === toUnit) {\n      return length;\n    } // Convert input length to pixels.\n\n\n    var pxLength = toUnitless(length);\n\n    if (fromUnit !== 'px') {\n      if (fromUnit === 'em') {\n        pxLength = toUnitless(length) * toUnitless(baseFontSize);\n      } else if (fromUnit === 'rem') {\n        pxLength = toUnitless(length) * toUnitless(baseFontSize);\n        return length;\n      }\n    } // Convert length in pixels to the output unit\n\n\n    var outputLength = pxLength;\n\n    if (toUnit !== 'px') {\n      if (toUnit === 'em') {\n        outputLength = pxLength / toUnitless(baseFontSize);\n      } else if (toUnit === 'rem') {\n        outputLength = pxLength / toUnitless(baseFontSize);\n      } else {\n        return length;\n      }\n    }\n\n    return parseFloat(outputLength.toFixed(5)) + toUnit;\n  };\n}\nfunction alignProperty(_ref) {\n  var size = _ref.size,\n      grid = _ref.grid;\n  var sizeBelow = size - size % grid;\n  var sizeAbove = sizeBelow + grid;\n  return size - sizeBelow < sizeAbove - size ? sizeBelow : sizeAbove;\n} // fontGrid finds a minimal grid (in rem) for the fontSize values so that the\n// lineHeight falls under a x pixels grid, 4px in the case of Material Design,\n// without changing the relative line height\n\nfunction fontGrid(_ref2) {\n  var lineHeight = _ref2.lineHeight,\n      pixels = _ref2.pixels,\n      htmlFontSize = _ref2.htmlFontSize;\n  return pixels / (lineHeight * htmlFontSize);\n}\n/**\n * generate a responsive version of a given CSS property\n * @example\n * responsiveProperty({\n *   cssProperty: 'fontSize',\n *   min: 15,\n *   max: 20,\n *   unit: 'px',\n *   breakpoints: [300, 600],\n * })\n *\n * // this returns\n *\n * {\n *   fontSize: '15px',\n *   '@media (min-width:300px)': {\n *     fontSize: '17.5px',\n *   },\n *   '@media (min-width:600px)': {\n *     fontSize: '20px',\n *   },\n * }\n *\n * @param {Object} params\n * @param {string} params.cssProperty - The CSS property to be made responsive\n * @param {number} params.min - The smallest value of the CSS property\n * @param {number} params.max - The largest value of the CSS property\n * @param {string} [params.unit] - The unit to be used for the CSS property\n * @param {Array.number} [params.breakpoints]  - An array of breakpoints\n * @param {number} [params.alignStep] - Round scaled value to fall under this grid\n * @returns {Object} responsive styles for {params.cssProperty}\n */\n\nfunction responsiveProperty(_ref3) {\n  var cssProperty = _ref3.cssProperty,\n      min = _ref3.min,\n      max = _ref3.max,\n      _ref3$unit = _ref3.unit,\n      unit = _ref3$unit === void 0 ? 'rem' : _ref3$unit,\n      _ref3$breakpoints = _ref3.breakpoints,\n      breakpoints = _ref3$breakpoints === void 0 ? [600, 960, 1280] : _ref3$breakpoints,\n      _ref3$transform = _ref3.transform,\n      transform = _ref3$transform === void 0 ? null : _ref3$transform;\n\n  var output = Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, cssProperty, \"\".concat(min).concat(unit));\n\n  var factor = (max - min) / breakpoints[breakpoints.length - 1];\n  breakpoints.forEach(function (breakpoint) {\n    var value = min + factor * breakpoint;\n\n    if (transform !== null) {\n      value = transform(value);\n    }\n\n    output[\"@media (min-width:\".concat(breakpoint, \"px)\")] = Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, cssProperty, \"\".concat(Math.round(value * 10000) / 10000).concat(unit));\n  });\n  return output;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/cssUtils.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/defaultTheme.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/defaultTheme.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _createMuiTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createMuiTheme */ \"./node_modules/@material-ui/core/esm/styles/createMuiTheme.js\");\n\nvar defaultTheme = Object(_createMuiTheme__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n/* harmony default export */ __webpack_exports__[\"default\"] = (defaultTheme);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/defaultTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/index.js ***!
  \************************************************************/
/*! exports provided: hexToRgb, rgbToHex, hslToRgb, decomposeColor, recomposeColor, getContrastRatio, getLuminance, emphasize, fade, darken, lighten, createMuiTheme, unstable_createMuiStrictModeTheme, createStyles, makeStyles, responsiveFontSizes, styled, easing, duration, useTheme, withStyles, withTheme, createGenerateClassName, jssPreset, ServerStyleSheets, StylesProvider, MuiThemeProvider, ThemeProvider */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _colorManipulator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./colorManipulator */ \"./node_modules/@material-ui/core/esm/styles/colorManipulator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hexToRgb\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"hexToRgb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rgbToHex\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"rgbToHex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hslToRgb\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"hslToRgb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"decomposeColor\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"decomposeColor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"recomposeColor\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"recomposeColor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getContrastRatio\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"getContrastRatio\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getLuminance\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"getLuminance\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"emphasize\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"emphasize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fade\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"fade\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"darken\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"darken\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lighten\", function() { return _colorManipulator__WEBPACK_IMPORTED_MODULE_0__[\"lighten\"]; });\n\n/* harmony import */ var _createMuiTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createMuiTheme */ \"./node_modules/@material-ui/core/esm/styles/createMuiTheme.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createMuiTheme\", function() { return _createMuiTheme__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _createMuiStrictModeTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createMuiStrictModeTheme */ \"./node_modules/@material-ui/core/esm/styles/createMuiStrictModeTheme.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unstable_createMuiStrictModeTheme\", function() { return _createMuiStrictModeTheme__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _createStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createStyles */ \"./node_modules/@material-ui/core/esm/styles/createStyles.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createStyles\", function() { return _createStyles__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./makeStyles */ \"./node_modules/@material-ui/core/esm/styles/makeStyles.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeStyles\", function() { return _makeStyles__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _responsiveFontSizes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./responsiveFontSizes */ \"./node_modules/@material-ui/core/esm/styles/responsiveFontSizes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"responsiveFontSizes\", function() { return _responsiveFontSizes__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _styled__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styled */ \"./node_modules/@material-ui/core/esm/styles/styled.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"styled\", function() { return _styled__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transitions */ \"./node_modules/@material-ui/core/esm/styles/transitions.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easing\", function() { return _transitions__WEBPACK_IMPORTED_MODULE_7__[\"easing\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"duration\", function() { return _transitions__WEBPACK_IMPORTED_MODULE_7__[\"duration\"]; });\n\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useTheme\", function() { return _useTheme__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _withStyles__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./withStyles */ \"./node_modules/@material-ui/core/esm/styles/withStyles.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withStyles\", function() { return _withStyles__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _withTheme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./withTheme */ \"./node_modules/@material-ui/core/esm/styles/withTheme.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withTheme\", function() { return _withTheme__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createGenerateClassName\", function() { return _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__[\"createGenerateClassName\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"jssPreset\", function() { return _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__[\"jssPreset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ServerStyleSheets\", function() { return _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__[\"ServerStyleSheets\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StylesProvider\", function() { return _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__[\"StylesProvider\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MuiThemeProvider\", function() { return _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__[\"ThemeProvider\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThemeProvider\", function() { return _material_ui_styles__WEBPACK_IMPORTED_MODULE_11__[\"ThemeProvider\"]; });\n\n\n // eslint-disable-next-line camelcase\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/makeStyles.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/makeStyles.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultTheme */ \"./node_modules/@material-ui/core/esm/styles/defaultTheme.js\");\n\n\n\n\nfunction makeStyles(stylesOrCreator) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_1__[\"makeStyles\"])(stylesOrCreator, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n  }, options));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (makeStyles);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/makeStyles.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/responsiveFontSizes.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/responsiveFontSizes.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return responsiveFontSizes; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _cssUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssUtils */ \"./node_modules/@material-ui/core/esm/styles/cssUtils.js\");\n\n\n\nfunction responsiveFontSizes(themeInput) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _options$breakpoints = options.breakpoints,\n      breakpoints = _options$breakpoints === void 0 ? ['sm', 'md', 'lg'] : _options$breakpoints,\n      _options$disableAlign = options.disableAlign,\n      disableAlign = _options$disableAlign === void 0 ? false : _options$disableAlign,\n      _options$factor = options.factor,\n      factor = _options$factor === void 0 ? 2 : _options$factor,\n      _options$variants = options.variants,\n      variants = _options$variants === void 0 ? ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'caption', 'button', 'overline'] : _options$variants;\n\n  var theme = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, themeInput);\n\n  theme.typography = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, theme.typography);\n  var typography = theme.typography; // Convert between css lengths e.g. em->px or px->rem\n  // Set the baseFontSize for your project. Defaults to 16px (also the browser default).\n\n  var convert = Object(_cssUtils__WEBPACK_IMPORTED_MODULE_2__[\"convertLength\"])(typography.htmlFontSize);\n  var breakpointValues = breakpoints.map(function (x) {\n    return theme.breakpoints.values[x];\n  });\n  variants.forEach(function (variant) {\n    var style = typography[variant];\n    var remFontSize = parseFloat(convert(style.fontSize, 'rem'));\n\n    if (remFontSize <= 1) {\n      return;\n    }\n\n    var maxFontSize = remFontSize;\n    var minFontSize = 1 + (maxFontSize - 1) / factor;\n    var lineHeight = style.lineHeight;\n\n    if (!Object(_cssUtils__WEBPACK_IMPORTED_MODULE_2__[\"isUnitless\"])(lineHeight) && !disableAlign) {\n      throw new Error( true ? \"Material-UI: Unsupported non-unitless line height with grid alignment.\\nUse unitless line heights instead.\" : undefined);\n    }\n\n    if (!Object(_cssUtils__WEBPACK_IMPORTED_MODULE_2__[\"isUnitless\"])(lineHeight)) {\n      // make it unitless\n      lineHeight = parseFloat(convert(lineHeight, 'rem')) / parseFloat(remFontSize);\n    }\n\n    var transform = null;\n\n    if (!disableAlign) {\n      transform = function transform(value) {\n        return Object(_cssUtils__WEBPACK_IMPORTED_MODULE_2__[\"alignProperty\"])({\n          size: value,\n          grid: Object(_cssUtils__WEBPACK_IMPORTED_MODULE_2__[\"fontGrid\"])({\n            pixels: 4,\n            lineHeight: lineHeight,\n            htmlFontSize: typography.htmlFontSize\n          })\n        });\n      };\n    }\n\n    typography[variant] = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, style, Object(_cssUtils__WEBPACK_IMPORTED_MODULE_2__[\"responsiveProperty\"])({\n      cssProperty: 'fontSize',\n      min: minFontSize,\n      max: maxFontSize,\n      unit: 'rem',\n      breakpoints: breakpointValues,\n      transform: transform\n    }));\n  });\n  return theme;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/responsiveFontSizes.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/shadows.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/shadows.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n  return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\n/* harmony default export */ __webpack_exports__[\"default\"] = (shadows);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/shadows.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/shape.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/shape.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar shape = {\n  borderRadius: 4\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (shape);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/shape.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/styled.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/styled.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultTheme */ \"./node_modules/@material-ui/core/esm/styles/defaultTheme.js\");\n\n\n\n\nvar styled = function styled(Component) {\n  var componentCreator = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_1__[\"styled\"])(Component);\n  return function (style, options) {\n    return componentCreator(style, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n    }, options));\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (styled);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/styled.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/transitions.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/transitions.js ***!
  \******************************************************************/
/*! exports provided: easing, duration, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"easing\", function() { return easing; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"duration\", function() { return duration; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nvar easing = {\n  // This is the most common easing curve.\n  easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n  // Objects enter the screen at full velocity from off-screen and\n  // slowly decelerate to a resting point.\n  easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n  // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n  easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n  // The sharp curve is used by objects that may return to the screen at any time.\n  sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nvar duration = {\n  shortest: 150,\n  shorter: 200,\n  short: 250,\n  // most basic recommended timing\n  standard: 300,\n  // this is to be used in complex animations\n  complex: 375,\n  // recommended when something is entering screen\n  enteringScreen: 225,\n  // recommended when something is leaving screen\n  leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n  return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  easing: easing,\n  duration: duration,\n  create: function create() {\n    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    var _options$duration = options.duration,\n        durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n        _options$easing = options.easing,\n        easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n        _options$delay = options.delay,\n        delay = _options$delay === void 0 ? 0 : _options$delay,\n        other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(options, [\"duration\", \"easing\", \"delay\"]);\n\n    if (true) {\n      var isString = function isString(value) {\n        return typeof value === 'string';\n      };\n\n      var isNumber = function isNumber(value) {\n        return !isNaN(parseFloat(value));\n      };\n\n      if (!isString(props) && !Array.isArray(props)) {\n        console.error('Material-UI: Argument \"props\" must be a string or Array.');\n      }\n\n      if (!isNumber(durationOption) && !isString(durationOption)) {\n        console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n      }\n\n      if (!isString(easingOption)) {\n        console.error('Material-UI: Argument \"easing\" must be a string.');\n      }\n\n      if (!isNumber(delay) && !isString(delay)) {\n        console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n      }\n\n      if (Object.keys(other).length !== 0) {\n        console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n      }\n    }\n\n    return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n      return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n    }).join(',');\n  },\n  getAutoHeightDuration: function getAutoHeightDuration(height) {\n    if (!height) {\n      return 0;\n    }\n\n    var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n    return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n  }\n});\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/transitions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/useTheme.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/useTheme.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useTheme; });\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultTheme */ \"./node_modules/@material-ui/core/esm/styles/defaultTheme.js\");\n\n\n\nfunction useTheme() {\n  var theme = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_0__[\"useTheme\"])() || _defaultTheme__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_1___default.a.useDebugValue(theme);\n  }\n\n  return theme;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/useTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/withStyles.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/withStyles.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultTheme */ \"./node_modules/@material-ui/core/esm/styles/defaultTheme.js\");\n\n\n\n\nfunction withStyles(stylesOrCreator, options) {\n  return Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_1__[\"withStyles\"])(stylesOrCreator, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n  }, options));\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (withStyles);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/withStyles.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/withTheme.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/withTheme.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultTheme */ \"./node_modules/@material-ui/core/esm/styles/defaultTheme.js\");\n\n\nvar withTheme = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_0__[\"withThemeCreator\"])({\n  defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (withTheme);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/withTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/styles/zIndex.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/styles/zIndex.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n  mobileStepper: 1000,\n  speedDial: 1050,\n  appBar: 1100,\n  drawer: 1200,\n  modal: 1300,\n  snackbar: 1400,\n  tooltip: 1500\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (zIndex);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/styles/zIndex.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/transitions/utils.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/transitions/utils.js ***!
  \*****************************************************************/
/*! exports provided: reflow, getTransitionProps */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reflow\", function() { return reflow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTransitionProps\", function() { return getTransitionProps; });\nvar reflow = function reflow(node) {\n  return node.scrollTop;\n};\nfunction getTransitionProps(props, options) {\n  var timeout = props.timeout,\n      _props$style = props.style,\n      style = _props$style === void 0 ? {} : _props$style;\n  return {\n    duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n    delay: style.transitionDelay\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/transitions/utils.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/useMediaQuery/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/useMediaQuery/index.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useMediaQuery */ \"./node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _useMediaQuery__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/useMediaQuery/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useMediaQuery; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n\n\n\nfunction useMediaQuery(queryInput) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var theme = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_2__[\"useTheme\"])();\n  var props = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_2__[\"getThemeProps\"])({\n    theme: theme,\n    name: 'MuiUseMediaQuery',\n    props: {}\n  });\n\n  if (true) {\n    if (typeof queryInput === 'function' && theme === null) {\n      console.error(['Material-UI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n    }\n  }\n\n  var query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n  query = query.replace(/^@media( ?)/m, ''); // Wait for jsdom to support the match media feature.\n  // All the browsers Material-UI support have this built-in.\n  // This defensive check is here for simplicity.\n  // Most of the time, the match media logic isn't central to people tests.\n\n  var supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n\n  var _props$options = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, options),\n      _props$options$defaul = _props$options.defaultMatches,\n      defaultMatches = _props$options$defaul === void 0 ? false : _props$options$defaul,\n      _props$options$matchM = _props$options.matchMedia,\n      matchMedia = _props$options$matchM === void 0 ? supportMatchMedia ? window.matchMedia : null : _props$options$matchM,\n      _props$options$noSsr = _props$options.noSsr,\n      noSsr = _props$options$noSsr === void 0 ? false : _props$options$noSsr,\n      _props$options$ssrMat = _props$options.ssrMatchMedia,\n      ssrMatchMedia = _props$options$ssrMat === void 0 ? null : _props$options$ssrMat;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__[\"useState\"](function () {\n    if (noSsr && supportMatchMedia) {\n      return matchMedia(query).matches;\n    }\n\n    if (ssrMatchMedia) {\n      return ssrMatchMedia(query).matches;\n    } // Once the component is mounted, we rely on the\n    // event listeners to return the correct matches value.\n\n\n    return defaultMatches;\n  }),\n      match = _React$useState[0],\n      setMatch = _React$useState[1];\n\n  react__WEBPACK_IMPORTED_MODULE_1__[\"useEffect\"](function () {\n    var active = true;\n\n    if (!supportMatchMedia) {\n      return undefined;\n    }\n\n    var queryList = matchMedia(query);\n\n    var updateMatch = function updateMatch() {\n      // Workaround Safari wrong implementation of matchMedia\n      // TODO can we remove it?\n      // https://github.com/mui-org/material-ui/pull/17315#issuecomment-528286677\n      if (active) {\n        setMatch(queryList.matches);\n      }\n    };\n\n    updateMatch();\n    queryList.addListener(updateMatch);\n    return function () {\n      active = false;\n      queryList.removeListener(updateMatch);\n    };\n  }, [query, matchMedia, supportMatchMedia]);\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_1__[\"useDebugValue\"]({\n      query: query,\n      match: match\n    });\n  }\n\n  return match;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/useScrollTrigger/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/useScrollTrigger/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _useScrollTrigger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useScrollTrigger */ \"./node_modules/@material-ui/core/esm/useScrollTrigger/useScrollTrigger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _useScrollTrigger__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/useScrollTrigger/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/useScrollTrigger/useScrollTrigger.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/useScrollTrigger/useScrollTrigger.js ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useScrollTrigger; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\nfunction defaultTrigger(store, options) {\n  var _options$disableHyste = options.disableHysteresis,\n      disableHysteresis = _options$disableHyste === void 0 ? false : _options$disableHyste,\n      _options$threshold = options.threshold,\n      threshold = _options$threshold === void 0 ? 100 : _options$threshold,\n      target = options.target;\n  var previous = store.current;\n\n  if (target) {\n    // Get vertical scroll\n    store.current = target.pageYOffset !== undefined ? target.pageYOffset : target.scrollTop;\n  }\n\n  if (!disableHysteresis && previous !== undefined) {\n    if (store.current < previous) {\n      return false;\n    }\n  }\n\n  return store.current > threshold;\n}\n\nvar defaultTarget = typeof window !== 'undefined' ? window : null;\nfunction useScrollTrigger() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var _options$getTrigger = options.getTrigger,\n      getTrigger = _options$getTrigger === void 0 ? defaultTrigger : _options$getTrigger,\n      _options$target = options.target,\n      target = _options$target === void 0 ? defaultTarget : _options$target,\n      other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(options, [\"getTrigger\", \"target\"]);\n\n  var store = react__WEBPACK_IMPORTED_MODULE_2__[\"useRef\"]();\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](function () {\n    return getTrigger(store, other);\n  }),\n      trigger = _React$useState[0],\n      setTrigger = _React$useState[1];\n\n  react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"](function () {\n    var handleScroll = function handleScroll() {\n      setTrigger(getTrigger(store, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        target: target\n      }, other)));\n    };\n\n    handleScroll(); // Re-evaluate trigger when dependencies change\n\n    target.addEventListener('scroll', handleScroll);\n    return function () {\n      target.removeEventListener('scroll', handleScroll);\n    }; // See Option 3. https://github.com/facebook/react/issues/14476#issuecomment-471199055\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [target, getTrigger, JSON.stringify(other)]);\n  return trigger;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/useScrollTrigger/useScrollTrigger.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/capitalize.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/capitalize.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return capitalize; });\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nfunction capitalize(string) {\n  if (typeof string !== 'string') {\n    throw new Error( true ? \"Material-UI: capitalize(string) expects a string argument.\" : undefined);\n  }\n\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/capitalize.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/createChainedFunction.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createChainedFunction; });\n/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  return funcs.reduce(function (acc, func) {\n    if (func == null) {\n      return acc;\n    }\n\n    if (true) {\n      if (typeof func !== 'function') {\n        console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n      }\n    }\n\n    return function chainedFunction() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      acc.apply(this, args);\n      func.apply(this, args);\n    };\n  }, function () {});\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/createChainedFunction.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/createSvgIcon.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/createSvgIcon.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createSvgIcon; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _SvgIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SvgIcon */ \"./node_modules/@material-ui/core/esm/SvgIcon/index.js\");\n\n\n\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nfunction createSvgIcon(path, displayName) {\n  var Component = function Component(props, ref) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_SvgIcon__WEBPACK_IMPORTED_MODULE_2__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      ref: ref\n    }, props), path);\n  };\n\n  if (true) {\n    // Need to set `displayName` on the inner component for React.memo.\n    // React prior to 16.14 ignores `displayName` on the wrapper.\n    Component.displayName = \"\".concat(displayName, \"Icon\");\n  }\n\n  Component.muiName = _SvgIcon__WEBPACK_IMPORTED_MODULE_2__[\"default\"].muiName;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.memo( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.forwardRef(Component));\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/createSvgIcon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/debounce.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/debounce.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return debounce; });\n// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nfunction debounce(func) {\n  var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n  var timeout;\n\n  function debounced() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    // eslint-disable-next-line consistent-this\n    var that = this;\n\n    var later = function later() {\n      func.apply(that, args);\n    };\n\n    clearTimeout(timeout);\n    timeout = setTimeout(later, wait);\n  }\n\n  debounced.clear = function () {\n    clearTimeout(timeout);\n  };\n\n  return debounced;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/debounce.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return deprecatedPropType; });\nfunction deprecatedPropType(validator, reason) {\n  if (false) {}\n\n  return function (props, propName, componentName, location, propFullName) {\n    var componentNameSafe = componentName || '<<anonymous>>';\n    var propFullNameSafe = propFullName || propName;\n\n    if (typeof props[propName] !== 'undefined') {\n      return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n    }\n\n    return null;\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getScrollbarSize; });\n// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519\nfunction getScrollbarSize() {\n  var scrollDiv = document.createElement('div');\n  scrollDiv.style.width = '99px';\n  scrollDiv.style.height = '99px';\n  scrollDiv.style.position = 'absolute';\n  scrollDiv.style.top = '-9999px';\n  scrollDiv.style.overflow = 'scroll';\n  document.body.appendChild(scrollDiv);\n  var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n  document.body.removeChild(scrollDiv);\n  return scrollbarSize;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/index.js ***!
  \***********************************************************/
/*! exports provided: capitalize, createChainedFunction, createSvgIcon, debounce, deprecatedPropType, isMuiElement, ownerDocument, ownerWindow, requirePropFactory, setRef, unsupportedProp, useControlled, useEventCallback, useForkRef, unstable_useId, useIsFocusVisible */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./capitalize */ \"./node_modules/@material-ui/core/esm/utils/capitalize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"capitalize\", function() { return _capitalize__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _createChainedFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createChainedFunction */ \"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createChainedFunction\", function() { return _createChainedFunction__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _createSvgIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createSvgIcon */ \"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createSvgIcon\", function() { return _createSvgIcon__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./debounce */ \"./node_modules/@material-ui/core/esm/utils/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _debounce__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _deprecatedPropType__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./deprecatedPropType */ \"./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deprecatedPropType\", function() { return _deprecatedPropType__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _isMuiElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isMuiElement */ \"./node_modules/@material-ui/core/esm/utils/isMuiElement.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isMuiElement\", function() { return _isMuiElement__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ownerDocument\", function() { return _ownerDocument__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _ownerWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ownerWindow */ \"./node_modules/@material-ui/core/esm/utils/ownerWindow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ownerWindow\", function() { return _ownerWindow__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _requirePropFactory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./requirePropFactory */ \"./node_modules/@material-ui/core/esm/utils/requirePropFactory.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"requirePropFactory\", function() { return _requirePropFactory__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setRef\", function() { return _setRef__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _unsupportedProp__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./unsupportedProp */ \"./node_modules/@material-ui/core/esm/utils/unsupportedProp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unsupportedProp\", function() { return _unsupportedProp__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _useControlled__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./useControlled */ \"./node_modules/@material-ui/core/esm/utils/useControlled.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useControlled\", function() { return _useControlled__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _useEventCallback__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./useEventCallback */ \"./node_modules/@material-ui/core/esm/utils/useEventCallback.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useEventCallback\", function() { return _useEventCallback__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _useForkRef__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./useForkRef */ \"./node_modules/@material-ui/core/esm/utils/useForkRef.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useForkRef\", function() { return _useForkRef__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _unstable_useId__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./unstable_useId */ \"./node_modules/@material-ui/core/esm/utils/unstable_useId.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unstable_useId\", function() { return _unstable_useId__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _useIsFocusVisible__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./useIsFocusVisible */ \"./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useIsFocusVisible\", function() { return _useIsFocusVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // eslint-disable-next-line camelcase\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/isMuiElement.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/isMuiElement.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return isMuiElement; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nfunction isMuiElement(element, muiNames) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"](element) && muiNames.indexOf(element.type.muiName) !== -1;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/isMuiElement.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/ownerDocument.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/ownerDocument.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ownerDocument; });\nfunction ownerDocument(node) {\n  return node && node.ownerDocument || document;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/ownerDocument.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/ownerWindow.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/ownerWindow.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ownerWindow; });\n/* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ownerDocument */ \"./node_modules/@material-ui/core/esm/utils/ownerDocument.js\");\n\nfunction ownerWindow(node) {\n  var doc = Object(_ownerDocument__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node);\n  return doc.defaultView || window;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/ownerWindow.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/requirePropFactory.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/requirePropFactory.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return requirePropFactory; });\nfunction requirePropFactory(componentNameInError) {\n  if (false) {}\n\n  var requireProp = function requireProp(requiredProp) {\n    return function (props, propName, componentName, location, propFullName) {\n      var propFullNameSafe = propFullName || propName;\n\n      if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n        return new Error(\"The prop `\".concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameInError, \"` must be used on `\").concat(requiredProp, \"`.\"));\n      }\n\n      return null;\n    };\n  };\n\n  return requireProp;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/requirePropFactory.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/scrollLeft.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/scrollLeft.js ***!
  \****************************************************************/
/*! exports provided: detectScrollType, getNormalizedScrollLeft */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"detectScrollType\", function() { return detectScrollType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getNormalizedScrollLeft\", function() { return getNormalizedScrollLeft; });\n// Source from https://github.com/alitaheri/normalize-scroll-left\nvar cachedType;\n/**\n * Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\n *\n * Types of scrollLeft, assuming scrollWidth=100 and direction is rtl.\n *\n * Type             | <- Most Left | Most Right -> | Initial\n * ---------------- | ------------ | ------------- | -------\n * default          | 0            | 100           | 100\n * negative (spec*) | -100         | 0             | 0\n * reverse          | 100          | 0             | 0\n *\n * Edge 85: default\n * Safari 14: negative\n * Chrome 85: negative\n * Firefox 81: negative\n * IE 11: reverse\n *\n * spec* https://drafts.csswg.org/cssom-view/#dom-window-scroll\n */\n\nfunction detectScrollType() {\n  if (cachedType) {\n    return cachedType;\n  }\n\n  var dummy = document.createElement('div');\n  var container = document.createElement('div');\n  container.style.width = '10px';\n  container.style.height = '1px';\n  dummy.appendChild(container);\n  dummy.dir = 'rtl';\n  dummy.style.fontSize = '14px';\n  dummy.style.width = '4px';\n  dummy.style.height = '1px';\n  dummy.style.position = 'absolute';\n  dummy.style.top = '-1000px';\n  dummy.style.overflow = 'scroll';\n  document.body.appendChild(dummy);\n  cachedType = 'reverse';\n\n  if (dummy.scrollLeft > 0) {\n    cachedType = 'default';\n  } else {\n    dummy.scrollLeft = 1;\n\n    if (dummy.scrollLeft === 0) {\n      cachedType = 'negative';\n    }\n  }\n\n  document.body.removeChild(dummy);\n  return cachedType;\n} // Based on https://stackoverflow.com/a/24394376\n\nfunction getNormalizedScrollLeft(element, direction) {\n  var scrollLeft = element.scrollLeft; // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior\n\n  if (direction !== 'rtl') {\n    return scrollLeft;\n  }\n\n  var type = detectScrollType();\n\n  switch (type) {\n    case 'negative':\n      return element.scrollWidth - element.clientWidth + scrollLeft;\n\n    case 'reverse':\n      return element.scrollWidth - element.clientWidth - scrollLeft;\n\n    default:\n      return scrollLeft;\n  }\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/scrollLeft.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/setRef.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/setRef.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return setRef; });\n// TODO v5: consider to make it private\nfunction setRef(ref, value) {\n  if (typeof ref === 'function') {\n    ref(value);\n  } else if (ref) {\n    ref.current = value;\n  }\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/setRef.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/unstable_useId.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/unstable_useId.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useId; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nfunction useId(idOverride) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"](idOverride),\n      defaultId = _React$useState[0],\n      setDefaultId = _React$useState[1];\n\n  var id = idOverride || defaultId;\n  react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n    if (defaultId == null) {\n      // Fallback to this default id when possible.\n      // Use the random value for client-side rendering only.\n      // We can't use it server-side.\n      setDefaultId(\"mui-\".concat(Math.round(Math.random() * 1e5)));\n    }\n  }, [defaultId]);\n  return id;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/unstable_useId.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/unsupportedProp.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/unsupportedProp.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return unsupportedProp; });\nfunction unsupportedProp(props, propName, componentName, location, propFullName) {\n  if (false) {}\n\n  var propFullNameSafe = propFullName || propName;\n\n  if (typeof props[propName] !== 'undefined') {\n    return new Error(\"The prop `\".concat(propFullNameSafe, \"` is not supported. Please remove it.\"));\n  }\n\n  return null;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/unsupportedProp.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/useControlled.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/useControlled.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useControlled; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\n\nfunction useControlled(_ref) {\n  var controlled = _ref.controlled,\n      defaultProp = _ref.default,\n      name = _ref.name,\n      _ref$state = _ref.state,\n      state = _ref$state === void 0 ? 'value' : _ref$state;\n\n  var _React$useRef = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](controlled !== undefined),\n      isControlled = _React$useRef.current;\n\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"](defaultProp),\n      valueState = _React$useState[0],\n      setValue = _React$useState[1];\n\n  var value = isControlled ? controlled : valueState;\n\n  if (true) {\n    react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n      if (isControlled !== (controlled !== undefined)) {\n        console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n      }\n    }, [controlled]);\n\n    var _React$useRef2 = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](defaultProp),\n        defaultValue = _React$useRef2.current;\n\n    react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"](function () {\n      if (!isControlled && defaultValue !== defaultProp) {\n        console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n      }\n    }, [JSON.stringify(defaultProp)]);\n  }\n\n  var setValueIfUncontrolled = react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"](function (newValue) {\n    if (!isControlled) {\n      setValue(newValue);\n    }\n  }, []);\n  return [value, setValueIfUncontrolled];\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/useControlled.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/useEventCallback.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/useEventCallback.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useEventCallback; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__[\"useLayoutEffect\"] : react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"];\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nfunction useEventCallback(fn) {\n  var ref = react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"](fn);\n  useEnhancedEffect(function () {\n    ref.current = fn;\n  });\n  return react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"](function () {\n    return (0, ref.current).apply(void 0, arguments);\n  }, []);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/useEventCallback.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/useForkRef.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/useForkRef.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useForkRef; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setRef */ \"./node_modules/@material-ui/core/esm/utils/setRef.js\");\n\n\nfunction useForkRef(refA, refB) {\n  /**\n   * This will create a new function if the ref props change and are defined.\n   * This means react will call the old forkRef with `null` and the new forkRef\n   * with the ref. Cleanup naturally emerges from this behavior\n   */\n  return react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"](function () {\n    if (refA == null && refB == null) {\n      return null;\n    }\n\n    return function (refValue) {\n      Object(_setRef__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(refA, refValue);\n      Object(_setRef__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(refB, refValue);\n    };\n  }, [refA, refB]);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/useForkRef.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js ***!
  \***********************************************************************/
/*! exports provided: teardown, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"teardown\", function() { return teardown; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useIsFocusVisible; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\n\n\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n  text: true,\n  search: true,\n  url: true,\n  tel: true,\n  email: true,\n  password: true,\n  number: true,\n  date: true,\n  month: true,\n  week: true,\n  time: true,\n  datetime: true,\n  'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n  var type = node.type,\n      tagName = node.tagName;\n\n  if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n    return true;\n  }\n\n  if (tagName === 'TEXTAREA' && !node.readOnly) {\n    return true;\n  }\n\n  if (node.isContentEditable) {\n    return true;\n  }\n\n  return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n  if (event.metaKey || event.altKey || event.ctrlKey) {\n    return;\n  }\n\n  hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n  hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n  if (this.visibilityState === 'hidden') {\n    // If the tab becomes active again, the browser will handle calling focus\n    // on the element (Safari actually calls it twice).\n    // If this tab change caused a blur on an element with focus-visible,\n    // re-apply the class when the user switches back to the tab.\n    if (hadFocusVisibleRecently) {\n      hadKeyboardEvent = true;\n    }\n  }\n}\n\nfunction prepare(doc) {\n  doc.addEventListener('keydown', handleKeyDown, true);\n  doc.addEventListener('mousedown', handlePointerDown, true);\n  doc.addEventListener('pointerdown', handlePointerDown, true);\n  doc.addEventListener('touchstart', handlePointerDown, true);\n  doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction teardown(doc) {\n  doc.removeEventListener('keydown', handleKeyDown, true);\n  doc.removeEventListener('mousedown', handlePointerDown, true);\n  doc.removeEventListener('pointerdown', handlePointerDown, true);\n  doc.removeEventListener('touchstart', handlePointerDown, true);\n  doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n  var target = event.target;\n\n  try {\n    return target.matches(':focus-visible');\n  } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n  // we use our own heuristic for those browsers\n  // rethrow might be better if it's not the expected error but do we really\n  // want to crash if focus-visible malfunctioned?\n  // no need for validFocusTarget check. the user does that by attaching it to\n  // focusable events only\n\n\n  return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n  // To detect a tab/window switch, we look for a blur event followed\n  // rapidly by a visibility change.\n  // If we don't see a visibility change within 100ms, it's probably a\n  // regular focus change.\n  hadFocusVisibleRecently = true;\n  window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n  hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n    hadFocusVisibleRecently = false;\n  }, 100);\n}\n\nfunction useIsFocusVisible() {\n  var ref = react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"](function (instance) {\n    var node = react_dom__WEBPACK_IMPORTED_MODULE_1__[\"findDOMNode\"](instance);\n\n    if (node != null) {\n      prepare(node.ownerDocument);\n    }\n  }, []);\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_0__[\"useDebugValue\"](isFocusVisible);\n  }\n\n  return {\n    isFocusVisible: isFocusVisible,\n    onBlurVisible: handleBlurVisible,\n    ref: ref\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/withMobileDialog/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/withMobileDialog/index.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _withMobileDialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./withMobileDialog */ \"./node_modules/@material-ui/core/esm/withMobileDialog/withMobileDialog.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _withMobileDialog__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/withMobileDialog/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/withMobileDialog/withMobileDialog.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/withMobileDialog/withMobileDialog.js ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _withWidth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../withWidth */ \"./node_modules/@material-ui/core/esm/withWidth/index.js\");\n\n\n\n\n/**\n * Dialog will responsively be full screen *at or below* the given breakpoint\n * (defaults to 'sm' for mobile devices).\n * Notice that this Higher-order Component is incompatible with server-side rendering.\n */\n\nvar withMobileDialog = function withMobileDialog() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (Component) {\n    var _options$breakpoint = options.breakpoint,\n        breakpoint = _options$breakpoint === void 0 ? 'sm' : _options$breakpoint;\n\n    function WithMobileDialog(props) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__[\"createElement\"](Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        fullScreen: Object(_withWidth__WEBPACK_IMPORTED_MODULE_3__[\"isWidthDown\"])(breakpoint, props.width)\n      }, props));\n    }\n\n     true ? WithMobileDialog.propTypes = {\n      width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']).isRequired\n    } : undefined;\n    return Object(_withWidth__WEBPACK_IMPORTED_MODULE_3__[\"default\"])()(WithMobileDialog);\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (withMobileDialog);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/withMobileDialog/withMobileDialog.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/withWidth/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/withWidth/index.js ***!
  \***************************************************************/
/*! exports provided: default, isWidthUp, isWidthDown */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _withWidth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./withWidth */ \"./node_modules/@material-ui/core/esm/withWidth/withWidth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _withWidth__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isWidthUp\", function() { return _withWidth__WEBPACK_IMPORTED_MODULE_0__[\"isWidthUp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isWidthDown\", function() { return _withWidth__WEBPACK_IMPORTED_MODULE_0__[\"isWidthDown\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/withWidth/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/core/esm/withWidth/withWidth.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/core/esm/withWidth/withWidth.js ***!
  \*******************************************************************/
/*! exports provided: isWidthUp, isWidthDown, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isWidthUp\", function() { return isWidthUp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isWidthDown\", function() { return isWidthDown; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/styles */ \"./node_modules/@material-ui/styles/esm/index.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _styles_useTheme__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../styles/useTheme */ \"./node_modules/@material-ui/core/esm/styles/useTheme.js\");\n/* harmony import */ var _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../styles/createBreakpoints */ \"./node_modules/@material-ui/core/esm/styles/createBreakpoints.js\");\n/* harmony import */ var _useMediaQuery__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../useMediaQuery */ \"./node_modules/@material-ui/core/esm/useMediaQuery/index.js\");\n\n\n\n\n\n\n\n\n\n // By default, returns true if screen width is the same or greater than the given breakpoint.\n\nvar isWidthUp = function isWidthUp(breakpoint, width) {\n  var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n  if (inclusive) {\n    return _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(breakpoint) <= _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(width);\n  }\n\n  return _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(breakpoint) < _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(width);\n}; // By default, returns true if screen width is the same or less than the given breakpoint.\n\nvar isWidthDown = function isWidthDown(breakpoint, width) {\n  var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n  if (inclusive) {\n    return _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(width) <= _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(breakpoint);\n  }\n\n  return _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(width) < _styles_createBreakpoints__WEBPACK_IMPORTED_MODULE_8__[\"keys\"].indexOf(breakpoint);\n};\nvar useEnhancedEffect = typeof window === 'undefined' ? react__WEBPACK_IMPORTED_MODULE_2__[\"useEffect\"] : react__WEBPACK_IMPORTED_MODULE_2__[\"useLayoutEffect\"];\n\nvar withWidth = function withWidth() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (Component) {\n    var _options$withTheme = options.withTheme,\n        withThemeOption = _options$withTheme === void 0 ? false : _options$withTheme,\n        _options$noSSR = options.noSSR,\n        noSSR = _options$noSSR === void 0 ? false : _options$noSSR,\n        initialWidthOption = options.initialWidth;\n\n    function WithWidth(props) {\n      var contextTheme = Object(_styles_useTheme__WEBPACK_IMPORTED_MODULE_7__[\"default\"])();\n      var theme = props.theme || contextTheme;\n\n      var _getThemeProps = Object(_material_ui_styles__WEBPACK_IMPORTED_MODULE_5__[\"getThemeProps\"])({\n        theme: theme,\n        name: 'MuiWithWidth',\n        props: Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props)\n      }),\n          initialWidth = _getThemeProps.initialWidth,\n          width = _getThemeProps.width,\n          other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_getThemeProps, [\"initialWidth\", \"width\"]);\n\n      var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__[\"useState\"](false),\n          mountedState = _React$useState[0],\n          setMountedState = _React$useState[1];\n\n      useEnhancedEffect(function () {\n        setMountedState(true);\n      }, []);\n      /**\n       * innerWidth |xs      sm      md      lg      xl\n       *            |-------|-------|-------|-------|------>\n       * width      |  xs   |  sm   |  md   |  lg   |  xl\n       */\n\n      var keys = theme.breakpoints.keys.slice().reverse();\n      var widthComputed = keys.reduce(function (output, key) {\n        // eslint-disable-next-line react-hooks/rules-of-hooks\n        var matches = Object(_useMediaQuery__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(theme.breakpoints.up(key));\n        return !output && matches ? key : output;\n      }, null);\n\n      var more = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        width: width || (mountedState || noSSR ? widthComputed : undefined) || initialWidth || initialWidthOption\n      }, withThemeOption ? {\n        theme: theme\n      } : {}, other); // When rendering the component on the server,\n      // we have no idea about the client browser screen width.\n      // In order to prevent blinks and help the reconciliation of the React tree\n      // we are not rendering the child component.\n      //\n      // An alternative is to use the `initialWidth` property.\n\n\n      if (more.width === undefined) {\n        return null;\n      }\n\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"](Component, more);\n    }\n\n     true ? WithWidth.propTypes = {\n      /**\n       * As `window.innerWidth` is unavailable on the server,\n       * we default to rendering an empty component during the first mount.\n       * You might want to use an heuristic to approximate\n       * the screen width of the client browser screen width.\n       *\n       * For instance, you could be using the user-agent or the client-hints.\n       * https://caniuse.com/#search=client%20hint\n       */\n      initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n      /**\n       * @ignore\n       */\n      theme: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n      /**\n       * Bypass the width calculation logic.\n       */\n      width: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['xs', 'sm', 'md', 'lg', 'xl'])\n    } : undefined;\n\n    if (true) {\n      WithWidth.displayName = \"WithWidth(\".concat(Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_4__[\"getDisplayName\"])(Component), \")\");\n    }\n\n    hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6___default()(WithWidth, Component);\n    return WithWidth;\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (withWidth);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/core/esm/withWidth/withWidth.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/AddCircleOutline.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/icons/AddCircleOutline.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n}), 'AddCircleOutline');\n\nexports.default = _default;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/AddCircleOutline.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/Close.js":
/*!**************************************************!*\
  !*** ./node_modules/@material-ui/icons/Close.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/Close.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/GetApp.js":
/*!***************************************************!*\
  !*** ./node_modules/@material-ui/icons/GetApp.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\"\n}), 'GetApp');\n\nexports.default = _default;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/GetApp.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/History.js":
/*!****************************************************!*\
  !*** ./node_modules/@material-ui/icons/History.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\"\n}), 'History');\n\nexports.default = _default;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/History.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/PlayArrow.js":
/*!******************************************************!*\
  !*** ./node_modules/@material-ui/icons/PlayArrow.js ***!
  \******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/PlayArrow.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/Visibility.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/icons/Visibility.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ \"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/Visibility.js?");

/***/ }),

/***/ "./node_modules/@material-ui/icons/utils/createSvgIcon.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/icons/utils/createSvgIcon.js ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _utils.createSvgIcon;\n  }\n});\n\nvar _utils = __webpack_require__(/*! @material-ui/core/utils */ \"./node_modules/@material-ui/core/esm/utils/index.js\");\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/icons/utils/createSvgIcon.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js ***!
  \*************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ServerStyleSheets; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n/* harmony import */ var _StylesProvider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../StylesProvider */ \"./node_modules/@material-ui/styles/esm/StylesProvider/index.js\");\n/* harmony import */ var _createGenerateClassName__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../createGenerateClassName */ \"./node_modules/@material-ui/styles/esm/createGenerateClassName/index.js\");\n\n\n\n\n\n\n\n\nvar ServerStyleSheets = /*#__PURE__*/function () {\n  function ServerStyleSheets() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this, ServerStyleSheets);\n\n    this.options = options;\n  }\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(ServerStyleSheets, [{\n    key: \"collect\",\n    value: function collect(children) {\n      // This is needed in order to deduplicate the injection of CSS in the page.\n      var sheetsManager = new Map(); // This is needed in order to inject the critical CSS.\n\n      this.sheetsRegistry = new jss__WEBPACK_IMPORTED_MODULE_4__[\"SheetsRegistry\"](); // A new class name generator\n\n      var generateClassName = Object(_createGenerateClassName__WEBPACK_IMPORTED_MODULE_6__[\"default\"])();\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_StylesProvider__WEBPACK_IMPORTED_MODULE_5__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        sheetsManager: sheetsManager,\n        serverGenerateClassName: generateClassName,\n        sheetsRegistry: this.sheetsRegistry\n      }, this.options), children);\n    }\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      return this.sheetsRegistry ? this.sheetsRegistry.toString() : '';\n    }\n  }, {\n    key: \"getStyleElement\",\n    value: function getStyleElement(props) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement('style', Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        id: 'jss-server-side',\n        key: 'jss-server-side',\n        dangerouslySetInnerHTML: {\n          __html: this.toString()\n        }\n      }, props));\n    }\n  }]);\n\n  return ServerStyleSheets;\n}();\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/ServerStyleSheets/index.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/ServerStyleSheets/index.js ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ServerStyleSheets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ServerStyleSheets */ \"./node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ServerStyleSheets__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/ServerStyleSheets/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js ***!
  \*******************************************************************************/
/*! exports provided: sheetsManager, StylesContext, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sheetsManager\", function() { return sheetsManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StylesContext\", function() { return StylesContext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return StylesProvider; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _createGenerateClassName__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../createGenerateClassName */ \"./node_modules/@material-ui/styles/esm/createGenerateClassName/index.js\");\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n/* harmony import */ var _jssPreset__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../jssPreset */ \"./node_modules/@material-ui/styles/esm/jssPreset/index.js\");\n\n\n\n\n\n\n\n // Default JSS instance.\n\nvar jss = Object(jss__WEBPACK_IMPORTED_MODULE_6__[\"create\"])(Object(_jssPreset__WEBPACK_IMPORTED_MODULE_7__[\"default\"])()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = Object(_createGenerateClassName__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(); // Exported for test purposes\n\nvar sheetsManager = new Map();\nvar defaultOptions = {\n  disableGeneration: false,\n  generateClassName: generateClassName,\n  jss: jss,\n  sheetsCache: null,\n  sheetsManager: sheetsManager,\n  sheetsRegistry: null\n};\nvar StylesContext = react__WEBPACK_IMPORTED_MODULE_2___default.a.createContext(defaultOptions);\n\nif (true) {\n  StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\nfunction StylesProvider(props) {\n  var children = props.children,\n      _props$injectFirst = props.injectFirst,\n      injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n      _props$disableGenerat = props.disableGeneration,\n      disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n      localOptions = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n  var outerOptions = react__WEBPACK_IMPORTED_MODULE_2___default.a.useContext(StylesContext);\n\n  var context = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, outerOptions, {\n    disableGeneration: disableGeneration\n  }, localOptions);\n\n  if (true) {\n    if (typeof window === 'undefined' && !context.sheetsManager) {\n      console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n    }\n  }\n\n  if (true) {\n    if (context.jss.options.insertionPoint && injectFirst) {\n      console.error('Material-UI: You cannot use a custom insertionPoint and <StylesContext injectFirst> at the same time.');\n    }\n  }\n\n  if (true) {\n    if (injectFirst && localOptions.jss) {\n      console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n    }\n  }\n\n  if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n    if (!injectFirstNode) {\n      var head = document.head;\n      injectFirstNode = document.createComment('mui-inject-first');\n      head.insertBefore(injectFirstNode, head.firstChild);\n    }\n\n    context.jss = Object(jss__WEBPACK_IMPORTED_MODULE_6__[\"create\"])({\n      plugins: Object(_jssPreset__WEBPACK_IMPORTED_MODULE_7__[\"default\"])().plugins,\n      insertionPoint: injectFirstNode\n    });\n  }\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(StylesContext.Provider, {\n    value: context\n  }, children);\n}\n true ? StylesProvider.propTypes = {\n  /**\n   * Your component tree.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.node.isRequired,\n\n  /**\n   * You can disable the generation of the styles with this option.\n   * It can be useful when traversing the React tree outside of the HTML\n   * rendering step on the server.\n   * Let's say you are using react-apollo to extract all\n   * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n   */\n  disableGeneration: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * JSS's class name generator.\n   */\n  generateClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * By default, the styles are injected last in the <head> element of the page.\n   * As a result, they gain more specificity than any other style sheet.\n   * If you want to override Material-UI's styles, set this prop.\n   */\n  injectFirst: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n  /**\n   * JSS's instance.\n   */\n  jss: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   */\n  serverGenerateClassName: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * @ignore\n   *\n   * Beta feature.\n   *\n   * Cache for the sheets.\n   */\n  sheetsCache: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   *\n   * The sheetsManager is used to deduplicate style sheet injection in the page.\n   * It's deduplicating using the (theme, styles) couple.\n   * On the server, you should provide a new instance for each request.\n   */\n  sheetsManager: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n  /**\n   * @ignore\n   *\n   * Collect the sheets.\n   */\n  sheetsRegistry: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n} : undefined;\n\nif (true) {\n   true ? StylesProvider.propTypes = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_4__[\"exactProp\"])(StylesProvider.propTypes) : undefined;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/StylesProvider/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/StylesProvider/index.js ***!
  \**********************************************************************/
/*! exports provided: default, sheetsManager, StylesContext */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _StylesProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./StylesProvider */ \"./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _StylesProvider__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sheetsManager\", function() { return _StylesProvider__WEBPACK_IMPORTED_MODULE_0__[\"sheetsManager\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StylesContext\", function() { return _StylesProvider__WEBPACK_IMPORTED_MODULE_0__[\"StylesContext\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/StylesProvider/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _useTheme_ThemeContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../useTheme/ThemeContext */ \"./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js\");\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../useTheme */ \"./node_modules/@material-ui/styles/esm/useTheme/index.js\");\n/* harmony import */ var _nested__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./nested */ \"./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js\");\n\n\n\n\n\n\n // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n  if (typeof localTheme === 'function') {\n    var mergedTheme = localTheme(outerTheme);\n\n    if (true) {\n      if (!mergedTheme) {\n        console.error(['Material-UI: You should return an object from your theme function, i.e.', '<ThemeProvider theme={() => ({})} />'].join('\\n'));\n      }\n    }\n\n    return mergedTheme;\n  }\n\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\n\nfunction ThemeProvider(props) {\n  var children = props.children,\n      localTheme = props.theme;\n  var outerTheme = Object(_useTheme__WEBPACK_IMPORTED_MODULE_5__[\"default\"])();\n\n  if (true) {\n    if (outerTheme === null && typeof localTheme === 'function') {\n      console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', '<ThemeProvider theme={outerTheme => outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n    }\n  }\n\n  var theme = react__WEBPACK_IMPORTED_MODULE_1___default.a.useMemo(function () {\n    var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n\n    if (output != null) {\n      output[_nested__WEBPACK_IMPORTED_MODULE_6__[\"default\"]] = outerTheme !== null;\n    }\n\n    return output;\n  }, [localTheme, outerTheme]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_useTheme_ThemeContext__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Provider, {\n    value: theme\n  }, children);\n}\n\n true ? ThemeProvider.propTypes = {\n  /**\n   * Your component tree.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.node.isRequired,\n\n  /**\n   * A theme object. You can provide a function to extend the outer theme.\n   */\n  theme: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func]).isRequired\n} : undefined;\n\nif (true) {\n   true ? ThemeProvider.propTypes = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_3__[\"exactProp\"])(ThemeProvider.propTypes) : undefined;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemeProvider);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/ThemeProvider/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/ThemeProvider/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ThemeProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThemeProvider */ \"./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _ThemeProvider__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/ThemeProvider/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n/* harmony default export */ __webpack_exports__[\"default\"] = (hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__');\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js":
/*!*************************************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js ***!
  \*************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createGenerateClassName; });\n/* harmony import */ var _ThemeProvider_nested__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ThemeProvider/nested */ \"./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js\");\n\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nfunction createGenerateClassName() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var _options$disableGloba = options.disableGlobal,\n      disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n      _options$productionPr = options.productionPrefix,\n      productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n      _options$seed = options.seed,\n      seed = _options$seed === void 0 ? '' : _options$seed;\n  var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n  var ruleCounter = 0;\n\n  var getNextCounterId = function getNextCounterId() {\n    ruleCounter += 1;\n\n    if (true) {\n      if (ruleCounter >= 1e10) {\n        console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n      }\n    }\n\n    return ruleCounter;\n  };\n\n  return function (rule, styleSheet) {\n    var name = styleSheet.options.name; // Is a global static MUI style?\n\n    if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n      // We can use a shorthand class name, we never use the keys to style the components.\n      if (pseudoClasses.indexOf(rule.key) !== -1) {\n        return \"Mui-\".concat(rule.key);\n      }\n\n      var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n      if (!styleSheet.options.theme[_ThemeProvider_nested__WEBPACK_IMPORTED_MODULE_0__[\"default\"]] || seed !== '') {\n        return prefix;\n      }\n\n      return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n    }\n\n    if (false) {}\n\n    var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n    if (styleSheet.options.classNamePrefix) {\n      return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n    }\n\n    return \"\".concat(seedPrefix).concat(suffix);\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/createGenerateClassName/index.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/createGenerateClassName/index.js ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _createGenerateClassName__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createGenerateClassName */ \"./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _createGenerateClassName__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/createGenerateClassName/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/createStyles/createStyles.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/createStyles/createStyles.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createStyles; });\nfunction createStyles(styles) {\n  return styles;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/createStyles/createStyles.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/createStyles/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/createStyles/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _createStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createStyles */ \"./node_modules/@material-ui/styles/esm/createStyles/createStyles.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _createStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/createStyles/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js ***!
  \***********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getStylesCreator; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _noopTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./noopTheme */ \"./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js\");\n\n\n\n\nfunction getStylesCreator(stylesOrCreator) {\n  var themingEnabled = typeof stylesOrCreator === 'function';\n\n  if (true) {\n    if (Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(stylesOrCreator) !== 'object' && !themingEnabled) {\n      console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n    }\n  }\n\n  return {\n    create: function create(theme, name) {\n      var styles;\n\n      try {\n        styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n      } catch (err) {\n        if (true) {\n          if (themingEnabled === true && theme === _noopTheme__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) {\n            // TODO: prepend error message/name instead\n            console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n          }\n        }\n\n        throw err;\n      }\n\n      if (!name || !theme.overrides || !theme.overrides[name]) {\n        return styles;\n      }\n\n      var overrides = theme.overrides[name];\n\n      var stylesWithOverrides = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, styles);\n\n      Object.keys(overrides).forEach(function (key) {\n        if (true) {\n          if (!stylesWithOverrides[key]) {\n            console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n          }\n        }\n\n        stylesWithOverrides[key] = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__[\"deepmerge\"])(stylesWithOverrides[key], overrides[key]);\n      });\n      return stylesWithOverrides;\n    },\n    options: {}\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/getStylesCreator/index.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/getStylesCreator/index.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getStylesCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getStylesCreator */ \"./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _getStylesCreator__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/getStylesCreator/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\n/* harmony default export */ __webpack_exports__[\"default\"] = (noopTheme);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js ***!
  \*****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getThemeProps; });\n/* eslint-disable no-restricted-syntax */\nfunction getThemeProps(params) {\n  var theme = params.theme,\n      name = params.name,\n      props = params.props;\n\n  if (!theme || !theme.props || !theme.props[name]) {\n    return props;\n  } // Resolve default props, code borrow from React source.\n  // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n  var defaultProps = theme.props[name];\n  var propName;\n\n  for (propName in defaultProps) {\n    if (props[propName] === undefined) {\n      props[propName] = defaultProps[propName];\n    }\n  }\n\n  return props;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/getThemeProps/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/getThemeProps/index.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _getThemeProps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getThemeProps */ \"./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _getThemeProps__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/getThemeProps/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/index.js ***!
  \*******************************************************/
/*! exports provided: createGenerateClassName, createStyles, getThemeProps, jssPreset, makeStyles, mergeClasses, ServerStyleSheets, styled, StylesProvider, sheetsManager, StylesContext, ThemeProvider, useTheme, withStyles, withTheme, withThemeCreator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _createGenerateClassName__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createGenerateClassName */ \"./node_modules/@material-ui/styles/esm/createGenerateClassName/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createGenerateClassName\", function() { return _createGenerateClassName__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _createStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createStyles */ \"./node_modules/@material-ui/styles/esm/createStyles/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createStyles\", function() { return _createStyles__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _getThemeProps__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getThemeProps */ \"./node_modules/@material-ui/styles/esm/getThemeProps/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getThemeProps\", function() { return _getThemeProps__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _jssPreset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jssPreset */ \"./node_modules/@material-ui/styles/esm/jssPreset/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"jssPreset\", function() { return _jssPreset__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./makeStyles */ \"./node_modules/@material-ui/styles/esm/makeStyles/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeStyles\", function() { return _makeStyles__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _mergeClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./mergeClasses */ \"./node_modules/@material-ui/styles/esm/mergeClasses/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeClasses\", function() { return _mergeClasses__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _ServerStyleSheets__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ServerStyleSheets */ \"./node_modules/@material-ui/styles/esm/ServerStyleSheets/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ServerStyleSheets\", function() { return _ServerStyleSheets__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _styled__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styled */ \"./node_modules/@material-ui/styles/esm/styled/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"styled\", function() { return _styled__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _StylesProvider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./StylesProvider */ \"./node_modules/@material-ui/styles/esm/StylesProvider/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StylesProvider\", function() { return _StylesProvider__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sheetsManager\", function() { return _StylesProvider__WEBPACK_IMPORTED_MODULE_9__[\"sheetsManager\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StylesContext\", function() { return _StylesProvider__WEBPACK_IMPORTED_MODULE_9__[\"StylesContext\"]; });\n\n/* harmony import */ var _ThemeProvider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ThemeProvider */ \"./node_modules/@material-ui/styles/esm/ThemeProvider/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThemeProvider\", function() { return _ThemeProvider__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./useTheme */ \"./node_modules/@material-ui/styles/esm/useTheme/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"useTheme\", function() { return _useTheme__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _withStyles__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./withStyles */ \"./node_modules/@material-ui/styles/esm/withStyles/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withStyles\", function() { return _withStyles__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* empty/unused harmony star reexport *//* harmony import */ var _withTheme__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./withTheme */ \"./node_modules/@material-ui/styles/esm/withTheme/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withTheme\", function() { return _withTheme__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withThemeCreator\", function() { return _withTheme__WEBPACK_IMPORTED_MODULE_13__[\"withThemeCreator\"]; });\n\n/** @license Material-UI v4.11.1\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/* eslint-disable import/export */\n\n/* Warning if there are several instances of @material-ui/styles */\n\nif ( true && typeof window !== 'undefined') {\n  _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"ponyfillGlobal\"]['__@material-ui/styles-init__'] = _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"ponyfillGlobal\"]['__@material-ui/styles-init__'] || 0;\n\n  if (_material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"ponyfillGlobal\"]['__@material-ui/styles-init__'] === 1) {\n    console.warn(['It looks like there are several instances of `@material-ui/styles` initialized in this application.', 'This may cause theme propagation issues, broken class names, ' + 'specificity issues, and makes your application bigger without a good reason.', '', 'See https://material-ui.com/r/styles-instance-warning for more info.'].join('\\n'));\n  }\n\n  _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"ponyfillGlobal\"]['__@material-ui/styles-init__'] += 1;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/jssPreset/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/jssPreset/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _jssPreset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jssPreset */ \"./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _jssPreset__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/jssPreset/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return jssPreset; });\n/* harmony import */ var jss_plugin_rule_value_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jss-plugin-rule-value-function */ \"./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js\");\n/* harmony import */ var jss_plugin_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jss-plugin-global */ \"./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js\");\n/* harmony import */ var jss_plugin_nested__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jss-plugin-nested */ \"./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js\");\n/* harmony import */ var jss_plugin_camel_case__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jss-plugin-camel-case */ \"./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js\");\n/* harmony import */ var jss_plugin_default_unit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! jss-plugin-default-unit */ \"./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js\");\n/* harmony import */ var jss_plugin_vendor_prefixer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! jss-plugin-vendor-prefixer */ \"./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js\");\n/* harmony import */ var jss_plugin_props_sort__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jss-plugin-props-sort */ \"./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js\");\n\n\n\n\n\n\n // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nfunction jssPreset() {\n  return {\n    plugins: [Object(jss_plugin_rule_value_function__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(), Object(jss_plugin_global__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(), Object(jss_plugin_nested__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(), Object(jss_plugin_camel_case__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(), Object(jss_plugin_default_unit__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(), // Disable the vendor prefixer server-side, it does nothing.\n    // This way, we can get a performance boost.\n    // In the documentation, we are using `autoprefixer` to solve this problem.\n    typeof window === 'undefined' ? null : Object(jss_plugin_vendor_prefixer__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(), Object(jss_plugin_props_sort__WEBPACK_IMPORTED_MODULE_6__[\"default\"])()]\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/makeStyles/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/makeStyles/index.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./makeStyles */ \"./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _makeStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/makeStyles/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js ***!
  \*************************************************************************/
/*! exports provided: increment */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"increment\", function() { return increment; });\n/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nfunction increment() {\n  indexCounter += 1;\n\n  if (true) {\n    if (indexCounter >= 0) {\n      console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n    }\n  }\n\n  return indexCounter;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return makeStyles; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n/* harmony import */ var _mergeClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mergeClasses */ \"./node_modules/@material-ui/styles/esm/mergeClasses/index.js\");\n/* harmony import */ var _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./multiKeyStore */ \"./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js\");\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../useTheme */ \"./node_modules/@material-ui/styles/esm/useTheme/index.js\");\n/* harmony import */ var _StylesProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../StylesProvider */ \"./node_modules/@material-ui/styles/esm/StylesProvider/index.js\");\n/* harmony import */ var _indexCounter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./indexCounter */ \"./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js\");\n/* harmony import */ var _getStylesCreator__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../getStylesCreator */ \"./node_modules/@material-ui/styles/esm/getStylesCreator/index.js\");\n/* harmony import */ var _getStylesCreator_noopTheme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../getStylesCreator/noopTheme */ \"./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getClasses(_ref, classes, Component) {\n  var state = _ref.state,\n      stylesOptions = _ref.stylesOptions;\n\n  if (stylesOptions.disableGeneration) {\n    return classes || {};\n  }\n\n  if (!state.cacheClasses) {\n    state.cacheClasses = {\n      // Cache for the finalized classes value.\n      value: null,\n      // Cache for the last used classes prop pointer.\n      lastProp: null,\n      // Cache for the last used rendered classes pointer.\n      lastJSS: {}\n    };\n  } // Tracks if either the rendered classes or classes prop has changed,\n  // requiring the generation of a new finalized classes object.\n\n\n  var generate = false;\n\n  if (state.classes !== state.cacheClasses.lastJSS) {\n    state.cacheClasses.lastJSS = state.classes;\n    generate = true;\n  }\n\n  if (classes !== state.cacheClasses.lastProp) {\n    state.cacheClasses.lastProp = classes;\n    generate = true;\n  }\n\n  if (generate) {\n    state.cacheClasses.value = Object(_mergeClasses__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n      baseClasses: state.cacheClasses.lastJSS,\n      newClasses: classes,\n      Component: Component\n    });\n  }\n\n  return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n  var state = _ref2.state,\n      theme = _ref2.theme,\n      stylesOptions = _ref2.stylesOptions,\n      stylesCreator = _ref2.stylesCreator,\n      name = _ref2.name;\n\n  if (stylesOptions.disableGeneration) {\n    return;\n  }\n\n  var sheetManager = _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n  if (!sheetManager) {\n    sheetManager = {\n      refs: 0,\n      staticSheet: null,\n      dynamicStyles: null\n    };\n    _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n  }\n\n  var options = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, stylesCreator.options, stylesOptions, {\n    theme: theme,\n    flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n  });\n\n  options.generateId = options.serverGenerateClassName || options.generateClassName;\n  var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n  if (sheetManager.refs === 0) {\n    var staticSheet;\n\n    if (stylesOptions.sheetsCache) {\n      staticSheet = _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get(stylesOptions.sheetsCache, stylesCreator, theme);\n    }\n\n    var styles = stylesCreator.create(theme, name);\n\n    if (!staticSheet) {\n      staticSheet = stylesOptions.jss.createStyleSheet(styles, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        link: false\n      }, options));\n      staticSheet.attach();\n\n      if (stylesOptions.sheetsCache) {\n        _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n      }\n    }\n\n    if (sheetsRegistry) {\n      sheetsRegistry.add(staticSheet);\n    }\n\n    sheetManager.staticSheet = staticSheet;\n    sheetManager.dynamicStyles = Object(jss__WEBPACK_IMPORTED_MODULE_3__[\"getDynamicStyles\"])(styles);\n  }\n\n  if (sheetManager.dynamicStyles) {\n    var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n      link: true\n    }, options));\n    dynamicSheet.update(props);\n    dynamicSheet.attach();\n    state.dynamicSheet = dynamicSheet;\n    state.classes = Object(_mergeClasses__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n      baseClasses: sheetManager.staticSheet.classes,\n      newClasses: dynamicSheet.classes\n    });\n\n    if (sheetsRegistry) {\n      sheetsRegistry.add(dynamicSheet);\n    }\n  } else {\n    state.classes = sheetManager.staticSheet.classes;\n  }\n\n  sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n  var state = _ref3.state;\n\n  if (state.dynamicSheet) {\n    state.dynamicSheet.update(props);\n  }\n}\n\nfunction detach(_ref4) {\n  var state = _ref4.state,\n      theme = _ref4.theme,\n      stylesOptions = _ref4.stylesOptions,\n      stylesCreator = _ref4.stylesCreator;\n\n  if (stylesOptions.disableGeneration) {\n    return;\n  }\n\n  var sheetManager = _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get(stylesOptions.sheetsManager, stylesCreator, theme);\n  sheetManager.refs -= 1;\n  var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n  if (sheetManager.refs === 0) {\n    _multiKeyStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].delete(stylesOptions.sheetsManager, stylesCreator, theme);\n    stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n    if (sheetsRegistry) {\n      sheetsRegistry.remove(sheetManager.staticSheet);\n    }\n  }\n\n  if (state.dynamicSheet) {\n    stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n    if (sheetsRegistry) {\n      sheetsRegistry.remove(state.dynamicSheet);\n    }\n  }\n}\n\nfunction useSynchronousEffect(func, values) {\n  var key = react__WEBPACK_IMPORTED_MODULE_2___default.a.useRef([]);\n  var output; // Store \"generation\" key. Just returns a new object every time\n\n  var currentKey = react__WEBPACK_IMPORTED_MODULE_2___default.a.useMemo(function () {\n    return {};\n  }, values); // eslint-disable-line react-hooks/exhaustive-deps\n  // \"the first render\", or \"memo dropped the value\"\n\n  if (key.current !== currentKey) {\n    key.current = currentKey;\n    output = func();\n  }\n\n  react__WEBPACK_IMPORTED_MODULE_2___default.a.useEffect(function () {\n    return function () {\n      if (output) {\n        output();\n      }\n    };\n  }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n  );\n}\n\nfunction makeStyles(stylesOrCreator) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  var name = options.name,\n      classNamePrefixOption = options.classNamePrefix,\n      Component = options.Component,\n      _options$defaultTheme = options.defaultTheme,\n      defaultTheme = _options$defaultTheme === void 0 ? _getStylesCreator_noopTheme__WEBPACK_IMPORTED_MODULE_10__[\"default\"] : _options$defaultTheme,\n      stylesOptions2 = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n\n  var stylesCreator = Object(_getStylesCreator__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(stylesOrCreator);\n  var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n  stylesCreator.options = {\n    index: Object(_indexCounter__WEBPACK_IMPORTED_MODULE_8__[\"increment\"])(),\n    name: name,\n    meta: classNamePrefix,\n    classNamePrefix: classNamePrefix\n  };\n\n  var useStyles = function useStyles() {\n    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var theme = Object(_useTheme__WEBPACK_IMPORTED_MODULE_6__[\"default\"])() || defaultTheme;\n\n    var stylesOptions = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, react__WEBPACK_IMPORTED_MODULE_2___default.a.useContext(_StylesProvider__WEBPACK_IMPORTED_MODULE_7__[\"StylesContext\"]), stylesOptions2);\n\n    var instance = react__WEBPACK_IMPORTED_MODULE_2___default.a.useRef();\n    var shouldUpdate = react__WEBPACK_IMPORTED_MODULE_2___default.a.useRef();\n    useSynchronousEffect(function () {\n      var current = {\n        name: name,\n        state: {},\n        stylesCreator: stylesCreator,\n        stylesOptions: stylesOptions,\n        theme: theme\n      };\n      attach(current, props);\n      shouldUpdate.current = false;\n      instance.current = current;\n      return function () {\n        detach(current);\n      };\n    }, [theme, stylesCreator]);\n    react__WEBPACK_IMPORTED_MODULE_2___default.a.useEffect(function () {\n      if (shouldUpdate.current) {\n        update(instance.current, props);\n      }\n\n      shouldUpdate.current = true;\n    });\n    var classes = getClasses(instance.current, props.classes, Component);\n\n    if (true) {\n      // eslint-disable-next-line react-hooks/rules-of-hooks\n      react__WEBPACK_IMPORTED_MODULE_2___default.a.useDebugValue(classes);\n    }\n\n    return classes;\n  };\n\n  return useStyles;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js ***!
  \**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n  set: function set(cache, key1, key2, value) {\n    var subCache = cache.get(key1);\n\n    if (!subCache) {\n      subCache = new Map();\n      cache.set(key1, subCache);\n    }\n\n    subCache.set(key2, value);\n  },\n  get: function get(cache, key1, key2) {\n    var subCache = cache.get(key1);\n    return subCache ? subCache.get(key2) : undefined;\n  },\n  delete: function _delete(cache, key1, key2) {\n    var subCache = cache.get(key1);\n    subCache.delete(key2);\n  }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (multiKeyStore);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/mergeClasses/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/mergeClasses/index.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mergeClasses__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeClasses */ \"./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _mergeClasses__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/mergeClasses/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return mergeClasses; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\nfunction mergeClasses() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var baseClasses = options.baseClasses,\n      newClasses = options.newClasses,\n      Component = options.Component;\n\n  if (!newClasses) {\n    return baseClasses;\n  }\n\n  var nextClasses = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, baseClasses);\n\n  if (true) {\n    if (typeof newClasses === 'string') {\n      console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat(Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_1__[\"getDisplayName\"])(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n      return baseClasses;\n    }\n  }\n\n  Object.keys(newClasses).forEach(function (key) {\n    if (true) {\n      if (!baseClasses[key] && newClasses[key]) {\n        console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat(Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_1__[\"getDisplayName\"])(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n      }\n\n      if (newClasses[key] && typeof newClasses[key] !== 'string') {\n        console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat(Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_1__[\"getDisplayName\"])(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n      }\n    }\n\n    if (newClasses[key]) {\n      nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n    }\n  });\n  return nextClasses;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/styled/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/styled/index.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _styled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styled */ \"./node_modules/@material-ui/styles/esm/styled/styled.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _styled__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/styled/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/styled/styled.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/styled/styled.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return styled; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ \"./node_modules/clsx/dist/clsx.m.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../makeStyles */ \"./node_modules/@material-ui/styles/esm/makeStyles/index.js\");\n\n\n\n\n\n\n\n\n\nfunction omit(input, fields) {\n  var output = {};\n  Object.keys(input).forEach(function (prop) {\n    if (fields.indexOf(prop) === -1) {\n      output[prop] = input[prop];\n    }\n  });\n  return output;\n} // styled-components's API removes the mapping between components and styles.\n// Using components as a low-level styling construct can be simpler.\n\n\nfunction styled(Component) {\n  var componentCreator = function componentCreator(style) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    var name = options.name,\n        stylesOptions = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(options, [\"name\"]);\n\n    if ( true && Component === undefined) {\n      throw new Error(['You are calling styled(Component)(style) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n    }\n\n    var classNamePrefix = name;\n\n    if (true) {\n      if (!name) {\n        // Provide a better DX outside production.\n        var displayName = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"getDisplayName\"])(Component);\n\n        if (displayName !== undefined) {\n          classNamePrefix = displayName;\n        }\n      }\n    }\n\n    var stylesOrCreator = typeof style === 'function' ? function (theme) {\n      return {\n        root: function root(props) {\n          return style(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n            theme: theme\n          }, props));\n        }\n      };\n    } : {\n      root: style\n    };\n    var useStyles = Object(_makeStyles__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(stylesOrCreator, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      Component: Component,\n      name: name || Component.displayName,\n      classNamePrefix: classNamePrefix\n    }, stylesOptions));\n    var filterProps;\n    var propTypes = {};\n\n    if (style.filterProps) {\n      filterProps = style.filterProps;\n      delete style.filterProps;\n    }\n    /* eslint-disable react/forbid-foreign-prop-types */\n\n\n    if (style.propTypes) {\n      propTypes = style.propTypes;\n      delete style.propTypes;\n    }\n    /* eslint-enable react/forbid-foreign-prop-types */\n\n\n    var StyledComponent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef(function StyledComponent(props, ref) {\n      var children = props.children,\n          classNameProp = props.className,\n          clone = props.clone,\n          ComponentProp = props.component,\n          other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"children\", \"className\", \"clone\", \"component\"]);\n\n      var classes = useStyles(props);\n      var className = Object(clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(classes.root, classNameProp);\n      var spread = other;\n\n      if (filterProps) {\n        spread = omit(spread, filterProps);\n      }\n\n      if (clone) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.cloneElement(children, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n          className: Object(clsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(children.props.className, className)\n        }, spread));\n      }\n\n      if (typeof children === 'function') {\n        return children(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n          className: className\n        }, spread));\n      }\n\n      var FinalComponent = ComponentProp || Component;\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FinalComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        ref: ref,\n        className: className\n      }, spread), children);\n    });\n     true ? StyledComponent.propTypes = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      /**\n       * A render function or node.\n       */\n      children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func]),\n\n      /**\n       * @ignore\n       */\n      className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n\n      /**\n       * If `true`, the component will recycle it's children HTML element.\n       * It's using `React.cloneElement` internally.\n       *\n       * This prop will be deprecated and removed in v5\n       */\n      clone: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool, function (props) {\n        if (props.clone && props.component) {\n          return new Error('You can not use the clone and component prop at the same time.');\n        }\n\n        return null;\n      }),\n\n      /**\n       * The component used for the root node.\n       * Either a string to use a HTML element or a component.\n       */\n      component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a\n      /* @typescript-to-proptypes-ignore */\n      .elementType\n    }, propTypes) : undefined;\n\n    if (true) {\n      StyledComponent.displayName = \"Styled(\".concat(classNamePrefix, \")\");\n    }\n\n    hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_6___default()(StyledComponent, Component);\n    return StyledComponent;\n  };\n\n  return componentCreator;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/styled/styled.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar ThemeContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext(null);\n\nif (true) {\n  ThemeContext.displayName = 'ThemeContext';\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThemeContext);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/useTheme/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/useTheme/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useTheme */ \"./node_modules/@material-ui/styles/esm/useTheme/useTheme.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _useTheme__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/useTheme/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/useTheme/useTheme.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return useTheme; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ThemeContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThemeContext */ \"./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js\");\n\n\nfunction useTheme() {\n  var theme = react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(_ThemeContext__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n  if (true) {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    react__WEBPACK_IMPORTED_MODULE_0___default.a.useDebugValue(theme);\n  }\n\n  return theme;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/useTheme/useTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/withStyles/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/withStyles/index.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _withStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./withStyles */ \"./node_modules/@material-ui/styles/esm/withStyles/withStyles.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _withStyles__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/withStyles/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/withStyles/withStyles.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/withStyles/withStyles.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../makeStyles */ \"./node_modules/@material-ui/styles/esm/makeStyles/index.js\");\n/* harmony import */ var _getThemeProps__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../getThemeProps */ \"./node_modules/@material-ui/styles/esm/getThemeProps/index.js\");\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../useTheme */ \"./node_modules/@material-ui/styles/esm/useTheme/index.js\");\n\n\n\n\n\n\n\n\n // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return function (Component) {\n    var defaultTheme = options.defaultTheme,\n        _options$withTheme = options.withTheme,\n        withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n        name = options.name,\n        stylesOptions = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n    if (true) {\n      if (Component === undefined) {\n        throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n      }\n    }\n\n    var classNamePrefix = name;\n\n    if (true) {\n      if (!name) {\n        // Provide a better DX outside production.\n        var displayName = Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"getDisplayName\"])(Component);\n\n        if (displayName !== undefined) {\n          classNamePrefix = displayName;\n        }\n      }\n    }\n\n    var useStyles = Object(_makeStyles__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(stylesOrCreator, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      defaultTheme: defaultTheme,\n      Component: Component,\n      name: name || Component.displayName,\n      classNamePrefix: classNamePrefix\n    }, stylesOptions));\n    var WithStyles = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef(function WithStyles(props, ref) {\n      var classesProp = props.classes,\n          innerRef = props.innerRef,\n          other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n      // the actual props Component might receive due to merging with defaultProps.\n      // So copying it here would give us the same result in the wrapper as well.\n\n\n      var classes = useStyles(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, Component.defaultProps, props));\n      var theme;\n      var more = other;\n\n      if (typeof name === 'string' || withTheme) {\n        // name and withTheme are invariant in the outer scope\n        // eslint-disable-next-line react-hooks/rules-of-hooks\n        theme = Object(_useTheme__WEBPACK_IMPORTED_MODULE_8__[\"default\"])() || defaultTheme;\n\n        if (name) {\n          more = Object(_getThemeProps__WEBPACK_IMPORTED_MODULE_7__[\"default\"])({\n            theme: theme,\n            name: name,\n            props: other\n          });\n        } // Provide the theme to the wrapped component.\n        // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n        if (withTheme && !more.theme) {\n          more.theme = theme;\n        }\n      }\n\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        ref: innerRef || ref,\n        classes: classes\n      }, more));\n    });\n     true ? WithStyles.propTypes = {\n      /**\n       * Override or extend the styles applied to the component.\n       */\n      classes: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n      /**\n       * Use that prop to pass a ref to the decorated component.\n       * @deprecated\n       */\n      innerRef: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object]), function (props) {\n        if (props.innerRef == null) {\n          return null;\n        }\n\n        return null; // return new Error(\n        //   'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n        //     'Refs are now automatically forwarded to the inner component.',\n        // );\n      })\n    } : undefined;\n\n    if (true) {\n      WithStyles.displayName = \"WithStyles(\".concat(Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"getDisplayName\"])(Component), \")\");\n    }\n\n    hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4___default()(WithStyles, Component);\n\n    if (true) {\n      // Exposed for test purposes.\n      WithStyles.Naked = Component;\n      WithStyles.options = options;\n      WithStyles.useStyles = useStyles;\n    }\n\n    return WithStyles;\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (withStyles);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/withStyles/withStyles.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/withTheme/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/withTheme/index.js ***!
  \*****************************************************************/
/*! exports provided: default, withThemeCreator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _withTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./withTheme */ \"./node_modules/@material-ui/styles/esm/withTheme/withTheme.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _withTheme__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"withThemeCreator\", function() { return _withTheme__WEBPACK_IMPORTED_MODULE_0__[\"withThemeCreator\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/withTheme/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/styles/esm/withTheme/withTheme.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@material-ui/styles/esm/withTheme/withTheme.js ***!
  \*********************************************************************/
/*! exports provided: withThemeCreator, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"withThemeCreator\", function() { return withThemeCreator; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! hoist-non-react-statics */ \"./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../useTheme */ \"./node_modules/@material-ui/styles/esm/useTheme/index.js\");\n\n\n\n\n\n\n\nfunction withThemeCreator() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var defaultTheme = options.defaultTheme;\n\n  var withTheme = function withTheme(Component) {\n    if (true) {\n      if (Component === undefined) {\n        throw new Error(['You are calling withTheme(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n      }\n    }\n\n    var WithTheme = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.forwardRef(function WithTheme(props, ref) {\n      var innerRef = props.innerRef,\n          other = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, [\"innerRef\"]);\n\n      var theme = Object(_useTheme__WEBPACK_IMPORTED_MODULE_6__[\"default\"])() || defaultTheme;\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(Component, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        theme: theme,\n        ref: innerRef || ref\n      }, other));\n    });\n     true ? WithTheme.propTypes = {\n      /**\n       * Use that prop to pass a ref to the decorated component.\n       * @deprecated\n       */\n      innerRef: Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"chainPropTypes\"])(prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object]), function (props) {\n        if (props.innerRef == null) {\n          return null;\n        }\n\n        return new Error('Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' + 'Refs are now automatically forwarded to the inner component.');\n      })\n    } : undefined;\n\n    if (true) {\n      WithTheme.displayName = \"WithTheme(\".concat(Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__[\"getDisplayName\"])(Component), \")\");\n    }\n\n    hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4___default()(WithTheme, Component);\n\n    if (true) {\n      // Exposed for test purposes.\n      WithTheme.Naked = Component;\n    }\n\n    return WithTheme;\n  };\n\n  return withTheme;\n} // Provide the theme object as a prop to the input component.\n// It's an alternative API to useTheme().\n// We encourage the usage of useTheme() where possible.\n\nvar withTheme = withThemeCreator();\n/* harmony default export */ __webpack_exports__[\"default\"] = (withTheme);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/styles/esm/withTheme/withTheme.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/borders.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/borders.js ***!
  \*********************************************************/
/*! exports provided: border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderRadius, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"border\", function() { return border; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderTop\", function() { return borderTop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderRight\", function() { return borderRight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderBottom\", function() { return borderBottom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderLeft\", function() { return borderLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderColor\", function() { return borderColor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"borderRadius\", function() { return borderRadius; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\n\nfunction getBorder(value) {\n  if (typeof value !== 'number') {\n    return value;\n  }\n\n  return \"\".concat(value, \"px solid\");\n}\n\nvar border = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'border',\n  themeKey: 'borders',\n  transform: getBorder\n});\nvar borderTop = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'borderTop',\n  themeKey: 'borders',\n  transform: getBorder\n});\nvar borderRight = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'borderRight',\n  themeKey: 'borders',\n  transform: getBorder\n});\nvar borderBottom = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'borderBottom',\n  themeKey: 'borders',\n  transform: getBorder\n});\nvar borderLeft = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'borderLeft',\n  themeKey: 'borders',\n  transform: getBorder\n});\nvar borderColor = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'borderColor',\n  themeKey: 'palette'\n});\nvar borderRadius = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'borderRadius',\n  themeKey: 'shape'\n});\nvar borders = Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderRadius);\n/* harmony default export */ __webpack_exports__[\"default\"] = (borders);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/borders.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/breakpoints.js":
/*!*************************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/breakpoints.js ***!
  \*************************************************************/
/*! exports provided: handleBreakpoints, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"handleBreakpoints\", function() { return handleBreakpoints; });\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./merge */ \"./node_modules/@material-ui/system/esm/merge.js\");\n\n\n\n\n // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n  xs: 0,\n  sm: 600,\n  md: 960,\n  lg: 1280,\n  xl: 1920\n};\nvar defaultBreakpoints = {\n  // Sorted ASC by size. That's important.\n  // It can't be configured as it's used statically for propTypes.\n  keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n  up: function up(key) {\n    return \"@media (min-width:\".concat(values[key], \"px)\");\n  }\n};\nfunction handleBreakpoints(props, propValue, styleFromPropValue) {\n  if (true) {\n    if (!props.theme) {\n      console.error('Material-UI: You are calling a style function without a theme value.');\n    }\n  }\n\n  if (Array.isArray(propValue)) {\n    var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n    return propValue.reduce(function (acc, item, index) {\n      acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n      return acc;\n    }, {});\n  }\n\n  if (Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(propValue) === 'object') {\n    var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n    return Object.keys(propValue).reduce(function (acc, breakpoint) {\n      acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n      return acc;\n    }, {});\n  }\n\n  var output = styleFromPropValue(propValue);\n  return output;\n}\n\nfunction breakpoints(styleFunction) {\n  var newStyleFunction = function newStyleFunction(props) {\n    var base = styleFunction(props);\n    var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n    var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n      if (props[key]) {\n        acc = acc || {};\n        acc[themeBreakpoints.up(key)] = styleFunction(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n          theme: props.theme\n        }, props[key]));\n      }\n\n      return acc;\n    }, null);\n    return Object(_merge__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(base, extended);\n  };\n\n  newStyleFunction.propTypes =  true ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, styleFunction.propTypes), {}, {\n    xs: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n    sm: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n    md: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n    lg: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n    xl: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object\n  }) : undefined;\n  newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(styleFunction.filterProps));\n  return newStyleFunction;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (breakpoints);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/breakpoints.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/compose.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/compose.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./merge */ \"./node_modules/@material-ui/system/esm/merge.js\");\n\n\n\nfunction compose() {\n  for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n    styles[_key] = arguments[_key];\n  }\n\n  var fn = function fn(props) {\n    return styles.reduce(function (acc, style) {\n      var output = style(props);\n\n      if (output) {\n        return Object(_merge__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(acc, output);\n      }\n\n      return acc;\n    }, {});\n  }; // Alternative approach that doesn't yield any performance gain.\n  // const handlers = styles.reduce((acc, style) => {\n  //   style.filterProps.forEach(prop => {\n  //     acc[prop] = style;\n  //   });\n  //   return acc;\n  // }, {});\n  // const fn = props => {\n  //   return Object.keys(props).reduce((acc, prop) => {\n  //     if (handlers[prop]) {\n  //       return merge(acc, handlers[prop](props));\n  //     }\n  //     return acc;\n  //   }, {});\n  // };\n\n\n  fn.propTypes =  true ? styles.reduce(function (acc, style) {\n    return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(acc, style.propTypes);\n  }, {}) : undefined;\n  fn.filterProps = styles.reduce(function (acc, style) {\n    return acc.concat(style.filterProps);\n  }, []);\n  return fn;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (compose);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/compose.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/css.js":
/*!*****************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/css.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./merge */ \"./node_modules/@material-ui/system/esm/merge.js\");\n\n\n\n\n\nfunction omit(input, fields) {\n  var output = {};\n  Object.keys(input).forEach(function (prop) {\n    if (fields.indexOf(prop) === -1) {\n      output[prop] = input[prop];\n    }\n  });\n  return output;\n}\n\nfunction css(styleFunction) {\n  var newStyleFunction = function newStyleFunction(props) {\n    var output = styleFunction(props);\n\n    if (props.css) {\n      return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, Object(_merge__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(output, styleFunction(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        theme: props.theme\n      }, props.css)))), omit(props.css, [styleFunction.filterProps]));\n    }\n\n    return output;\n  };\n\n  newStyleFunction.propTypes =  true ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, styleFunction.propTypes), {}, {\n    css: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n  }) : undefined;\n  newStyleFunction.filterProps = ['css'].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(styleFunction.filterProps));\n  return newStyleFunction;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (css);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/css.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/display.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/display.js ***!
  \*********************************************************/
/*! exports provided: displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"displayPrint\", function() { return displayPrint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"displayRaw\", function() { return displayRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"overflow\", function() { return overflow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"textOverflow\", function() { return textOverflow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"visibility\", function() { return visibility; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"whiteSpace\", function() { return whiteSpace; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\nvar displayPrint = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'displayPrint',\n  cssProperty: false,\n  transform: function transform(value) {\n    return {\n      '@media print': {\n        display: value\n      }\n    };\n  }\n});\nvar displayRaw = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'display'\n});\nvar overflow = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'overflow'\n});\nvar textOverflow = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'textOverflow'\n});\nvar visibility = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'visibility'\n});\nvar whiteSpace = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'whiteSpace'\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/display.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/flexbox.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/flexbox.js ***!
  \*********************************************************/
/*! exports provided: flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flexBasis\", function() { return flexBasis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flexDirection\", function() { return flexDirection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flexWrap\", function() { return flexWrap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"justifyContent\", function() { return justifyContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignItems\", function() { return alignItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignContent\", function() { return alignContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"order\", function() { return order; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flex\", function() { return flex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flexGrow\", function() { return flexGrow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flexShrink\", function() { return flexShrink; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"alignSelf\", function() { return alignSelf; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"justifyItems\", function() { return justifyItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"justifySelf\", function() { return justifySelf; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\nvar flexBasis = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'flexBasis'\n});\nvar flexDirection = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'flexDirection'\n});\nvar flexWrap = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'flexWrap'\n});\nvar justifyContent = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'justifyContent'\n});\nvar alignItems = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'alignItems'\n});\nvar alignContent = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'alignContent'\n});\nvar order = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'order'\n});\nvar flex = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'flex'\n});\nvar flexGrow = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'flexGrow'\n});\nvar flexShrink = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'flexShrink'\n});\nvar alignSelf = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'alignSelf'\n});\nvar justifyItems = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'justifyItems'\n});\nvar justifySelf = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'justifySelf'\n});\nvar flexbox = Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\n/* harmony default export */ __webpack_exports__[\"default\"] = (flexbox);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/flexbox.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/grid.js":
/*!******************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/grid.js ***!
  \******************************************************/
/*! exports provided: gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridGap\", function() { return gridGap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridColumnGap\", function() { return gridColumnGap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridRowGap\", function() { return gridRowGap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridColumn\", function() { return gridColumn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridRow\", function() { return gridRow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridAutoFlow\", function() { return gridAutoFlow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridAutoColumns\", function() { return gridAutoColumns; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridAutoRows\", function() { return gridAutoRows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridTemplateColumns\", function() { return gridTemplateColumns; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridTemplateRows\", function() { return gridTemplateRows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridTemplateAreas\", function() { return gridTemplateAreas; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridArea\", function() { return gridArea; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\nvar gridGap = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridGap'\n});\nvar gridColumnGap = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridColumnGap'\n});\nvar gridRowGap = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridRowGap'\n});\nvar gridColumn = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridColumn'\n});\nvar gridRow = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridRow'\n});\nvar gridAutoFlow = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridAutoFlow'\n});\nvar gridAutoColumns = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridAutoColumns'\n});\nvar gridAutoRows = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridAutoRows'\n});\nvar gridTemplateColumns = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridTemplateColumns'\n});\nvar gridTemplateRows = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridTemplateRows'\n});\nvar gridTemplateAreas = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridTemplateAreas'\n});\nvar gridArea = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'gridArea'\n});\nvar grid = Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\n/* harmony default export */ __webpack_exports__[\"default\"] = (grid);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/grid.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/index.js ***!
  \*******************************************************/
/*! exports provided: borders, border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderRadius, breakpoints, compose, css, display, flexbox, flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf, grid, gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea, palette, color, bgcolor, positions, position, zIndex, top, right, bottom, left, shadows, sizing, width, maxWidth, minWidth, height, maxHeight, minHeight, sizeWidth, sizeHeight, boxSizing, spacing, createUnarySpacing, style, typography, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _borders__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./borders */ \"./node_modules/@material-ui/system/esm/borders.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borders\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"border\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"border\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderTop\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"borderTop\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderRight\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"borderRight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderBottom\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"borderBottom\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderLeft\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"borderLeft\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderColor\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"borderColor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"borderRadius\", function() { return _borders__WEBPACK_IMPORTED_MODULE_0__[\"borderRadius\"]; });\n\n/* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./breakpoints */ \"./node_modules/@material-ui/system/esm/breakpoints.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"breakpoints\", function() { return _breakpoints__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compose\", function() { return _compose__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./css */ \"./node_modules/@material-ui/system/esm/css.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"css\", function() { return _css__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _display__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display */ \"./node_modules/@material-ui/system/esm/display.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"display\", function() { return _display__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _flexbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./flexbox */ \"./node_modules/@material-ui/system/esm/flexbox.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flexbox\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flexBasis\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"flexBasis\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flexDirection\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"flexDirection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flexWrap\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"flexWrap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"justifyContent\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"justifyContent\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"alignItems\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"alignItems\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"alignContent\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"alignContent\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"order\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"order\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flex\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"flex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flexGrow\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"flexGrow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flexShrink\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"flexShrink\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"alignSelf\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"alignSelf\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"justifyItems\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"justifyItems\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"justifySelf\", function() { return _flexbox__WEBPACK_IMPORTED_MODULE_5__[\"justifySelf\"]; });\n\n/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./grid */ \"./node_modules/@material-ui/system/esm/grid.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"grid\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridGap\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridGap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridColumnGap\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridColumnGap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridRowGap\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridRowGap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridColumn\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridColumn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridRow\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridRow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridAutoFlow\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridAutoFlow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridAutoColumns\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridAutoColumns\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridAutoRows\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridAutoRows\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridTemplateColumns\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridTemplateColumns\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridTemplateRows\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridTemplateRows\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridTemplateAreas\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridTemplateAreas\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gridArea\", function() { return _grid__WEBPACK_IMPORTED_MODULE_6__[\"gridArea\"]; });\n\n/* harmony import */ var _palette__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./palette */ \"./node_modules/@material-ui/system/esm/palette.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"palette\", function() { return _palette__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return _palette__WEBPACK_IMPORTED_MODULE_7__[\"color\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bgcolor\", function() { return _palette__WEBPACK_IMPORTED_MODULE_7__[\"bgcolor\"]; });\n\n/* harmony import */ var _positions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./positions */ \"./node_modules/@material-ui/system/esm/positions.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"positions\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"position\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"position\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zIndex\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"zIndex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"top\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"top\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"right\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"right\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bottom\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"bottom\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"left\", function() { return _positions__WEBPACK_IMPORTED_MODULE_8__[\"left\"]; });\n\n/* harmony import */ var _shadows__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./shadows */ \"./node_modules/@material-ui/system/esm/shadows.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shadows\", function() { return _shadows__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _sizing__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./sizing */ \"./node_modules/@material-ui/system/esm/sizing.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizing\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"width\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"width\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"maxWidth\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"maxWidth\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"minWidth\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"minWidth\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"height\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"height\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"maxHeight\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"maxHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"minHeight\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"minHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizeWidth\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"sizeWidth\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sizeHeight\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"sizeHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boxSizing\", function() { return _sizing__WEBPACK_IMPORTED_MODULE_10__[\"boxSizing\"]; });\n\n/* harmony import */ var _spacing__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./spacing */ \"./node_modules/@material-ui/system/esm/spacing.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"spacing\", function() { return _spacing__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createUnarySpacing\", function() { return _spacing__WEBPACK_IMPORTED_MODULE_11__[\"createUnarySpacing\"]; });\n\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"style\", function() { return _style__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _typography__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./typography */ \"./node_modules/@material-ui/system/esm/typography.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"typography\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontFamily\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"fontFamily\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontSize\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"fontSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontStyle\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"fontStyle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontWeight\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"fontWeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"letterSpacing\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"letterSpacing\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lineHeight\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"lineHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"textAlign\", function() { return _typography__WEBPACK_IMPORTED_MODULE_13__[\"textAlign\"]; });\n\n/** @license Material-UI v4.9.14\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/memoize.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/memoize.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return memoize; });\nfunction memoize(fn) {\n  var cache = {};\n  return function (arg) {\n    if (cache[arg] === undefined) {\n      cache[arg] = fn(arg);\n    }\n\n    return cache[arg];\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/memoize.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/merge.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/merge.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/index.js\");\n\n\nfunction merge(acc, item) {\n  if (!item) {\n    return acc;\n  }\n\n  return Object(_material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"deepmerge\"])(acc, item, {\n    clone: false // No need to clone deep, it's way faster.\n\n  });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (merge);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/merge.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/palette.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/palette.js ***!
  \*********************************************************/
/*! exports provided: color, bgcolor, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bgcolor\", function() { return bgcolor; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\nvar color = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'color',\n  themeKey: 'palette'\n});\nvar bgcolor = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'bgcolor',\n  cssProperty: 'backgroundColor',\n  themeKey: 'palette'\n});\nvar palette = Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(color, bgcolor);\n/* harmony default export */ __webpack_exports__[\"default\"] = (palette);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/palette.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/positions.js":
/*!***********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/positions.js ***!
  \***********************************************************/
/*! exports provided: position, zIndex, top, right, bottom, left, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"position\", function() { return position; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zIndex\", function() { return zIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"top\", function() { return top; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"right\", function() { return right; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bottom\", function() { return bottom; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"left\", function() { return left; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\nvar position = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'position'\n});\nvar zIndex = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'zIndex',\n  themeKey: 'zIndex'\n});\nvar top = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'top'\n});\nvar right = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'right'\n});\nvar bottom = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'bottom'\n});\nvar left = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'left'\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(position, zIndex, top, right, bottom, left));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/positions.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/responsivePropType.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/responsivePropType.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n\nvar responsivePropType =  true ? prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array]) : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (responsivePropType);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/responsivePropType.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/shadows.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/shadows.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n\nvar boxShadow = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'boxShadow',\n  themeKey: 'shadows'\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (boxShadow);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/shadows.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/sizing.js":
/*!********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/sizing.js ***!
  \********************************************************/
/*! exports provided: width, maxWidth, minWidth, height, maxHeight, minHeight, sizeWidth, sizeHeight, boxSizing, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"width\", function() { return width; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"maxWidth\", function() { return maxWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minWidth\", function() { return minWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"height\", function() { return height; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"maxHeight\", function() { return maxHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minHeight\", function() { return minHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sizeWidth\", function() { return sizeWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sizeHeight\", function() { return sizeHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boxSizing\", function() { return boxSizing; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\n\nfunction transform(value) {\n  return value <= 1 ? \"\".concat(value * 100, \"%\") : value;\n}\n\nvar width = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'width',\n  transform: transform\n});\nvar maxWidth = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'maxWidth',\n  transform: transform\n});\nvar minWidth = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'minWidth',\n  transform: transform\n});\nvar height = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'height',\n  transform: transform\n});\nvar maxHeight = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'maxHeight',\n  transform: transform\n});\nvar minHeight = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'minHeight',\n  transform: transform\n});\nvar sizeWidth = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'size',\n  cssProperty: 'width',\n  transform: transform\n});\nvar sizeHeight = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'size',\n  cssProperty: 'height',\n  transform: transform\n});\nvar boxSizing = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'boxSizing'\n});\nvar sizing = Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\n/* harmony default export */ __webpack_exports__[\"default\"] = (sizing);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/sizing.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/spacing.js":
/*!*********************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/spacing.js ***!
  \*********************************************************/
/*! exports provided: createUnarySpacing, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createUnarySpacing\", function() { return createUnarySpacing; });\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _responsivePropType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./responsivePropType */ \"./node_modules/@material-ui/system/esm/responsivePropType.js\");\n/* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./breakpoints */ \"./node_modules/@material-ui/system/esm/breakpoints.js\");\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./merge */ \"./node_modules/@material-ui/system/esm/merge.js\");\n/* harmony import */ var _memoize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./memoize */ \"./node_modules/@material-ui/system/esm/memoize.js\");\n\n\n\n\n\nvar properties = {\n  m: 'margin',\n  p: 'padding'\n};\nvar directions = {\n  t: 'Top',\n  r: 'Right',\n  b: 'Bottom',\n  l: 'Left',\n  x: ['Left', 'Right'],\n  y: ['Top', 'Bottom']\n};\nvar aliases = {\n  marginX: 'mx',\n  marginY: 'my',\n  paddingX: 'px',\n  paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = Object(_memoize__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(function (prop) {\n  // It's not a shorthand notation.\n  if (prop.length > 2) {\n    if (aliases[prop]) {\n      prop = aliases[prop];\n    } else {\n      return [prop];\n    }\n  }\n\n  var _prop$split = prop.split(''),\n      _prop$split2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_prop$split, 2),\n      a = _prop$split2[0],\n      b = _prop$split2[1];\n\n  var property = properties[a];\n  var direction = directions[b] || '';\n  return Array.isArray(direction) ? direction.map(function (dir) {\n    return property + dir;\n  }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nfunction createUnarySpacing(theme) {\n  var themeSpacing = theme.spacing || 8;\n\n  if (typeof themeSpacing === 'number') {\n    return function (abs) {\n      if (true) {\n        if (typeof abs !== 'number') {\n          console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n        }\n      }\n\n      return themeSpacing * abs;\n    };\n  }\n\n  if (Array.isArray(themeSpacing)) {\n    return function (abs) {\n      if (true) {\n        if (abs > themeSpacing.length - 1) {\n          console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n        }\n      }\n\n      return themeSpacing[abs];\n    };\n  }\n\n  if (typeof themeSpacing === 'function') {\n    return themeSpacing;\n  }\n\n  if (true) {\n    console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n  }\n\n  return function () {\n    return undefined;\n  };\n}\n\nfunction getValue(transformer, propValue) {\n  if (typeof propValue === 'string') {\n    return propValue;\n  }\n\n  var abs = Math.abs(propValue);\n  var transformed = transformer(abs);\n\n  if (propValue >= 0) {\n    return transformed;\n  }\n\n  if (typeof transformed === 'number') {\n    return -transformed;\n  }\n\n  return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n  return function (propValue) {\n    return cssProperties.reduce(function (acc, cssProperty) {\n      acc[cssProperty] = getValue(transformer, propValue);\n      return acc;\n    }, {});\n  };\n}\n\nfunction spacing(props) {\n  var theme = props.theme;\n  var transformer = createUnarySpacing(theme);\n  return Object.keys(props).map(function (prop) {\n    // Using a hash computation over an array iteration could be faster, but with only 28 items,\n    // it's doesn't worth the bundle size.\n    if (spacingKeys.indexOf(prop) === -1) {\n      return null;\n    }\n\n    var cssProperties = getCssProperties(prop);\n    var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n    var propValue = props[prop];\n    return Object(_breakpoints__WEBPACK_IMPORTED_MODULE_2__[\"handleBreakpoints\"])(props, propValue, styleFromPropValue);\n  }).reduce(_merge__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {});\n}\n\nspacing.propTypes =  true ? spacingKeys.reduce(function (obj, key) {\n  obj[key] = _responsivePropType__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n  return obj;\n}, {}) : undefined;\nspacing.filterProps = spacingKeys;\n/* harmony default export */ __webpack_exports__[\"default\"] = (spacing);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/spacing.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/style.js":
/*!*******************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/style.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _responsivePropType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./responsivePropType */ \"./node_modules/@material-ui/system/esm/responsivePropType.js\");\n/* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./breakpoints */ \"./node_modules/@material-ui/system/esm/breakpoints.js\");\n\n\n\n\nfunction getPath(obj, path) {\n  if (!path || typeof path !== 'string') {\n    return null;\n  }\n\n  return path.split('.').reduce(function (acc, item) {\n    return acc && acc[item] ? acc[item] : null;\n  }, obj);\n}\n\nfunction style(options) {\n  var prop = options.prop,\n      _options$cssProperty = options.cssProperty,\n      cssProperty = _options$cssProperty === void 0 ? options.prop : _options$cssProperty,\n      themeKey = options.themeKey,\n      transform = options.transform;\n\n  var fn = function fn(props) {\n    if (props[prop] == null) {\n      return null;\n    }\n\n    var propValue = props[prop];\n    var theme = props.theme;\n    var themeMapping = getPath(theme, themeKey) || {};\n\n    var styleFromPropValue = function styleFromPropValue(propValueFinal) {\n      var value;\n\n      if (typeof themeMapping === 'function') {\n        value = themeMapping(propValueFinal);\n      } else if (Array.isArray(themeMapping)) {\n        value = themeMapping[propValueFinal] || propValueFinal;\n      } else {\n        value = getPath(themeMapping, propValueFinal) || propValueFinal;\n\n        if (transform) {\n          value = transform(value);\n        }\n      }\n\n      if (cssProperty === false) {\n        return value;\n      }\n\n      return Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, cssProperty, value);\n    };\n\n    return Object(_breakpoints__WEBPACK_IMPORTED_MODULE_2__[\"handleBreakpoints\"])(props, propValue, styleFromPropValue);\n  };\n\n  fn.propTypes =  true ? Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, prop, _responsivePropType__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) : undefined;\n  fn.filterProps = [prop];\n  return fn;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (style);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/style.js?");

/***/ }),

/***/ "./node_modules/@material-ui/system/esm/typography.js":
/*!************************************************************!*\
  !*** ./node_modules/@material-ui/system/esm/typography.js ***!
  \************************************************************/
/*! exports provided: fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontFamily\", function() { return fontFamily; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontSize\", function() { return fontSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontStyle\", function() { return fontStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontWeight\", function() { return fontWeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"letterSpacing\", function() { return letterSpacing; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineHeight\", function() { return lineHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"textAlign\", function() { return textAlign; });\n/* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style */ \"./node_modules/@material-ui/system/esm/style.js\");\n/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compose */ \"./node_modules/@material-ui/system/esm/compose.js\");\n\n\nvar fontFamily = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'fontFamily',\n  themeKey: 'typography'\n});\nvar fontSize = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'fontSize',\n  themeKey: 'typography'\n});\nvar fontStyle = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'fontStyle',\n  themeKey: 'typography'\n});\nvar fontWeight = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'fontWeight',\n  themeKey: 'typography'\n});\nvar letterSpacing = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'letterSpacing'\n});\nvar lineHeight = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'lineHeight'\n});\nvar textAlign = Object(_style__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n  prop: 'textAlign'\n});\nvar typography = Object(_compose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign);\n/* harmony default export */ __webpack_exports__[\"default\"] = (typography);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/system/esm/typography.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/HTMLElementType.js":
/*!****************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/HTMLElementType.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HTMLElementType; });\nfunction HTMLElementType(props, propName, componentName, location, propFullName) {\n  if (false) {}\n\n  var propValue = props[propName];\n  var safePropName = propFullName || propName;\n\n  if (propValue == null) {\n    return null;\n  }\n\n  if (propValue && propValue.nodeType !== 1) {\n    return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an HTMLElement.\");\n  }\n\n  return null;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/HTMLElementType.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/chainPropTypes.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/chainPropTypes.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return chainPropTypes; });\nfunction chainPropTypes(propType1, propType2) {\n  if (false) {}\n\n  return function validate() {\n    return propType1.apply(void 0, arguments) || propType2.apply(void 0, arguments);\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/chainPropTypes.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/deepmerge.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/deepmerge.js ***!
  \**********************************************************/
/*! exports provided: isPlainObject, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPlainObject\", function() { return isPlainObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return deepmerge; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n\n\nfunction isPlainObject(item) {\n  return item && Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(item) === 'object' && item.constructor === Object;\n}\nfunction deepmerge(target, source) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n    clone: true\n  };\n  var output = options.clone ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, target) : target;\n\n  if (isPlainObject(target) && isPlainObject(source)) {\n    Object.keys(source).forEach(function (key) {\n      // Avoid prototype pollution\n      if (key === '__proto__') {\n        return;\n      }\n\n      if (isPlainObject(source[key]) && key in target) {\n        output[key] = deepmerge(target[key], source[key], options);\n      } else {\n        output[key] = source[key];\n      }\n    });\n  }\n\n  return output;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/deepmerge.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/elementAcceptingRef.js":
/*!********************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/elementAcceptingRef.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _chainPropTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chainPropTypes */ \"./node_modules/@material-ui/utils/esm/chainPropTypes.js\");\n\n\n\nfunction isClassComponent(elementType) {\n  // elementType.prototype?.isReactComponent\n  var _elementType$prototyp = elementType.prototype,\n      prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n  return Boolean(prototype.isReactComponent);\n}\n\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n  var element = props[propName];\n  var safePropName = propFullName || propName;\n\n  if (element == null) {\n    return null;\n  }\n\n  var warningHint;\n  var elementType = element.type;\n  /**\n   * Blacklisting instead of whitelisting\n   *\n   * Blacklisting will miss some components, such as React.Fragment. Those will at least\n   * trigger a warning in React.\n   * We can't whitelist because there is no safe way to detect React.forwardRef\n   * or class components. \"Safe\" means there's no public API.\n   *\n   */\n\n  if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n    warningHint = 'Did you accidentally use a plain function component for an element instead?';\n  }\n\n  if (warningHint !== undefined) {\n    return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://material-ui.com/r/caveat-with-refs-guide');\n  }\n\n  return null;\n}\n\nvar elementAcceptingRef = Object(_chainPropTypes__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, acceptingRef);\nelementAcceptingRef.isRequired = Object(_chainPropTypes__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element.isRequired, acceptingRef);\n/* harmony default export */ __webpack_exports__[\"default\"] = (elementAcceptingRef);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/elementAcceptingRef.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js":
/*!************************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _chainPropTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chainPropTypes */ \"./node_modules/@material-ui/utils/esm/chainPropTypes.js\");\n\n\n\nfunction isClassComponent(elementType) {\n  // elementType.prototype?.isReactComponent\n  var _elementType$prototyp = elementType.prototype,\n      prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n  return Boolean(prototype.isReactComponent);\n}\n\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n  var propValue = props[propName];\n  var safePropName = propFullName || propName;\n\n  if (propValue == null) {\n    return null;\n  }\n\n  var warningHint;\n  /**\n   * Blacklisting instead of whitelisting\n   *\n   * Blacklisting will miss some components, such as React.Fragment. Those will at least\n   * trigger a warning in React.\n   * We can't whitelist because there is no safe way to detect React.forwardRef\n   * or class components. \"Safe\" means there's no public API.\n   *\n   */\n\n  if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n    warningHint = 'Did you accidentally provide a plain function component instead?';\n  }\n\n  if (warningHint !== undefined) {\n    return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element type that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://material-ui.com/r/caveat-with-refs-guide');\n  }\n\n  return null;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_chainPropTypes__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(prop_types__WEBPACK_IMPORTED_MODULE_0__[\"elementType\"], elementTypeAcceptingRef));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/exactProp.js":
/*!**********************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/exactProp.js ***!
  \**********************************************************/
/*! exports provided: specialProperty, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"specialProperty\", function() { return specialProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return exactProp; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n\n\n// This module is based on https://github.com/airbnb/prop-types-exact repository.\n// However, in order to reduce the number of dependencies and to remove some extra safe checks\n// the module was forked.\n// Only exported for test purposes.\nvar specialProperty = \"exact-prop: \\u200B\";\nfunction exactProp(propTypes) {\n  if (false) {}\n\n  return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, propTypes, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, specialProperty, function (props) {\n    var unsupportedProps = Object.keys(props).filter(function (prop) {\n      return !propTypes.hasOwnProperty(prop);\n    });\n\n    if (unsupportedProps.length > 0) {\n      return new Error(\"The following props are not supported: \".concat(unsupportedProps.map(function (prop) {\n        return \"`\".concat(prop, \"`\");\n      }).join(', '), \". Please remove them.\"));\n    }\n\n    return null;\n  }));\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/exactProp.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatMuiErrorMessage; });\n/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nfunction formatMuiErrorMessage(code) {\n  // Apply babel-plugin-transform-template-literals in loose mode\n  // loose mode is safe iff we're concatenating primitives\n  // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n  /* eslint-disable prefer-template */\n  var url = 'https://material-ui.com/production-error/?code=' + code;\n\n  for (var i = 1; i < arguments.length; i += 1) {\n    // rest params over-transpile for this case\n    // eslint-disable-next-line prefer-rest-params\n    url += '&args[]=' + encodeURIComponent(arguments[i]);\n  }\n\n  return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n  /* eslint-enable prefer-template */\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/getDisplayName.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/getDisplayName.js ***!
  \***************************************************************/
/*! exports provided: getFunctionName, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFunctionName\", function() { return getFunctionName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getDisplayName; });\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_is__WEBPACK_IMPORTED_MODULE_1__);\n\n // Simplified polyfill for IE 11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\n\nvar fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nfunction getFunctionName(fn) {\n  var match = \"\".concat(fn).match(fnNameMatchRegex);\n  var name = match && match[1];\n  return name || '';\n}\n/**\n * @param {function} Component\n * @param {string} fallback\n * @returns {string | undefined}\n */\n\nfunction getFunctionComponentName(Component) {\n  var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var functionName = getFunctionComponentName(innerType);\n  return outerType.displayName || (functionName !== '' ? \"\".concat(wrapperName, \"(\").concat(functionName, \")\") : wrapperName);\n}\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE 11 support\n *\n * @param {React.ReactType} Component\n * @returns {string | undefined}\n */\n\n\nfunction getDisplayName(Component) {\n  if (Component == null) {\n    return undefined;\n  }\n\n  if (typeof Component === 'string') {\n    return Component;\n  }\n\n  if (typeof Component === 'function') {\n    return getFunctionComponentName(Component, 'Component');\n  }\n\n  if (Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Component) === 'object') {\n    switch (Component.$$typeof) {\n      case react_is__WEBPACK_IMPORTED_MODULE_1__[\"ForwardRef\"]:\n        return getWrappedName(Component, Component.render, 'ForwardRef');\n\n      case react_is__WEBPACK_IMPORTED_MODULE_1__[\"Memo\"]:\n        return getWrappedName(Component, Component.type, 'memo');\n\n      default:\n        return undefined;\n    }\n  }\n\n  return undefined;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/getDisplayName.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/index.js":
/*!******************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/index.js ***!
  \******************************************************/
/*! exports provided: chainPropTypes, deepmerge, elementAcceptingRef, elementTypeAcceptingRef, exactProp, formatMuiErrorMessage, getDisplayName, HTMLElementType, ponyfillGlobal, refType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _chainPropTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chainPropTypes */ \"./node_modules/@material-ui/utils/esm/chainPropTypes.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chainPropTypes\", function() { return _chainPropTypes__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _deepmerge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deepmerge */ \"./node_modules/@material-ui/utils/esm/deepmerge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepmerge\", function() { return _deepmerge__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _elementAcceptingRef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./elementAcceptingRef */ \"./node_modules/@material-ui/utils/esm/elementAcceptingRef.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"elementAcceptingRef\", function() { return _elementAcceptingRef__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _elementTypeAcceptingRef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./elementTypeAcceptingRef */ \"./node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"elementTypeAcceptingRef\", function() { return _elementTypeAcceptingRef__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _exactProp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./exactProp */ \"./node_modules/@material-ui/utils/esm/exactProp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"exactProp\", function() { return _exactProp__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatMuiErrorMessage */ \"./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatMuiErrorMessage\", function() { return _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _getDisplayName__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getDisplayName */ \"./node_modules/@material-ui/utils/esm/getDisplayName.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getDisplayName\", function() { return _getDisplayName__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _HTMLElementType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HTMLElementType */ \"./node_modules/@material-ui/utils/esm/HTMLElementType.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HTMLElementType\", function() { return _HTMLElementType__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _ponyfillGlobal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ponyfillGlobal */ \"./node_modules/@material-ui/utils/esm/ponyfillGlobal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ponyfillGlobal\", function() { return _ponyfillGlobal__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _refType__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./refType */ \"./node_modules/@material-ui/utils/esm/refType.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"refType\", function() { return _refType__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/** @license Material-UI v4.10.2\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/index.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/ponyfillGlobal.js":
/*!***************************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/ponyfillGlobal.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n/* harmony default export */ __webpack_exports__[\"default\"] = (typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')());\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/ponyfillGlobal.js?");

/***/ }),

/***/ "./node_modules/@material-ui/utils/esm/refType.js":
/*!********************************************************!*\
  !*** ./node_modules/@material-ui/utils/esm/refType.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n\nvar refType = prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object]);\n/* harmony default export */ __webpack_exports__[\"default\"] = (refType);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/@material-ui/utils/esm/refType.js?");

/***/ }),

/***/ "./node_modules/array-flat-polyfill/index.mjs":
/*!****************************************************!*\
  !*** ./node_modules/array-flat-polyfill/index.mjs ***!
  \****************************************************/
/*! no exports provided */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nArray.prototype.flat||Object.defineProperty(Array.prototype,\"flat\",{configurable:!0,value:function r(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(a,e){return Array.isArray(e)?a.push.apply(a,r.call(e,t-1)):a.push(e),a},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,\"flatMap\",{configurable:!0,value:function(r){return Array.prototype.map.apply(this,arguments).flat()},writable:!0})\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/array-flat-polyfill/index.mjs?");

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(\n      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n    ))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/base64-js/index.js?");

/***/ }),

/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
  !*** ./node_modules/buffer/index.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://opencleanVis/./node_modules/buffer/index.js?");

/***/ }),

/***/ "./node_modules/clone/clone.js":
/*!*************************************!*\
  !*** ./node_modules/clone/clone.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n  return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n  nativeMap = Map;\n} catch(_) {\n  // maybe a reference error because no `Map`. Give it a dummy value that no\n  // value will ever be an instanceof.\n  nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n  nativeSet = Set;\n} catch(_) {\n  nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n  nativePromise = Promise;\n} catch(_) {\n  nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n *    circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n *    a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n *    (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n *    should be cloned as well. Non-enumerable properties on the prototype\n *    chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n  if (typeof circular === 'object') {\n    depth = circular.depth;\n    prototype = circular.prototype;\n    includeNonEnumerable = circular.includeNonEnumerable;\n    circular = circular.circular;\n  }\n  // maintain two arrays for circular references, where corresponding parents\n  // and children have the same index\n  var allParents = [];\n  var allChildren = [];\n\n  var useBuffer = typeof Buffer != 'undefined';\n\n  if (typeof circular == 'undefined')\n    circular = true;\n\n  if (typeof depth == 'undefined')\n    depth = Infinity;\n\n  // recurse this function so we don't reset allParents and allChildren\n  function _clone(parent, depth) {\n    // cloning null always returns null\n    if (parent === null)\n      return null;\n\n    if (depth === 0)\n      return parent;\n\n    var child;\n    var proto;\n    if (typeof parent != 'object') {\n      return parent;\n    }\n\n    if (_instanceof(parent, nativeMap)) {\n      child = new nativeMap();\n    } else if (_instanceof(parent, nativeSet)) {\n      child = new nativeSet();\n    } else if (_instanceof(parent, nativePromise)) {\n      child = new nativePromise(function (resolve, reject) {\n        parent.then(function(value) {\n          resolve(_clone(value, depth - 1));\n        }, function(err) {\n          reject(_clone(err, depth - 1));\n        });\n      });\n    } else if (clone.__isArray(parent)) {\n      child = [];\n    } else if (clone.__isRegExp(parent)) {\n      child = new RegExp(parent.source, __getRegExpFlags(parent));\n      if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n    } else if (clone.__isDate(parent)) {\n      child = new Date(parent.getTime());\n    } else if (useBuffer && Buffer.isBuffer(parent)) {\n      if (Buffer.allocUnsafe) {\n        // Node.js >= 4.5.0\n        child = Buffer.allocUnsafe(parent.length);\n      } else {\n        // Older Node.js versions\n        child = new Buffer(parent.length);\n      }\n      parent.copy(child);\n      return child;\n    } else if (_instanceof(parent, Error)) {\n      child = Object.create(parent);\n    } else {\n      if (typeof prototype == 'undefined') {\n        proto = Object.getPrototypeOf(parent);\n        child = Object.create(proto);\n      }\n      else {\n        child = Object.create(prototype);\n        proto = prototype;\n      }\n    }\n\n    if (circular) {\n      var index = allParents.indexOf(parent);\n\n      if (index != -1) {\n        return allChildren[index];\n      }\n      allParents.push(parent);\n      allChildren.push(child);\n    }\n\n    if (_instanceof(parent, nativeMap)) {\n      parent.forEach(function(value, key) {\n        var keyChild = _clone(key, depth - 1);\n        var valueChild = _clone(value, depth - 1);\n        child.set(keyChild, valueChild);\n      });\n    }\n    if (_instanceof(parent, nativeSet)) {\n      parent.forEach(function(value) {\n        var entryChild = _clone(value, depth - 1);\n        child.add(entryChild);\n      });\n    }\n\n    for (var i in parent) {\n      var attrs;\n      if (proto) {\n        attrs = Object.getOwnPropertyDescriptor(proto, i);\n      }\n\n      if (attrs && attrs.set == null) {\n        continue;\n      }\n      child[i] = _clone(parent[i], depth - 1);\n    }\n\n    if (Object.getOwnPropertySymbols) {\n      var symbols = Object.getOwnPropertySymbols(parent);\n      for (var i = 0; i < symbols.length; i++) {\n        // Don't need to worry about cloning a symbol because it is a primitive,\n        // like a number or string.\n        var symbol = symbols[i];\n        var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n        if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n          continue;\n        }\n        child[symbol] = _clone(parent[symbol], depth - 1);\n        if (!descriptor.enumerable) {\n          Object.defineProperty(child, symbol, {\n            enumerable: false\n          });\n        }\n      }\n    }\n\n    if (includeNonEnumerable) {\n      var allPropertyNames = Object.getOwnPropertyNames(parent);\n      for (var i = 0; i < allPropertyNames.length; i++) {\n        var propertyName = allPropertyNames[i];\n        var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n        if (descriptor && descriptor.enumerable) {\n          continue;\n        }\n        child[propertyName] = _clone(parent[propertyName], depth - 1);\n        Object.defineProperty(child, propertyName, {\n          enumerable: false\n        });\n      }\n    }\n\n    return child;\n  }\n\n  return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n  if (parent === null)\n    return null;\n\n  var c = function () {};\n  c.prototype = parent;\n  return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n  return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n  return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n  return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n  return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n  var flags = '';\n  if (re.global) flags += 'g';\n  if (re.ignoreCase) flags += 'i';\n  if (re.multiline) flags += 'm';\n  return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif ( true && module.exports) {\n  module.exports = clone;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://opencleanVis/./node_modules/clone/clone.js?");

/***/ }),

/***/ "./node_modules/clsx/dist/clsx.m.js":
/*!******************************************!*\
  !*** ./node_modules/clsx/dist/clsx.m.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/clsx/dist/clsx.m.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/DatasetSample.css":
/*!*********************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/DatasetSample.css ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \"/* https://www.colorbox.io/#steps=7#hue_start=209#hue_end=172#hue_curve=easeInQuad#sat_start=12#sat_end=90#sat_curve=easeOutCubic#sat_rate=130#lum_start=84#lum_end=53#lum_curve=easeOutQuad#minor_steps_map=0 */\\n.badge.semtype {\\n  background-color: #b1c4d5;\\n  color: white;\\n}\\n\\n.badge.semtype.semtype-text {\\n  background-color: #aec2d4;\\n}\\n\\n.badge.semtype.semtype-boolean {\\n  background-color: #a1bbce;\\n}\\n\\n.badge.semtype.semtype-enumeration {\\n  background-color: #89b1c4;\\n}\\n\\n.badge.semtype.semtype-identifier {\\n  background-color: #5fa4b5;\\n}\\n\\n.badge.semtype.semtype-latitude, .badge.semtype.semtype-longitude {\\n  background-color: #249ca0;\\n}\\n\\n.badge.semtype.semtype-datetime {\\n  background-color: #008775;\\n}\\n\\n#vg-tooltip-element {\\n  z-index: 2000;\\n}\\n\\n.btn-secondary {\\n  color: #212529;\\n  background-color: #f3e6ff;\\n  border-color: #f3e6ff;\\n}\\n\\n.btn-secondary:not(:disabled):not(.disabled).active, .btn-secondary:not(:disabled):not(.disabled):active, .show>.btn-secondary.dropdown-toggle {\\n  color: #212529;\\n  background-color: #dbb3ff;\\n  border-color: #d4a6ff;\\n}\\n\\n.dropdown {\\n  position: relative;\\n  display: inline-block;\\n}\\n\\n.dropdown-content {\\n  display: none;\\n  position: absolute;\\n  background-color: #f1f1f1;\\n  min-width: 85px;\\n  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\\n  z-index: 6;\\n  max-height: 16vh;\\n  overflow-y: auto;\\n  margin-top: -6px;\\n  margin-right: -25px;\\n  text-align:left;\\n  left: auto;\\n  right: 100%;\\n}\\n\\n.dropdown-content div {\\n  color: black;\\n  padding: 3px 6px;\\n  text-decoration: none;\\n  display: block;\\n  z-index: 6;\\n}\\n.dropdown:hover .dropdown-content {\\n  display: inline-block;\\n  font-family: sans-serif;\\n}\\n.dropdown-content div:hover {background-color: #ddd;}\\n\\n.dropdown:hover .dropdown-content {display: block;}\\n\\n.dropdown:hover .dropbtn {background-color: #3e8e41;}\\n\\n.badge-corner-button{\\n  width: 15px;\\n  height: 15px;\\n  margin-top: -18px;\\n  margin-left: 1px;\\n  padding: 0px;\\n  margin-right: -6px;\\n}\\n.badge-corner-button svg{\\n  color:#fdfdfe;\\n  fill: #757575;\\n  stroke-width: 2;\\n}\\n\\n.badge{margin: 1.5px; margin-top: 2.5px; display:inline-block;padding:.35em .5em;font-family: \\\"Source Sans Pro\\\", -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", Arial, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\";font-size: 1rem;font-weight: 400;line-height: 1.5;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:0}\\n.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:.5rem .5rem .5rem 0}\\n\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://opencleanVis/./src/DatasetSample.css?./node_modules/css-loader/dist/cjs.js");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/Pagination.css":
/*!******************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/Pagination.css ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \".pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:0}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#63508b;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#40345a;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(99,80,139,.25);box-shadow:0 0 0 .2rem rgba(99,80,139,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.page-item:last-child .page-link{border-top-right-radius:0;border-bottom-right-radius:0}.page-item.active .page-link{z-index:1;color:#fff;background-color:#63508b;border-color:#63508b}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:0;border-bottom-left-radius:0}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:0;border-bottom-right-radius:0}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:0;border-bottom-left-radius:0}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:0;border-bottom-right-radius:0}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://opencleanVis/./src/Pagination.css?./node_modules/css-loader/dist/cjs.js");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./src/SpreadSheet.css":
/*!*******************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./src/SpreadSheet.css ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.i, \".badge-group > * {\\n    display: inline-flex;\\n    margin-right: 0.25rem;\\n}\\n  \\n.badge-group > *:last-child {\\n    margin-right: 0px;\\n}\\n  \\n.badge-column, .badge-numerical, .badge-textual {\\n    background-color: #f0f0f0;\\n    font-size: .7rem;\\n}\\n  \\n.badge-numerical svg {\\n    color: #1ab082;\\n}\\n\\n.badge-textual svg {\\n    color: #4d96b2;\\n}\\n\\n.badge-categorical {\\n    color: #fff;\\n    background-color: #4d96b2;\\n}\\n\\n.badge-number {\\n    color: #fff;\\n    background-color: #1ab082;\\n}\\n\\n.badge-corner-button{\\n    width: 12px;\\n    height: 12px;\\n    margin-top: -18px;\\n    margin-left: 1px;\\n    padding: 0px;\\n    margin-right: -10px;\\n}\\n.badge-corner-button svg{\\n    color:#fdfdfe;\\n    fill: #757575;\\n    stroke-width: 2;\\n}\\n\\n.swrapper {\\n    display: inline-flex;\\n}\\n.column-flex{\\n    flex: none;\\n    width: 250px;\\n    margin-right: 8px;\\n}\\n.btn-gray{\\n    border: 1px solid rgb(118, 118, 118);\\n    padding: 1px 2px;\\n    font-size: 12px;\\n    cursor: pointer;\\n    background-color:rgb(239, 239, 239);\\n    border-radius: 5px;\\n    color: #000000;\\n    margin-left: 5px;\\n}\\n.btn-gray:hover{background-color: #545b63; color: rgb(235, 235, 235);}\\n  \\n.d-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-webkit-inline-flex!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:\\\"\\\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-webkit-box-flex:1!important;-webkit-flex:1 1 auto!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-webkit-box-flex:0!important;-webkit-flex-grow:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-webkit-box-flex:1!important;-webkit-flex-grow:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-webkit-flex-shrink:0!important;-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-webkit-flex-shrink:1!important;-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-webkit-box-flex:1!important;-webkit-flex:1 1 auto!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-webkit-box-flex:0!important;-webkit-flex-grow:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-webkit-box-flex:1!important;-webkit-flex-grow:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-webkit-flex-shrink:0!important;-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-webkit-flex-shrink:1!important;-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-webkit-box-flex:1!important;-webkit-flex:1 1 auto!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-webkit-box-flex:0!important;-webkit-flex-grow:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-webkit-box-flex:1!important;-webkit-flex-grow:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-webkit-flex-shrink:0!important;-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-webkit-flex-shrink:1!important;-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-webkit-box-flex:1!important;-webkit-flex:1 1 auto!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-webkit-box-flex:0!important;-webkit-flex-grow:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-webkit-box-flex:1!important;-webkit-flex-grow:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-webkit-flex-shrink:0!important;-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-webkit-flex-shrink:1!important;-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-webkit-flex-direction:row!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:row-reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-webkit-flex-direction:column-reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-webkit-flex-wrap:wrap!important;-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-webkit-flex-wrap:nowrap!important;-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-webkit-flex-wrap:wrap-reverse!important;-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-webkit-box-flex:1!important;-webkit-flex:1 1 auto!important;-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-webkit-box-flex:0!important;-webkit-flex-grow:0!important;-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-webkit-box-flex:1!important;-webkit-flex-grow:1!important;-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-webkit-flex-shrink:0!important;-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-webkit-flex-shrink:1!important;-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-webkit-box-pack:start!important;-webkit-justify-content:flex-start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-webkit-justify-content:flex-end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-webkit-justify-content:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-webkit-justify-content:space-between!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-webkit-justify-content:space-around!important;-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-webkit-align-items:flex-start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-webkit-align-items:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-webkit-align-items:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-webkit-align-items:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-webkit-align-content:flex-start!important;-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-webkit-align-content:flex-end!important;-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-webkit-align-content:center!important;-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-webkit-align-content:space-between!important;-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-webkit-align-content:space-around!important;-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-webkit-align-content:stretch!important;-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-webkit-align-self:auto!important;-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-webkit-align-self:flex-start!important;-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-webkit-align-self:flex-end!important;-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-webkit-align-self:center!important;-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-webkit-align-self:baseline!important;-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-webkit-align-self:stretch!important;-ms-flex-item-align:stretch!important;align-self:stretch!important}}\", \"\"]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://opencleanVis/./src/SpreadSheet.css?./node_modules/css-loader/dist/cjs.js");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join('');\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery, dedupe) {\n    if (typeof modules === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var i = 0; i < this.length; i++) {\n        // eslint-disable-next-line prefer-destructuring\n        var id = this[i][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = [].concat(modules[_i]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        // eslint-disable-next-line no-continue\n        continue;\n      }\n\n      if (mediaQuery) {\n        if (!item[2]) {\n          item[2] = mediaQuery;\n        } else {\n          item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n  return \"/*# \".concat(data, \" */\");\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/css-loader/dist/runtime/api.js?");

/***/ }),

/***/ "./node_modules/css-vendor/dist/css-vendor.esm.js":
/*!********************************************************!*\
  !*** ./node_modules/css-vendor/dist/css-vendor.esm.js ***!
  \********************************************************/
/*! exports provided: prefix, supportedKeyframes, supportedProperty, supportedValue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prefix\", function() { return prefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportedKeyframes\", function() { return supportedKeyframes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportedProperty\", function() { return supportedProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportedValue\", function() { return supportedValue; });\n/* harmony import */ var is_in_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-in-browser */ \"./node_modules/is-in-browser/dist/module.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n\n\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = is_in_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (is_in_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  // Order matters. We need to check Webkit the last one because\n  // other vendors use to add Webkit prefixes to some properties\n  var jsCssMap = {\n    Moz: '-moz-',\n    ms: '-ms-',\n    O: '-o-',\n    Webkit: '-webkit-'\n  };\n\n  var _document$createEleme = document.createElement('p'),\n      style = _document$createEleme.style;\n\n  var testProp = 'Transform';\n\n  for (var key in jsCssMap) {\n    if (key + testProp in style) {\n      js = key;\n      css = jsCssMap[key];\n      break;\n    }\n  } // Correctly detect the Edge browser.\n\n\n  if (js === 'Webkit' && 'msHyphens' in style) {\n    js = 'ms';\n    css = jsCssMap.ms;\n    browser = 'edge';\n  } // Correctly detect the Safari browser.\n\n\n  if (js === 'Webkit' && '-apple-trailing-word' in style) {\n    vendor = 'apple';\n  }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n  js: js,\n  css: css,\n  vendor: vendor,\n  browser: browser,\n  isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n  // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n  if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n  // https://caniuse.com/#search=keyframes\n\n  if (prefix.js === 'ms') return key;\n  return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n  noPrefill: ['appearance'],\n  supportedProperty: function supportedProperty(prop) {\n    if (prop !== 'appearance') return false;\n    if (prefix.js === 'ms') return \"-webkit-\" + prop;\n    return prefix.css + prop;\n  }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n  noPrefill: ['color-adjust'],\n  supportedProperty: function supportedProperty(prop) {\n    if (prop !== 'color-adjust') return false;\n    if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n    return prop;\n  }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n  return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n  return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n  return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n  noPrefill: ['mask'],\n  supportedProperty: function supportedProperty(prop, style) {\n    if (!/^mask/.test(prop)) return false;\n\n    if (prefix.js === 'Webkit') {\n      var longhand = 'mask-image';\n\n      if (camelize(longhand) in style) {\n        return prop;\n      }\n\n      if (prefix.js + pascalize(longhand) in style) {\n        return prefix.css + prop;\n      }\n    }\n\n    return prop;\n  }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n  noPrefill: ['text-orientation'],\n  supportedProperty: function supportedProperty(prop) {\n    if (prop !== 'text-orientation') return false;\n\n    if (prefix.vendor === 'apple' && !prefix.isTouch) {\n      return prefix.css + prop;\n    }\n\n    return prop;\n  }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n  noPrefill: ['transform'],\n  supportedProperty: function supportedProperty(prop, style, options) {\n    if (prop !== 'transform') return false;\n\n    if (options.transform) {\n      return prop;\n    }\n\n    return prefix.css + prop;\n  }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n  noPrefill: ['transition'],\n  supportedProperty: function supportedProperty(prop, style, options) {\n    if (prop !== 'transition') return false;\n\n    if (options.transition) {\n      return prop;\n    }\n\n    return prefix.css + prop;\n  }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n  noPrefill: ['writing-mode'],\n  supportedProperty: function supportedProperty(prop) {\n    if (prop !== 'writing-mode') return false;\n\n    if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n      return prefix.css + prop;\n    }\n\n    return prop;\n  }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n  noPrefill: ['user-select'],\n  supportedProperty: function supportedProperty(prop) {\n    if (prop !== 'user-select') return false;\n\n    if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n      return prefix.css + prop;\n    }\n\n    return prop;\n  }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n  supportedProperty: function supportedProperty(prop, style) {\n    if (!/^break-/.test(prop)) return false;\n\n    if (prefix.js === 'Webkit') {\n      var jsProp = \"WebkitColumn\" + pascalize(prop);\n      return jsProp in style ? prefix.css + \"column-\" + prop : false;\n    }\n\n    if (prefix.js === 'Moz') {\n      var _jsProp = \"page\" + pascalize(prop);\n\n      return _jsProp in style ? \"page-\" + prop : false;\n    }\n\n    return false;\n  }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n  supportedProperty: function supportedProperty(prop, style) {\n    if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n    if (prefix.js === 'Moz') return prop;\n    var newProp = prop.replace('-inline', '');\n    return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n  }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n  supportedProperty: function supportedProperty(prop, style) {\n    return camelize(prop) in style ? prop : false;\n  }\n};\n\nvar prefixed = {\n  supportedProperty: function supportedProperty(prop, style) {\n    var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n    if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n    if (prop[0] === '-' && prop[1] === '-') return prop;\n    if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n    if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n    return false;\n  }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n  supportedProperty: function supportedProperty(prop) {\n    if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n    if (prefix.js === 'ms') {\n      return \"\" + prefix.css + prop;\n    }\n\n    return prop;\n  }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n  supportedProperty: function supportedProperty(prop) {\n    if (prop !== 'overscroll-behavior') return false;\n\n    if (prefix.js === 'ms') {\n      return prefix.css + \"scroll-chaining\";\n    }\n\n    return prop;\n  }\n};\n\nvar propMap = {\n  'flex-grow': 'flex-positive',\n  'flex-shrink': 'flex-negative',\n  'flex-basis': 'flex-preferred-size',\n  'justify-content': 'flex-pack',\n  order: 'flex-order',\n  'align-items': 'flex-align',\n  'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n  supportedProperty: function supportedProperty(prop, style) {\n    var newProp = propMap[prop];\n    if (!newProp) return false;\n    return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n  }\n};\n\nvar propMap$1 = {\n  flex: 'box-flex',\n  'flex-grow': 'box-flex',\n  'flex-direction': ['box-orient', 'box-direction'],\n  order: 'box-ordinal-group',\n  'align-items': 'box-align',\n  'flex-flow': ['box-orient', 'box-direction'],\n  'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n  return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n  supportedProperty: function supportedProperty(prop, style, _ref) {\n    var multiple = _ref.multiple;\n\n    if (propKeys.indexOf(prop) > -1) {\n      var newProp = propMap$1[prop];\n\n      if (!Array.isArray(newProp)) {\n        return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n      }\n\n      if (!multiple) return false;\n\n      for (var i = 0; i < newProp.length; i++) {\n        if (!(prefix.js + pascalize(newProp[0]) in style)) {\n          return false;\n        }\n      }\n\n      return newProp.map(prefixCss);\n    }\n\n    return false;\n  }\n};\n\n// plugins = [\n//   ...plugins,\n//    breakPropsOld,\n//    inlineLogicalOld,\n//    unprefixed,\n//    prefixed,\n//    scrollSnap,\n//    flex2012,\n//    flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n  return p.supportedProperty;\n}).map(function (p) {\n  return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n  return p.noPrefill;\n}).reduce(function (a, p) {\n  a.push.apply(a, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(p.noPrefill));\n  return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (is_in_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  el = document.createElement('p'); // We test every property on vendor prefix requirement.\n  // Once tested, result is cached. It gives us up to 70% perf boost.\n  // http://jsperf.com/element-style-object-access-vs-plain-object\n  //\n  // Prefill cache with known css properties to reduce amount of\n  // properties we need to feature test at runtime.\n  // http://davidwalsh.name/vendor-prefix\n\n  var computed = window.getComputedStyle(document.documentElement, '');\n\n  for (var key$1 in computed) {\n    // eslint-disable-next-line no-restricted-globals\n    if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n  } // Properties that cannot be correctly detected using the\n  // cache prefill method.\n\n\n  noPrefill.forEach(function (x) {\n    return delete cache[x];\n  });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  // For server-side rendering.\n  if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n  if ( true && cache[prop] != null) {\n    return cache[prop];\n  } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n  if (prop === 'transition' || prop === 'transform') {\n    options[prop] = prop in el.style;\n  } // Find a plugin for current prefix property.\n\n\n  for (var i = 0; i < propertyDetectors.length; i++) {\n    cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n    if (cache[prop]) break;\n  } // Reset styles for current property.\n  // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n  try {\n    el.style[prop] = '';\n  } catch (err) {\n    return false;\n  }\n\n  return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n  transition: 1,\n  'transition-property': 1,\n  '-webkit-transition': 1,\n  '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n  if (p1 === 'var') return 'var';\n  if (p1 === 'all') return 'all';\n  if (p2 === 'all') return ', all';\n  var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n  if (!prefixedValue) return p1 || p2;\n  return prefixedValue;\n}\n\nif (is_in_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n  // For server-side rendering.\n  var prefixedValue = value;\n  if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n  // We want only prefixable values here.\n  // eslint-disable-next-line no-restricted-globals\n\n  if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n    return prefixedValue;\n  } // Create cache key for current value.\n\n\n  var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n  if ( true && cache$1[cacheKey] != null) {\n    return cache$1[cacheKey];\n  } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n  try {\n    // Test value as it is.\n    el$1.style[property] = prefixedValue;\n  } catch (err) {\n    // Return false if value not supported.\n    cache$1[cacheKey] = false;\n    return false;\n  } // If 'transition' or 'transition-property' property.\n\n\n  if (transitionProperties[property]) {\n    prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n  } else if (el$1.style[property] === '') {\n    // Value with a vendor prefix.\n    prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n    if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n    el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n    if (el$1.style[property] === '') {\n      cache$1[cacheKey] = false;\n      return false;\n    }\n  } // Reset styles for current property.\n\n\n  el$1.style[property] = ''; // Write current value to cache.\n\n  cache$1[cacheKey] = prefixedValue;\n  return cache$1[cacheKey];\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/css-vendor/dist/css-vendor.esm.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/array.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/array.js ***!
  \********************************************/
/*! exports provided: slice, map */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return slice; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\nvar array = Array.prototype;\n\nvar slice = array.slice;\nvar map = array.map;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/array.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/ascending.js":
/*!************************************************!*\
  !*** ./node_modules/d3-array/src/ascending.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/ascending.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/bin.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/bin.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-array/src/array.js\");\n/* harmony import */ var _bisect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisect.js */ \"./node_modules/d3-array/src/bisect.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-array/src/constant.js\");\n/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent.js */ \"./node_modules/d3-array/src/extent.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-array/src/identity.js\");\n/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./nice.js */ \"./node_modules/d3-array/src/nice.js\");\n/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ticks.js */ \"./node_modules/d3-array/src/ticks.js\");\n/* harmony import */ var _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./threshold/sturges.js */ \"./node_modules/d3-array/src/threshold/sturges.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var value = _identity_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n      domain = _extent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n      threshold = _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\n\n  function histogram(data) {\n    if (!Array.isArray(data)) data = Array.from(data);\n\n    var i,\n        n = data.length,\n        x,\n        values = new Array(n);\n\n    for (i = 0; i < n; ++i) {\n      values[i] = value(data[i], i, data);\n    }\n\n    var xz = domain(values),\n        x0 = xz[0],\n        x1 = xz[1],\n        tz = threshold(values, x0, x1);\n\n    // Convert number of thresholds into uniform thresholds,\n    // and nice the default domain accordingly.\n    if (!Array.isArray(tz)) {\n      tz = +tz;\n      if (domain === _extent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) [x0, x1] = Object(_nice_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(x0, x1, tz);\n      tz = Object(_ticks_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(x0, x1, tz);\n      if (tz[tz.length - 1] === x1) tz.pop(); // exclusive\n    }\n\n    // Remove any thresholds outside the domain.\n    var m = tz.length;\n    while (tz[0] <= x0) tz.shift(), --m;\n    while (tz[m - 1] > x1) tz.pop(), --m;\n\n    var bins = new Array(m + 1),\n        bin;\n\n    // Initialize bins.\n    for (i = 0; i <= m; ++i) {\n      bin = bins[i] = [];\n      bin.x0 = i > 0 ? tz[i - 1] : x0;\n      bin.x1 = i < m ? tz[i] : x1;\n    }\n\n    // Assign data to bins by value, ignoring any outside the domain.\n    for (i = 0; i < n; ++i) {\n      x = values[i];\n      if (x0 <= x && x <= x1) {\n        bins[Object(_bisect_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(tz, x, 0, m)].push(data[i]);\n      }\n    }\n\n    return bins;\n  }\n\n  histogram.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_), histogram) : value;\n  };\n\n  histogram.domain = function(_) {\n    return arguments.length ? (domain = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])([_[0], _[1]]), histogram) : domain;\n  };\n\n  histogram.thresholds = function(_) {\n    return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_array_js__WEBPACK_IMPORTED_MODULE_0__[\"slice\"].call(_)) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_), histogram) : threshold;\n  };\n\n  return histogram;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/bin.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/bisect.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/bisect.js ***!
  \*********************************************/
/*! exports provided: bisectRight, bisectLeft, bisectCenter, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bisectRight\", function() { return bisectRight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bisectLeft\", function() { return bisectLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bisectCenter\", function() { return bisectCenter; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n/* harmony import */ var _bisector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bisector.js */ \"./node_modules/d3-array/src/bisector.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-array/src/number.js\");\n\n\n\n\nconst ascendingBisect = Object(_bisector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\nconst bisectRight = ascendingBisect.right;\nconst bisectLeft = ascendingBisect.left;\nconst bisectCenter = Object(_bisector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_number_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]).center;\n/* harmony default export */ __webpack_exports__[\"default\"] = (bisectRight);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/bisect.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/bisector.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/bisector.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(f) {\n  let delta = f;\n  let compare = f;\n\n  if (f.length === 1) {\n    delta = (d, x) => f(d) - x;\n    compare = ascendingComparator(f);\n  }\n\n  function left(a, x, lo, hi) {\n    if (lo == null) lo = 0;\n    if (hi == null) hi = a.length;\n    while (lo < hi) {\n      const mid = (lo + hi) >>> 1;\n      if (compare(a[mid], x) < 0) lo = mid + 1;\n      else hi = mid;\n    }\n    return lo;\n  }\n\n  function right(a, x, lo, hi) {\n    if (lo == null) lo = 0;\n    if (hi == null) hi = a.length;\n    while (lo < hi) {\n      const mid = (lo + hi) >>> 1;\n      if (compare(a[mid], x) > 0) hi = mid;\n      else lo = mid + 1;\n    }\n    return lo;\n  }\n\n  function center(a, x, lo, hi) {\n    if (lo == null) lo = 0;\n    if (hi == null) hi = a.length;\n    const i = left(a, x, lo, hi - 1);\n    return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n  }\n\n  return {left, center, right};\n});\n\nfunction ascendingComparator(f) {\n  return (d, x) => Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(f(d), x);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/bisector.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/constant.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/constant.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return function() {\n    return x;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/count.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/count.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return count; });\nfunction count(values, valueof) {\n  let count = 0;\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        ++count;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        ++count;\n      }\n    }\n  }\n  return count;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/count.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/cross.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/cross.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return cross; });\nfunction length(array) {\n  return array.length | 0;\n}\n\nfunction empty(length) {\n  return !(length > 0);\n}\n\nfunction arrayify(values) {\n  return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n  return values => reduce(...values);\n}\n\nfunction cross(...values) {\n  const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n  values = values.map(arrayify);\n  const lengths = values.map(length);\n  const j = values.length - 1;\n  const index = new Array(j + 1).fill(0);\n  const product = [];\n  if (j < 0 || lengths.some(empty)) return product;\n  while (true) {\n    product.push(index.map((j, i) => values[i][j]));\n    let i = j;\n    while (++index[i] === lengths[i]) {\n      if (i === 0) return reduce ? product.map(reduce) : product;\n      index[i--] = 0;\n    }\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/cross.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/cumsum.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/cumsum.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return cumsum; });\nfunction cumsum(values, valueof) {\n  var sum = 0, index = 0;\n  return Float64Array.from(values, valueof === undefined\n    ? v => (sum += +v || 0)\n    : v => (sum += +valueof(v, index++, values) || 0));\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/cumsum.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/descending.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-array/src/descending.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/descending.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/deviation.js":
/*!************************************************!*\
  !*** ./node_modules/d3-array/src/deviation.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return deviation; });\n/* harmony import */ var _variance_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variance.js */ \"./node_modules/d3-array/src/variance.js\");\n\n\nfunction deviation(values, valueof) {\n  const v = Object(_variance_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values, valueof);\n  return v ? Math.sqrt(v) : v;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/deviation.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/difference.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-array/src/difference.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return difference; });\nfunction difference(values, ...others) {\n  values = new Set(values);\n  for (const other of others) {\n    for (const value of other) {\n      values.delete(value);\n    }\n  }\n  return values;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/difference.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/disjoint.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/disjoint.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return disjoint; });\nfunction disjoint(values, other) {\n  const iterator = other[Symbol.iterator](), set = new Set();\n  for (const v of values) {\n    if (set.has(v)) return false;\n    let value, done;\n    while (({value, done} = iterator.next())) {\n      if (done) break;\n      if (Object.is(v, value)) return false;\n      set.add(value);\n    }\n  }\n  return true;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/disjoint.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/every.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/every.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return every; });\nfunction every(values, test) {\n  if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n  let index = -1;\n  for (const value of values) {\n    if (!test(value, ++index, values)) {\n      return false;\n    }\n  }\n  return true;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/every.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/extent.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/extent.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values, valueof) {\n  let min;\n  let max;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null) {\n        if (min === undefined) {\n          if (value >= value) min = max = value;\n        } else {\n          if (min > value) min = value;\n          if (max < value) max = value;\n        }\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null) {\n        if (min === undefined) {\n          if (value >= value) min = max = value;\n        } else {\n          if (min > value) min = value;\n          if (max < value) max = value;\n        }\n      }\n    }\n  }\n  return [min, max];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/extent.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/filter.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/filter.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return filter; });\nfunction filter(values, test) {\n  if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n  const array = [];\n  let index = -1;\n  for (const value of values) {\n    if (test(value, ++index, values)) {\n      array.push(value);\n    }\n  }\n  return array;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/filter.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/fsum.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-array/src/fsum.js ***!
  \*******************************************/
/*! exports provided: Adder, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Adder\", function() { return Adder; });\n// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nclass Adder {\n  constructor() {\n    this._partials = new Float64Array(32);\n    this._n = 0;\n  }\n  add(x) {\n    const p = this._partials;\n    let i = 0;\n    for (let j = 0; j < this._n && j < 32; j++) {\n      const y = p[j],\n        hi = x + y,\n        lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n      if (lo) p[i++] = lo;\n      x = hi;\n    }\n    p[i] = x;\n    this._n = i + 1;\n    return this;\n  }\n  valueOf() {\n    const p = this._partials;\n    let n = this._n, x, y, lo, hi = 0;\n    if (n > 0) {\n      hi = p[--n];\n      while (n > 0) {\n        x = hi;\n        y = p[--n];\n        hi = x + y;\n        lo = y - (hi - x);\n        if (lo) break;\n      }\n      if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n        y = lo * 2;\n        x = hi + y;\n        if (y == x - hi) hi = x;\n      }\n    }\n    return hi;\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values, valueof) {\n  const adder = new Adder();\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value = +value) {\n        adder.add(value);\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if (value = +valueof(value, ++index, values)) {\n        adder.add(value);\n      }\n    }\n  }\n  return +adder;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/fsum.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/greatest.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/greatest.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return greatest; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n\n\nfunction greatest(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  let max;\n  let defined = false;\n  if (compare.length === 1) {\n    let maxValue;\n    for (const element of values) {\n      const value = compare(element);\n      if (defined\n          ? Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, maxValue) > 0\n          : Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, value) === 0) {\n        max = element;\n        maxValue = value;\n        defined = true;\n      }\n    }\n  } else {\n    for (const value of values) {\n      if (defined\n          ? compare(value, max) > 0\n          : compare(value, value) === 0) {\n        max = value;\n        defined = true;\n      }\n    }\n  }\n  return max;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/greatest.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/greatestIndex.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-array/src/greatestIndex.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return greatestIndex; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n/* harmony import */ var _maxIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maxIndex.js */ \"./node_modules/d3-array/src/maxIndex.js\");\n\n\n\nfunction greatestIndex(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  if (compare.length === 1) return Object(_maxIndex_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values, compare);\n  let maxValue;\n  let max = -1;\n  let index = -1;\n  for (const value of values) {\n    ++index;\n    if (max < 0\n        ? compare(value, value) === 0\n        : compare(value, maxValue) > 0) {\n      maxValue = value;\n      max = index;\n    }\n  }\n  return max;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/greatestIndex.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/group.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/group.js ***!
  \********************************************/
/*! exports provided: default, groups, rollup, rollups, index, indexes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return group; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"groups\", function() { return groups; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rollup\", function() { return rollup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rollups\", function() { return rollups; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"index\", function() { return index; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"indexes\", function() { return indexes; });\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-array/src/identity.js\");\n\n\nfunction group(values, ...keys) {\n  return nest(values, _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], keys);\n}\n\nfunction groups(values, ...keys) {\n  return nest(values, Array.from, _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], keys);\n}\n\nfunction rollup(values, reduce, ...keys) {\n  return nest(values, _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], reduce, keys);\n}\n\nfunction rollups(values, reduce, ...keys) {\n  return nest(values, Array.from, reduce, keys);\n}\n\nfunction index(values, ...keys) {\n  return nest(values, _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], unique, keys);\n}\n\nfunction indexes(values, ...keys) {\n  return nest(values, Array.from, unique, keys);\n}\n\nfunction unique(values) {\n  if (values.length !== 1) throw new Error(\"duplicate key\");\n  return values[0];\n}\n\nfunction nest(values, map, reduce, keys) {\n  return (function regroup(values, i) {\n    if (i >= keys.length) return reduce(values);\n    const groups = new Map();\n    const keyof = keys[i++];\n    let index = -1;\n    for (const value of values) {\n      const key = keyof(value, ++index, values);\n      const group = groups.get(key);\n      if (group) group.push(value);\n      else groups.set(key, [value]);\n    }\n    for (const [key, values] of groups) {\n      groups.set(key, regroup(values, i));\n    }\n    return map(groups);\n  })(values, 0);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/group.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/identity.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/identity.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return x;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/identity.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/index.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/index.js ***!
  \********************************************/
/*! exports provided: bisect, bisectRight, bisectLeft, bisectCenter, ascending, bisector, count, cross, cumsum, descending, deviation, extent, fsum, Adder, group, groups, index, indexes, rollup, rollups, bin, histogram, thresholdFreedmanDiaconis, thresholdScott, thresholdSturges, max, maxIndex, mean, median, merge, min, minIndex, nice, pairs, permute, quantile, quantileSorted, quickselect, range, least, leastIndex, greatest, greatestIndex, scan, shuffle, shuffler, sum, ticks, tickIncrement, tickStep, transpose, variance, zip, every, some, filter, map, reduce, reverse, sort, difference, disjoint, intersection, subset, superset, union */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bisect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisect.js */ \"./node_modules/d3-array/src/bisect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bisect\", function() { return _bisect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bisectRight\", function() { return _bisect_js__WEBPACK_IMPORTED_MODULE_0__[\"bisectRight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bisectLeft\", function() { return _bisect_js__WEBPACK_IMPORTED_MODULE_0__[\"bisectLeft\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bisectCenter\", function() { return _bisect_js__WEBPACK_IMPORTED_MODULE_0__[\"bisectCenter\"]; });\n\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ascending\", function() { return _ascending_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _bisector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bisector.js */ \"./node_modules/d3-array/src/bisector.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bisector\", function() { return _bisector_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./count.js */ \"./node_modules/d3-array/src/count.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"count\", function() { return _count_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _cross_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cross.js */ \"./node_modules/d3-array/src/cross.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cross\", function() { return _cross_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _cumsum_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cumsum.js */ \"./node_modules/d3-array/src/cumsum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cumsum\", function() { return _cumsum_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _descending_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./descending.js */ \"./node_modules/d3-array/src/descending.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"descending\", function() { return _descending_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _deviation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./deviation.js */ \"./node_modules/d3-array/src/deviation.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deviation\", function() { return _deviation_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./extent.js */ \"./node_modules/d3-array/src/extent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extent\", function() { return _extent_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _fsum_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./fsum.js */ \"./node_modules/d3-array/src/fsum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fsum\", function() { return _fsum_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Adder\", function() { return _fsum_js__WEBPACK_IMPORTED_MODULE_9__[\"Adder\"]; });\n\n/* harmony import */ var _group_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./group.js */ \"./node_modules/d3-array/src/group.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"group\", function() { return _group_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"groups\", function() { return _group_js__WEBPACK_IMPORTED_MODULE_10__[\"groups\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"index\", function() { return _group_js__WEBPACK_IMPORTED_MODULE_10__[\"index\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"indexes\", function() { return _group_js__WEBPACK_IMPORTED_MODULE_10__[\"indexes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rollup\", function() { return _group_js__WEBPACK_IMPORTED_MODULE_10__[\"rollup\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rollups\", function() { return _group_js__WEBPACK_IMPORTED_MODULE_10__[\"rollups\"]; });\n\n/* harmony import */ var _bin_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./bin.js */ \"./node_modules/d3-array/src/bin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bin\", function() { return _bin_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"histogram\", function() { return _bin_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _threshold_freedmanDiaconis_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./threshold/freedmanDiaconis.js */ \"./node_modules/d3-array/src/threshold/freedmanDiaconis.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thresholdFreedmanDiaconis\", function() { return _threshold_freedmanDiaconis_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _threshold_scott_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./threshold/scott.js */ \"./node_modules/d3-array/src/threshold/scott.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thresholdScott\", function() { return _threshold_scott_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./threshold/sturges.js */ \"./node_modules/d3-array/src/threshold/sturges.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"thresholdSturges\", function() { return _threshold_sturges_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./max.js */ \"./node_modules/d3-array/src/max.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return _max_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _maxIndex_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./maxIndex.js */ \"./node_modules/d3-array/src/maxIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"maxIndex\", function() { return _maxIndex_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _mean_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./mean.js */ \"./node_modules/d3-array/src/mean.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mean\", function() { return _mean_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _median_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./median.js */ \"./node_modules/d3-array/src/median.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"median\", function() { return _median_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./merge.js */ \"./node_modules/d3-array/src/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./min.js */ \"./node_modules/d3-array/src/min.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return _min_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony import */ var _minIndex_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./minIndex.js */ \"./node_modules/d3-array/src/minIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"minIndex\", function() { return _minIndex_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./nice.js */ \"./node_modules/d3-array/src/nice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nice\", function() { return _nice_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _pairs_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./pairs.js */ \"./node_modules/d3-array/src/pairs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pairs\", function() { return _pairs_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _permute_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./permute.js */ \"./node_modules/d3-array/src/permute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"permute\", function() { return _permute_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./quantile.js */ \"./node_modules/d3-array/src/quantile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantile\", function() { return _quantile_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantileSorted\", function() { return _quantile_js__WEBPACK_IMPORTED_MODULE_25__[\"quantileSorted\"]; });\n\n/* harmony import */ var _quickselect_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./quickselect.js */ \"./node_modules/d3-array/src/quickselect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quickselect\", function() { return _quickselect_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony import */ var _range_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./range.js */ \"./node_modules/d3-array/src/range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return _range_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _least_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./least.js */ \"./node_modules/d3-array/src/least.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"least\", function() { return _least_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony import */ var _leastIndex_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./leastIndex.js */ \"./node_modules/d3-array/src/leastIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"leastIndex\", function() { return _leastIndex_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony import */ var _greatest_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./greatest.js */ \"./node_modules/d3-array/src/greatest.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"greatest\", function() { return _greatest_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony import */ var _greatestIndex_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./greatestIndex.js */ \"./node_modules/d3-array/src/greatestIndex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"greatestIndex\", function() { return _greatestIndex_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _scan_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./scan.js */ \"./node_modules/d3-array/src/scan.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scan\", function() { return _scan_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _shuffle_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./shuffle.js */ \"./node_modules/d3-array/src/shuffle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shuffle\", function() { return _shuffle_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"shuffler\", function() { return _shuffle_js__WEBPACK_IMPORTED_MODULE_33__[\"shuffler\"]; });\n\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/d3-array/src/sum.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sum\", function() { return _sum_js__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./ticks.js */ \"./node_modules/d3-array/src/ticks.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ticks\", function() { return _ticks_js__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tickIncrement\", function() { return _ticks_js__WEBPACK_IMPORTED_MODULE_35__[\"tickIncrement\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tickStep\", function() { return _ticks_js__WEBPACK_IMPORTED_MODULE_35__[\"tickStep\"]; });\n\n/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./transpose.js */ \"./node_modules/d3-array/src/transpose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transpose\", function() { return _transpose_js__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony import */ var _variance_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./variance.js */ \"./node_modules/d3-array/src/variance.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"variance\", function() { return _variance_js__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony import */ var _zip_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./zip.js */ \"./node_modules/d3-array/src/zip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zip\", function() { return _zip_js__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony import */ var _every_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./every.js */ \"./node_modules/d3-array/src/every.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _every_js__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony import */ var _some_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./some.js */ \"./node_modules/d3-array/src/some.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return _some_js__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/d3-array/src/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _filter_js__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony import */ var _map_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./map.js */ \"./node_modules/d3-array/src/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _map_js__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* harmony import */ var _reduce_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./reduce.js */ \"./node_modules/d3-array/src/reduce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _reduce_js__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/d3-array/src/reverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reverse\", function() { return _reverse_js__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./sort.js */ \"./node_modules/d3-array/src/sort.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sort\", function() { return _sort_js__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony import */ var _difference_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./difference.js */ \"./node_modules/d3-array/src/difference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return _difference_js__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* harmony import */ var _disjoint_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./disjoint.js */ \"./node_modules/d3-array/src/disjoint.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"disjoint\", function() { return _disjoint_js__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* harmony import */ var _intersection_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./intersection.js */ \"./node_modules/d3-array/src/intersection.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersection\", function() { return _intersection_js__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* harmony import */ var _subset_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./subset.js */ \"./node_modules/d3-array/src/subset.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"subset\", function() { return _subset_js__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* harmony import */ var _superset_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./superset.js */ \"./node_modules/d3-array/src/superset.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"superset\", function() { return _superset_js__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* harmony import */ var _union_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./union.js */ \"./node_modules/d3-array/src/union.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"union\", function() { return _union_js__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n // Deprecated; use bin.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // Deprecated; use leastIndex.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/intersection.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-array/src/intersection.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return intersection; });\n/* harmony import */ var _set_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./set.js */ \"./node_modules/d3-array/src/set.js\");\n\n\nfunction intersection(values, ...others) {\n  values = new Set(values);\n  others = others.map(_set_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n  out: for (const value of values) {\n    for (const other of others) {\n      if (!other.has(value)) {\n        values.delete(value);\n        continue out;\n      }\n    }\n  }\n  return values;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/intersection.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/least.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/least.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return least; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n\n\nfunction least(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  let min;\n  let defined = false;\n  if (compare.length === 1) {\n    let minValue;\n    for (const element of values) {\n      const value = compare(element);\n      if (defined\n          ? Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, minValue) < 0\n          : Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, value) === 0) {\n        min = element;\n        minValue = value;\n        defined = true;\n      }\n    }\n  } else {\n    for (const value of values) {\n      if (defined\n          ? compare(value, min) < 0\n          : compare(value, value) === 0) {\n        min = value;\n        defined = true;\n      }\n    }\n  }\n  return min;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/least.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/leastIndex.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-array/src/leastIndex.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return leastIndex; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n/* harmony import */ var _minIndex_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./minIndex.js */ \"./node_modules/d3-array/src/minIndex.js\");\n\n\n\nfunction leastIndex(values, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  if (compare.length === 1) return Object(_minIndex_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values, compare);\n  let minValue;\n  let min = -1;\n  let index = -1;\n  for (const value of values) {\n    ++index;\n    if (min < 0\n        ? compare(value, value) === 0\n        : compare(value, minValue) < 0) {\n      minValue = value;\n      min = index;\n    }\n  }\n  return min;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/leastIndex.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/map.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/map.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return map; });\nfunction map(values, mapper) {\n  if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n  if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n  return Array.from(values, (value, index) => mapper(value, index, values));\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/map.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/max.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/max.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return max; });\nfunction max(values, valueof) {\n  let max;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  }\n  return max;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/max.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/maxIndex.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/maxIndex.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return maxIndex; });\nfunction maxIndex(values, valueof) {\n  let max;\n  let maxIndex = -1;\n  let index = -1;\n  if (valueof === undefined) {\n    for (const value of values) {\n      ++index;\n      if (value != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value, maxIndex = index;\n      }\n    }\n  } else {\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value, maxIndex = index;\n      }\n    }\n  }\n  return maxIndex;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/maxIndex.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/mean.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-array/src/mean.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return mean; });\nfunction mean(values, valueof) {\n  let count = 0;\n  let sum = 0;\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        ++count, sum += value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        ++count, sum += value;\n      }\n    }\n  }\n  if (count) return sum / count;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/mean.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/median.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/median.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quantile.js */ \"./node_modules/d3-array/src/quantile.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values, valueof) {\n  return Object(_quantile_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values, 0.5, valueof);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/median.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/merge.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/merge.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return merge; });\nfunction* flatten(arrays) {\n  for (const array of arrays) {\n    yield* array;\n  }\n}\n\nfunction merge(arrays) {\n  return Array.from(flatten(arrays));\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/merge.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/min.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/min.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return min; });\nfunction min(values, valueof) {\n  let min;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  }\n  return min;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/min.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/minIndex.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/minIndex.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return minIndex; });\nfunction minIndex(values, valueof) {\n  let min;\n  let minIndex = -1;\n  let index = -1;\n  if (valueof === undefined) {\n    for (const value of values) {\n      ++index;\n      if (value != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value, minIndex = index;\n      }\n    }\n  } else {\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value, minIndex = index;\n      }\n    }\n  }\n  return minIndex;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/minIndex.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/nice.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-array/src/nice.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return nice; });\n/* harmony import */ var _ticks_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ticks.js */ \"./node_modules/d3-array/src/ticks.js\");\n\n\nfunction nice(start, stop, count) {\n  let prestep;\n  while (true) {\n    const step = Object(_ticks_js__WEBPACK_IMPORTED_MODULE_0__[\"tickIncrement\"])(start, stop, count);\n    if (step === prestep || step === 0 || !isFinite(step)) {\n      return [start, stop];\n    } else if (step > 0) {\n      start = Math.floor(start / step) * step;\n      stop = Math.ceil(stop / step) * step;\n    } else if (step < 0) {\n      start = Math.ceil(start * step) / step;\n      stop = Math.floor(stop * step) / step;\n    }\n    prestep = step;\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/nice.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/number.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/number.js ***!
  \*********************************************/
/*! exports provided: default, numbers */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numbers\", function() { return numbers; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return x === null ? NaN : +x;\n});\n\nfunction* numbers(values, valueof) {\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/number.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/pairs.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/pairs.js ***!
  \********************************************/
/*! exports provided: default, pair */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pairs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pair\", function() { return pair; });\nfunction pairs(values, pairof = pair) {\n  const pairs = [];\n  let previous;\n  let first = false;\n  for (const value of values) {\n    if (first) pairs.push(pairof(previous, value));\n    previous = value;\n    first = true;\n  }\n  return pairs;\n}\n\nfunction pair(a, b) {\n  return [a, b];\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/pairs.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/permute.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-array/src/permute.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(source, keys) {\n  return Array.from(keys, key => source[key]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/permute.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/quantile.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/quantile.js ***!
  \***********************************************/
/*! exports provided: default, quantileSorted */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return quantile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantileSorted\", function() { return quantileSorted; });\n/* harmony import */ var _max_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./max.js */ \"./node_modules/d3-array/src/max.js\");\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./min.js */ \"./node_modules/d3-array/src/min.js\");\n/* harmony import */ var _quickselect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./quickselect.js */ \"./node_modules/d3-array/src/quickselect.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-array/src/number.js\");\n\n\n\n\n\nfunction quantile(values, p, valueof) {\n  values = Float64Array.from(Object(_number_js__WEBPACK_IMPORTED_MODULE_3__[\"numbers\"])(values, valueof));\n  if (!(n = values.length)) return;\n  if ((p = +p) <= 0 || n < 2) return Object(_min_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values);\n  if (p >= 1) return Object(_max_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = Object(_max_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object(_quickselect_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(values, i0).subarray(0, i0 + 1)),\n      value1 = Object(_min_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values.subarray(i0 + 1));\n  return value0 + (value1 - value0) * (i - i0);\n}\n\nfunction quantileSorted(values, p, valueof = _number_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]) {\n  if (!(n = values.length)) return;\n  if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n  if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n  var n,\n      i = (n - 1) * p,\n      i0 = Math.floor(i),\n      value0 = +valueof(values[i0], i0, values),\n      value1 = +valueof(values[i0 + 1], i0 + 1, values);\n  return value0 + (value1 - value0) * (i - i0);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/quantile.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/quickselect.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-array/src/quickselect.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return quickselect; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nfunction quickselect(array, k, left = 0, right = array.length - 1, compare = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  while (right > left) {\n    if (right - left > 600) {\n      const n = right - left + 1;\n      const m = k - left + 1;\n      const z = Math.log(n);\n      const s = 0.5 * Math.exp(2 * z / 3);\n      const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n      const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n      const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n      quickselect(array, k, newLeft, newRight, compare);\n    }\n\n    const t = array[k];\n    let i = left;\n    let j = right;\n\n    swap(array, left, k);\n    if (compare(array[right], t) > 0) swap(array, left, right);\n\n    while (i < j) {\n      swap(array, i, j), ++i, --j;\n      while (compare(array[i], t) < 0) ++i;\n      while (compare(array[j], t) > 0) --j;\n    }\n\n    if (compare(array[left], t) === 0) swap(array, left, j);\n    else ++j, swap(array, j, right);\n\n    if (j <= k) left = j + 1;\n    if (k <= j) right = j - 1;\n  }\n  return array;\n}\n\nfunction swap(array, i, j) {\n  const t = array[i];\n  array[i] = array[j];\n  array[j] = t;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/quickselect.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/range.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/range.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(start, stop, step) {\n  start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n  var i = -1,\n      n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n      range = new Array(n);\n\n  while (++i < n) {\n    range[i] = start + i * step;\n  }\n\n  return range;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/range.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/reduce.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/reduce.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return reduce; });\nfunction reduce(values, reducer, value) {\n  if (typeof reducer !== \"function\") throw new TypeError(\"reducer is not a function\");\n  const iterator = values[Symbol.iterator]();\n  let done, next, index = -1;\n  if (arguments.length < 3) {\n    ({done, value} = iterator.next());\n    if (done) return;\n    ++index;\n  }\n  while (({done, value: next} = iterator.next()), !done) {\n    value = reducer(value, next, ++index, values);\n  }\n  return value;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/reduce.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/reverse.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-array/src/reverse.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return reverse; });\nfunction reverse(values) {\n  if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n  return Array.from(values).reverse();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/reverse.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/scan.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-array/src/scan.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return scan; });\n/* harmony import */ var _leastIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./leastIndex.js */ \"./node_modules/d3-array/src/leastIndex.js\");\n\n\nfunction scan(values, compare) {\n  const index = Object(_leastIndex_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values, compare);\n  return index < 0 ? undefined : index;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/scan.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/set.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/set.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return set; });\nfunction set(values) {\n  return values instanceof Set ? values : new Set(values);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/set.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/shuffle.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-array/src/shuffle.js ***!
  \**********************************************/
/*! exports provided: default, shuffler */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shuffler\", function() { return shuffler; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (shuffler(Math.random));\n\nfunction shuffler(random) {\n  return function shuffle(array, i0 = 0, i1 = array.length) {\n    let m = i1 - (i0 = +i0);\n    while (m) {\n      const i = random() * m-- | 0, t = array[m + i0];\n      array[m + i0] = array[i + i0];\n      array[i + i0] = t;\n    }\n    return array;\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/shuffle.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/some.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-array/src/some.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return some; });\nfunction some(values, test) {\n  if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n  let index = -1;\n  for (const value of values) {\n    if (test(value, ++index, values)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/some.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/sort.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-array/src/sort.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return sort; });\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-array/src/ascending.js\");\n\n\nfunction sort(values, comparator = _ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n  if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n  return Array.from(values).sort(comparator);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/sort.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/subset.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-array/src/subset.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return subset; });\n/* harmony import */ var _superset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./superset.js */ \"./node_modules/d3-array/src/superset.js\");\n\n\nfunction subset(values, other) {\n  return Object(_superset_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(other, values);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/subset.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/sum.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/sum.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return sum; });\nfunction sum(values, valueof) {\n  let sum = 0;\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value = +value) {\n        sum += value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if (value = +valueof(value, ++index, values)) {\n        sum += value;\n      }\n    }\n  }\n  return sum;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/sum.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/superset.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/superset.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return superset; });\nfunction superset(values, other) {\n  const iterator = values[Symbol.iterator](), set = new Set();\n  for (const o of other) {\n    if (set.has(o)) continue;\n    let value, done;\n    while (({value, done} = iterator.next())) {\n      if (done) return false;\n      set.add(value);\n      if (Object.is(o, value)) break;\n    }\n  }\n  return true;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/superset.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/threshold/freedmanDiaconis.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-array/src/threshold/freedmanDiaconis.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../count.js */ \"./node_modules/d3-array/src/count.js\");\n/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../quantile.js */ \"./node_modules/d3-array/src/quantile.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values, min, max) {\n  return Math.ceil((max - min) / (2 * (Object(_quantile_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values, 0.75) - Object(_quantile_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values, 0.25)) * Math.pow(Object(_count_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values), -1 / 3)));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/threshold/freedmanDiaconis.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/threshold/scott.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-array/src/threshold/scott.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../count.js */ \"./node_modules/d3-array/src/count.js\");\n/* harmony import */ var _deviation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../deviation.js */ \"./node_modules/d3-array/src/deviation.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values, min, max) {\n  return Math.ceil((max - min) / (3.5 * Object(_deviation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(values) * Math.pow(Object(_count_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values), -1 / 3)));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/threshold/scott.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/threshold/sturges.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-array/src/threshold/sturges.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../count.js */ \"./node_modules/d3-array/src/count.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values) {\n  return Math.ceil(Math.log(Object(_count_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(values)) / Math.LN2) + 1;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/threshold/sturges.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/ticks.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/ticks.js ***!
  \********************************************/
/*! exports provided: default, tickIncrement, tickStep */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tickIncrement\", function() { return tickIncrement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tickStep\", function() { return tickStep; });\nvar e10 = Math.sqrt(50),\n    e5 = Math.sqrt(10),\n    e2 = Math.sqrt(2);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(start, stop, count) {\n  var reverse,\n      i = -1,\n      n,\n      ticks,\n      step;\n\n  stop = +stop, start = +start, count = +count;\n  if (start === stop && count > 0) return [start];\n  if (reverse = stop < start) n = start, start = stop, stop = n;\n  if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n  if (step > 0) {\n    start = Math.ceil(start / step);\n    stop = Math.floor(stop / step);\n    ticks = new Array(n = Math.ceil(stop - start + 1));\n    while (++i < n) ticks[i] = (start + i) * step;\n  } else {\n    step = -step;\n    start = Math.ceil(start * step);\n    stop = Math.floor(stop * step);\n    ticks = new Array(n = Math.ceil(stop - start + 1));\n    while (++i < n) ticks[i] = (start + i) / step;\n  }\n\n  if (reverse) ticks.reverse();\n\n  return ticks;\n});\n\nfunction tickIncrement(start, stop, count) {\n  var step = (stop - start) / Math.max(0, count),\n      power = Math.floor(Math.log(step) / Math.LN10),\n      error = step / Math.pow(10, power);\n  return power >= 0\n      ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n      : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nfunction tickStep(start, stop, count) {\n  var step0 = Math.abs(stop - start) / Math.max(0, count),\n      step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n      error = step0 / step1;\n  if (error >= e10) step1 *= 10;\n  else if (error >= e5) step1 *= 5;\n  else if (error >= e2) step1 *= 2;\n  return stop < start ? -step1 : step1;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/ticks.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/transpose.js":
/*!************************************************!*\
  !*** ./node_modules/d3-array/src/transpose.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _min_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./min.js */ \"./node_modules/d3-array/src/min.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(matrix) {\n  if (!(n = matrix.length)) return [];\n  for (var i = -1, m = Object(_min_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(matrix, length), transpose = new Array(m); ++i < m;) {\n    for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n      row[j] = matrix[j][i];\n    }\n  }\n  return transpose;\n});\n\nfunction length(d) {\n  return d.length;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/transpose.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/union.js":
/*!********************************************!*\
  !*** ./node_modules/d3-array/src/union.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return union; });\nfunction union(...others) {\n  const set = new Set();\n  for (const other of others) {\n    for (const o of other) {\n      set.add(o);\n    }\n  }\n  return set;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/union.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/variance.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-array/src/variance.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return variance; });\nfunction variance(values, valueof) {\n  let count = 0;\n  let delta;\n  let mean = 0;\n  let sum = 0;\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value != null && (value = +value) >= value) {\n        delta = value - mean;\n        mean += delta / ++count;\n        sum += delta * (value - mean);\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n        delta = value - mean;\n        mean += delta / ++count;\n        sum += delta * (value - mean);\n      }\n    }\n  }\n  if (count > 1) return sum / (count - 1);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/variance.js?");

/***/ }),

/***/ "./node_modules/d3-array/src/zip.js":
/*!******************************************!*\
  !*** ./node_modules/d3-array/src/zip.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transpose.js */ \"./node_modules/d3-array/src/transpose.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_transpose_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arguments);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-array/src/zip.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/color.js":
/*!********************************************!*\
  !*** ./node_modules/d3-color/src/color.js ***!
  \********************************************/
/*! exports provided: Color, darker, brighter, default, rgbConvert, rgb, Rgb, hslConvert, hsl */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Color\", function() { return Color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"darker\", function() { return darker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"brighter\", function() { return brighter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return color; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgbConvert\", function() { return rgbConvert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgb\", function() { return rgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Rgb\", function() { return Rgb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hslConvert\", function() { return hslConvert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hsl\", function() { return hsl; });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n\n\nfunction Color() {}\n\nvar darker = 0.7;\nvar brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n    reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n    reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n    reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n    reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n    reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Color, color, {\n  copy: function(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable: function() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nfunction color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nfunction rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nfunction rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nfunction Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Rgb, rgb, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb: function() {\n    return this;\n  },\n  displayable: function() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n  var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n  return (a === 1 ? \"rgb(\" : \"rgba(\")\n      + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n      + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n      + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n      + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n  value = Math.max(0, Math.min(255, Math.round(value) || 0));\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nfunction hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nfunction hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Hsl, hsl, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  displayable: function() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl: function() {\n    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n    return (a === 1 ? \"hsl(\" : \"hsla(\")\n        + (this.h || 0) + \", \"\n        + (this.s || 0) * 100 + \"%, \"\n        + (this.l || 0) * 100 + \"%\"\n        + (a === 1 ? \")\" : \", \" + a + \")\");\n  }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-color/src/color.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/cubehelix.js":
/*!************************************************!*\
  !*** ./node_modules/d3-color/src/cubehelix.js ***!
  \************************************************/
/*! exports provided: default, Cubehelix */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return cubehelix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cubehelix\", function() { return Cubehelix; });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-color/src/color.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-color/src/math.js\");\n\n\n\n\nvar A = -0.14861,\n    B = +1.78277,\n    C = -0.29227,\n    D = -0.90649,\n    E = +1.97294,\n    ED = E * D,\n    EB = E * B,\n    BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"])) o = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"rgbConvert\"])(o);\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n      bl = b - l,\n      k = (E * (g - l) - C * bl) / D,\n      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n      h = s ? Math.atan2(k, bl) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"] - 120 : NaN;\n  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nfunction cubehelix(h, s, l, opacity) {\n  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Cubehelix(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Cubehelix, cubehelix, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"Color\"], {\n  brighter: function(k) {\n    k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_1__[\"brighter\"] : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"brighter\"], k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? _color_js__WEBPACK_IMPORTED_MODULE_1__[\"darker\"] : Math.pow(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"darker\"], k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = isNaN(this.h) ? 0 : (this.h + 120) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"],\n        l = +this.l,\n        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n        cosh = Math.cos(h),\n        sinh = Math.sin(h);\n    return new _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"](\n      255 * (l + a * (A * cosh + B * sinh)),\n      255 * (l + a * (C * cosh + D * sinh)),\n      255 * (l + a * (E * cosh)),\n      this.opacity\n    );\n  }\n}));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-color/src/cubehelix.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/define.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-color/src/define.js ***!
  \*********************************************/
/*! exports provided: default, extend */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extend\", function() { return extend; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n});\n\nfunction extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-color/src/define.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/index.js":
/*!********************************************!*\
  !*** ./node_modules/d3-color/src/index.js ***!
  \********************************************/
/*! exports provided: color, rgb, hsl, lab, hcl, lch, gray, cubehelix */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-color/src/color.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rgb\", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__[\"rgb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hsl\", function() { return _color_js__WEBPACK_IMPORTED_MODULE_0__[\"hsl\"]; });\n\n/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lab.js */ \"./node_modules/d3-color/src/lab.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lab\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hcl\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"hcl\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lch\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"lch\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"gray\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_1__[\"gray\"]; });\n\n/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubehelix.js */ \"./node_modules/d3-color/src/cubehelix.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cubehelix\", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-color/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/lab.js":
/*!******************************************!*\
  !*** ./node_modules/d3-color/src/lab.js ***!
  \******************************************/
/*! exports provided: gray, default, Lab, lch, hcl, Hcl */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gray\", function() { return gray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return lab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Lab\", function() { return Lab; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lch\", function() { return lch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hcl\", function() { return hcl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Hcl\", function() { return Hcl; });\n/* harmony import */ var _define_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./define.js */ \"./node_modules/d3-color/src/define.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-color/src/color.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-color/src/math.js\");\n\n\n\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n    Xn = 0.96422,\n    Yn = 1,\n    Zn = 0.82521,\n    t0 = 4 / 29,\n    t1 = 6 / 29,\n    t2 = 3 * t1 * t1,\n    t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n  if (o instanceof Hcl) return hcl2lab(o);\n  if (!(o instanceof _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"])) o = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"rgbConvert\"])(o);\n  var r = rgb2lrgb(o.r),\n      g = rgb2lrgb(o.g),\n      b = rgb2lrgb(o.b),\n      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n  if (r === g && g === b) x = z = y; else {\n    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n  }\n  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nfunction gray(l, opacity) {\n  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nfunction lab(l, a, b, opacity) {\n  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nfunction Lab(l, a, b, opacity) {\n  this.l = +l;\n  this.a = +a;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Lab, lab, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"Color\"], {\n  brighter: function(k) {\n    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  darker: function(k) {\n    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  rgb: function() {\n    var y = (this.l + 16) / 116,\n        x = isNaN(this.a) ? y : y + this.a / 500,\n        z = isNaN(this.b) ? y : y - this.b / 200;\n    x = Xn * lab2xyz(x);\n    y = Yn * lab2xyz(y);\n    z = Zn * lab2xyz(z);\n    return new _color_js__WEBPACK_IMPORTED_MODULE_1__[\"Rgb\"](\n      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n      this.opacity\n    );\n  }\n}));\n\nfunction xyz2lab(t) {\n  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n  return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n  if (!(o instanceof Lab)) o = labConvert(o);\n  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n  var h = Math.atan2(o.b, o.a) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"];\n  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nfunction lch(l, c, h, opacity) {\n  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction hcl(h, c, l, opacity) {\n  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hcl(h, c, l, opacity) {\n  this.h = +h;\n  this.c = +c;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n  var h = o.h * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"];\n  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\nObject(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Hcl, hcl, Object(_define_js__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"Color\"], {\n  brighter: function(k) {\n    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n  },\n  darker: function(k) {\n    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n  },\n  rgb: function() {\n    return hcl2lab(this).rgb();\n  }\n}));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-color/src/lab.js?");

/***/ }),

/***/ "./node_modules/d3-color/src/math.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-color/src/math.js ***!
  \*******************************************/
/*! exports provided: radians, degrees */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"radians\", function() { return radians; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"degrees\", function() { return degrees; });\nconst radians = Math.PI / 180;\nconst degrees = 180 / Math.PI;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-color/src/math.js?");

/***/ }),

/***/ "./node_modules/d3-delaunay/src/delaunay.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-delaunay/src/delaunay.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Delaunay; });\n/* harmony import */ var delaunator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! delaunator */ \"./node_modules/delaunator/index.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.js */ \"./node_modules/d3-delaunay/src/path.js\");\n/* harmony import */ var _polygon_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./polygon.js */ \"./node_modules/d3-delaunay/src/polygon.js\");\n/* harmony import */ var _voronoi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./voronoi.js */ \"./node_modules/d3-delaunay/src/voronoi.js\");\n\n\n\n\n\nconst tau = 2 * Math.PI, pow = Math.pow;\n\nfunction pointX(p) {\n  return p[0];\n}\n\nfunction pointY(p) {\n  return p[1];\n}\n\n// A triangulation is collinear if all its triangles have a non-null area\nfunction collinear(d) {\n  const {triangles, coords} = d;\n  for (let i = 0; i < triangles.length; i += 3) {\n    const a = 2 * triangles[i],\n          b = 2 * triangles[i + 1],\n          c = 2 * triangles[i + 2],\n          cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1])\n                - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]);\n    if (cross > 1e-10) return false;\n  }\n  return true;\n}\n\nfunction jitter(x, y, r) {\n  return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n}\n\nclass Delaunay {\n  static from(points, fx = pointX, fy = pointY, that) {\n    return new Delaunay(\"length\" in points\n        ? flatArray(points, fx, fy, that)\n        : Float64Array.from(flatIterable(points, fx, fy, that)));\n  }\n  constructor(points) {\n    this._delaunator = new delaunator__WEBPACK_IMPORTED_MODULE_0__[\"default\"](points);\n    this.inedges = new Int32Array(points.length / 2);\n    this._hullIndex = new Int32Array(points.length / 2);\n    this.points = this._delaunator.coords;\n    this._init();\n  }\n  update() {\n    this._delaunator.update();\n    this._init();\n    return this;\n  }\n  _init() {\n    const d = this._delaunator, points = this.points;\n\n    // check for collinear\n    if (d.hull && d.hull.length > 2 && collinear(d)) {\n      this.collinear = Int32Array.from({length: points.length/2}, (_,i) => i)\n        .sort((i, j) => points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1]); // for exact neighbors\n      const e = this.collinear[0], f = this.collinear[this.collinear.length - 1],\n        bounds = [ points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1] ],\n        r = 1e-8 * Math.hypot(bounds[3] - bounds[1], bounds[2] - bounds[0]);\n      for (let i = 0, n = points.length / 2; i < n; ++i) {\n        const p = jitter(points[2 * i], points[2 * i + 1], r);\n        points[2 * i] = p[0];\n        points[2 * i + 1] = p[1];\n      }\n      this._delaunator = new delaunator__WEBPACK_IMPORTED_MODULE_0__[\"default\"](points);\n    } else {\n      delete this.collinear;\n    }\n\n    const halfedges = this.halfedges = this._delaunator.halfedges;\n    const hull = this.hull = this._delaunator.hull;\n    const triangles = this.triangles = this._delaunator.triangles;\n    const inedges = this.inedges.fill(-1);\n    const hullIndex = this._hullIndex.fill(-1);\n\n    // Compute an index from each point to an (arbitrary) incoming halfedge\n    // Used to give the first neighbor of each point; for this reason,\n    // on the hull we give priority to exterior halfedges\n    for (let e = 0, n = halfedges.length; e < n; ++e) {\n      const p = triangles[e % 3 === 2 ? e - 2 : e + 1];\n      if (halfedges[e] === -1 || inedges[p] === -1) inedges[p] = e;\n    }\n    for (let i = 0, n = hull.length; i < n; ++i) {\n      hullIndex[hull[i]] = i;\n    }\n\n    // degenerate case: 1 or 2 (distinct) points\n    if (hull.length <= 2 && hull.length > 0) {\n      this.triangles = new Int32Array(3).fill(-1);\n      this.halfedges = new Int32Array(3).fill(-1);\n      this.triangles[0] = hull[0];\n      this.triangles[1] = hull[1];\n      this.triangles[2] = hull[1];\n      inedges[hull[0]] = 1;\n      if (hull.length === 2) inedges[hull[1]] = 0;\n    }\n  }\n  voronoi(bounds) {\n    return new _voronoi_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this, bounds);\n  }\n  *neighbors(i) {\n    const {inedges, hull, _hullIndex, halfedges, triangles, collinear} = this;\n\n    // degenerate case with several collinear points\n    if (collinear) {\n      const l = collinear.indexOf(i);\n      if (l > 0) yield collinear[l - 1];\n      if (l < collinear.length - 1) yield collinear[l + 1];\n      return;\n    }\n\n    const e0 = inedges[i];\n    if (e0 === -1) return; // coincident point\n    let e = e0, p0 = -1;\n    do {\n      yield p0 = triangles[e];\n      e = e % 3 === 2 ? e - 2 : e + 1;\n      if (triangles[e] !== i) return; // bad triangulation\n      e = halfedges[e];\n      if (e === -1) {\n        const p = hull[(_hullIndex[i] + 1) % hull.length];\n        if (p !== p0) yield p;\n        return;\n      }\n    } while (e !== e0);\n  }\n  find(x, y, i = 0) {\n    if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n    const i0 = i;\n    let c;\n    while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) i = c;\n    return c;\n  }\n  _step(i, x, y) {\n    const {inedges, hull, _hullIndex, halfedges, triangles, points} = this;\n    if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n    let c = i;\n    let dc = pow(x - points[i * 2], 2) + pow(y - points[i * 2 + 1], 2);\n    const e0 = inedges[i];\n    let e = e0;\n    do {\n      let t = triangles[e];\n      const dt = pow(x - points[t * 2], 2) + pow(y - points[t * 2 + 1], 2);\n      if (dt < dc) dc = dt, c = t;\n      e = e % 3 === 2 ? e - 2 : e + 1;\n      if (triangles[e] !== i) break; // bad triangulation\n      e = halfedges[e];\n      if (e === -1) {\n        e = hull[(_hullIndex[i] + 1) % hull.length];\n        if (e !== t) {\n          if (pow(x - points[e * 2], 2) + pow(y - points[e * 2 + 1], 2) < dc) return e;\n        }\n        break;\n      }\n    } while (e !== e0);\n    return c;\n  }\n  render(context) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : undefined;\n    const {points, halfedges, triangles} = this;\n    for (let i = 0, n = halfedges.length; i < n; ++i) {\n      const j = halfedges[i];\n      if (j < i) continue;\n      const ti = triangles[i] * 2;\n      const tj = triangles[j] * 2;\n      context.moveTo(points[ti], points[ti + 1]);\n      context.lineTo(points[tj], points[tj + 1]);\n    }\n    this.renderHull(context);\n    return buffer && buffer.value();\n  }\n  renderPoints(context, r = 2) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : undefined;\n    const {points} = this;\n    for (let i = 0, n = points.length; i < n; i += 2) {\n      const x = points[i], y = points[i + 1];\n      context.moveTo(x + r, y);\n      context.arc(x, y, r, 0, tau);\n    }\n    return buffer && buffer.value();\n  }\n  renderHull(context) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : undefined;\n    const {hull, points} = this;\n    const h = hull[0] * 2, n = hull.length;\n    context.moveTo(points[h], points[h + 1]);\n    for (let i = 1; i < n; ++i) {\n      const h = 2 * hull[i];\n      context.lineTo(points[h], points[h + 1]);\n    }\n    context.closePath();\n    return buffer && buffer.value();\n  }\n  hullPolygon() {\n    const polygon = new _polygon_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n    this.renderHull(polygon);\n    return polygon.value();\n  }\n  renderTriangle(i, context) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : undefined;\n    const {points, triangles} = this;\n    const t0 = triangles[i *= 3] * 2;\n    const t1 = triangles[i + 1] * 2;\n    const t2 = triangles[i + 2] * 2;\n    context.moveTo(points[t0], points[t0 + 1]);\n    context.lineTo(points[t1], points[t1 + 1]);\n    context.lineTo(points[t2], points[t2 + 1]);\n    context.closePath();\n    return buffer && buffer.value();\n  }\n  *trianglePolygons() {\n    const {triangles} = this;\n    for (let i = 0, n = triangles.length / 3; i < n; ++i) {\n      yield this.trianglePolygon(i);\n    }\n  }\n  trianglePolygon(i) {\n    const polygon = new _polygon_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n    this.renderTriangle(i, polygon);\n    return polygon.value();\n  }\n}\n\nfunction flatArray(points, fx, fy, that) {\n  const n = points.length;\n  const array = new Float64Array(n * 2);\n  for (let i = 0; i < n; ++i) {\n    const p = points[i];\n    array[i * 2] = fx.call(that, p, i, points);\n    array[i * 2 + 1] = fy.call(that, p, i, points);\n  }\n  return array;\n}\n\nfunction* flatIterable(points, fx, fy, that) {\n  let i = 0;\n  for (const p of points) {\n    yield fx.call(that, p, i, points);\n    yield fy.call(that, p, i, points);\n    ++i;\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-delaunay/src/delaunay.js?");

/***/ }),

/***/ "./node_modules/d3-delaunay/src/index.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-delaunay/src/index.js ***!
  \***********************************************/
/*! exports provided: Delaunay, Voronoi */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _delaunay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delaunay.js */ \"./node_modules/d3-delaunay/src/delaunay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Delaunay\", function() { return _delaunay_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _voronoi_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./voronoi.js */ \"./node_modules/d3-delaunay/src/voronoi.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Voronoi\", function() { return _voronoi_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-delaunay/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-delaunay/src/path.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-delaunay/src/path.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Path; });\nconst epsilon = 1e-6;\n\nclass Path {\n  constructor() {\n    this._x0 = this._y0 = // start of current subpath\n    this._x1 = this._y1 = null; // end of current subpath\n    this._ = \"\";\n  }\n  moveTo(x, y) {\n    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n  }\n  closePath() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._ += \"Z\";\n    }\n  }\n  lineTo(x, y) {\n    this._ += `L${this._x1 = +x},${this._y1 = +y}`;\n  }\n  arc(x, y, r) {\n    x = +x, y = +y, r = +r;\n    const x0 = x + r;\n    const y0 = y;\n    if (r < 0) throw new Error(\"negative radius\");\n    if (this._x1 === null) this._ += `M${x0},${y0}`;\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) this._ += \"L\" + x0 + \",\" + y0;\n    if (!r) return;\n    this._ += `A${r},${r},0,1,1,${x - r},${y}A${r},${r},0,1,1,${this._x1 = x0},${this._y1 = y0}`;\n  }\n  rect(x, y, w, h) {\n    this._ += `M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${+w}v${+h}h${-w}Z`;\n  }\n  value() {\n    return this._ || null;\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-delaunay/src/path.js?");

/***/ }),

/***/ "./node_modules/d3-delaunay/src/polygon.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-delaunay/src/polygon.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Polygon; });\nclass Polygon {\n  constructor() {\n    this._ = [];\n  }\n  moveTo(x, y) {\n    this._.push([x, y]);\n  }\n  closePath() {\n    this._.push(this._[0].slice());\n  }\n  lineTo(x, y) {\n    this._.push([x, y]);\n  }\n  value() {\n    return this._.length ? this._ : null;\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-delaunay/src/polygon.js?");

/***/ }),

/***/ "./node_modules/d3-delaunay/src/voronoi.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-delaunay/src/voronoi.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Voronoi; });\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path.js */ \"./node_modules/d3-delaunay/src/path.js\");\n/* harmony import */ var _polygon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./polygon.js */ \"./node_modules/d3-delaunay/src/polygon.js\");\n\n\n\nclass Voronoi {\n  constructor(delaunay, [xmin, ymin, xmax, ymax] = [0, 0, 960, 500]) {\n    if (!((xmax = +xmax) >= (xmin = +xmin)) || !((ymax = +ymax) >= (ymin = +ymin))) throw new Error(\"invalid bounds\");\n    this.delaunay = delaunay;\n    this._circumcenters = new Float64Array(delaunay.points.length * 2);\n    this.vectors = new Float64Array(delaunay.points.length * 2);\n    this.xmax = xmax, this.xmin = xmin;\n    this.ymax = ymax, this.ymin = ymin;\n    this._init();\n  }\n  update() {\n    this.delaunay.update();\n    this._init();\n    return this;\n  }\n  _init() {\n    const {delaunay: {points, hull, triangles}, vectors} = this;\n\n    // Compute circumcenters.\n    const circumcenters = this.circumcenters = this._circumcenters.subarray(0, triangles.length / 3 * 2);\n    for (let i = 0, j = 0, n = triangles.length, x, y; i < n; i += 3, j += 2) {\n      const t1 = triangles[i] * 2;\n      const t2 = triangles[i + 1] * 2;\n      const t3 = triangles[i + 2] * 2;\n      const x1 = points[t1];\n      const y1 = points[t1 + 1];\n      const x2 = points[t2];\n      const y2 = points[t2 + 1];\n      const x3 = points[t3];\n      const y3 = points[t3 + 1];\n\n      const dx = x2 - x1;\n      const dy = y2 - y1;\n      const ex = x3 - x1;\n      const ey = y3 - y1;\n      const bl = dx * dx + dy * dy;\n      const cl = ex * ex + ey * ey;\n      const ab = (dx * ey - dy * ex) * 2;\n\n      if (!ab) {\n        // degenerate case (collinear diagram)\n        x = (x1 + x3) / 2 - 1e8 * ey;\n        y = (y1 + y3) / 2 + 1e8 * ex;\n      }\n      else if (Math.abs(ab) < 1e-8) {\n        // almost equal points (degenerate triangle)\n        x = (x1 + x3) / 2;\n        y = (y1 + y3) / 2;\n      } else {\n        const d = 1 / ab;\n        x = x1 + (ey * bl - dy * cl) * d;\n        y = y1 + (dx * cl - ex * bl) * d;\n      }\n      circumcenters[j] = x;\n      circumcenters[j + 1] = y;\n    }\n\n    // Compute exterior cell rays.\n    let h = hull[hull.length - 1];\n    let p0, p1 = h * 4;\n    let x0, x1 = points[2 * h];\n    let y0, y1 = points[2 * h + 1];\n    vectors.fill(0);\n    for (let i = 0; i < hull.length; ++i) {\n      h = hull[i];\n      p0 = p1, x0 = x1, y0 = y1;\n      p1 = h * 4, x1 = points[2 * h], y1 = points[2 * h + 1];\n      vectors[p0 + 2] = vectors[p1] = y0 - y1;\n      vectors[p0 + 3] = vectors[p1 + 1] = x1 - x0;\n    }\n  }\n  render(context) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : undefined;\n    const {delaunay: {halfedges, inedges, hull}, circumcenters, vectors} = this;\n    if (hull.length <= 1) return null;\n    for (let i = 0, n = halfedges.length; i < n; ++i) {\n      const j = halfedges[i];\n      if (j < i) continue;\n      const ti = Math.floor(i / 3) * 2;\n      const tj = Math.floor(j / 3) * 2;\n      const xi = circumcenters[ti];\n      const yi = circumcenters[ti + 1];\n      const xj = circumcenters[tj];\n      const yj = circumcenters[tj + 1];\n      this._renderSegment(xi, yi, xj, yj, context);\n    }\n    let h0, h1 = hull[hull.length - 1];\n    for (let i = 0; i < hull.length; ++i) {\n      h0 = h1, h1 = hull[i];\n      const t = Math.floor(inedges[h1] / 3) * 2;\n      const x = circumcenters[t];\n      const y = circumcenters[t + 1];\n      const v = h0 * 4;\n      const p = this._project(x, y, vectors[v + 2], vectors[v + 3]);\n      if (p) this._renderSegment(x, y, p[0], p[1], context);\n    }\n    return buffer && buffer.value();\n  }\n  renderBounds(context) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : undefined;\n    context.rect(this.xmin, this.ymin, this.xmax - this.xmin, this.ymax - this.ymin);\n    return buffer && buffer.value();\n  }\n  renderCell(i, context) {\n    const buffer = context == null ? context = new _path_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : undefined;\n    const points = this._clip(i);\n    if (points === null || !points.length) return;\n    context.moveTo(points[0], points[1]);\n    let n = points.length;\n    while (points[0] === points[n-2] && points[1] === points[n-1] && n > 1) n -= 2;\n    for (let i = 2; i < n; i += 2) {\n      if (points[i] !== points[i-2] || points[i+1] !== points[i-1])\n        context.lineTo(points[i], points[i + 1]);\n    }\n    context.closePath();\n    return buffer && buffer.value();\n  }\n  *cellPolygons() {\n    const {delaunay: {points}} = this;\n    for (let i = 0, n = points.length / 2; i < n; ++i) {\n      const cell = this.cellPolygon(i);\n      if (cell) cell.index = i, yield cell;\n    }\n  }\n  cellPolygon(i) {\n    const polygon = new _polygon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n    this.renderCell(i, polygon);\n    return polygon.value();\n  }\n  _renderSegment(x0, y0, x1, y1, context) {\n    let S;\n    const c0 = this._regioncode(x0, y0);\n    const c1 = this._regioncode(x1, y1);\n    if (c0 === 0 && c1 === 0) {\n      context.moveTo(x0, y0);\n      context.lineTo(x1, y1);\n    } else if (S = this._clipSegment(x0, y0, x1, y1, c0, c1)) {\n      context.moveTo(S[0], S[1]);\n      context.lineTo(S[2], S[3]);\n    }\n  }\n  contains(i, x, y) {\n    if ((x = +x, x !== x) || (y = +y, y !== y)) return false;\n    return this.delaunay._step(i, x, y) === i;\n  }\n  *neighbors(i) {\n    const ci = this._clip(i);\n    if (ci) for (const j of this.delaunay.neighbors(i)) {\n      const cj = this._clip(j);\n      // find the common edge\n      if (cj) loop: for (let ai = 0, li = ci.length; ai < li; ai += 2) {\n        for (let aj = 0, lj = cj.length; aj < lj; aj += 2) {\n          if (ci[ai] == cj[aj]\n          && ci[ai + 1] == cj[aj + 1]\n          && ci[(ai + 2) % li] == cj[(aj + lj - 2) % lj]\n          && ci[(ai + 3) % li] == cj[(aj + lj - 1) % lj]\n          ) {\n            yield j;\n            break loop;\n          }\n        }\n      }\n    }\n  }\n  _cell(i) {\n    const {circumcenters, delaunay: {inedges, halfedges, triangles}} = this;\n    const e0 = inedges[i];\n    if (e0 === -1) return null; // coincident point\n    const points = [];\n    let e = e0;\n    do {\n      const t = Math.floor(e / 3);\n      points.push(circumcenters[t * 2], circumcenters[t * 2 + 1]);\n      e = e % 3 === 2 ? e - 2 : e + 1;\n      if (triangles[e] !== i) break; // bad triangulation\n      e = halfedges[e];\n    } while (e !== e0 && e !== -1);\n    return points;\n  }\n  _clip(i) {\n    // degenerate case (1 valid point: return the box)\n    if (i === 0 && this.delaunay.hull.length === 1) {\n      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n    }\n    const points = this._cell(i);\n    if (points === null) return null;\n    const {vectors: V} = this;\n    const v = i * 4;\n    return V[v] || V[v + 1]\n        ? this._clipInfinite(i, points, V[v], V[v + 1], V[v + 2], V[v + 3])\n        : this._clipFinite(i, points);\n  }\n  _clipFinite(i, points) {\n    const n = points.length;\n    let P = null;\n    let x0, y0, x1 = points[n - 2], y1 = points[n - 1];\n    let c0, c1 = this._regioncode(x1, y1);\n    let e0, e1;\n    for (let j = 0; j < n; j += 2) {\n      x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1];\n      c0 = c1, c1 = this._regioncode(x1, y1);\n      if (c0 === 0 && c1 === 0) {\n        e0 = e1, e1 = 0;\n        if (P) P.push(x1, y1);\n        else P = [x1, y1];\n      } else {\n        let S, sx0, sy0, sx1, sy1;\n        if (c0 === 0) {\n          if ((S = this._clipSegment(x0, y0, x1, y1, c0, c1)) === null) continue;\n          [sx0, sy0, sx1, sy1] = S;\n        } else {\n          if ((S = this._clipSegment(x1, y1, x0, y0, c1, c0)) === null) continue;\n          [sx1, sy1, sx0, sy0] = S;\n          e0 = e1, e1 = this._edgecode(sx0, sy0);\n          if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n          if (P) P.push(sx0, sy0);\n          else P = [sx0, sy0];\n        }\n        e0 = e1, e1 = this._edgecode(sx1, sy1);\n        if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n        if (P) P.push(sx1, sy1);\n        else P = [sx1, sy1];\n      }\n    }\n    if (P) {\n      e0 = e1, e1 = this._edgecode(P[0], P[1]);\n      if (e0 && e1) this._edge(i, e0, e1, P, P.length);\n    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n      return [this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax, this.xmin, this.ymin];\n    }\n    return P;\n  }\n  _clipSegment(x0, y0, x1, y1, c0, c1) {\n    while (true) {\n      if (c0 === 0 && c1 === 0) return [x0, y0, x1, y1];\n      if (c0 & c1) return null;\n      let x, y, c = c0 || c1;\n      if (c & 0b1000) x = x0 + (x1 - x0) * (this.ymax - y0) / (y1 - y0), y = this.ymax;\n      else if (c & 0b0100) x = x0 + (x1 - x0) * (this.ymin - y0) / (y1 - y0), y = this.ymin;\n      else if (c & 0b0010) y = y0 + (y1 - y0) * (this.xmax - x0) / (x1 - x0), x = this.xmax;\n      else y = y0 + (y1 - y0) * (this.xmin - x0) / (x1 - x0), x = this.xmin;\n      if (c0) x0 = x, y0 = y, c0 = this._regioncode(x0, y0);\n      else x1 = x, y1 = y, c1 = this._regioncode(x1, y1);\n    }\n  }\n  _clipInfinite(i, points, vx0, vy0, vxn, vyn) {\n    let P = Array.from(points), p;\n    if (p = this._project(P[0], P[1], vx0, vy0)) P.unshift(p[0], p[1]);\n    if (p = this._project(P[P.length - 2], P[P.length - 1], vxn, vyn)) P.push(p[0], p[1]);\n    if (P = this._clipFinite(i, P)) {\n      for (let j = 0, n = P.length, c0, c1 = this._edgecode(P[n - 2], P[n - 1]); j < n; j += 2) {\n        c0 = c1, c1 = this._edgecode(P[j], P[j + 1]);\n        if (c0 && c1) j = this._edge(i, c0, c1, P, j), n = P.length;\n      }\n    } else if (this.contains(i, (this.xmin + this.xmax) / 2, (this.ymin + this.ymax) / 2)) {\n      P = [this.xmin, this.ymin, this.xmax, this.ymin, this.xmax, this.ymax, this.xmin, this.ymax];\n    }\n    return P;\n  }\n  _edge(i, e0, e1, P, j) {\n    while (e0 !== e1) {\n      let x, y;\n      switch (e0) {\n        case 0b0101: e0 = 0b0100; continue; // top-left\n        case 0b0100: e0 = 0b0110, x = this.xmax, y = this.ymin; break; // top\n        case 0b0110: e0 = 0b0010; continue; // top-right\n        case 0b0010: e0 = 0b1010, x = this.xmax, y = this.ymax; break; // right\n        case 0b1010: e0 = 0b1000; continue; // bottom-right\n        case 0b1000: e0 = 0b1001, x = this.xmin, y = this.ymax; break; // bottom\n        case 0b1001: e0 = 0b0001; continue; // bottom-left\n        case 0b0001: e0 = 0b0101, x = this.xmin, y = this.ymin; break; // left\n      }\n      if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) {\n        P.splice(j, 0, x, y), j += 2;\n      }\n    }\n    if (P.length > 4) {\n      for (let i = 0; i < P.length; i+= 2) {\n        const j = (i + 2) % P.length, k = (i + 4) % P.length;\n        if (P[i] === P[j] && P[j] === P[k]\n        || P[i + 1] === P[j + 1] && P[j + 1] === P[k + 1])\n          P.splice(j, 2), i -= 2;\n      }\n    }\n    return j;\n  }\n  _project(x0, y0, vx, vy) {\n    let t = Infinity, c, x, y;\n    if (vy < 0) { // top\n      if (y0 <= this.ymin) return null;\n      if ((c = (this.ymin - y0) / vy) < t) y = this.ymin, x = x0 + (t = c) * vx;\n    } else if (vy > 0) { // bottom\n      if (y0 >= this.ymax) return null;\n      if ((c = (this.ymax - y0) / vy) < t) y = this.ymax, x = x0 + (t = c) * vx;\n    }\n    if (vx > 0) { // right\n      if (x0 >= this.xmax) return null;\n      if ((c = (this.xmax - x0) / vx) < t) x = this.xmax, y = y0 + (t = c) * vy;\n    } else if (vx < 0) { // left\n      if (x0 <= this.xmin) return null;\n      if ((c = (this.xmin - x0) / vx) < t) x = this.xmin, y = y0 + (t = c) * vy;\n    }\n    return [x, y];\n  }\n  _edgecode(x, y) {\n    return (x === this.xmin ? 0b0001\n        : x === this.xmax ? 0b0010 : 0b0000)\n        | (y === this.ymin ? 0b0100\n        : y === this.ymax ? 0b1000 : 0b0000);\n  }\n  _regioncode(x, y) {\n    return (x < this.xmin ? 0b0001\n        : x > this.xmax ? 0b0010 : 0b0000)\n        | (y < this.ymin ? 0b0100\n        : y > this.ymax ? 0b1000 : 0b0000);\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-delaunay/src/voronoi.js?");

/***/ }),

/***/ "./node_modules/d3-dispatch/src/dispatch.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-dispatch/src/dispatch.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar noop = {value: () => {}};\n\nfunction dispatch() {\n  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n    if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n    _[t] = [];\n  }\n  return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n  this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n    return {type: t, name: name};\n  });\n}\n\nDispatch.prototype = dispatch.prototype = {\n  constructor: Dispatch,\n  on: function(typename, callback) {\n    var _ = this._,\n        T = parseTypenames(typename + \"\", _),\n        t,\n        i = -1,\n        n = T.length;\n\n    // If no callback was specified, return the callback of the given type and name.\n    if (arguments.length < 2) {\n      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n      return;\n    }\n\n    // If a type was specified, set the callback for the given type and name.\n    // Otherwise, if a null callback was specified, remove callbacks of the given name.\n    if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n    while (++i < n) {\n      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n    }\n\n    return this;\n  },\n  copy: function() {\n    var copy = {}, _ = this._;\n    for (var t in _) copy[t] = _[t].slice();\n    return new Dispatch(copy);\n  },\n  call: function(type, that) {\n    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  },\n  apply: function(type, that, args) {\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  }\n};\n\nfunction get(type, name) {\n  for (var i = 0, n = type.length, c; i < n; ++i) {\n    if ((c = type[i]).name === name) {\n      return c.value;\n    }\n  }\n}\n\nfunction set(type, name, callback) {\n  for (var i = 0, n = type.length; i < n; ++i) {\n    if (type[i].name === name) {\n      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n      break;\n    }\n  }\n  if (callback != null) type.push({name: name, value: callback});\n  return type;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (dispatch);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dispatch/src/dispatch.js?");

/***/ }),

/***/ "./node_modules/d3-dispatch/src/index.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-dispatch/src/index.js ***!
  \***********************************************/
/*! exports provided: dispatch */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dispatch_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dispatch.js */ \"./node_modules/d3-dispatch/src/dispatch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return _dispatch_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dispatch/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-dsv/src/autoType.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-dsv/src/autoType.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return autoType; });\nfunction autoType(object) {\n  for (var key in object) {\n    var value = object[key].trim(), number, m;\n    if (!value) value = null;\n    else if (value === \"true\") value = true;\n    else if (value === \"false\") value = false;\n    else if (value === \"NaN\") value = NaN;\n    else if (!isNaN(number = +value)) value = number;\n    else if (m = value.match(/^([-+]\\d{2})?\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?(Z|[-+]\\d{2}:\\d{2})?)?$/)) {\n      if (fixtz && !!m[4] && !m[7]) value = value.replace(/-/g, \"/\").replace(/T/, \" \");\n      value = new Date(value);\n    }\n    else continue;\n    object[key] = value;\n  }\n  return object;\n}\n\n// https://github.com/d3/d3-dsv/issues/45\nconst fixtz = new Date(\"2019-01-01T00:00\").getHours() || new Date(\"2019-07-01T00:00\").getHours();\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dsv/src/autoType.js?");

/***/ }),

/***/ "./node_modules/d3-dsv/src/csv.js":
/*!****************************************!*\
  !*** ./node_modules/d3-dsv/src/csv.js ***!
  \****************************************/
/*! exports provided: csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvParse\", function() { return csvParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvParseRows\", function() { return csvParseRows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvFormat\", function() { return csvFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvFormatBody\", function() { return csvFormatBody; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvFormatRows\", function() { return csvFormatRows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvFormatRow\", function() { return csvFormatRow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"csvFormatValue\", function() { return csvFormatValue; });\n/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ \"./node_modules/d3-dsv/src/dsv.js\");\n\n\nvar csv = Object(_dsv_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\",\");\n\nvar csvParse = csv.parse;\nvar csvParseRows = csv.parseRows;\nvar csvFormat = csv.format;\nvar csvFormatBody = csv.formatBody;\nvar csvFormatRows = csv.formatRows;\nvar csvFormatRow = csv.formatRow;\nvar csvFormatValue = csv.formatValue;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dsv/src/csv.js?");

/***/ }),

/***/ "./node_modules/d3-dsv/src/dsv.js":
/*!****************************************!*\
  !*** ./node_modules/d3-dsv/src/dsv.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar EOL = {},\n    EOF = {},\n    QUOTE = 34,\n    NEWLINE = 10,\n    RETURN = 13;\n\nfunction objectConverter(columns) {\n  return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n    return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n  }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n  var object = objectConverter(columns);\n  return function(row, i) {\n    return f(object(row), i, columns);\n  };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n  var columnSet = Object.create(null),\n      columns = [];\n\n  rows.forEach(function(row) {\n    for (var column in row) {\n      if (!(column in columnSet)) {\n        columns.push(columnSet[column] = column);\n      }\n    }\n  });\n\n  return columns;\n}\n\nfunction pad(value, width) {\n  var s = value + \"\", length = s.length;\n  return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n  return year < 0 ? \"-\" + pad(-year, 6)\n    : year > 9999 ? \"+\" + pad(year, 6)\n    : pad(year, 4);\n}\n\nfunction formatDate(date) {\n  var hours = date.getUTCHours(),\n      minutes = date.getUTCMinutes(),\n      seconds = date.getUTCSeconds(),\n      milliseconds = date.getUTCMilliseconds();\n  return isNaN(date) ? \"Invalid Date\"\n      : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n      + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n      : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n      : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n      : \"\");\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(delimiter) {\n  var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n      DELIMITER = delimiter.charCodeAt(0);\n\n  function parse(text, f) {\n    var convert, columns, rows = parseRows(text, function(row, i) {\n      if (convert) return convert(row, i - 1);\n      columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n    });\n    rows.columns = columns || [];\n    return rows;\n  }\n\n  function parseRows(text, f) {\n    var rows = [], // output rows\n        N = text.length,\n        I = 0, // current character index\n        n = 0, // current line number\n        t, // current token\n        eof = N <= 0, // current token followed by EOF?\n        eol = false; // current token followed by EOL?\n\n    // Strip the trailing newline.\n    if (text.charCodeAt(N - 1) === NEWLINE) --N;\n    if (text.charCodeAt(N - 1) === RETURN) --N;\n\n    function token() {\n      if (eof) return EOF;\n      if (eol) return eol = false, EOL;\n\n      // Unescape quotes.\n      var i, j = I, c;\n      if (text.charCodeAt(j) === QUOTE) {\n        while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n        if ((i = I) >= N) eof = true;\n        else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n        return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n      }\n\n      // Find next delimiter or newline.\n      while (I < N) {\n        if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n        else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n        else if (c !== DELIMITER) continue;\n        return text.slice(j, i);\n      }\n\n      // Return last token before EOF.\n      return eof = true, text.slice(j, N);\n    }\n\n    while ((t = token()) !== EOF) {\n      var row = [];\n      while (t !== EOL && t !== EOF) row.push(t), t = token();\n      if (f && (row = f(row, n++)) == null) continue;\n      rows.push(row);\n    }\n\n    return rows;\n  }\n\n  function preformatBody(rows, columns) {\n    return rows.map(function(row) {\n      return columns.map(function(column) {\n        return formatValue(row[column]);\n      }).join(delimiter);\n    });\n  }\n\n  function format(rows, columns) {\n    if (columns == null) columns = inferColumns(rows);\n    return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n  }\n\n  function formatBody(rows, columns) {\n    if (columns == null) columns = inferColumns(rows);\n    return preformatBody(rows, columns).join(\"\\n\");\n  }\n\n  function formatRows(rows) {\n    return rows.map(formatRow).join(\"\\n\");\n  }\n\n  function formatRow(row) {\n    return row.map(formatValue).join(delimiter);\n  }\n\n  function formatValue(value) {\n    return value == null ? \"\"\n        : value instanceof Date ? formatDate(value)\n        : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n        : value;\n  }\n\n  return {\n    parse: parse,\n    parseRows: parseRows,\n    format: format,\n    formatBody: formatBody,\n    formatRows: formatRows,\n    formatRow: formatRow,\n    formatValue: formatValue\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dsv/src/dsv.js?");

/***/ }),

/***/ "./node_modules/d3-dsv/src/index.js":
/*!******************************************!*\
  !*** ./node_modules/d3-dsv/src/index.js ***!
  \******************************************/
/*! exports provided: dsvFormat, csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue, tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue, autoType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ \"./node_modules/d3-dsv/src/dsv.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dsvFormat\", function() { return _dsv_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _csv_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./csv.js */ \"./node_modules/d3-dsv/src/csv.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvParse\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvParse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvParseRows\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvParseRows\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvFormat\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvFormatBody\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvFormatBody\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvFormatRows\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvFormatRows\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvFormatRow\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvFormatRow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"csvFormatValue\", function() { return _csv_js__WEBPACK_IMPORTED_MODULE_1__[\"csvFormatValue\"]; });\n\n/* harmony import */ var _tsv_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tsv.js */ \"./node_modules/d3-dsv/src/tsv.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvParse\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvParse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvParseRows\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvParseRows\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvFormat\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatBody\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvFormatBody\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatRows\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvFormatRows\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatRow\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvFormatRow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatValue\", function() { return _tsv_js__WEBPACK_IMPORTED_MODULE_2__[\"tsvFormatValue\"]; });\n\n/* harmony import */ var _autoType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./autoType.js */ \"./node_modules/d3-dsv/src/autoType.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"autoType\", function() { return _autoType_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dsv/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-dsv/src/tsv.js":
/*!****************************************!*\
  !*** ./node_modules/d3-dsv/src/tsv.js ***!
  \****************************************/
/*! exports provided: tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvParse\", function() { return tsvParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvParseRows\", function() { return tsvParseRows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvFormat\", function() { return tsvFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatBody\", function() { return tsvFormatBody; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatRows\", function() { return tsvFormatRows; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatRow\", function() { return tsvFormatRow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tsvFormatValue\", function() { return tsvFormatValue; });\n/* harmony import */ var _dsv_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv.js */ \"./node_modules/d3-dsv/src/dsv.js\");\n\n\nvar tsv = Object(_dsv_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"\\t\");\n\nvar tsvParse = tsv.parse;\nvar tsvParseRows = tsv.parseRows;\nvar tsvFormat = tsv.format;\nvar tsvFormatBody = tsv.formatBody;\nvar tsvFormatRows = tsv.formatRows;\nvar tsvFormatRow = tsv.formatRow;\nvar tsvFormatValue = tsv.formatValue;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-dsv/src/tsv.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/center.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-force/src/center.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, y) {\n  var nodes, strength = 1;\n\n  if (x == null) x = 0;\n  if (y == null) y = 0;\n\n  function force() {\n    var i,\n        n = nodes.length,\n        node,\n        sx = 0,\n        sy = 0;\n\n    for (i = 0; i < n; ++i) {\n      node = nodes[i], sx += node.x, sy += node.y;\n    }\n\n    for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, i = 0; i < n; ++i) {\n      node = nodes[i], node.x -= sx, node.y -= sy;\n    }\n  }\n\n  force.initialize = function(_) {\n    nodes = _;\n  };\n\n  force.x = function(_) {\n    return arguments.length ? (x = +_, force) : x;\n  };\n\n  force.y = function(_) {\n    return arguments.length ? (y = +_, force) : y;\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = +_, force) : strength;\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/center.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/collide.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-force/src/collide.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-quadtree */ \"./node_modules/d3-quadtree/src/index.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-force/src/constant.js\");\n/* harmony import */ var _jiggle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jiggle.js */ \"./node_modules/d3-force/src/jiggle.js\");\n\n\n\n\nfunction x(d) {\n  return d.x + d.vx;\n}\n\nfunction y(d) {\n  return d.y + d.vy;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(radius) {\n  var nodes,\n      radii,\n      random,\n      strength = 1,\n      iterations = 1;\n\n  if (typeof radius !== \"function\") radius = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(radius == null ? 1 : +radius);\n\n  function force() {\n    var i, n = nodes.length,\n        tree,\n        node,\n        xi,\n        yi,\n        ri,\n        ri2;\n\n    for (var k = 0; k < iterations; ++k) {\n      tree = Object(d3_quadtree__WEBPACK_IMPORTED_MODULE_0__[\"quadtree\"])(nodes, x, y).visitAfter(prepare);\n      for (i = 0; i < n; ++i) {\n        node = nodes[i];\n        ri = radii[node.index], ri2 = ri * ri;\n        xi = node.x + node.vx;\n        yi = node.y + node.vy;\n        tree.visit(apply);\n      }\n    }\n\n    function apply(quad, x0, y0, x1, y1) {\n      var data = quad.data, rj = quad.r, r = ri + rj;\n      if (data) {\n        if (data.index > node.index) {\n          var x = xi - data.x - data.vx,\n              y = yi - data.y - data.vy,\n              l = x * x + y * y;\n          if (l < r * r) {\n            if (x === 0) x = Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(random), l += x * x;\n            if (y === 0) y = Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(random), l += y * y;\n            l = (r - (l = Math.sqrt(l))) / l * strength;\n            node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n            node.vy += (y *= l) * r;\n            data.vx -= x * (r = 1 - r);\n            data.vy -= y * r;\n          }\n        }\n        return;\n      }\n      return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n    }\n  }\n\n  function prepare(quad) {\n    if (quad.data) return quad.r = radii[quad.data.index];\n    for (var i = quad.r = 0; i < 4; ++i) {\n      if (quad[i] && quad[i].r > quad.r) {\n        quad.r = quad[i].r;\n      }\n    }\n  }\n\n  function initialize() {\n    if (!nodes) return;\n    var i, n = nodes.length, node;\n    radii = new Array(n);\n    for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n  }\n\n  force.initialize = function(_nodes, _random) {\n    nodes = _nodes;\n    random = _random;\n    initialize();\n  };\n\n  force.iterations = function(_) {\n    return arguments.length ? (iterations = +_, force) : iterations;\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = +_, force) : strength;\n  };\n\n  force.radius = function(_) {\n    return arguments.length ? (radius = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), initialize(), force) : radius;\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/collide.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/constant.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-force/src/constant.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return function() {\n    return x;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/index.js":
/*!********************************************!*\
  !*** ./node_modules/d3-force/src/index.js ***!
  \********************************************/
/*! exports provided: forceCenter, forceCollide, forceLink, forceManyBody, forceRadial, forceSimulation, forceX, forceY */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _center_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./center.js */ \"./node_modules/d3-force/src/center.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceCenter\", function() { return _center_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _collide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./collide.js */ \"./node_modules/d3-force/src/collide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceCollide\", function() { return _collide_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./link.js */ \"./node_modules/d3-force/src/link.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceLink\", function() { return _link_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _manyBody_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./manyBody.js */ \"./node_modules/d3-force/src/manyBody.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceManyBody\", function() { return _manyBody_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _radial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./radial.js */ \"./node_modules/d3-force/src/radial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceRadial\", function() { return _radial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _simulation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./simulation.js */ \"./node_modules/d3-force/src/simulation.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceSimulation\", function() { return _simulation_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _x_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./x.js */ \"./node_modules/d3-force/src/x.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceX\", function() { return _x_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _y_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./y.js */ \"./node_modules/d3-force/src/y.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"forceY\", function() { return _y_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/jiggle.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-force/src/jiggle.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(random) {\n  return (random() - 0.5) * 1e-6;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/jiggle.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/lcg.js":
/*!******************************************!*\
  !*** ./node_modules/d3-force/src/lcg.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  let s = 1;\n  return () => (s = (a * s + c) % m) / m;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/lcg.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/link.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-force/src/link.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-force/src/constant.js\");\n/* harmony import */ var _jiggle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./jiggle.js */ \"./node_modules/d3-force/src/jiggle.js\");\n\n\n\nfunction index(d) {\n  return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n  var node = nodeById.get(nodeId);\n  if (!node) throw new Error(\"node not found: \" + nodeId);\n  return node;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(links) {\n  var id = index,\n      strength = defaultStrength,\n      strengths,\n      distance = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(30),\n      distances,\n      nodes,\n      count,\n      bias,\n      random,\n      iterations = 1;\n\n  if (links == null) links = [];\n\n  function defaultStrength(link) {\n    return 1 / Math.min(count[link.source.index], count[link.target.index]);\n  }\n\n  function force(alpha) {\n    for (var k = 0, n = links.length; k < iterations; ++k) {\n      for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n        link = links[i], source = link.source, target = link.target;\n        x = target.x + target.vx - source.x - source.vx || Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(random);\n        y = target.y + target.vy - source.y - source.vy || Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(random);\n        l = Math.sqrt(x * x + y * y);\n        l = (l - distances[i]) / l * alpha * strengths[i];\n        x *= l, y *= l;\n        target.vx -= x * (b = bias[i]);\n        target.vy -= y * b;\n        source.vx += x * (b = 1 - b);\n        source.vy += y * b;\n      }\n    }\n  }\n\n  function initialize() {\n    if (!nodes) return;\n\n    var i,\n        n = nodes.length,\n        m = links.length,\n        nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n        link;\n\n    for (i = 0, count = new Array(n); i < m; ++i) {\n      link = links[i], link.index = i;\n      if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n      if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n      count[link.source.index] = (count[link.source.index] || 0) + 1;\n      count[link.target.index] = (count[link.target.index] || 0) + 1;\n    }\n\n    for (i = 0, bias = new Array(m); i < m; ++i) {\n      link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n    }\n\n    strengths = new Array(m), initializeStrength();\n    distances = new Array(m), initializeDistance();\n  }\n\n  function initializeStrength() {\n    if (!nodes) return;\n\n    for (var i = 0, n = links.length; i < n; ++i) {\n      strengths[i] = +strength(links[i], i, links);\n    }\n  }\n\n  function initializeDistance() {\n    if (!nodes) return;\n\n    for (var i = 0, n = links.length; i < n; ++i) {\n      distances[i] = +distance(links[i], i, links);\n    }\n  }\n\n  force.initialize = function(_nodes, _random) {\n    nodes = _nodes;\n    random = _random;\n    initialize();\n  };\n\n  force.links = function(_) {\n    return arguments.length ? (links = _, initialize(), force) : links;\n  };\n\n  force.id = function(_) {\n    return arguments.length ? (id = _, force) : id;\n  };\n\n  force.iterations = function(_) {\n    return arguments.length ? (iterations = +_, force) : iterations;\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initializeStrength(), force) : strength;\n  };\n\n  force.distance = function(_) {\n    return arguments.length ? (distance = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initializeDistance(), force) : distance;\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/link.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/manyBody.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-force/src/manyBody.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_quadtree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-quadtree */ \"./node_modules/d3-quadtree/src/index.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-force/src/constant.js\");\n/* harmony import */ var _jiggle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./jiggle.js */ \"./node_modules/d3-force/src/jiggle.js\");\n/* harmony import */ var _simulation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./simulation.js */ \"./node_modules/d3-force/src/simulation.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var nodes,\n      node,\n      random,\n      alpha,\n      strength = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(-30),\n      strengths,\n      distanceMin2 = 1,\n      distanceMax2 = Infinity,\n      theta2 = 0.81;\n\n  function force(_) {\n    var i, n = nodes.length, tree = Object(d3_quadtree__WEBPACK_IMPORTED_MODULE_0__[\"quadtree\"])(nodes, _simulation_js__WEBPACK_IMPORTED_MODULE_3__[\"x\"], _simulation_js__WEBPACK_IMPORTED_MODULE_3__[\"y\"]).visitAfter(accumulate);\n    for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n  }\n\n  function initialize() {\n    if (!nodes) return;\n    var i, n = nodes.length, node;\n    strengths = new Array(n);\n    for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n  }\n\n  function accumulate(quad) {\n    var strength = 0, q, c, weight = 0, x, y, i;\n\n    // For internal nodes, accumulate forces from child quadrants.\n    if (quad.length) {\n      for (x = y = i = 0; i < 4; ++i) {\n        if ((q = quad[i]) && (c = Math.abs(q.value))) {\n          strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n        }\n      }\n      quad.x = x / weight;\n      quad.y = y / weight;\n    }\n\n    // For leaf nodes, accumulate forces from coincident quadrants.\n    else {\n      q = quad;\n      q.x = q.data.x;\n      q.y = q.data.y;\n      do strength += strengths[q.data.index];\n      while (q = q.next);\n    }\n\n    quad.value = strength;\n  }\n\n  function apply(quad, x1, _, x2) {\n    if (!quad.value) return true;\n\n    var x = quad.x - node.x,\n        y = quad.y - node.y,\n        w = x2 - x1,\n        l = x * x + y * y;\n\n    // Apply the Barnes-Hut approximation if possible.\n    // Limit forces for very close nodes; randomize direction if coincident.\n    if (w * w / theta2 < l) {\n      if (l < distanceMax2) {\n        if (x === 0) x = Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(random), l += x * x;\n        if (y === 0) y = Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(random), l += y * y;\n        if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n        node.vx += x * quad.value * alpha / l;\n        node.vy += y * quad.value * alpha / l;\n      }\n      return true;\n    }\n\n    // Otherwise, process points directly.\n    else if (quad.length || l >= distanceMax2) return;\n\n    // Limit forces for very close nodes; randomize direction if coincident.\n    if (quad.data !== node || quad.next) {\n      if (x === 0) x = Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(random), l += x * x;\n      if (y === 0) y = Object(_jiggle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(random), l += y * y;\n      if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n    }\n\n    do if (quad.data !== node) {\n      w = strengths[quad.data.index] * alpha / l;\n      node.vx += x * w;\n      node.vy += y * w;\n    } while (quad = quad.next);\n  }\n\n  force.initialize = function(_nodes, _random) {\n    nodes = _nodes;\n    random = _random;\n    initialize();\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), initialize(), force) : strength;\n  };\n\n  force.distanceMin = function(_) {\n    return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n  };\n\n  force.distanceMax = function(_) {\n    return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n  };\n\n  force.theta = function(_) {\n    return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/manyBody.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/radial.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-force/src/radial.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-force/src/constant.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(radius, x, y) {\n  var nodes,\n      strength = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0.1),\n      strengths,\n      radiuses;\n\n  if (typeof radius !== \"function\") radius = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+radius);\n  if (x == null) x = 0;\n  if (y == null) y = 0;\n\n  function force(alpha) {\n    for (var i = 0, n = nodes.length; i < n; ++i) {\n      var node = nodes[i],\n          dx = node.x - x || 1e-6,\n          dy = node.y - y || 1e-6,\n          r = Math.sqrt(dx * dx + dy * dy),\n          k = (radiuses[i] - r) * strengths[i] * alpha / r;\n      node.vx += dx * k;\n      node.vy += dy * k;\n    }\n  }\n\n  function initialize() {\n    if (!nodes) return;\n    var i, n = nodes.length;\n    strengths = new Array(n);\n    radiuses = new Array(n);\n    for (i = 0; i < n; ++i) {\n      radiuses[i] = +radius(nodes[i], i, nodes);\n      strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n    }\n  }\n\n  force.initialize = function(_) {\n    nodes = _, initialize();\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initialize(), force) : strength;\n  };\n\n  force.radius = function(_) {\n    return arguments.length ? (radius = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initialize(), force) : radius;\n  };\n\n  force.x = function(_) {\n    return arguments.length ? (x = +_, force) : x;\n  };\n\n  force.y = function(_) {\n    return arguments.length ? (y = +_, force) : y;\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/radial.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/simulation.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-force/src/simulation.js ***!
  \*************************************************/
/*! exports provided: x, y, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"x\", function() { return x; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"y\", function() { return y; });\n/* harmony import */ var d3_dispatch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dispatch */ \"./node_modules/d3-dispatch/src/index.js\");\n/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-timer */ \"./node_modules/d3-timer/src/index.js\");\n/* harmony import */ var _lcg_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lcg.js */ \"./node_modules/d3-force/src/lcg.js\");\n\n\n\n\nfunction x(d) {\n  return d.x;\n}\n\nfunction y(d) {\n  return d.y;\n}\n\nvar initialRadius = 10,\n    initialAngle = Math.PI * (3 - Math.sqrt(5));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(nodes) {\n  var simulation,\n      alpha = 1,\n      alphaMin = 0.001,\n      alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n      alphaTarget = 0,\n      velocityDecay = 0.6,\n      forces = new Map(),\n      stepper = Object(d3_timer__WEBPACK_IMPORTED_MODULE_1__[\"timer\"])(step),\n      event = Object(d3_dispatch__WEBPACK_IMPORTED_MODULE_0__[\"dispatch\"])(\"tick\", \"end\"),\n      random = Object(_lcg_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n\n  if (nodes == null) nodes = [];\n\n  function step() {\n    tick();\n    event.call(\"tick\", simulation);\n    if (alpha < alphaMin) {\n      stepper.stop();\n      event.call(\"end\", simulation);\n    }\n  }\n\n  function tick(iterations) {\n    var i, n = nodes.length, node;\n\n    if (iterations === undefined) iterations = 1;\n\n    for (var k = 0; k < iterations; ++k) {\n      alpha += (alphaTarget - alpha) * alphaDecay;\n\n      forces.forEach(function(force) {\n        force(alpha);\n      });\n\n      for (i = 0; i < n; ++i) {\n        node = nodes[i];\n        if (node.fx == null) node.x += node.vx *= velocityDecay;\n        else node.x = node.fx, node.vx = 0;\n        if (node.fy == null) node.y += node.vy *= velocityDecay;\n        else node.y = node.fy, node.vy = 0;\n      }\n    }\n\n    return simulation;\n  }\n\n  function initializeNodes() {\n    for (var i = 0, n = nodes.length, node; i < n; ++i) {\n      node = nodes[i], node.index = i;\n      if (node.fx != null) node.x = node.fx;\n      if (node.fy != null) node.y = node.fy;\n      if (isNaN(node.x) || isNaN(node.y)) {\n        var radius = initialRadius * Math.sqrt(0.5 + i), angle = i * initialAngle;\n        node.x = radius * Math.cos(angle);\n        node.y = radius * Math.sin(angle);\n      }\n      if (isNaN(node.vx) || isNaN(node.vy)) {\n        node.vx = node.vy = 0;\n      }\n    }\n  }\n\n  function initializeForce(force) {\n    if (force.initialize) force.initialize(nodes, random);\n    return force;\n  }\n\n  initializeNodes();\n\n  return simulation = {\n    tick: tick,\n\n    restart: function() {\n      return stepper.restart(step), simulation;\n    },\n\n    stop: function() {\n      return stepper.stop(), simulation;\n    },\n\n    nodes: function(_) {\n      return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n    },\n\n    alpha: function(_) {\n      return arguments.length ? (alpha = +_, simulation) : alpha;\n    },\n\n    alphaMin: function(_) {\n      return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n    },\n\n    alphaDecay: function(_) {\n      return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n    },\n\n    alphaTarget: function(_) {\n      return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n    },\n\n    velocityDecay: function(_) {\n      return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n    },\n\n    randomSource: function(_) {\n      return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n    },\n\n    force: function(name, _) {\n      return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n    },\n\n    find: function(x, y, radius) {\n      var i = 0,\n          n = nodes.length,\n          dx,\n          dy,\n          d2,\n          node,\n          closest;\n\n      if (radius == null) radius = Infinity;\n      else radius *= radius;\n\n      for (i = 0; i < n; ++i) {\n        node = nodes[i];\n        dx = x - node.x;\n        dy = y - node.y;\n        d2 = dx * dx + dy * dy;\n        if (d2 < radius) closest = node, radius = d2;\n      }\n\n      return closest;\n    },\n\n    on: function(name, _) {\n      return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n    }\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/simulation.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/x.js":
/*!****************************************!*\
  !*** ./node_modules/d3-force/src/x.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-force/src/constant.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  var strength = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0.1),\n      nodes,\n      strengths,\n      xz;\n\n  if (typeof x !== \"function\") x = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(x == null ? 0 : +x);\n\n  function force(alpha) {\n    for (var i = 0, n = nodes.length, node; i < n; ++i) {\n      node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n    }\n  }\n\n  function initialize() {\n    if (!nodes) return;\n    var i, n = nodes.length;\n    strengths = new Array(n);\n    xz = new Array(n);\n    for (i = 0; i < n; ++i) {\n      strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n    }\n  }\n\n  force.initialize = function(_) {\n    nodes = _;\n    initialize();\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initialize(), force) : strength;\n  };\n\n  force.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initialize(), force) : x;\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/x.js?");

/***/ }),

/***/ "./node_modules/d3-force/src/y.js":
/*!****************************************!*\
  !*** ./node_modules/d3-force/src/y.js ***!
  \****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-force/src/constant.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(y) {\n  var strength = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(0.1),\n      nodes,\n      strengths,\n      yz;\n\n  if (typeof y !== \"function\") y = Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(y == null ? 0 : +y);\n\n  function force(alpha) {\n    for (var i = 0, n = nodes.length, node; i < n; ++i) {\n      node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n    }\n  }\n\n  function initialize() {\n    if (!nodes) return;\n    var i, n = nodes.length;\n    strengths = new Array(n);\n    yz = new Array(n);\n    for (i = 0; i < n; ++i) {\n      strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n    }\n  }\n\n  force.initialize = function(_) {\n    nodes = _;\n    initialize();\n  };\n\n  force.strength = function(_) {\n    return arguments.length ? (strength = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initialize(), force) : strength;\n  };\n\n  force.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(+_), initialize(), force) : y;\n  };\n\n  return force;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-force/src/y.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/defaultLocale.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-format/src/defaultLocale.js ***!
  \*****************************************************/
/*! exports provided: format, formatPrefix, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatPrefix\", function() { return formatPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return defaultLocale; });\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-format/src/locale.js\");\n\n\nvar locale;\nvar format;\nvar formatPrefix;\n\ndefaultLocale({\n  thousands: \",\",\n  grouping: [3],\n  currency: [\"$\", \"\"]\n});\n\nfunction defaultLocale(definition) {\n  locale = Object(_locale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(definition);\n  format = locale.format;\n  formatPrefix = locale.formatPrefix;\n  return locale;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/defaultLocale.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/exponent.js":
/*!************************************************!*\
  !*** ./node_modules/d3-format/src/exponent.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return x = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"formatDecimalParts\"])(Math.abs(x)), x ? x[1] : NaN;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/exponent.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatDecimal.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-format/src/formatDecimal.js ***!
  \*****************************************************/
/*! exports provided: default, formatDecimalParts */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatDecimalParts\", function() { return formatDecimalParts; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return Math.abs(x = Math.round(x)) >= 1e21\n      ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n      : x.toString(10);\n});\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nfunction formatDecimalParts(x, p) {\n  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n  var i, coefficient = x.slice(0, i);\n\n  // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n  // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n  return [\n    coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n    +x.slice(i + 1)\n  ];\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatDecimal.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatGroup.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-format/src/formatGroup.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(grouping, thousands) {\n  return function(value, width) {\n    var i = value.length,\n        t = [],\n        j = 0,\n        g = grouping[0],\n        length = 0;\n\n    while (i > 0 && g > 0) {\n      if (length + g + 1 > width) g = Math.max(1, width - length);\n      t.push(value.substring(i -= g, i + g));\n      if ((length += g + 1) > width) break;\n      g = grouping[j = (j + 1) % grouping.length];\n    }\n\n    return t.reverse().join(thousands);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatGroup.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatNumerals.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-format/src/formatNumerals.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(numerals) {\n  return function(value) {\n    return value.replace(/[0-9]/g, function(i) {\n      return numerals[+i];\n    });\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatNumerals.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatPrefixAuto.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-format/src/formatPrefixAuto.js ***!
  \********************************************************/
/*! exports provided: prefixExponent, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prefixExponent\", function() { return prefixExponent; });\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\nvar prefixExponent;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, p) {\n  var d = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"formatDecimalParts\"])(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1],\n      i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n      n = coefficient.length;\n  return i === n ? coefficient\n      : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n      : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n      : \"0.\" + new Array(1 - i).join(\"0\") + Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"formatDecimalParts\"])(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatPrefixAuto.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatRounded.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-format/src/formatRounded.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, p) {\n  var d = Object(_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"formatDecimalParts\"])(x, p);\n  if (!d) return x + \"\";\n  var coefficient = d[0],\n      exponent = d[1];\n  return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n      : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n      : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatRounded.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatSpecifier.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-format/src/formatSpecifier.js ***!
  \*******************************************************/
/*! exports provided: default, FormatSpecifier */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatSpecifier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FormatSpecifier\", function() { return FormatSpecifier; });\n// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nfunction formatSpecifier(specifier) {\n  if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n  var match;\n  return new FormatSpecifier({\n    fill: match[1],\n    align: match[2],\n    sign: match[3],\n    symbol: match[4],\n    zero: match[5],\n    width: match[6],\n    comma: match[7],\n    precision: match[8] && match[8].slice(1),\n    trim: match[9],\n    type: match[10]\n  });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n  this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n  this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n  this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n  this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n  this.zero = !!specifier.zero;\n  this.width = specifier.width === undefined ? undefined : +specifier.width;\n  this.comma = !!specifier.comma;\n  this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n  this.trim = !!specifier.trim;\n  this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n  return this.fill\n      + this.align\n      + this.sign\n      + this.symbol\n      + (this.zero ? \"0\" : \"\")\n      + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n      + (this.comma ? \",\" : \"\")\n      + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n      + (this.trim ? \"~\" : \"\")\n      + this.type;\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatSpecifier.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatTrim.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-format/src/formatTrim.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(s) {\n  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n    switch (s[i]) {\n      case \".\": i0 = i1 = i; break;\n      case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n      default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n    }\n  }\n  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatTrim.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/formatTypes.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-format/src/formatTypes.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatDecimal.js */ \"./node_modules/d3-format/src/formatDecimal.js\");\n/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatPrefixAuto.js */ \"./node_modules/d3-format/src/formatPrefixAuto.js\");\n/* harmony import */ var _formatRounded_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatRounded.js */ \"./node_modules/d3-format/src/formatRounded.js\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  \"%\": (x, p) => (x * 100).toFixed(p),\n  \"b\": (x) => Math.round(x).toString(2),\n  \"c\": (x) => x + \"\",\n  \"d\": _formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  \"e\": (x, p) => x.toExponential(p),\n  \"f\": (x, p) => x.toFixed(p),\n  \"g\": (x, p) => x.toPrecision(p),\n  \"o\": (x) => Math.round(x).toString(8),\n  \"p\": (x, p) => Object(_formatRounded_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x * 100, p),\n  \"r\": _formatRounded_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  \"s\": _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n  \"x\": (x) => Math.round(x).toString(16)\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/formatTypes.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/identity.js":
/*!************************************************!*\
  !*** ./node_modules/d3-format/src/identity.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return x;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/identity.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/index.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-format/src/index.js ***!
  \*********************************************/
/*! exports provided: formatDefaultLocale, format, formatPrefix, formatLocale, formatSpecifier, FormatSpecifier, precisionFixed, precisionPrefix, precisionRound */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-format/src/defaultLocale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatDefaultLocale\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatPrefix\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"formatPrefix\"]; });\n\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-format/src/locale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatLocale\", function() { return _locale_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatSpecifier.js */ \"./node_modules/d3-format/src/formatSpecifier.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatSpecifier\", function() { return _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FormatSpecifier\", function() { return _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_2__[\"FormatSpecifier\"]; });\n\n/* harmony import */ var _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./precisionFixed.js */ \"./node_modules/d3-format/src/precisionFixed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"precisionFixed\", function() { return _precisionFixed_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./precisionPrefix.js */ \"./node_modules/d3-format/src/precisionPrefix.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"precisionPrefix\", function() { return _precisionPrefix_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./precisionRound.js */ \"./node_modules/d3-format/src/precisionRound.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"precisionRound\", function() { return _precisionRound_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/locale.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-format/src/locale.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n/* harmony import */ var _formatGroup_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatGroup.js */ \"./node_modules/d3-format/src/formatGroup.js\");\n/* harmony import */ var _formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatNumerals.js */ \"./node_modules/d3-format/src/formatNumerals.js\");\n/* harmony import */ var _formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formatSpecifier.js */ \"./node_modules/d3-format/src/formatSpecifier.js\");\n/* harmony import */ var _formatTrim_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatTrim.js */ \"./node_modules/d3-format/src/formatTrim.js\");\n/* harmony import */ var _formatTypes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatTypes.js */ \"./node_modules/d3-format/src/formatTypes.js\");\n/* harmony import */ var _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formatPrefixAuto.js */ \"./node_modules/d3-format/src/formatPrefixAuto.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-format/src/identity.js\");\n\n\n\n\n\n\n\n\n\nvar map = Array.prototype.map,\n    prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(locale) {\n  var group = locale.grouping === undefined || locale.thousands === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"] : Object(_formatGroup_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(map.call(locale.grouping, Number), locale.thousands + \"\"),\n      currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n      currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n      decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n      numerals = locale.numerals === undefined ? _identity_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"] : Object(_formatNumerals_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(map.call(locale.numerals, String)),\n      percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n      minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n      nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n  function newFormat(specifier) {\n    specifier = Object(_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(specifier);\n\n    var fill = specifier.fill,\n        align = specifier.align,\n        sign = specifier.sign,\n        symbol = specifier.symbol,\n        zero = specifier.zero,\n        width = specifier.width,\n        comma = specifier.comma,\n        precision = specifier.precision,\n        trim = specifier.trim,\n        type = specifier.type;\n\n    // The \"n\" type is an alias for \",g\".\n    if (type === \"n\") comma = true, type = \"g\";\n\n    // The \"\" type, and any invalid type, is an alias for \".12~g\".\n    else if (!_formatTypes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"][type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n    // If zero fill is specified, padding goes after sign and before digits.\n    if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n    // Compute the prefix and suffix.\n    // For SI-prefix, the suffix is lazily computed.\n    var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n        suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n    // What format function should we use?\n    // Is this an integer type?\n    // Can this type generate exponential notation?\n    var formatType = _formatTypes_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"][type],\n        maybeSuffix = /[defgprs%]/.test(type);\n\n    // Set the default precision if not specified,\n    // or clamp the specified precision to the supported range.\n    // For significant precision, it must be in [1, 21].\n    // For fixed precision, it must be in [0, 20].\n    precision = precision === undefined ? 6\n        : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n        : Math.max(0, Math.min(20, precision));\n\n    function format(value) {\n      var valuePrefix = prefix,\n          valueSuffix = suffix,\n          i, n, c;\n\n      if (type === \"c\") {\n        valueSuffix = formatType(value) + valueSuffix;\n        value = \"\";\n      } else {\n        value = +value;\n\n        // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n        var valueNegative = value < 0 || 1 / value < 0;\n\n        // Perform the initial formatting.\n        value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n        // Trim insignificant zeros.\n        if (trim) value = Object(_formatTrim_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(value);\n\n        // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n        if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n        // Compute the prefix and suffix.\n        valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n        valueSuffix = (type === \"s\" ? prefixes[8 + _formatPrefixAuto_js__WEBPACK_IMPORTED_MODULE_6__[\"prefixExponent\"] / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n        // Break the formatted value into the integer “value” part that can be\n        // grouped, and fractional or exponential “suffix” part that is not.\n        if (maybeSuffix) {\n          i = -1, n = value.length;\n          while (++i < n) {\n            if (c = value.charCodeAt(i), 48 > c || c > 57) {\n              valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n              value = value.slice(0, i);\n              break;\n            }\n          }\n        }\n      }\n\n      // If the fill character is not \"0\", grouping is applied before padding.\n      if (comma && !zero) value = group(value, Infinity);\n\n      // Compute the padding.\n      var length = valuePrefix.length + value.length + valueSuffix.length,\n          padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n      // If the fill character is \"0\", grouping is applied after padding.\n      if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n      // Reconstruct the final output based on the desired alignment.\n      switch (align) {\n        case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n        case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n        case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n        default: value = padding + valuePrefix + value + valueSuffix; break;\n      }\n\n      return numerals(value);\n    }\n\n    format.toString = function() {\n      return specifier + \"\";\n    };\n\n    return format;\n  }\n\n  function formatPrefix(specifier, value) {\n    var f = newFormat((specifier = Object(_formatSpecifier_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(specifier), specifier.type = \"f\", specifier)),\n        e = Math.max(-8, Math.min(8, Math.floor(Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) / 3))) * 3,\n        k = Math.pow(10, -e),\n        prefix = prefixes[8 + e / 3];\n    return function(value) {\n      return f(k * value) + prefix;\n    };\n  }\n\n  return {\n    format: newFormat,\n    formatPrefix: formatPrefix\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/locale.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/precisionFixed.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-format/src/precisionFixed.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(step) {\n  return Math.max(0, -Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(step)));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/precisionFixed.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/precisionPrefix.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-format/src/precisionPrefix.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(step, value) {\n  return Math.max(0, Math.max(-8, Math.min(8, Math.floor(Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) / 3))) * 3 - Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Math.abs(step)));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/precisionPrefix.js?");

/***/ }),

/***/ "./node_modules/d3-format/src/precisionRound.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-format/src/precisionRound.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _exponent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./exponent.js */ \"./node_modules/d3-format/src/exponent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(step, max) {\n  step = Math.abs(step), max = Math.abs(max) - step;\n  return Math.max(0, Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(max) - Object(_exponent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(step)) + 1;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-format/src/precisionRound.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/airy.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/airy.js ***!
  \****************************************************/
/*! exports provided: airyRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"airyRaw\", function() { return airyRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction airyRaw(beta) {\n  var tanBeta_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(beta / 2),\n      b = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(beta / 2)) / (tanBeta_2 * tanBeta_2);\n\n  function forward(x, y) {\n    var cosx = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(x),\n        cosy = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y),\n        siny = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(y),\n        cosz = cosy * cosx,\n        k = -((1 - cosz ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])((1 + cosz) / 2) / (1 - cosz) : -0.5) + b / (1 + cosz));\n    return [k * cosy * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(x), k * siny];\n  }\n\n  forward.invert = function(x, y) {\n    var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x * x + y * y),\n        z = -beta / 2,\n        i = 50, delta;\n    if (!r) return [0, 0];\n    do {\n      var z_2 = z / 2,\n          cosz_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(z_2),\n          sinz_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(z_2),\n          tanz_2 = sinz_2 / cosz_2,\n          lnsecz_2 = -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(cosz_2));\n      z -= delta = (2 / tanz_2 * lnsecz_2 - b * tanz_2 - r) / (-lnsecz_2 / (sinz_2 * sinz_2) + 1 - b / (2 * cosz_2 * cosz_2)) * (cosz_2 < 0 ? 0.7 : 1);\n    } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n    var sinz = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(z);\n    return [Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(x * sinz, r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(z)), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y * sinz / r)];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var beta = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(airyRaw),\n      p = m(beta);\n\n  p.radius = function(_) {\n    return arguments.length ? m(beta = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]) : beta * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n  };\n\n  return p\n      .scale(179.976)\n      .clipAngle(147);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/airy.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/aitoff.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/aitoff.js ***!
  \******************************************************/
/*! exports provided: aitoffRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"aitoffRaw\", function() { return aitoffRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction aitoffRaw(x, y) {\n  var cosy = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y), sincia = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sinci\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(cosy * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(x /= 2)));\n  return [2 * cosy * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(x) * sincia, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(y) * sincia];\n}\n\n// Abort if [x, y] is not within an ellipse centered at [0, 0] with\n// semi-major axis pi and semi-minor axis pi/2.\naitoffRaw.invert = function(x, y) {\n  if (x * x + 4 * y * y > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return;\n  var x1 = x, y1 = y, i = 25;\n  do {\n    var sinx = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(x1),\n        sinx_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(x1 / 2),\n        cosx_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(x1 / 2),\n        siny = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(y1),\n        cosy = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y1),\n        sin_2y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * y1),\n        sin2y = siny * siny,\n        cos2y = cosy * cosy,\n        sin2x_2 = sinx_2 * sinx_2,\n        c = 1 - cos2y * cosx_2 * cosx_2,\n        e = c ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(cosy * cosx_2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(f = 1 / c) : f = 0,\n        f,\n        fx = 2 * e * cosy * sinx_2 - x,\n        fy = e * siny - y,\n        dxdx = f * (cos2y * sin2x_2 + e * cosy * cosx_2 * sin2y),\n        dxdy = f * (0.5 * sinx * sin_2y - e * 2 * siny * sinx_2),\n        dydx = f * 0.25 * (sin_2y * sinx_2 - e * siny * cos2y * sinx),\n        dydy = f * (sin2y * cosx_2 + e * sin2x_2 * cosy),\n        z = dxdy * dydx - dydy * dxdx;\n    if (!z) break;\n    var dx = (fy * dxdy - fx * dydy) / z,\n        dy = (fx * dydx - fy * dxdx) / z;\n    x1 -= dx, y1 -= dy;\n  } while ((Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dx) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dy) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) && --i > 0);\n  return [x1, y1];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(aitoffRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/aitoff.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/armadillo.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/armadillo.js ***!
  \*********************************************************/
/*! exports provided: armadilloRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"armadilloRaw\", function() { return armadilloRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction armadilloRaw(phi0) {\n  var sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi0),\n      cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0),\n      sPhi0 = phi0 >= 0 ? 1 : -1,\n      tanPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(sPhi0 * phi0),\n      k = (1 + sinPhi0 - cosPhi0) / 2;\n\n  function forward(lambda, phi) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        cosLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda /= 2);\n    return [\n      (1 + cosPhi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n      (sPhi0 * phi > -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(cosLambda, tanPhi0) - 1e-3 ? 0 : -sPhi0 * 10) + k + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) * cosPhi0 - (1 + cosPhi) * sinPhi0 * cosLambda // TODO D3 core should allow null or [NaN, NaN] to be returned.\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var lambda = 0,\n        phi = 0,\n        i = 50;\n    do {\n      var cosLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda),\n          sinLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n          cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n          sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n          A = 1 + cosPhi,\n          fx = A * sinLambda - x,\n          fy = k + sinPhi * cosPhi0 - A * sinPhi0 * cosLambda - y,\n          dxdLambda = A * cosLambda / 2,\n          dxdPhi = -sinLambda * sinPhi,\n          dydLambda = sinPhi0 * A * sinLambda / 2,\n          dydPhi = cosPhi0 * cosPhi + sinPhi0 * cosLambda * sinPhi,\n          denominator = dxdPhi * dydLambda - dydPhi * dxdLambda,\n          dLambda = (fy * dxdPhi - fx * dydPhi) / denominator / 2,\n          dPhi = (fx * dydLambda - fy * dxdLambda) / denominator;\n      if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dPhi) > 2) dPhi /= 2;\n      lambda -= dLambda, phi -= dPhi;\n    } while ((Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dLambda) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dPhi) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) && --i > 0);\n    return sPhi0 * phi > -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda), tanPhi0) - 1e-3 ? [lambda * 2, phi] : null;\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var phi0 = 20 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n      sPhi0 = phi0 >= 0 ? 1 : -1,\n      tanPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(sPhi0 * phi0),\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(armadilloRaw),\n      p = m(phi0),\n      stream_ = p.stream;\n\n  p.parallel = function(_) {\n    if (!arguments.length) return phi0 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n    tanPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])((sPhi0 = (phi0 = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]) >= 0 ? 1 : -1) * phi0);\n    return m(phi0);\n  };\n\n  p.stream = function(stream) {\n    var rotate = p.rotate(),\n        rotateStream = stream_(stream),\n        sphereStream = (p.rotate([0, 0]), stream_(stream)),\n        precision = p.precision();\n    p.rotate(rotate);\n    rotateStream.sphere = function() {\n      sphereStream.polygonStart(), sphereStream.lineStart();\n      for (var lambda = sPhi0 * -180; sPhi0 * lambda < 180; lambda += sPhi0 * 90)\n        sphereStream.point(lambda, sPhi0 * 90);\n      if (phi0) while (sPhi0 * (lambda -= 3 * sPhi0 * precision) >= -180) {\n        sphereStream.point(lambda, sPhi0 * -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"] / 2), tanPhi0) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]);\n      }\n      sphereStream.lineEnd(), sphereStream.polygonEnd();\n    };\n    return rotateStream;\n  };\n\n  return p\n      .scale(218.695)\n      .center([0, 28.0974]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/armadillo.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/august.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/august.js ***!
  \******************************************************/
/*! exports provided: augustRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"augustRaw\", function() { return augustRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction augustRaw(lambda, phi) {\n  var tanPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi / 2),\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - tanPhi * tanPhi),\n      c = 1 + k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda /= 2),\n      x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * k / c,\n      y = tanPhi / c,\n      x2 = x * x,\n      y2 = y * y;\n  return [\n    4 / 3 * x * (3 + x2 - 3 * y2),\n    4 / 3 * y * (3 + 3 * x2 - y2)\n  ];\n}\n\naugustRaw.invert = function(x, y) {\n  x *= 3 / 8, y *= 3 / 8;\n  if (!x && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) > 1) return null;\n  var x2 = x * x,\n      y2 = y * y,\n      s = 1 + x2 + y2,\n      sin3Eta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((s - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(s * s - 4 * y * y)) / 2),\n      eta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sin3Eta) / 3,\n      xi = sin3Eta ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"arcosh\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y / sin3Eta)) / 3 : Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"arsinh\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x)) / 3,\n      cosEta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(eta),\n      coshXi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cosh\"])(xi),\n      d = coshXi * coshXi - cosEta * cosEta;\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sinh\"])(xi) * cosEta, 0.25 - d),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(coshXi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(eta), 0.25 + d)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(augustRaw)\n      .scale(66.1603);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/august.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/baker.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/baker.js ***!
  \*****************************************************/
/*! exports provided: bakerRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bakerRaw\", function() { return bakerRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nvar sqrt8 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(8),\n    phi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"]);\n\nfunction bakerRaw(lambda, phi) {\n  var phi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi);\n  return phi0 < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"]\n      ? [lambda, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] + phi / 2))]\n      : [lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0) * (2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"] - 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi0)), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * (2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"] * (phi0 - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"]) - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi0 / 2)))];\n}\n\nbakerRaw.invert = function(x, y) {\n  if ((y0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y)) < phi0) return [x, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"exp\"])(y)) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]];\n  var phi = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"], i = 25, delta, y0;\n  do {\n    var cosPhi_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi / 2), tanPhi_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi / 2);\n    phi -= delta = (sqrt8 * (phi - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"]) - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(tanPhi_2) - y0) / (sqrt8 - cosPhi_2 * cosPhi_2 / (2 * tanPhi_2));\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"] && --i > 0);\n  return [x / (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * (sqrt8 - 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi))), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(bakerRaw)\n      .scale(112.314);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/baker.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/berghaus.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/berghaus.js ***!
  \********************************************************/
/*! exports provided: berghausRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"berghausRaw\", function() { return berghausRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction berghausRaw(lobes) {\n  var k = 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / lobes;\n\n  function forward(lambda, phi) {\n    var p = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEquidistantRaw\"])(lambda, phi);\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) { // back hemisphere\n      var theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(p[1], p[0]),\n          r = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(p[0] * p[0] + p[1] * p[1]),\n          theta0 = k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"round\"])((theta - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) / k) + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n          alpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta -= theta0), 2 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta)); // angle relative to lobe end\n      theta = theta0 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(alpha)) - alpha;\n      p[0] = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta);\n      p[1] = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta);\n    }\n    return p;\n  }\n\n  forward.invert = function(x, y) {\n    var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x * x + y * y);\n    if (r > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) {\n      var theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y, x),\n          theta0 = k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"round\"])((theta - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) / k) + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n          s = theta > theta0 ? -1 : 1,\n          A = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta0 - theta),\n          cotAlpha = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(s * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])((A - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] - 2 * A) + r * r)));\n      theta = theta0 + 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])((cotAlpha + s * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(cotAlpha * cotAlpha - 3)) / 3);\n      x = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta), y = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta);\n    }\n    return d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEquidistantRaw\"].invert(x, y);\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var lobes = 5,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(berghausRaw),\n      p = m(lobes),\n      projectionStream = p.stream,\n      epsilon = 1e-2,\n      cr = -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(epsilon * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]),\n      sr = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(epsilon * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n\n  p.lobes = function(_) {\n    return arguments.length ? m(lobes = +_) : lobes;\n  };\n\n  p.stream = function(stream) {\n    var rotate = p.rotate(),\n        rotateStream = projectionStream(stream),\n        sphereStream = (p.rotate([0, 0]), projectionStream(stream));\n    p.rotate(rotate);\n    rotateStream.sphere = function() {\n      sphereStream.polygonStart(), sphereStream.lineStart();\n      for (var i = 0, delta = 360 / lobes, delta0 = 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / lobes, phi = 90 - 180 / lobes, phi0 = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]; i < lobes; ++i, phi -= delta, phi0 -= delta0) {\n        sphereStream.point(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(sr * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0), cr) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sr * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi0)) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]);\n        if (phi < -90) {\n          sphereStream.point(-90, -180 - phi - epsilon);\n          sphereStream.point(-90, -180 - phi + epsilon);\n        } else {\n          sphereStream.point(90, phi + epsilon);\n          sphereStream.point(90, phi - epsilon);\n        }\n      }\n      sphereStream.lineEnd(), sphereStream.polygonEnd();\n    };\n    return rotateStream;\n  };\n\n  return p\n      .scale(87.8076)\n      .center([0, 17.1875])\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/berghaus.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/bertin.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/bertin.js ***!
  \******************************************************/
/*! exports provided: bertin1953Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bertin1953Raw\", function() { return bertin1953Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _hammer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hammer.js */ \"./node_modules/d3-geo-projection/src/hammer.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _newton_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./newton.js */ \"./node_modules/d3-geo-projection/src/newton.js\");\n\n\n\n\n\n// Bertin 1953 as a modified Briesemeister\n// https://bl.ocks.org/Fil/5b9ee9636dfb6ffa53443c9006beb642\nfunction bertin1953Raw() {\n  var hammer = Object(_hammer_js__WEBPACK_IMPORTED_MODULE_1__[\"hammerRaw\"])(1.68, 2),\n      fu = 1.4, k = 12;\n\n  function forward(lambda, phi) {\n\n    if (lambda + phi < -fu) {\n      var u = (lambda - phi + 1.6) * (lambda + phi + fu) / 8;\n      lambda += u;\n      phi -= 0.8 * u * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] / 2);\n    }\n\n    var r = hammer(lambda, phi);\n\n    var d = (1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(lambda * phi)) / k;\n\n    if (r[1] < 0) {\n      r[0] *= 1 + d;\n    }\n    if (r[1] > 0) {\n      r[1] *= 1 + d / 1.5 * r[0] * r[0];\n    }\n\n    return r;\n  }\n  \n  forward.invert = Object(_newton_js__WEBPACK_IMPORTED_MODULE_3__[\"solve2d\"])(forward);\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  // this projection should not be rotated\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(bertin1953Raw())\n    .rotate([-16.5, -42])\n    .scale(176.57)\n    .center([7.93, 0.09]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/bertin.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/boggs.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/boggs.js ***!
  \*****************************************************/
/*! exports provided: boggsRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boggsRaw\", function() { return boggsRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n\nvar k = 2.00276,\n    w = 1.11072;\n\nfunction boggsRaw(lambda, phi) {\n  var theta = Object(_mollweide_js__WEBPACK_IMPORTED_MODULE_1__[\"mollweideBromleyTheta\"])(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"], phi);\n  return [k * lambda / (1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi) + w / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(theta)), (phi + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(theta)) / k];\n}\n\nboggsRaw.invert = function(x, y) {\n  var ky = k * y, theta = y < 0 ? -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"quarterPi\"] : _math_js__WEBPACK_IMPORTED_MODULE_2__[\"quarterPi\"], i = 25, delta, phi;\n  do {\n    phi = ky - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(theta);\n    theta -= delta = (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(2 * theta) + 2 * theta - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi)) / (2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(2 * theta) + 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(theta));\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] && --i > 0);\n  phi = ky - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(theta);\n  return [x * (1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi) + w / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(theta)) / k, phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(boggsRaw)\n      .scale(160.857);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/boggs.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/bonne.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/bonne.js ***!
  \*****************************************************/
/*! exports provided: bonneRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bonneRaw\", function() { return bonneRaw; });\n/* harmony import */ var _parallel1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parallel1.js */ \"./node_modules/d3-geo-projection/src/parallel1.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _sinusoidal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sinusoidal.js */ \"./node_modules/d3-geo-projection/src/sinusoidal.js\");\n\n\n\n\nfunction bonneRaw(phi0) {\n  if (!phi0) return _sinusoidal_js__WEBPACK_IMPORTED_MODULE_2__[\"sinusoidalRaw\"];\n  var cotPhi0 = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi0);\n\n  function forward(lambda, phi) {\n    var rho = cotPhi0 + phi0 - phi,\n        e = rho ? lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) / rho : rho;\n    return [rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(e), cotPhi0 - rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(e)];\n  }\n\n  forward.invert = function(x, y) {\n    var rho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x * x + (y = cotPhi0 - y) * y),\n        phi = cotPhi0 + phi0 - rho;\n    return [rho / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(x, y), phi];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_parallel1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(bonneRaw)\n      .scale(123.082)\n      .center([0, 26.1441])\n      .parallel(45);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/bonne.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/bottomley.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/bottomley.js ***!
  \*********************************************************/
/*! exports provided: bottomleyRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bottomleyRaw\", function() { return bottomleyRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction bottomleyRaw(sinPsi) {\n\n  function forward(lambda, phi) {\n    var rho = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - phi,\n        eta = rho ? lambda * sinPsi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rho) / rho : rho;\n    return [rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(eta) / sinPsi, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(eta)];\n  }\n\n  forward.invert = function(x, y) {\n    var x1 = x * sinPsi,\n        y1 = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - y,\n        rho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x1 * x1 + y1 * y1),\n        eta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(x1, y1);\n    return [(rho ? rho / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rho) : 1) * eta / sinPsi, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - rho];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var sinPsi = 0.5,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(bottomleyRaw),\n      p = m(sinPsi);\n\n  p.fraction = function(_) {\n    return arguments.length ? m(sinPsi = +_) : sinPsi;\n  };\n\n  return p\n      .scale(158.837);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/bottomley.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/bromley.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/bromley.js ***!
  \*******************************************************/
/*! exports provided: bromleyRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bromleyRaw\", function() { return bromleyRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n\n\n\n\nvar bromleyRaw = Object(_mollweide_js__WEBPACK_IMPORTED_MODULE_2__[\"mollweideBromleyRaw\"])(1, 4 / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(bromleyRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/bromley.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/chamberlin.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/chamberlin.js ***!
  \**********************************************************/
/*! exports provided: chamberlinRaw, chamberlinAfrica, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chamberlinRaw\", function() { return chamberlinRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chamberlinAfrica\", function() { return chamberlinAfrica; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return chamberlin; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _newton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./newton.js */ \"./node_modules/d3-geo-projection/src/newton.js\");\n\n\n\n\n// Azimuthal distance.\nfunction distance(dPhi, c1, s1, c2, s2, dLambda) {\n  var cosdLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(dLambda), r;\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dPhi) > 1 || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dLambda) > 1) {\n    r = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(s1 * s2 + c1 * c2 * cosdLambda);\n  } else {\n    var sindPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(dPhi / 2), sindLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(dLambda / 2);\n    r = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(sindPhi * sindPhi + c1 * c2 * sindLambda * sindLambda));\n  }\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(r) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] ? [r, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(c2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(dLambda), c1 * s2 - s1 * c2 * cosdLambda)] : [0, 0];\n}\n\n// Angle opposite a, and contained between sides of lengths b and c.\nfunction angle(b, c, a) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])((b * b + c * c - a * a) / (2 * b * c));\n}\n\n// Normalize longitude.\nfunction longitude(lambda) {\n  return lambda - 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"floor\"])((lambda + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / (2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]));\n}\n\nfunction chamberlinRaw(p0, p1, p2) {\n  var points = [\n    [p0[0], p0[1], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(p0[1]), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(p0[1])],\n    [p1[0], p1[1], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(p1[1]), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(p1[1])],\n    [p2[0], p2[1], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(p2[1]), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(p2[1])]\n  ];\n\n  for (var a = points[2], b, i = 0; i < 3; ++i, a = b) {\n    b = points[i];\n    a.v = distance(b[1] - a[1], a[3], a[2], b[3], b[2], b[0] - a[0]);\n    a.point = [0, 0];\n  }\n\n  var beta0 = angle(points[0].v[0], points[2].v[0], points[1].v[0]),\n      beta1 = angle(points[0].v[0], points[1].v[0], points[2].v[0]),\n      beta2 = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] - beta0;\n\n  points[2].point[1] = 0;\n  points[0].point[0] = -(points[1].point[0] = points[0].v[0] / 2);\n\n  var mean = [\n    points[2].point[0] = points[0].point[0] + points[2].v[0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(beta0),\n    2 * (points[0].point[1] = points[1].point[1] = points[2].v[0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(beta0))\n  ];\n\n  function forward(lambda, phi) {\n    var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        v = new Array(3), i;\n\n    // Compute distance and azimuth from control points.\n    for (i = 0; i < 3; ++i) {\n      var p = points[i];\n      v[i] = distance(phi - p[1], p[3], p[2], cosPhi, sinPhi, lambda - p[0]);\n      if (!v[i][0]) return p.point;\n      v[i][1] = longitude(v[i][1] - p.v[1]);\n    }\n\n    // Arithmetic mean of interception points.\n    var point = mean.slice();\n    for (i = 0; i < 3; ++i) {\n      var j = i == 2 ? 0 : i + 1;\n      var a = angle(points[i].v[0], v[i][0], v[j][0]);\n      if (v[i][1] < 0) a = -a;\n\n      if (!i) {\n        point[0] += v[i][0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(a);\n        point[1] -= v[i][0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(a);\n      } else if (i == 1) {\n        a = beta1 - a;\n        point[0] -= v[i][0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(a);\n        point[1] -= v[i][0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(a);\n      } else {\n        a = beta2 - a;\n        point[0] += v[i][0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(a);\n        point[1] += v[i][0] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(a);\n      }\n    }\n\n    point[0] /= 3, point[1] /= 3;\n    return point;\n  }\n\n  return forward;\n}\n\nfunction pointRadians(p) {\n  return p[0] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], p[1] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], p;\n}\n\nfunction chamberlinAfrica() {\n  return chamberlin([0, 22], [45, 22], [22.5, -22])\n      .scale(380)\n      .center([22.5, 2]);\n}\n\nfunction chamberlin(p0, p1, p2) { // TODO order matters!\n  var c = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoCentroid\"])({type: \"MultiPoint\", coordinates: [p0, p1, p2]}),\n      R = [-c[0], -c[1]],\n      r = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoRotation\"])(R),\n      f = chamberlinRaw(pointRadians(r(p0)), pointRadians(r(p1)), pointRadians(r(p2)));\n  f.invert = Object(_newton_js__WEBPACK_IMPORTED_MODULE_2__[\"solve2d\"])(f);\n  var p = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(f).rotate(R),\n      center = p.center;\n\n  delete p.rotate;\n\n  p.center = function(_) {\n    return arguments.length ? center(r(_)) : r.invert(center());\n  };\n\n  return p\n      .clipAngle(90);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/chamberlin.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/collignon.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/collignon.js ***!
  \*********************************************************/
/*! exports provided: collignonRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"collignonRaw\", function() { return collignonRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction collignonRaw(lambda, phi) {\n  var alpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi));\n  return [(2 / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"]) * lambda * alpha, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] * (1 - alpha)];\n}\n\ncollignonRaw.invert = function(x, y) {\n  var lambda = (lambda = y / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] - 1) * lambda;\n  return [lambda > 0 ? x * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / lambda) / 2 : 0, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(1 - lambda)];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(collignonRaw)\n      .scale(95.6464)\n      .center([0, 30]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/collignon.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/craig.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/craig.js ***!
  \*****************************************************/
/*! exports provided: craigRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"craigRaw\", function() { return craigRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _parallel1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parallel1.js */ \"./node_modules/d3-geo-projection/src/parallel1.js\");\n\n\n\nfunction craigRaw(phi0) {\n  var tanPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi0);\n\n  function forward(lambda, phi) {\n    return [lambda, (lambda ? lambda / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(lambda) : 1) * (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(lambda) - tanPhi0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi))];\n  }\n\n  forward.invert = tanPhi0 ? function(x, y) {\n    if (x) y *= Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x) / x;\n    var cosLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x);\n    return [x, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(cosLambda * cosLambda + tanPhi0 * tanPhi0 - y * y) - cosLambda, tanPhi0 - y)];\n  } : function(x, y) {\n    return [x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(x ? y * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(x) / x : y)];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_parallel1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(craigRaw)\n      .scale(249.828)\n      .clipAngle(90);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/craig.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/craster.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/craster.js ***!
  \*******************************************************/
/*! exports provided: crasterRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"crasterRaw\", function() { return crasterRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nvar sqrt3 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3);\n\nfunction crasterRaw(lambda, phi) {\n  return [sqrt3 * lambda * (2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(2 * phi / 3) - 1) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"], sqrt3 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi / 3)];\n}\n\ncrasterRaw.invert = function(x, y) {\n  var phi = 3 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y / (sqrt3 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"]));\n  return [_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] * x / (sqrt3 * (2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(2 * phi / 3) - 1)), phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(crasterRaw)\n      .scale(156.19);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/craster.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/cylindricalEqualArea.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/cylindricalEqualArea.js ***!
  \********************************************************************/
/*! exports provided: cylindricalEqualAreaRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cylindricalEqualAreaRaw\", function() { return cylindricalEqualAreaRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _parallel1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parallel1.js */ \"./node_modules/d3-geo-projection/src/parallel1.js\");\n\n\n\nfunction cylindricalEqualAreaRaw(phi0) {\n  var cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi0);\n\n  function forward(lambda, phi) {\n    return [lambda * cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi) / cosPhi0];\n  }\n\n  forward.invert = function(x, y) {\n    return [x / cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(y * cosPhi0)];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_parallel1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cylindricalEqualAreaRaw)\n      .parallel(38.58) // acos(sqrt(width / height / pi)) * radians\n      .scale(195.044); // width / (sqrt(width / height / pi) * 2 * pi)\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/cylindricalEqualArea.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/cylindricalStereographic.js":
/*!************************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/cylindricalStereographic.js ***!
  \************************************************************************/
/*! exports provided: cylindricalStereographicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cylindricalStereographicRaw\", function() { return cylindricalStereographicRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _parallel1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parallel1.js */ \"./node_modules/d3-geo-projection/src/parallel1.js\");\n\n\n\nfunction cylindricalStereographicRaw(phi0) {\n  var cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi0);\n\n  function forward(lambda, phi) {\n    return [lambda * cosPhi0, (1 + cosPhi0) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi / 2)];\n  }\n\n  forward.invert = function(x, y) {\n    return [x / cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(y / (1 + cosPhi0)) * 2];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_parallel1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(cylindricalStereographicRaw)\n      .scale(124.75);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/cylindricalStereographic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eckert1.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eckert1.js ***!
  \*******************************************************/
/*! exports provided: eckert1Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eckert1Raw\", function() { return eckert1Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction eckert1Raw(lambda, phi) {\n  var alpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(8 / (3 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]));\n  return [\n    alpha * lambda * (1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]),\n    alpha * phi\n  ];\n}\n\neckert1Raw.invert = function(x, y) {\n  var alpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(8 / (3 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])),\n      phi = y / alpha;\n  return [\n    x / (alpha * (1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])),\n    phi\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eckert1Raw)\n      .scale(165.664);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eckert1.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eckert2.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eckert2.js ***!
  \*******************************************************/
/*! exports provided: eckert2Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eckert2Raw\", function() { return eckert2Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction eckert2Raw(lambda, phi) {\n  var alpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(4 - 3 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi)));\n  return [\n    2 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(6 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) * lambda * alpha,\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 3) * (2 - alpha)\n  ];\n}\n\neckert2Raw.invert = function(x, y) {\n  var alpha = 2 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 3);\n  return [\n    x * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(6 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / (2 * alpha),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((4 - alpha * alpha) / 3)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eckert2Raw)\n      .scale(165.664);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eckert2.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eckert3.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eckert3.js ***!
  \*******************************************************/
/*! exports provided: eckert3Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eckert3Raw\", function() { return eckert3Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction eckert3Raw(lambda, phi) {\n  var k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]));\n  return [\n    2 / k * lambda * (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - 4 * phi * phi / (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]))),\n    4 / k * phi\n  ];\n}\n\neckert3Raw.invert = function(x, y) {\n  var k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])) / 2;\n  return [\n    x * k / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - y * y * (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / (4 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]))),\n    y * k / 2\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eckert3Raw)\n      .scale(180.739);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eckert3.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eckert4.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eckert4.js ***!
  \*******************************************************/
/*! exports provided: eckert4Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eckert4Raw\", function() { return eckert4Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction eckert4Raw(lambda, phi) {\n  var k = (2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n  phi /= 2;\n  for (var i = 0, delta = Infinity; i < 10 && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]; i++) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n    phi -= delta = (phi + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) * (cosPhi + 2) - k) / (2 * cosPhi * (1 + cosPhi));\n  }\n  return [\n    2 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])) * lambda * (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi)),\n    2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)\n  ];\n}\n\neckert4Raw.invert = function(x, y) {\n  var A = y * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / 2,\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(A),\n      c = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(k);\n  return [\n    x / (2 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])) * (1 + c)),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((k + A * (c + 2)) / (2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]))\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eckert4Raw)\n      .scale(180.739);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eckert4.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eckert5.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eckert5.js ***!
  \*******************************************************/
/*! exports provided: eckert5Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eckert5Raw\", function() { return eckert5Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction eckert5Raw(lambda, phi) {\n  return [\n    lambda * (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi)) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]),\n    2 * phi / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])\n  ];\n}\n\neckert5Raw.invert = function(x, y) {\n  var k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]),\n      phi = y * k / 2;\n  return [\n    k * x / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi)),\n    phi\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eckert5Raw)\n      .scale(173.044);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eckert5.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eckert6.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eckert6.js ***!
  \*******************************************************/
/*! exports provided: eckert6Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eckert6Raw\", function() { return eckert6Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction eckert6Raw(lambda, phi) {\n  var k = (1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n  for (var i = 0, delta = Infinity; i < 10 && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]; i++) {\n    phi -= delta = (phi + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) - k) / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi));\n  }\n  k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n  return [\n    lambda * (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi)) / k,\n    2 * phi / k\n  ];\n}\n\neckert6Raw.invert = function(x, y) {\n  var j = 1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(j / 2);\n  return [\n    x * 2 * k / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y *= k)),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((y + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(y)) / j)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eckert6Raw)\n      .scale(173.044);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eckert6.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/eisenlohr.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/eisenlohr.js ***!
  \*********************************************************/
/*! exports provided: eisenlohrRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"eisenlohrRaw\", function() { return eisenlohrRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _august_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./august.js */ \"./node_modules/d3-geo-projection/src/august.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n\nvar eisenlohrK = 3 + 2 * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"];\n\nfunction eisenlohrRaw(lambda, phi) {\n  var s0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(lambda /= 2),\n      c0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(lambda),\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi)),\n      c1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi /= 2),\n      t = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi) / (c1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c0 * k),\n      c = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(2 / (1 + t * t)),\n      v = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])((_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c1 + (c0 + s0) * k) / (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c1 + (c0 - s0) * k));\n  return [\n    eisenlohrK * (c * (v - 1 / v) - 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"log\"])(v)),\n    eisenlohrK * (c * t * (v + 1 / v) - 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan\"])(t))\n  ];\n}\n\neisenlohrRaw.invert = function(x, y) {\n  if (!(p = _august_js__WEBPACK_IMPORTED_MODULE_1__[\"augustRaw\"].invert(x / 1.2, y * 1.065))) return null;\n  var lambda = p[0], phi = p[1], i = 20, p;\n  x /= eisenlohrK, y /= eisenlohrK;\n  do {\n    var _0 = lambda / 2,\n        _1 = phi / 2,\n        s0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(_0),\n        c0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(_0),\n        s1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(_1),\n        c1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(_1),\n        cos1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi),\n        k = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(cos1),\n        t = s1 / (c1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c0 * k),\n        t2 = t * t,\n        c = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(2 / (1 + t2)),\n        v0 = (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c1 + (c0 + s0) * k),\n        v1 = (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c1 + (c0 - s0) * k),\n        v2 = v0 / v1,\n        v = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(v2),\n        vm1v = v - 1 / v,\n        vp1v = v + 1 / v,\n        fx = c * vm1v - 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"log\"])(v) - x,\n        fy = c * t * vp1v - 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan\"])(t) - y,\n        deltatDeltaLambda = s1 && _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt1_2\"] * k * s0 * t2 / s1,\n        deltatDeltaPhi = (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c0 * c1 + k) / (2 * (c1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c0 * k) * (c1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c0 * k) * k),\n        deltacDeltat = -0.5 * t * c * c * c,\n        deltacDeltaLambda = deltacDeltat * deltatDeltaLambda,\n        deltacDeltaPhi = deltacDeltat * deltatDeltaPhi,\n        A = (A = 2 * c1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * k * (c0 - s0)) * A * v,\n        deltavDeltaLambda = (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * c0 * c1 * k + cos1) / A,\n        deltavDeltaPhi = -(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] * s0 * s1) / (k * A),\n        deltaxDeltaLambda = vm1v * deltacDeltaLambda - 2 * deltavDeltaLambda / v + c * (deltavDeltaLambda + deltavDeltaLambda / v2),\n        deltaxDeltaPhi = vm1v * deltacDeltaPhi - 2 * deltavDeltaPhi / v + c * (deltavDeltaPhi + deltavDeltaPhi / v2),\n        deltayDeltaLambda = t * vp1v * deltacDeltaLambda - 2 * deltatDeltaLambda / (1 + t2) + c * vp1v * deltatDeltaLambda + c * t * (deltavDeltaLambda - deltavDeltaLambda / v2),\n        deltayDeltaPhi = t * vp1v * deltacDeltaPhi - 2 * deltatDeltaPhi / (1 + t2) + c * vp1v * deltatDeltaPhi + c * t * (deltavDeltaPhi - deltavDeltaPhi / v2),\n        denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda;\n    if (!denominator) break;\n    var deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator,\n        deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n    lambda -= deltaLambda;\n    phi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"max\"])(-_math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"], Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"min\"])(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"], phi - deltaPhi));\n  } while ((Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(deltaLambda) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(deltaPhi) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) && --i > 0);\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(phi) - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] ? [0, phi] : i && [lambda, phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(eisenlohrRaw)\n      .scale(62.5271);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/eisenlohr.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/elliptic.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/elliptic.js ***!
  \********************************************************/
/*! exports provided: ellipticJi, ellipticJ, ellipticFi, ellipticF */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ellipticJi\", function() { return ellipticJi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ellipticJ\", function() { return ellipticJ; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ellipticFi\", function() { return ellipticFi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ellipticF\", function() { return ellipticF; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n// Returns [sn, cn, dn](u + iv|m).\nfunction ellipticJi(u, v, m) {\n  var a, b, c;\n  if (!u) {\n    b = ellipticJ(v, 1 - m);\n    return [\n      [0, b[0] / b[1]],\n      [1 / b[1], 0],\n      [b[2] / b[1], 0]\n    ];\n  }\n  a = ellipticJ(u, m);\n  if (!v) return [[a[0], 0], [a[1], 0], [a[2], 0]];\n  b = ellipticJ(v, 1 - m);\n  c = b[1] * b[1] + m * a[0] * a[0] * b[0] * b[0];\n  return [\n    [a[0] * b[2] / c, a[1] * a[2] * b[0] * b[1] / c],\n    [a[1] * b[1] / c, -a[0] * a[2] * b[0] * b[2] / c],\n    [a[2] * b[1] * b[2] / c, -m * a[0] * a[1] * b[0] / c]\n  ];\n}\n\n// Returns [sn, cn, dn, ph](u|m).\nfunction ellipticJ(u, m) {\n  var ai, b, phi, t, twon;\n  if (m < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) {\n    t = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(u);\n    b = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(u);\n    ai = m * (u - t * b) / 4;\n    return [\n      t - ai * b,\n      b + ai * t,\n      1 - m * t * t / 2,\n      u - ai\n    ];\n  }\n  if (m >= 1 - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) {\n    ai = (1 - m) / 4;\n    b = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cosh\"])(u);\n    t = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tanh\"])(u);\n    phi = 1 / b;\n    twon = b * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sinh\"])(u);\n    return [\n      t + ai * (twon - u) / (b * b),\n      phi - ai * t * phi * (twon - u),\n      phi + ai * t * phi * (twon + u),\n      2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"exp\"])(u)) - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] + ai * (twon - u) / b\n    ];\n  }\n\n  var a = [1, 0, 0, 0, 0, 0, 0, 0, 0],\n      c = [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(m), 0, 0, 0, 0, 0, 0, 0, 0],\n      i = 0;\n  b = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(1 - m);\n  twon = 1;\n\n  while (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(c[i] / a[i]) > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] && i < 8) {\n    ai = a[i++];\n    c[i] = (ai - b) / 2;\n    a[i] = (ai + b) / 2;\n    b = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(ai * b);\n    twon *= 2;\n  }\n\n  phi = twon * a[i] * u;\n  do {\n    t = c[i] * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(b = phi) / a[i];\n    phi = (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(t) + phi) / 2;\n  } while (--i);\n\n  return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi), t = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi), t / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi - b), phi];\n}\n\n// Calculate F(phi+iPsi|m).\n// See Abramowitz and Stegun, 17.4.11.\nfunction ellipticFi(phi, psi, m) {\n  var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(phi),\n      i = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(psi),\n      sinhPsi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sinh\"])(i);\n  if (r) {\n    var cscPhi = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(r),\n        cotPhi2 = 1 / (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(r) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(r)),\n        b = -(cotPhi2 + m * (sinhPsi * sinhPsi * cscPhi * cscPhi) - 1 + m),\n        c = (m - 1) * cotPhi2,\n        cotLambda2 = (-b + Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(b * b - 4 * c)) / 2;\n    return [\n      ellipticF(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(cotLambda2)), m) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(phi),\n      ellipticF(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])((cotLambda2 / cotPhi2 - 1) / m)), 1 - m) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(psi)\n    ];\n  }\n  return [\n    0,\n    ellipticF(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(sinhPsi), 1 - m) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(psi)\n  ];\n}\n\n// Calculate F(phi|m) where m = k² = sin²α.\n// See Abramowitz and Stegun, 17.6.7.\nfunction ellipticF(phi, m) {\n  if (!m) return phi;\n  if (m === 1) return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"quarterPi\"]));\n  var a = 1,\n      b = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(1 - m),\n      c = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(m);\n  for (var i = 0; Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(c) > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]; i++) {\n    if (phi % _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"]) {\n      var dPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(b * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi) / a);\n      if (dPhi < 0) dPhi += _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"];\n      phi += dPhi + ~~(phi / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"]) * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"];\n    } else phi += phi;\n    c = (a + b) / 2;\n    b = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(a * b);\n    c = ((a = c) - b) / 2;\n  }\n  return phi / (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"pow\"])(2, i) * a);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/elliptic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/fahey.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/fahey.js ***!
  \*****************************************************/
/*! exports provided: faheyRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"faheyRaw\", function() { return faheyRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nvar faheyK = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(35 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n\nfunction faheyRaw(lambda, phi) {\n  var t = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi / 2);\n  return [lambda * faheyK * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - t * t), (1 + faheyK) * t];\n}\n\nfaheyRaw.invert = function(x, y) {\n  var t = y / (1 + faheyK);\n  return [x && x / (faheyK * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - t * t)), 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(t)];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(faheyRaw)\n      .scale(137.152);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/fahey.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/foucaut.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/foucaut.js ***!
  \*******************************************************/
/*! exports provided: foucautRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"foucautRaw\", function() { return foucautRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction foucautRaw(lambda, phi) {\n  var k = phi / 2, cosk = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(k);\n  return [ 2 * lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * cosk * cosk, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(k)];\n}\n\nfoucautRaw.invert = function(x, y) {\n  var k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(y / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"]), cosk = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(k), phi = 2 * k;\n  return [x * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrtPi\"] / 2 / (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * cosk * cosk), phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(foucautRaw)\n      .scale(135.264);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/foucaut.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/foucautSinusoidal.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/foucautSinusoidal.js ***!
  \*****************************************************************/
/*! exports provided: foucautSinusoidalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"foucautSinusoidalRaw\", function() { return foucautSinusoidalRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _newton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./newton.js */ \"./node_modules/d3-geo-projection/src/newton.js\");\n\n\n\n\nfunction foucautSinusoidalRaw(alpha) {\n  var beta = 1 - alpha,\n      equatorial = raw(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], 0)[0] - raw(-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], 0)[0],\n      polar = raw(0, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"])[1] - raw(0, -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"])[1],\n      ratio = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 * polar / equatorial);\n\n  function raw(lambda, phi) {\n    var cosphi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        sinphi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n    return [\n      cosphi / (beta + alpha * cosphi) * lambda,\n      beta * phi + alpha * sinphi\n    ];\n  }\n\n  function forward(lambda, phi) {\n    var p = raw(lambda, phi);\n    return [p[0] * ratio, p[1] / ratio];\n  }\n\n  function forwardMeridian(phi) {\n    return forward(0, phi)[1];\n  }\n\n  forward.invert = function(x, y) {\n    var phi = Object(_newton_js__WEBPACK_IMPORTED_MODULE_2__[\"solve\"])(forwardMeridian, y),\n        lambda = x / ratio * (alpha + beta / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi));\n    return [lambda, phi];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var alpha = 0.5,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(foucautSinusoidalRaw),\n      p = m(alpha);\n\n  p.alpha = function(_) {\n    return arguments.length ? m(alpha = +_) : alpha;\n  };\n\n  return p\n      .scale(168.725);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/foucautSinusoidal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/gilbert.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/gilbert.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction gilbertForward(point) {\n  return [point[0] / 2, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(point[1] / 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"])) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]];\n}\n\nfunction gilbertInvert(point) {\n  return [point[0] * 2, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(point[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"])) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(projectionType) {\n  if (projectionType == null) projectionType = d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoOrthographic\"];\n  var projection = projectionType(),\n      equirectangular = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoEquirectangular\"])().scale(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]).precision(0).clipAngle(null).translate([0, 0]); // antimeridian cutting\n\n  function gilbert(point) {\n    return projection(gilbertForward(point));\n  }\n\n  if (projection.invert) gilbert.invert = function(point) {\n    return gilbertInvert(projection.invert(point));\n  };\n\n  gilbert.stream = function(stream) {\n    var s1 = projection.stream(stream), s0 = equirectangular.stream({\n      point: function(lambda, phi) { s1.point(lambda / 2, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(-phi / 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"])) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]); },\n      lineStart: function() { s1.lineStart(); },\n      lineEnd: function() { s1.lineEnd(); },\n      polygonStart: function() { s1.polygonStart(); },\n      polygonEnd: function() { s1.polygonEnd(); }\n    });\n    s0.sphere = s1.sphere;\n    return s0;\n  };\n\n  function property(name) {\n    gilbert[name] = function() {\n      return arguments.length ? (projection[name].apply(projection, arguments), gilbert) : projection[name]();\n    };\n  }\n\n  gilbert.rotate = function(_) {\n    return arguments.length ? (equirectangular.rotate(_), gilbert) : equirectangular.rotate();\n  };\n\n  gilbert.center = function(_) {\n    return arguments.length ? (projection.center(gilbertForward(_)), gilbert) : gilbertInvert(projection.center());\n  };\n\n  property(\"angle\");\n  property(\"clipAngle\");\n  property(\"clipExtent\");\n  property(\"fitExtent\");\n  property(\"fitHeight\");\n  property(\"fitSize\");\n  property(\"fitWidth\");\n  property(\"scale\");\n  property(\"translate\");\n  property(\"precision\");\n\n  return gilbert\n      .scale(249.5);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/gilbert.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/gingery.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/gingery.js ***!
  \*******************************************************/
/*! exports provided: gingeryRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gingeryRaw\", function() { return gingeryRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction gingeryRaw(rho, n) {\n  var k = 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / n,\n      rho2 = rho * rho;\n\n  function forward(lambda, phi) {\n    var p = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEquidistantRaw\"])(lambda, phi),\n        x = p[0],\n        y = p[1],\n        r2 = x * x + y * y;\n\n    if (r2 > rho2) {\n      var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(r2),\n          theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y, x),\n          theta0 = k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"round\"])(theta / k),\n          alpha = theta - theta0,\n          rhoCosAlpha = rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(alpha),\n          k_ = (rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(alpha) - alpha * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rhoCosAlpha)) / (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - rhoCosAlpha),\n          s_ = gingeryLength(alpha, k_),\n          e = (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] - rho) / gingeryIntegrate(s_, rhoCosAlpha, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n\n      x = r;\n      var i = 50, delta;\n      do {\n        x -= delta = (rho + gingeryIntegrate(s_, rhoCosAlpha, x) * e - r) / (s_(x) * e);\n      } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n\n      y = alpha * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(x);\n      if (x < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) y -= k_ * (x - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]);\n\n      var s = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta0),\n          c = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta0);\n      p[0] = x * c - y * s;\n      p[1] = x * s + y * c;\n    }\n    return p;\n  }\n\n  forward.invert = function(x, y) {\n    var r2 = x * x + y * y;\n    if (r2 > rho2) {\n      var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(r2),\n          theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y, x),\n          theta0 = k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"round\"])(theta / k),\n          dTheta = theta - theta0;\n\n      x = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(dTheta);\n      y = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(dTheta);\n\n      var x_halfPi = x - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n          sinx = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(x),\n          alpha = y / sinx,\n          delta = x < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] ? Infinity : 0,\n          i = 10;\n\n      while (true) {\n        var rhosinAlpha = rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(alpha),\n            rhoCosAlpha = rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(alpha),\n            sinRhoCosAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rhoCosAlpha),\n            halfPi_RhoCosAlpha = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - rhoCosAlpha,\n            k_ = (rhosinAlpha - alpha * sinRhoCosAlpha) / halfPi_RhoCosAlpha,\n            s_ = gingeryLength(alpha, k_);\n\n        if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"] || !--i) break;\n\n        alpha -= delta = (alpha * sinx - k_ * x_halfPi - y) / (\n          sinx - x_halfPi * 2 * (\n            halfPi_RhoCosAlpha * (rhoCosAlpha + alpha * rhosinAlpha * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(rhoCosAlpha) - sinRhoCosAlpha) -\n            rhosinAlpha * (rhosinAlpha - alpha * sinRhoCosAlpha)\n          ) / (halfPi_RhoCosAlpha * halfPi_RhoCosAlpha));\n      }\n      r = rho + gingeryIntegrate(s_, rhoCosAlpha, x) * (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] - rho) / gingeryIntegrate(s_, rhoCosAlpha, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n      theta = theta0 + alpha;\n      x = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta);\n      y = r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta);\n    }\n    return d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEquidistantRaw\"].invert(x, y);\n  };\n\n  return forward;\n}\n\nfunction gingeryLength(alpha, k) {\n  return function(x) {\n    var y_ = alpha * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(x);\n    if (x < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) y_ -= k;\n    return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 + y_ * y_);\n  };\n}\n\n// Numerical integration: trapezoidal rule.\nfunction gingeryIntegrate(f, a, b) {\n  var n = 50,\n      h = (b - a) / n,\n      s = f(a) + f(b);\n  for (var i = 1, x = a; i < n; ++i) s += 2 * f(x += h);\n  return s * 0.5 * h;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var n = 6,\n      rho = 30 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n      cRho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(rho),\n      sRho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rho),\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(gingeryRaw),\n      p = m(rho, n),\n      stream_ = p.stream,\n      epsilon = 1e-2,\n      cr = -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(epsilon * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]),\n      sr = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(epsilon * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n\n  p.radius = function(_) {\n    if (!arguments.length) return rho * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n    cRho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(rho = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n    sRho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rho);\n    return m(rho, n);\n  };\n\n  p.lobes = function(_) {\n    if (!arguments.length) return n;\n    return m(rho, n = +_);\n  };\n\n  p.stream = function(stream) {\n    var rotate = p.rotate(),\n        rotateStream = stream_(stream),\n        sphereStream = (p.rotate([0, 0]), stream_(stream));\n    p.rotate(rotate);\n    rotateStream.sphere = function() {\n      sphereStream.polygonStart(), sphereStream.lineStart();\n      for (var i = 0, delta = 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / n, phi = 0; i < n; ++i, phi -= delta) {\n        sphereStream.point(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(sr * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi), cr) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sr * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]);\n        sphereStream.point(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(sRho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi - delta / 2), cRho) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sRho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi - delta / 2)) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]);\n      }\n      sphereStream.lineEnd(), sphereStream.polygonEnd();\n    };\n    return rotateStream;\n  };\n\n  return p\n      .rotate([90, -40])\n      .scale(91.7095)\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/gingery.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/ginzburg4.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/ginzburg4.js ***!
  \*********************************************************/
/*! exports provided: ginzburg4Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ginzburg4Raw\", function() { return ginzburg4Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ginzburgPolyconic.js */ \"./node_modules/d3-geo-projection/src/ginzburgPolyconic.js\");\n\n\n\nvar ginzburg4Raw = Object(_ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(2.8284, -1.6988, 0.75432, -0.18071, 1.76003, -0.38914, 0.042555);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(ginzburg4Raw)\n      .scale(149.995);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/ginzburg4.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/ginzburg5.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/ginzburg5.js ***!
  \*********************************************************/
/*! exports provided: ginzburg5Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ginzburg5Raw\", function() { return ginzburg5Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ginzburgPolyconic.js */ \"./node_modules/d3-geo-projection/src/ginzburgPolyconic.js\");\n\n\n\nvar ginzburg5Raw = Object(_ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(2.583819, -0.835827, 0.170354, -0.038094, 1.543313, -0.411435,0.082742);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(ginzburg5Raw)\n      .scale(153.93);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/ginzburg5.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/ginzburg6.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/ginzburg6.js ***!
  \*********************************************************/
/*! exports provided: ginzburg6Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ginzburg6Raw\", function() { return ginzburg6Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ginzburgPolyconic.js */ \"./node_modules/d3-geo-projection/src/ginzburgPolyconic.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n\nvar ginzburg6Raw = Object(_ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(5 / 6 * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"], -0.62636, -0.0344, 0, 1.3493, -0.05524, 0, 0.045);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(ginzburg6Raw)\n      .scale(130.945);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/ginzburg6.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/ginzburg8.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/ginzburg8.js ***!
  \*********************************************************/
/*! exports provided: ginzburg8Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ginzburg8Raw\", function() { return ginzburg8Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction ginzburg8Raw(lambda, phi) {\n  var lambda2 = lambda * lambda,\n      phi2 = phi * phi;\n  return [\n    lambda * (1 - 0.162388 * phi2) * (0.87 - 0.000952426 * lambda2 * lambda2),\n    phi * (1 + phi2 / 12)\n  ];\n}\n\nginzburg8Raw.invert = function(x, y) {\n  var lambda = x,\n      phi = y,\n      i = 50, delta;\n  do {\n    var phi2 = phi * phi;\n    phi -= delta = (phi * (1 + phi2 / 12) - y) / (1 + phi2 / 4);\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  i = 50;\n  x /= 1 -0.162388 * phi2;\n  do {\n    var lambda4 = (lambda4 = lambda * lambda) * lambda4;\n    lambda -= delta = (lambda * (0.87 - 0.000952426 * lambda4) - x) / (0.87 - 0.00476213 * lambda4);\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  return [lambda, phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(ginzburg8Raw)\n      .scale(131.747);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/ginzburg8.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/ginzburg9.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/ginzburg9.js ***!
  \*********************************************************/
/*! exports provided: ginzburg9Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ginzburg9Raw\", function() { return ginzburg9Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ginzburgPolyconic.js */ \"./node_modules/d3-geo-projection/src/ginzburgPolyconic.js\");\n\n\n\nvar ginzburg9Raw = Object(_ginzburgPolyconic_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(2.6516, -0.76534, 0.19123, -0.047094, 1.36289, -0.13965,0.031762);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(ginzburg9Raw)\n      .scale(131.087);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/ginzburg9.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/ginzburgPolyconic.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/ginzburgPolyconic.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b, c, d, e, f, g, h) {\n  if (arguments.length < 8) h = 0;\n\n  function forward(lambda, phi) {\n    if (!phi) return [a * lambda / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"], 0];\n    var phi2 = phi * phi,\n        xB = a + phi2 * (b + phi2 * (c + phi2 * d)),\n        yB = phi * (e - 1 + phi2 * (f - h + phi2 * g)),\n        m = (xB * xB + yB * yB) / (2 * yB),\n        alpha = lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(xB / m) / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"];\n    return [m * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(alpha), phi * (1 + phi2 * h) + m * (1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(alpha))];\n  }\n\n  forward.invert = function(x, y) {\n    var lambda = _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] * x / a,\n        phi = y,\n        deltaLambda, deltaPhi, i = 50;\n    do {\n      var phi2 = phi * phi,\n          xB = a + phi2 * (b + phi2 * (c + phi2 * d)),\n          yB = phi * (e - 1 + phi2 * (f - h + phi2 * g)),\n          p = xB * xB + yB * yB,\n          q = 2 * yB,\n          m = p / q,\n          m2 = m * m,\n          dAlphadLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(xB / m) / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"],\n          alpha = lambda * dAlphadLambda,\n          xB2 = xB * xB,\n          dxBdPhi = (2 * b + phi2 * (4 * c + phi2 * 6 * d)) * phi,\n          dyBdPhi = e + phi2 * (3 * f + phi2 * 5 * g),\n          dpdPhi = 2 * (xB * dxBdPhi + yB * (dyBdPhi - 1)),\n          dqdPhi = 2 * (dyBdPhi - 1),\n          dmdPhi = (dpdPhi * q - p * dqdPhi) / (q * q),\n          cosAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(alpha),\n          sinAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(alpha),\n          mcosAlpha = m * cosAlpha,\n          msinAlpha = m * sinAlpha,\n          dAlphadPhi = ((lambda / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"]) * (1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(1 - xB2 / m2)) * (dxBdPhi * m - xB * dmdPhi)) / m2,\n          fx = msinAlpha - x,\n          fy = phi * (1 + phi2 * h) + m - mcosAlpha - y,\n          deltaxDeltaPhi = dmdPhi * sinAlpha + mcosAlpha * dAlphadPhi,\n          deltaxDeltaLambda = mcosAlpha * dAlphadLambda,\n          deltayDeltaPhi = 1 + dmdPhi - (dmdPhi * cosAlpha - msinAlpha * dAlphadPhi),\n          deltayDeltaLambda = msinAlpha * dAlphadLambda,\n          denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda;\n      if (!denominator) break;\n      lambda -= deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator;\n      phi -= deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n    } while ((Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(deltaLambda) > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(deltaPhi) > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) && --i > 0);\n    return [lambda, phi];\n  };\n\n  return forward;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/ginzburgPolyconic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/gringorten.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/gringorten.js ***!
  \**********************************************************/
/*! exports provided: gringortenRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gringortenRaw\", function() { return gringortenRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _square_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./square.js */ \"./node_modules/d3-geo-projection/src/square.js\");\n\n\n\n\nfunction gringortenRaw(lambda, phi) {\n  var sLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(lambda),\n      sPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi),\n      cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda) * cosPhi,\n      y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * cosPhi,\n      z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(sPhi * phi);\n  lambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y, z));\n  phi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x);\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) lambda %= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"];\n  var point = gringortenHexadecant(lambda > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - lambda : lambda, phi);\n  if (lambda > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4) z = point[0], point[0] = -point[1], point[1] = -z;\n  return (point[0] *= sLambda, point[1] *= -sPhi, point);\n}\n\ngringortenRaw.invert = function(x, y) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x) > 1) x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * 2 - x;\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) > 1) y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * 2 - y;\n  var sx = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x),\n      sy = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y),\n      x0 = -sx * x,\n      y0 = -sy * y,\n      t = y0 / x0 < 1,\n      p = gringortenHexadecantInvert(t ? y0 : x0, t ? x0 : y0),\n      lambda = p[0],\n      phi = p[1],\n      cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n  if (t) lambda = -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - lambda;\n  return [sx * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * cosPhi, -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)) + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]), sy * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda) * cosPhi)];\n};\n\nfunction gringortenHexadecant(lambda, phi) {\n  if (phi === _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) return [0, 0];\n\n  var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      r = sinPhi * sinPhi,\n      r2 = r * r,\n      j = 1 + r2,\n      k = 1 + 3 * r2,\n      q = 1 - r2,\n      z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(j)),\n      v = q + r * j * z,\n      p2 = (1 - sinPhi) / v,\n      p = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(p2),\n      a2 = p2 * j,\n      a = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a2),\n      h = p * q,\n      x,\n      i;\n\n  if (lambda === 0) return [0, -(h + r * a)];\n\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      secPhi = 1 / cosPhi,\n      drdPhi = 2 * sinPhi * cosPhi,\n      dvdPhi = (-3 * r + z * k) * drdPhi,\n      dp2dPhi = (-v * cosPhi - (1 - sinPhi) * dvdPhi) / (v * v),\n      dpdPhi = (0.5 * dp2dPhi) / p,\n      dhdPhi = q * dpdPhi - 2 * r * p * drdPhi,\n      dra2dPhi = r * j * dp2dPhi + p2 * k * drdPhi,\n      mu = -secPhi * drdPhi,\n      nu = -secPhi * dra2dPhi,\n      zeta = -2 * secPhi * dhdPhi,\n      lambda1 = 4 * lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n      delta;\n\n  // Slower but accurate bisection method.\n  if (lambda > 0.222 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] || phi < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4 && lambda > 0.175 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) {\n    x = (h + r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a2 * (1 + r2) - h * h)) / (1 + r2);\n    if (lambda > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4) return [x, x];\n    var x1 = x, x0 = 0.5 * x;\n    x = 0.5 * (x0 + x1), i = 50;\n    do {\n      var g = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a2 - x * x),\n          f = (x * (zeta + mu * g) + nu * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x / a)) - lambda1;\n      if (!f) break;\n      if (f < 0) x0 = x;\n      else x1 = x;\n      x = 0.5 * (x0 + x1);\n    } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x1 - x0) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  }\n\n  // Newton-Raphson.\n  else {\n    x = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"], i = 25;\n    do {\n      var x2 = x * x,\n          g2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a2 - x2),\n          zetaMug = zeta + mu * g2,\n          f2 = x * zetaMug + nu * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x / a) - lambda1,\n          df = zetaMug + (nu - mu * x2) / g2;\n      x -= delta = g2 ? f2 / df : 0;\n    } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  }\n\n  return [x, -h - r * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a2 - x * x)];\n}\n\nfunction gringortenHexadecantInvert(x, y) {\n  var x0 = 0,\n      x1 = 1,\n      r = 0.5,\n      i = 50;\n\n  while (true) {\n    var r2 = r * r,\n        sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(r),\n        z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 + r2)),\n        v = (1 - r2) + r * (1 + r2) * z,\n        p2 = (1 - sinPhi) / v,\n        p = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(p2),\n        a2 = p2 * (1 + r2),\n        h = p * (1 - r2),\n        g2 = a2 - x * x,\n        g = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(g2),\n        y0 = y + h + r * g;\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x1 - x0) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"] || --i === 0 || y0 === 0) break;\n    if (y0 > 0) x0 = r;\n    else x1 = r;\n    r = 0.5 * (x0 + x1);\n  }\n\n  if (!i) return null;\n\n  var phi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sinPhi),\n      cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      secPhi = 1 / cosPhi,\n      drdPhi = 2 * sinPhi * cosPhi,\n      dvdPhi = (-3 * r + z * (1 + 3 * r2)) * drdPhi,\n      dp2dPhi = (-v * cosPhi - (1 - sinPhi) * dvdPhi) / (v * v),\n      dpdPhi = 0.5 * dp2dPhi / p,\n      dhdPhi = (1 - r2) * dpdPhi - 2 * r * p * drdPhi,\n      zeta = -2 * secPhi * dhdPhi,\n      mu = -secPhi * drdPhi,\n      nu = -secPhi * (r * (1 + r2) * dp2dPhi + p2 * (1 + 3 * r2) * drdPhi);\n\n  return [_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4 * (x * (zeta + mu * g) + nu * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a2))), phi];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(Object(_square_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(gringortenRaw))\n      .scale(239.75);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/gringorten.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/guyou.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/guyou.js ***!
  \*****************************************************/
/*! exports provided: guyouRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guyouRaw\", function() { return guyouRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _elliptic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./elliptic.js */ \"./node_modules/d3-geo-projection/src/elliptic.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _square_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./square.js */ \"./node_modules/d3-geo-projection/src/square.js\");\n\n\n\n\n\nfunction guyouRaw(lambda, phi) {\n  var k_ = (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] - 1) / (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] + 1),\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(1 - k_ * k_),\n      K = Object(_elliptic_js__WEBPACK_IMPORTED_MODULE_1__[\"ellipticF\"])(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"], k * k),\n      f = -1,\n      psi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"tan\"])(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] / 4 + Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(phi) / 2)),\n      r = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"exp\"])(f * psi) / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(k_),\n      at = guyouComplexAtan(r * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(f * lambda), r * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(f * lambda)),\n      t = Object(_elliptic_js__WEBPACK_IMPORTED_MODULE_1__[\"ellipticFi\"])(at[0], at[1], k * k);\n  return [-t[1], (phi >= 0 ? 1 : -1) * (0.5 * K - t[0])];\n}\n\nfunction guyouComplexAtan(x, y) {\n  var x2 = x * x,\n      y_1 = y + 1,\n      t = 1 - x2 - y * y;\n  return [\n   0.5 * ((x >= 0 ? _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"]) - Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t, 2 * x)),\n    -0.25 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"log\"])(t * t + 4 * x2) +0.5 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"log\"])(y_1 * y_1 + x2)\n  ];\n}\n\nfunction guyouComplexDivide(a, b) {\n  var denominator = b[0] * b[0] + b[1] * b[1];\n  return [\n    (a[0] * b[0] + a[1] * b[1]) / denominator,\n    (a[1] * b[0] - a[0] * b[1]) / denominator\n  ];\n}\n\nguyouRaw.invert = function(x, y) {\n  var k_ = (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] - 1) / (_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt2\"] + 1),\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(1 - k_ * k_),\n      K = Object(_elliptic_js__WEBPACK_IMPORTED_MODULE_1__[\"ellipticF\"])(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"], k * k),\n      f = -1,\n      j = Object(_elliptic_js__WEBPACK_IMPORTED_MODULE_1__[\"ellipticJi\"])(0.5 * K - y, -x, k * k),\n      tn = guyouComplexDivide(j[0], j[1]),\n      lambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(tn[1], tn[0]) / f;\n  return [\n    lambda,\n    2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"exp\"])(0.5 / f * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"log\"])(k_ * tn[0] * tn[0] + k_ * tn[1] * tn[1]))) - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"]\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(Object(_square_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(guyouRaw))\n      .scale(151.496);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/guyou.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/hammer.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/hammer.js ***!
  \******************************************************/
/*! exports provided: hammerRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hammerRaw\", function() { return hammerRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction hammerRaw(A, B) {\n  if (arguments.length < 2) B = A;\n  if (B === 1) return d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEqualAreaRaw\"];\n  if (B === Infinity) return hammerQuarticAuthalicRaw;\n\n  function forward(lambda, phi) {\n    var coordinates = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEqualAreaRaw\"])(lambda / B, phi);\n    coordinates[0] *= A;\n    return coordinates;\n  }\n\n  forward.invert = function(x, y) {\n    var coordinates = d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEqualAreaRaw\"].invert(x / A, y);\n    coordinates[0] *= B;\n    return coordinates;\n  };\n\n  return forward;\n}\n\nfunction hammerQuarticAuthalicRaw(lambda, phi) {\n  return [\n    lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi /= 2),\n    2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)\n  ];\n}\n\nhammerQuarticAuthalicRaw.invert = function(x, y) {\n  var phi = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y / 2);\n  return [\n    x * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi / 2) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n    phi\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var B = 2,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(hammerRaw),\n      p = m(B);\n\n  p.coefficient = function(_) {\n    if (!arguments.length) return B;\n    return m(B = +_);\n  };\n\n  return p\n    .scale(169.529);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/hammer.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/hammerRetroazimuthal.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/hammerRetroazimuthal.js ***!
  \********************************************************************/
/*! exports provided: hammerRetroazimuthalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hammerRetroazimuthalRaw\", function() { return hammerRetroazimuthalRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction hammerRetroazimuthalRaw(phi0) {\n  var sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi0),\n      cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0),\n      rotate = hammerRetroazimuthalRotation(phi0);\n\n  rotate.invert = hammerRetroazimuthalRotation(-phi0);\n\n  function forward(lambda, phi) {\n    var p = rotate(lambda, phi);\n    lambda = p[0], phi = p[1];\n    var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        cosLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda),\n        z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosLambda),\n        sinz = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(z),\n        K = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(sinz) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] ? z / sinz : 1;\n    return [\n      K * cosPhi0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n      (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] ? K : -K) // rotate for back hemisphere\n        * (sinPhi0 * cosPhi - cosPhi0 * sinPhi * cosLambda)\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var rho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x * x + y * y),\n        sinz = -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(rho),\n        cosz = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(rho),\n        a = rho * cosz,\n        b = -y * sinz,\n        c = rho * sinPhi0,\n        d = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a * a + b * b - c * c),\n        phi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(a * c + b * d, b * c - a * d),\n        lambda = (rho > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] ? -1 : 1) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(x * sinz, rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * cosz + y * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) * sinz);\n    return rotate.invert(lambda, phi);\n  };\n\n  return forward;\n}\n\n// Latitudinal rotation by phi0.\n// Temporary hack until D3 supports arbitrary small-circle clipping origins.\nfunction hammerRetroazimuthalRotation(phi0) {\n  var sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi0),\n      cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0);\n\n  return function(lambda, phi) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda) * cosPhi,\n        y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * cosPhi,\n        z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y, x * cosPhi0 - z * sinPhi0),\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(z * cosPhi0 + x * sinPhi0)\n    ];\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var phi0 = 0,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(hammerRetroazimuthalRaw),\n      p = m(phi0),\n      rotate_ = p.rotate,\n      stream_ = p.stream,\n      circle = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoCircle\"])();\n\n  p.parallel = function(_) {\n    if (!arguments.length) return phi0 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n    var r = p.rotate();\n    return m(phi0 = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]).rotate(r);\n  };\n\n  // Temporary hack; see hammerRetroazimuthalRotation.\n  p.rotate = function(_) {\n    if (!arguments.length) return (_ = rotate_.call(p), _[1] += phi0 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], _);\n    rotate_.call(p, [_[0], _[1] - phi0 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]]);\n    circle.center([-_[0], -_[1]]);\n    return p;\n  };\n\n  p.stream = function(stream) {\n    stream = stream_(stream);\n    stream.sphere = function() {\n      stream.polygonStart();\n      var epsilon = 1e-2,\n          ring = circle.radius(90 - epsilon)().coordinates[0],\n          n = ring.length - 1,\n          i = -1,\n          p;\n      stream.lineStart();\n      while (++i < n) stream.point((p = ring[i])[0], p[1]);\n      stream.lineEnd();\n      ring = circle.radius(90 + epsilon)().coordinates[0];\n      n = ring.length - 1;\n      stream.lineStart();\n      while (--i >= 0) stream.point((p = ring[i])[0], p[1]);\n      stream.lineEnd();\n      stream.polygonEnd();\n    };\n    return stream;\n  };\n\n  return p\n      .scale(79.4187)\n      .parallel(45)\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/hammerRetroazimuthal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/healpix.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/healpix.js ***!
  \*******************************************************/
/*! exports provided: healpixRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"healpixRaw\", function() { return healpixRaw; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _collignon_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./collignon.js */ \"./node_modules/d3-geo-projection/src/collignon.js\");\n/* harmony import */ var _cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cylindricalEqualArea.js */ \"./node_modules/d3-geo-projection/src/cylindricalEqualArea.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n\n\n\nvar K = 3,\n    healpixParallel = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"asin\"])(1 - 1 / K) * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"degrees\"],\n    healpixLambert = Object(_cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_3__[\"cylindricalEqualAreaRaw\"])(0);\n\nfunction healpixRaw(H) {\n  var phi0 = healpixParallel * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"radians\"],\n      dx = Object(_collignon_js__WEBPACK_IMPORTED_MODULE_2__[\"collignonRaw\"])(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"], phi0)[0] - Object(_collignon_js__WEBPACK_IMPORTED_MODULE_2__[\"collignonRaw\"])(-_math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"], phi0)[0],\n      y0 = healpixLambert(0, phi0)[1],\n      y1 = Object(_collignon_js__WEBPACK_IMPORTED_MODULE_2__[\"collignonRaw\"])(0, phi0)[1],\n      dy1 = _math_js__WEBPACK_IMPORTED_MODULE_4__[\"sqrtPi\"] - y1,\n      k = _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"] / H,\n      w = 4 / _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"],\n      h = y0 + (dy1 * dy1 * 4) / _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"];\n\n  function forward(lambda, phi) {\n    var point,\n        phi2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"abs\"])(phi);\n    if (phi2 > phi0) {\n      var i = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"min\"])(H - 1, Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"max\"])(0, Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"floor\"])((lambda + _math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"]) / k)));\n      lambda += _math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"] * (H - 1) / H - i * k;\n      point = Object(_collignon_js__WEBPACK_IMPORTED_MODULE_2__[\"collignonRaw\"])(lambda, phi2);\n      point[0] = point[0] * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"] / dx - _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"] * (H - 1) / (2 * H) + i * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"] / H;\n      point[1] = y0 + (point[1] - y1) * 4 * dy1 / _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"];\n      if (phi < 0) point[1] = -point[1];\n    } else {\n      point = healpixLambert(lambda, phi);\n    }\n    point[0] *= w, point[1] /= h;\n    return point;\n  }\n\n  forward.invert = function(x, y) {\n    x /= w, y *= h;\n    var y2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"abs\"])(y);\n    if (y2 > y0) {\n      var i = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"min\"])(H - 1, Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"max\"])(0, Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"floor\"])((x + _math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"]) / k)));\n      x = (x + _math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"] * (H - 1) / H - i * k) * dx / _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"];\n      var point = _collignon_js__WEBPACK_IMPORTED_MODULE_2__[\"collignonRaw\"].invert(x, 0.25 * (y2 - y0) * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"] / dy1 + y1);\n      point[0] -= _math_js__WEBPACK_IMPORTED_MODULE_4__[\"pi\"] * (H - 1) / H - i * k;\n      if (y < 0) point[1] = -point[1];\n      return point;\n    }\n    return healpixLambert.invert(x, y);\n  };\n\n  return forward;\n}\n\nfunction sphereTop(x, i) {\n  return [x, i & 1 ? 90 - _math_js__WEBPACK_IMPORTED_MODULE_4__[\"epsilon\"] : healpixParallel];\n}\n\nfunction sphereBottom(x, i) {\n  return [x, i & 1 ? -90 + _math_js__WEBPACK_IMPORTED_MODULE_4__[\"epsilon\"] : -healpixParallel];\n}\n\nfunction sphereNudge(d) {\n  return [d[0] * (1 - _math_js__WEBPACK_IMPORTED_MODULE_4__[\"epsilon\"]), d[1]];\n}\n\nfunction sphere(step) {\n  var c = [].concat(\n    Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(-180, 180 + step / 2, step).map(sphereTop),\n    Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(180, -180 - step / 2, -step).map(sphereBottom)\n  );\n  return {\n    type: \"Polygon\",\n    coordinates: [step === 180 ? c.map(sphereNudge) : c]\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var H = 4,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_1__[\"geoProjectionMutator\"])(healpixRaw),\n      p = m(H),\n      stream_ = p.stream;\n\n  p.lobes = function(_) {\n    return arguments.length ? m(H = +_) : H;\n  };\n\n  p.stream = function(stream) {\n    var rotate = p.rotate(),\n        rotateStream = stream_(stream),\n        sphereStream = (p.rotate([0, 0]), stream_(stream));\n    p.rotate(rotate);\n    rotateStream.sphere = function() { Object(d3_geo__WEBPACK_IMPORTED_MODULE_1__[\"geoStream\"])(sphere(180 / H), sphereStream); };\n    return rotateStream;\n  };\n\n  return p\n      .scale(239.75);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/healpix.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/hill.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/hill.js ***!
  \****************************************************/
/*! exports provided: hillRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hillRaw\", function() { return hillRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction hillRaw(K) {\n  var L = 1 + K,\n      sinBt = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(1 / L),\n      Bt = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sinBt),\n      A = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / (B = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] + 4 * Bt * L)),\n      B,\n      rho0 = 0.5 * A * (L + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(K * (2 + K))),\n      K2 = K * K,\n      L2 = L * L;\n\n  function forward(lambda, phi) {\n    var t = 1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        rho,\n        omega;\n    if (t && t < 2) {\n      var theta = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] - phi, i = 25, delta;\n      do {\n        var sinTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta),\n            cosTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta),\n            Bt_Bt1 = Bt + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(sinTheta, L - cosTheta),\n            C = 1 + L2 - 2 * L * cosTheta;\n        theta -= delta = (theta - K2 * Bt - L * sinTheta + C * Bt_Bt1 -0.5 * t * B) / (2 * L * sinTheta * Bt_Bt1);\n      } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"] && --i > 0);\n      rho = A * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(C);\n      omega = lambda * Bt_Bt1 / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"];\n    } else {\n      rho = A * (K + t);\n      omega = lambda * Bt / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"];\n    }\n    return [\n      rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(omega),\n      rho0 - rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(omega)\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var rho2 = x * x + (y -= rho0) * y,\n        cosTheta = (1 + L2 - rho2 / (A * A)) / (2 * L),\n        theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(cosTheta),\n        sinTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta),\n        Bt_Bt1 = Bt + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(sinTheta, L - cosTheta);\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(rho2)) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / Bt_Bt1,\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(1 - 2 * (theta - K2 * Bt - L * sinTheta + (1 + L2 - 2 * L * cosTheta) * Bt_Bt1) / B)\n    ];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var K = 1,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(hillRaw),\n      p = m(K);\n\n  p.ratio = function(_) {\n    return arguments.length ? m(K = +_) : K;\n  };\n\n  return p\n      .scale(167.774)\n      .center([0, 18.67]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/hill.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/homolosine.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/homolosine.js ***!
  \**********************************************************/
/*! exports provided: homolosineRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"homolosineRaw\", function() { return homolosineRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n/* harmony import */ var _sinusoidal_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sinusoidal.js */ \"./node_modules/d3-geo-projection/src/sinusoidal.js\");\n/* harmony import */ var _sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sinuMollweide.js */ \"./node_modules/d3-geo-projection/src/sinuMollweide.js\");\n\n\n\n\n\n\nfunction homolosineRaw(lambda, phi) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) > _sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__[\"sinuMollweidePhi\"]\n      ? (lambda = Object(_mollweide_js__WEBPACK_IMPORTED_MODULE_2__[\"mollweideRaw\"])(lambda, phi), lambda[1] -= phi > 0 ? _sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__[\"sinuMollweideY\"] : -_sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__[\"sinuMollweideY\"], lambda)\n      : Object(_sinusoidal_js__WEBPACK_IMPORTED_MODULE_3__[\"sinusoidalRaw\"])(lambda, phi);\n}\n\nhomolosineRaw.invert = function(x, y) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) > _sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__[\"sinuMollweidePhi\"]\n      ? _mollweide_js__WEBPACK_IMPORTED_MODULE_2__[\"mollweideRaw\"].invert(x, y + (y > 0 ? _sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__[\"sinuMollweideY\"] : -_sinuMollweide_js__WEBPACK_IMPORTED_MODULE_4__[\"sinuMollweideY\"]))\n      : _sinusoidal_js__WEBPACK_IMPORTED_MODULE_3__[\"sinusoidalRaw\"].invert(x, y);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(homolosineRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/homolosine.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/hufnagel.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/hufnagel.js ***!
  \********************************************************/
/*! exports provided: hufnagelRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hufnagelRaw\", function() { return hufnagelRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _newton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./newton.js */ \"./node_modules/d3-geo-projection/src/newton.js\");\n\n\n\n\nfunction hufnagelRaw(a, b, psiMax, ratio) {\n  var k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(\n      (4 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) /\n        (2 * psiMax +\n          (1 + a - b / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * psiMax) +\n          ((a + b) / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(4 * psiMax) +\n          (b / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(6 * psiMax))\n    ),\n    c = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(\n      ratio *\n        Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(psiMax) *\n        Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((1 + a * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(2 * psiMax) + b * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(4 * psiMax)) / (1 + a + b))\n    ),\n    M = psiMax * mapping(1);\n\n  function radius(psi) {\n    return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 + a * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(2 * psi) + b * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(4 * psi));\n  }\n\n  function mapping(t) {\n    var psi = t * psiMax;\n    return (\n      (2 * psi +\n        (1 + a - b / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * psi) +\n        ((a + b) / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(4 * psi) +\n        (b / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(6 * psi)) /\n      psiMax\n    );\n  }\n\n  function inversemapping(psi) {\n    return radius(psi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(psi);\n  }\n\n  var forward = function(lambda, phi) {\n    var psi = psiMax * Object(_newton_js__WEBPACK_IMPORTED_MODULE_2__[\"solve\"])(mapping, (M * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)) / psiMax, phi / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n    if (isNaN(psi)) psi = psiMax * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi);\n    var kr = k * radius(psi);\n    return [((kr * c * lambda) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(psi), (kr / c) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(psi)];\n  };\n\n  forward.invert = function(x, y) {\n    var psi = Object(_newton_js__WEBPACK_IMPORTED_MODULE_2__[\"solve\"])(inversemapping, (y * c) / k);\n    return [\n      (x * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(psi) * k * c * radius(psi)),\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((psiMax * mapping(psi / psiMax)) / M)\n    ];\n  };\n\n  if (psiMax === 0) {\n    k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(ratio / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n    forward = function(lambda, phi) {\n      return [lambda * k, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) / k];\n    };\n    forward.invert = function(x, y) {\n      return [x / k, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y * k)];\n    };\n  }\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var a = 1,\n    b = 0,\n    psiMax = 45 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n    ratio = 2,\n    mutate = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(hufnagelRaw),\n    projection = mutate(a, b, psiMax, ratio);\n\n  projection.a = function(_) {\n    return arguments.length ? mutate((a = +_), b, psiMax, ratio) : a;\n  };\n  projection.b = function(_) {\n    return arguments.length ? mutate(a, (b = +_), psiMax, ratio) : b;\n  };\n  projection.psiMax = function(_) {\n    return arguments.length\n      ? mutate(a, b, (psiMax = +_ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]), ratio)\n      : psiMax * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n  };\n  projection.ratio = function(_) {\n    return arguments.length ? mutate(a, b, psiMax, (ratio = +_)) : ratio;\n  };\n\n  return projection.scale(180.739);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/hufnagel.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/hyperelliptical.js":
/*!***************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/hyperelliptical.js ***!
  \***************************************************************/
/*! exports provided: hyperellipticalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hyperellipticalRaw\", function() { return hyperellipticalRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _integrate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./integrate.js */ \"./node_modules/d3-geo-projection/src/integrate.js\");\n\n\n\n\nfunction hyperellipticalRaw(alpha, k, gamma) {\n\n  function elliptic (f) {\n    return alpha + (1 - alpha) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pow\"])(1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pow\"])(f, k), 1 / k);\n  }\n\n  function z(f) {\n    return Object(_integrate_js__WEBPACK_IMPORTED_MODULE_2__[\"integrate\"])(elliptic, 0, f, 1e-4);\n  }\n\n  var G = 1 / z(1),\n      n = 1000,\n      m = (1 + 1e-8) * G,\n      approx = [];\n  for (var i = 0; i <= n; i++)\n      approx.push(z(i / n) * m);\n\n  function Y(sinphi) {\n    var rmin = 0, rmax = n, r = n >> 1;\n    do {\n      if (approx[r] > sinphi) rmax = r; else rmin = r;\n      r = (rmin + rmax) >> 1;\n    } while (r > rmin);\n    var u = approx[r + 1] - approx[r];\n    if (u) u = (sinphi - approx[r + 1]) / u;\n    return (r + 1 + u) / n;\n  }\n\n  var ratio = 2 * Y(1) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * G / gamma;\n\n  var forward = function(lambda, phi) {\n    var y = Y(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi))),\n        x = elliptic(y) * lambda;\n    y /= ratio;\n    return [ x, (phi >= 0) ? y : -y ];\n  };\n\n  forward.invert = function(x, y) {\n    var phi;\n    y *= ratio;\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < 1) phi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(z(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y)) * G);\n    return [ x / elliptic(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y)), phi ];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var alpha = 0,\n      k = 2.5,\n      gamma = 1.183136, // affine = sqrt(2 * gamma / pi) = 0.8679\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(hyperellipticalRaw),\n      p = m(alpha, k, gamma);\n\n  p.alpha = function(_) {\n    return arguments.length ? m(alpha = +_, k, gamma) : alpha;\n  };\n\n  p.k = function(_) {\n    return arguments.length ? m(alpha, k = +_, gamma) : k;\n  };\n\n  p.gamma = function(_) {\n    return arguments.length ? m(alpha, k, gamma = +_) : gamma;\n  };\n\n  return p\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/hyperelliptical.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/index.js ***!
  \*****************************************************/
/*! exports provided: geoAiry, geoAiryRaw, geoAitoff, geoAitoffRaw, geoArmadillo, geoArmadilloRaw, geoAugust, geoAugustRaw, geoBaker, geoBakerRaw, geoBerghaus, geoBerghausRaw, geoBertin1953, geoBertin1953Raw, geoBoggs, geoBoggsRaw, geoBonne, geoBonneRaw, geoBottomley, geoBottomleyRaw, geoBromley, geoBromleyRaw, geoChamberlin, geoChamberlinRaw, geoChamberlinAfrica, geoCollignon, geoCollignonRaw, geoCraig, geoCraigRaw, geoCraster, geoCrasterRaw, geoCylindricalEqualArea, geoCylindricalEqualAreaRaw, geoCylindricalStereographic, geoCylindricalStereographicRaw, geoEckert1, geoEckert1Raw, geoEckert2, geoEckert2Raw, geoEckert3, geoEckert3Raw, geoEckert4, geoEckert4Raw, geoEckert5, geoEckert5Raw, geoEckert6, geoEckert6Raw, geoEisenlohr, geoEisenlohrRaw, geoFahey, geoFaheyRaw, geoFoucaut, geoFoucautRaw, geoFoucautSinusoidal, geoFoucautSinusoidalRaw, geoGilbert, geoGingery, geoGingeryRaw, geoGinzburg4, geoGinzburg4Raw, geoGinzburg5, geoGinzburg5Raw, geoGinzburg6, geoGinzburg6Raw, geoGinzburg8, geoGinzburg8Raw, geoGinzburg9, geoGinzburg9Raw, geoGringorten, geoGringortenRaw, geoGuyou, geoGuyouRaw, geoHammer, geoHammerRaw, geoHammerRetroazimuthal, geoHammerRetroazimuthalRaw, geoHealpix, geoHealpixRaw, geoHill, geoHillRaw, geoHomolosine, geoHomolosineRaw, geoHufnagel, geoHufnagelRaw, geoHyperelliptical, geoHyperellipticalRaw, geoInterrupt, geoInterruptedBoggs, geoInterruptedHomolosine, geoInterruptedMollweide, geoInterruptedMollweideHemispheres, geoInterruptedSinuMollweide, geoInterruptedSinusoidal, geoKavrayskiy7, geoKavrayskiy7Raw, geoLagrange, geoLagrangeRaw, geoLarrivee, geoLarriveeRaw, geoLaskowski, geoLaskowskiRaw, geoLittrow, geoLittrowRaw, geoLoximuthal, geoLoximuthalRaw, geoMiller, geoMillerRaw, geoModifiedStereographic, geoModifiedStereographicRaw, geoModifiedStereographicAlaska, geoModifiedStereographicGs48, geoModifiedStereographicGs50, geoModifiedStereographicMiller, geoModifiedStereographicLee, geoMollweide, geoMollweideRaw, geoMtFlatPolarParabolic, geoMtFlatPolarParabolicRaw, geoMtFlatPolarQuartic, geoMtFlatPolarQuarticRaw, geoMtFlatPolarSinusoidal, geoMtFlatPolarSinusoidalRaw, geoNaturalEarth2, geoNaturalEarth2Raw, geoNellHammer, geoNellHammerRaw, geoInterruptedQuarticAuthalic, geoNicolosi, geoNicolosiRaw, geoPatterson, geoPattersonRaw, geoPolyconic, geoPolyconicRaw, geoPolyhedral, geoPolyhedralButterfly, geoPolyhedralCollignon, geoPolyhedralWaterman, geoProject, geoGringortenQuincuncial, geoPeirceQuincuncial, geoQuantize, geoQuincuncial, geoRectangularPolyconic, geoRectangularPolyconicRaw, geoRobinson, geoRobinsonRaw, geoSatellite, geoSatelliteRaw, geoSinuMollweide, geoSinuMollweideRaw, geoSinusoidal, geoSinusoidalRaw, geoStitch, geoTimes, geoTimesRaw, geoTwoPointAzimuthal, geoTwoPointAzimuthalRaw, geoTwoPointAzimuthalUsa, geoTwoPointEquidistant, geoTwoPointEquidistantRaw, geoTwoPointEquidistantUsa, geoVanDerGrinten, geoVanDerGrintenRaw, geoVanDerGrinten2, geoVanDerGrinten2Raw, geoVanDerGrinten3, geoVanDerGrinten3Raw, geoVanDerGrinten4, geoVanDerGrinten4Raw, geoWagner, geoWagner7, geoWagnerRaw, geoWagner4, geoWagner4Raw, geoWagner6, geoWagner6Raw, geoWiechel, geoWiechelRaw, geoWinkel3, geoWinkel3Raw */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _airy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./airy */ \"./node_modules/d3-geo-projection/src/airy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAiry\", function() { return _airy__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAiryRaw\", function() { return _airy__WEBPACK_IMPORTED_MODULE_0__[\"airyRaw\"]; });\n\n/* harmony import */ var _aitoff__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aitoff */ \"./node_modules/d3-geo-projection/src/aitoff.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAitoff\", function() { return _aitoff__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAitoffRaw\", function() { return _aitoff__WEBPACK_IMPORTED_MODULE_1__[\"aitoffRaw\"]; });\n\n/* harmony import */ var _armadillo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./armadillo */ \"./node_modules/d3-geo-projection/src/armadillo.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoArmadillo\", function() { return _armadillo__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoArmadilloRaw\", function() { return _armadillo__WEBPACK_IMPORTED_MODULE_2__[\"armadilloRaw\"]; });\n\n/* harmony import */ var _august__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./august */ \"./node_modules/d3-geo-projection/src/august.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAugust\", function() { return _august__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAugustRaw\", function() { return _august__WEBPACK_IMPORTED_MODULE_3__[\"augustRaw\"]; });\n\n/* harmony import */ var _baker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./baker */ \"./node_modules/d3-geo-projection/src/baker.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBaker\", function() { return _baker__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBakerRaw\", function() { return _baker__WEBPACK_IMPORTED_MODULE_4__[\"bakerRaw\"]; });\n\n/* harmony import */ var _berghaus__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./berghaus */ \"./node_modules/d3-geo-projection/src/berghaus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBerghaus\", function() { return _berghaus__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBerghausRaw\", function() { return _berghaus__WEBPACK_IMPORTED_MODULE_5__[\"berghausRaw\"]; });\n\n/* harmony import */ var _bertin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./bertin */ \"./node_modules/d3-geo-projection/src/bertin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBertin1953\", function() { return _bertin__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBertin1953Raw\", function() { return _bertin__WEBPACK_IMPORTED_MODULE_6__[\"bertin1953Raw\"]; });\n\n/* harmony import */ var _boggs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./boggs */ \"./node_modules/d3-geo-projection/src/boggs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBoggs\", function() { return _boggs__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBoggsRaw\", function() { return _boggs__WEBPACK_IMPORTED_MODULE_7__[\"boggsRaw\"]; });\n\n/* harmony import */ var _bonne__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./bonne */ \"./node_modules/d3-geo-projection/src/bonne.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBonne\", function() { return _bonne__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBonneRaw\", function() { return _bonne__WEBPACK_IMPORTED_MODULE_8__[\"bonneRaw\"]; });\n\n/* harmony import */ var _bottomley__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./bottomley */ \"./node_modules/d3-geo-projection/src/bottomley.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBottomley\", function() { return _bottomley__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBottomleyRaw\", function() { return _bottomley__WEBPACK_IMPORTED_MODULE_9__[\"bottomleyRaw\"]; });\n\n/* harmony import */ var _bromley__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./bromley */ \"./node_modules/d3-geo-projection/src/bromley.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBromley\", function() { return _bromley__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBromleyRaw\", function() { return _bromley__WEBPACK_IMPORTED_MODULE_10__[\"bromleyRaw\"]; });\n\n/* harmony import */ var _chamberlin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./chamberlin */ \"./node_modules/d3-geo-projection/src/chamberlin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoChamberlin\", function() { return _chamberlin__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoChamberlinRaw\", function() { return _chamberlin__WEBPACK_IMPORTED_MODULE_11__[\"chamberlinRaw\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoChamberlinAfrica\", function() { return _chamberlin__WEBPACK_IMPORTED_MODULE_11__[\"chamberlinAfrica\"]; });\n\n/* harmony import */ var _collignon__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./collignon */ \"./node_modules/d3-geo-projection/src/collignon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCollignon\", function() { return _collignon__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCollignonRaw\", function() { return _collignon__WEBPACK_IMPORTED_MODULE_12__[\"collignonRaw\"]; });\n\n/* harmony import */ var _craig__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./craig */ \"./node_modules/d3-geo-projection/src/craig.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCraig\", function() { return _craig__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCraigRaw\", function() { return _craig__WEBPACK_IMPORTED_MODULE_13__[\"craigRaw\"]; });\n\n/* harmony import */ var _craster__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./craster */ \"./node_modules/d3-geo-projection/src/craster.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCraster\", function() { return _craster__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCrasterRaw\", function() { return _craster__WEBPACK_IMPORTED_MODULE_14__[\"crasterRaw\"]; });\n\n/* harmony import */ var _cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./cylindricalEqualArea */ \"./node_modules/d3-geo-projection/src/cylindricalEqualArea.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCylindricalEqualArea\", function() { return _cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCylindricalEqualAreaRaw\", function() { return _cylindricalEqualArea__WEBPACK_IMPORTED_MODULE_15__[\"cylindricalEqualAreaRaw\"]; });\n\n/* harmony import */ var _cylindricalStereographic__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./cylindricalStereographic */ \"./node_modules/d3-geo-projection/src/cylindricalStereographic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCylindricalStereographic\", function() { return _cylindricalStereographic__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCylindricalStereographicRaw\", function() { return _cylindricalStereographic__WEBPACK_IMPORTED_MODULE_16__[\"cylindricalStereographicRaw\"]; });\n\n/* harmony import */ var _eckert1_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./eckert1.js */ \"./node_modules/d3-geo-projection/src/eckert1.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert1\", function() { return _eckert1_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert1Raw\", function() { return _eckert1_js__WEBPACK_IMPORTED_MODULE_17__[\"eckert1Raw\"]; });\n\n/* harmony import */ var _eckert2_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./eckert2.js */ \"./node_modules/d3-geo-projection/src/eckert2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert2\", function() { return _eckert2_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert2Raw\", function() { return _eckert2_js__WEBPACK_IMPORTED_MODULE_18__[\"eckert2Raw\"]; });\n\n/* harmony import */ var _eckert3_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./eckert3.js */ \"./node_modules/d3-geo-projection/src/eckert3.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert3\", function() { return _eckert3_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert3Raw\", function() { return _eckert3_js__WEBPACK_IMPORTED_MODULE_19__[\"eckert3Raw\"]; });\n\n/* harmony import */ var _eckert4_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./eckert4.js */ \"./node_modules/d3-geo-projection/src/eckert4.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert4\", function() { return _eckert4_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert4Raw\", function() { return _eckert4_js__WEBPACK_IMPORTED_MODULE_20__[\"eckert4Raw\"]; });\n\n/* harmony import */ var _eckert5_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./eckert5.js */ \"./node_modules/d3-geo-projection/src/eckert5.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert5\", function() { return _eckert5_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert5Raw\", function() { return _eckert5_js__WEBPACK_IMPORTED_MODULE_21__[\"eckert5Raw\"]; });\n\n/* harmony import */ var _eckert6_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./eckert6.js */ \"./node_modules/d3-geo-projection/src/eckert6.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert6\", function() { return _eckert6_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEckert6Raw\", function() { return _eckert6_js__WEBPACK_IMPORTED_MODULE_22__[\"eckert6Raw\"]; });\n\n/* harmony import */ var _eisenlohr_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./eisenlohr.js */ \"./node_modules/d3-geo-projection/src/eisenlohr.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEisenlohr\", function() { return _eisenlohr_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEisenlohrRaw\", function() { return _eisenlohr_js__WEBPACK_IMPORTED_MODULE_23__[\"eisenlohrRaw\"]; });\n\n/* harmony import */ var _fahey_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./fahey.js */ \"./node_modules/d3-geo-projection/src/fahey.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoFahey\", function() { return _fahey_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoFaheyRaw\", function() { return _fahey_js__WEBPACK_IMPORTED_MODULE_24__[\"faheyRaw\"]; });\n\n/* harmony import */ var _foucaut_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./foucaut.js */ \"./node_modules/d3-geo-projection/src/foucaut.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoFoucaut\", function() { return _foucaut_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoFoucautRaw\", function() { return _foucaut_js__WEBPACK_IMPORTED_MODULE_25__[\"foucautRaw\"]; });\n\n/* harmony import */ var _foucautSinusoidal_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./foucautSinusoidal.js */ \"./node_modules/d3-geo-projection/src/foucautSinusoidal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoFoucautSinusoidal\", function() { return _foucautSinusoidal_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoFoucautSinusoidalRaw\", function() { return _foucautSinusoidal_js__WEBPACK_IMPORTED_MODULE_26__[\"foucautSinusoidalRaw\"]; });\n\n/* harmony import */ var _gilbert_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./gilbert.js */ \"./node_modules/d3-geo-projection/src/gilbert.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGilbert\", function() { return _gilbert_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _gingery_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./gingery.js */ \"./node_modules/d3-geo-projection/src/gingery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGingery\", function() { return _gingery_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGingeryRaw\", function() { return _gingery_js__WEBPACK_IMPORTED_MODULE_28__[\"gingeryRaw\"]; });\n\n/* harmony import */ var _ginzburg4_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./ginzburg4.js */ \"./node_modules/d3-geo-projection/src/ginzburg4.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg4\", function() { return _ginzburg4_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg4Raw\", function() { return _ginzburg4_js__WEBPACK_IMPORTED_MODULE_29__[\"ginzburg4Raw\"]; });\n\n/* harmony import */ var _ginzburg5_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./ginzburg5.js */ \"./node_modules/d3-geo-projection/src/ginzburg5.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg5\", function() { return _ginzburg5_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg5Raw\", function() { return _ginzburg5_js__WEBPACK_IMPORTED_MODULE_30__[\"ginzburg5Raw\"]; });\n\n/* harmony import */ var _ginzburg6_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./ginzburg6.js */ \"./node_modules/d3-geo-projection/src/ginzburg6.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg6\", function() { return _ginzburg6_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg6Raw\", function() { return _ginzburg6_js__WEBPACK_IMPORTED_MODULE_31__[\"ginzburg6Raw\"]; });\n\n/* harmony import */ var _ginzburg8_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./ginzburg8.js */ \"./node_modules/d3-geo-projection/src/ginzburg8.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg8\", function() { return _ginzburg8_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg8Raw\", function() { return _ginzburg8_js__WEBPACK_IMPORTED_MODULE_32__[\"ginzburg8Raw\"]; });\n\n/* harmony import */ var _ginzburg9_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./ginzburg9.js */ \"./node_modules/d3-geo-projection/src/ginzburg9.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg9\", function() { return _ginzburg9_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGinzburg9Raw\", function() { return _ginzburg9_js__WEBPACK_IMPORTED_MODULE_33__[\"ginzburg9Raw\"]; });\n\n/* harmony import */ var _gringorten_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./gringorten.js */ \"./node_modules/d3-geo-projection/src/gringorten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGringorten\", function() { return _gringorten_js__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGringortenRaw\", function() { return _gringorten_js__WEBPACK_IMPORTED_MODULE_34__[\"gringortenRaw\"]; });\n\n/* harmony import */ var _guyou_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./guyou.js */ \"./node_modules/d3-geo-projection/src/guyou.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGuyou\", function() { return _guyou_js__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGuyouRaw\", function() { return _guyou_js__WEBPACK_IMPORTED_MODULE_35__[\"guyouRaw\"]; });\n\n/* harmony import */ var _hammer_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./hammer.js */ \"./node_modules/d3-geo-projection/src/hammer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHammer\", function() { return _hammer_js__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHammerRaw\", function() { return _hammer_js__WEBPACK_IMPORTED_MODULE_36__[\"hammerRaw\"]; });\n\n/* harmony import */ var _hammerRetroazimuthal_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./hammerRetroazimuthal.js */ \"./node_modules/d3-geo-projection/src/hammerRetroazimuthal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHammerRetroazimuthal\", function() { return _hammerRetroazimuthal_js__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHammerRetroazimuthalRaw\", function() { return _hammerRetroazimuthal_js__WEBPACK_IMPORTED_MODULE_37__[\"hammerRetroazimuthalRaw\"]; });\n\n/* harmony import */ var _healpix_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./healpix.js */ \"./node_modules/d3-geo-projection/src/healpix.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHealpix\", function() { return _healpix_js__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHealpixRaw\", function() { return _healpix_js__WEBPACK_IMPORTED_MODULE_38__[\"healpixRaw\"]; });\n\n/* harmony import */ var _hill_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./hill.js */ \"./node_modules/d3-geo-projection/src/hill.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHill\", function() { return _hill_js__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHillRaw\", function() { return _hill_js__WEBPACK_IMPORTED_MODULE_39__[\"hillRaw\"]; });\n\n/* harmony import */ var _homolosine_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./homolosine.js */ \"./node_modules/d3-geo-projection/src/homolosine.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHomolosine\", function() { return _homolosine_js__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHomolosineRaw\", function() { return _homolosine_js__WEBPACK_IMPORTED_MODULE_40__[\"homolosineRaw\"]; });\n\n/* harmony import */ var _hufnagel_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./hufnagel.js */ \"./node_modules/d3-geo-projection/src/hufnagel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHufnagel\", function() { return _hufnagel_js__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHufnagelRaw\", function() { return _hufnagel_js__WEBPACK_IMPORTED_MODULE_41__[\"hufnagelRaw\"]; });\n\n/* harmony import */ var _hyperelliptical__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./hyperelliptical */ \"./node_modules/d3-geo-projection/src/hyperelliptical.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHyperelliptical\", function() { return _hyperelliptical__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoHyperellipticalRaw\", function() { return _hyperelliptical__WEBPACK_IMPORTED_MODULE_42__[\"hyperellipticalRaw\"]; });\n\n/* harmony import */ var _interrupted_index__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./interrupted/index */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterrupt\", function() { return _interrupted_index__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* harmony import */ var _interrupted_boggs__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./interrupted/boggs */ \"./node_modules/d3-geo-projection/src/interrupted/boggs.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedBoggs\", function() { return _interrupted_boggs__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* harmony import */ var _interrupted_homolosine__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./interrupted/homolosine */ \"./node_modules/d3-geo-projection/src/interrupted/homolosine.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedHomolosine\", function() { return _interrupted_homolosine__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony import */ var _interrupted_mollweide__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./interrupted/mollweide */ \"./node_modules/d3-geo-projection/src/interrupted/mollweide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedMollweide\", function() { return _interrupted_mollweide__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* harmony import */ var _interrupted_mollweideHemispheres__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./interrupted/mollweideHemispheres */ \"./node_modules/d3-geo-projection/src/interrupted/mollweideHemispheres.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedMollweideHemispheres\", function() { return _interrupted_mollweideHemispheres__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* harmony import */ var _interrupted_sinuMollweide__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./interrupted/sinuMollweide */ \"./node_modules/d3-geo-projection/src/interrupted/sinuMollweide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedSinuMollweide\", function() { return _interrupted_sinuMollweide__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* harmony import */ var _interrupted_sinusoidal__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./interrupted/sinusoidal */ \"./node_modules/d3-geo-projection/src/interrupted/sinusoidal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedSinusoidal\", function() { return _interrupted_sinusoidal__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* harmony import */ var _kavrayskiy7_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./kavrayskiy7.js */ \"./node_modules/d3-geo-projection/src/kavrayskiy7.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoKavrayskiy7\", function() { return _kavrayskiy7_js__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoKavrayskiy7Raw\", function() { return _kavrayskiy7_js__WEBPACK_IMPORTED_MODULE_50__[\"kavrayskiy7Raw\"]; });\n\n/* harmony import */ var _lagrange_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./lagrange.js */ \"./node_modules/d3-geo-projection/src/lagrange.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLagrange\", function() { return _lagrange_js__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLagrangeRaw\", function() { return _lagrange_js__WEBPACK_IMPORTED_MODULE_51__[\"lagrangeRaw\"]; });\n\n/* harmony import */ var _larrivee__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./larrivee */ \"./node_modules/d3-geo-projection/src/larrivee.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLarrivee\", function() { return _larrivee__WEBPACK_IMPORTED_MODULE_52__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLarriveeRaw\", function() { return _larrivee__WEBPACK_IMPORTED_MODULE_52__[\"larriveeRaw\"]; });\n\n/* harmony import */ var _laskowski__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./laskowski */ \"./node_modules/d3-geo-projection/src/laskowski.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLaskowski\", function() { return _laskowski__WEBPACK_IMPORTED_MODULE_53__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLaskowskiRaw\", function() { return _laskowski__WEBPACK_IMPORTED_MODULE_53__[\"laskowskiRaw\"]; });\n\n/* harmony import */ var _littrow_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./littrow.js */ \"./node_modules/d3-geo-projection/src/littrow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLittrow\", function() { return _littrow_js__WEBPACK_IMPORTED_MODULE_54__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLittrowRaw\", function() { return _littrow_js__WEBPACK_IMPORTED_MODULE_54__[\"littrowRaw\"]; });\n\n/* harmony import */ var _loximuthal_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./loximuthal.js */ \"./node_modules/d3-geo-projection/src/loximuthal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLoximuthal\", function() { return _loximuthal_js__WEBPACK_IMPORTED_MODULE_55__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLoximuthalRaw\", function() { return _loximuthal_js__WEBPACK_IMPORTED_MODULE_55__[\"loximuthalRaw\"]; });\n\n/* harmony import */ var _miller__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./miller */ \"./node_modules/d3-geo-projection/src/miller.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMiller\", function() { return _miller__WEBPACK_IMPORTED_MODULE_56__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMillerRaw\", function() { return _miller__WEBPACK_IMPORTED_MODULE_56__[\"millerRaw\"]; });\n\n/* harmony import */ var _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./modifiedStereographic */ \"./node_modules/d3-geo-projection/src/modifiedStereographic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographic\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographicRaw\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"modifiedStereographicRaw\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographicAlaska\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"modifiedStereographicAlaska\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographicGs48\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"modifiedStereographicGs48\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographicGs50\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"modifiedStereographicGs50\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographicMiller\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"modifiedStereographicMiller\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoModifiedStereographicLee\", function() { return _modifiedStereographic__WEBPACK_IMPORTED_MODULE_57__[\"modifiedStereographicLee\"]; });\n\n/* harmony import */ var _mollweide__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./mollweide */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMollweide\", function() { return _mollweide__WEBPACK_IMPORTED_MODULE_58__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMollweideRaw\", function() { return _mollweide__WEBPACK_IMPORTED_MODULE_58__[\"mollweideRaw\"]; });\n\n/* harmony import */ var _mtFlatPolarParabolic__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./mtFlatPolarParabolic */ \"./node_modules/d3-geo-projection/src/mtFlatPolarParabolic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMtFlatPolarParabolic\", function() { return _mtFlatPolarParabolic__WEBPACK_IMPORTED_MODULE_59__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMtFlatPolarParabolicRaw\", function() { return _mtFlatPolarParabolic__WEBPACK_IMPORTED_MODULE_59__[\"mtFlatPolarParabolicRaw\"]; });\n\n/* harmony import */ var _mtFlatPolarQuartic__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./mtFlatPolarQuartic */ \"./node_modules/d3-geo-projection/src/mtFlatPolarQuartic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMtFlatPolarQuartic\", function() { return _mtFlatPolarQuartic__WEBPACK_IMPORTED_MODULE_60__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMtFlatPolarQuarticRaw\", function() { return _mtFlatPolarQuartic__WEBPACK_IMPORTED_MODULE_60__[\"mtFlatPolarQuarticRaw\"]; });\n\n/* harmony import */ var _mtFlatPolarSinusoidal__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./mtFlatPolarSinusoidal */ \"./node_modules/d3-geo-projection/src/mtFlatPolarSinusoidal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMtFlatPolarSinusoidal\", function() { return _mtFlatPolarSinusoidal__WEBPACK_IMPORTED_MODULE_61__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMtFlatPolarSinusoidalRaw\", function() { return _mtFlatPolarSinusoidal__WEBPACK_IMPORTED_MODULE_61__[\"mtFlatPolarSinusoidalRaw\"]; });\n\n/* harmony import */ var _naturalEarth2__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./naturalEarth2 */ \"./node_modules/d3-geo-projection/src/naturalEarth2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNaturalEarth2\", function() { return _naturalEarth2__WEBPACK_IMPORTED_MODULE_62__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNaturalEarth2Raw\", function() { return _naturalEarth2__WEBPACK_IMPORTED_MODULE_62__[\"naturalEarth2Raw\"]; });\n\n/* harmony import */ var _nellHammer__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./nellHammer */ \"./node_modules/d3-geo-projection/src/nellHammer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNellHammer\", function() { return _nellHammer__WEBPACK_IMPORTED_MODULE_63__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNellHammerRaw\", function() { return _nellHammer__WEBPACK_IMPORTED_MODULE_63__[\"nellHammerRaw\"]; });\n\n/* harmony import */ var _interrupted_quarticAuthalic__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./interrupted/quarticAuthalic */ \"./node_modules/d3-geo-projection/src/interrupted/quarticAuthalic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterruptedQuarticAuthalic\", function() { return _interrupted_quarticAuthalic__WEBPACK_IMPORTED_MODULE_64__[\"default\"]; });\n\n/* harmony import */ var _nicolosi__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./nicolosi */ \"./node_modules/d3-geo-projection/src/nicolosi.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNicolosi\", function() { return _nicolosi__WEBPACK_IMPORTED_MODULE_65__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNicolosiRaw\", function() { return _nicolosi__WEBPACK_IMPORTED_MODULE_65__[\"nicolosiRaw\"]; });\n\n/* harmony import */ var _patterson__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./patterson */ \"./node_modules/d3-geo-projection/src/patterson.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPatterson\", function() { return _patterson__WEBPACK_IMPORTED_MODULE_66__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPattersonRaw\", function() { return _patterson__WEBPACK_IMPORTED_MODULE_66__[\"pattersonRaw\"]; });\n\n/* harmony import */ var _polyconic__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./polyconic */ \"./node_modules/d3-geo-projection/src/polyconic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPolyconic\", function() { return _polyconic__WEBPACK_IMPORTED_MODULE_67__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPolyconicRaw\", function() { return _polyconic__WEBPACK_IMPORTED_MODULE_67__[\"polyconicRaw\"]; });\n\n/* harmony import */ var _polyhedral_index_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./polyhedral/index.js */ \"./node_modules/d3-geo-projection/src/polyhedral/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPolyhedral\", function() { return _polyhedral_index_js__WEBPACK_IMPORTED_MODULE_68__[\"default\"]; });\n\n/* harmony import */ var _polyhedral_butterfly_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./polyhedral/butterfly.js */ \"./node_modules/d3-geo-projection/src/polyhedral/butterfly.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPolyhedralButterfly\", function() { return _polyhedral_butterfly_js__WEBPACK_IMPORTED_MODULE_69__[\"default\"]; });\n\n/* harmony import */ var _polyhedral_collignon_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./polyhedral/collignon.js */ \"./node_modules/d3-geo-projection/src/polyhedral/collignon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPolyhedralCollignon\", function() { return _polyhedral_collignon_js__WEBPACK_IMPORTED_MODULE_70__[\"default\"]; });\n\n/* harmony import */ var _polyhedral_waterman_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./polyhedral/waterman.js */ \"./node_modules/d3-geo-projection/src/polyhedral/waterman.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPolyhedralWaterman\", function() { return _polyhedral_waterman_js__WEBPACK_IMPORTED_MODULE_71__[\"default\"]; });\n\n/* harmony import */ var _project_index__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./project/index */ \"./node_modules/d3-geo-projection/src/project/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoProject\", function() { return _project_index__WEBPACK_IMPORTED_MODULE_72__[\"default\"]; });\n\n/* harmony import */ var _quincuncial_gringorten_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./quincuncial/gringorten.js */ \"./node_modules/d3-geo-projection/src/quincuncial/gringorten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGringortenQuincuncial\", function() { return _quincuncial_gringorten_js__WEBPACK_IMPORTED_MODULE_73__[\"default\"]; });\n\n/* harmony import */ var _quincuncial_peirce_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./quincuncial/peirce.js */ \"./node_modules/d3-geo-projection/src/quincuncial/peirce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPeirceQuincuncial\", function() { return _quincuncial_peirce_js__WEBPACK_IMPORTED_MODULE_74__[\"default\"]; });\n\n/* harmony import */ var _quantize__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./quantize */ \"./node_modules/d3-geo-projection/src/quantize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoQuantize\", function() { return _quantize__WEBPACK_IMPORTED_MODULE_75__[\"default\"]; });\n\n/* harmony import */ var _quincuncial_index_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./quincuncial/index.js */ \"./node_modules/d3-geo-projection/src/quincuncial/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoQuincuncial\", function() { return _quincuncial_index_js__WEBPACK_IMPORTED_MODULE_76__[\"default\"]; });\n\n/* harmony import */ var _rectangularPolyconic__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./rectangularPolyconic */ \"./node_modules/d3-geo-projection/src/rectangularPolyconic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoRectangularPolyconic\", function() { return _rectangularPolyconic__WEBPACK_IMPORTED_MODULE_77__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoRectangularPolyconicRaw\", function() { return _rectangularPolyconic__WEBPACK_IMPORTED_MODULE_77__[\"rectangularPolyconicRaw\"]; });\n\n/* harmony import */ var _robinson__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./robinson */ \"./node_modules/d3-geo-projection/src/robinson.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoRobinson\", function() { return _robinson__WEBPACK_IMPORTED_MODULE_78__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoRobinsonRaw\", function() { return _robinson__WEBPACK_IMPORTED_MODULE_78__[\"robinsonRaw\"]; });\n\n/* harmony import */ var _satellite__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./satellite */ \"./node_modules/d3-geo-projection/src/satellite.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoSatellite\", function() { return _satellite__WEBPACK_IMPORTED_MODULE_79__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoSatelliteRaw\", function() { return _satellite__WEBPACK_IMPORTED_MODULE_79__[\"satelliteRaw\"]; });\n\n/* harmony import */ var _sinuMollweide__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./sinuMollweide */ \"./node_modules/d3-geo-projection/src/sinuMollweide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoSinuMollweide\", function() { return _sinuMollweide__WEBPACK_IMPORTED_MODULE_80__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoSinuMollweideRaw\", function() { return _sinuMollweide__WEBPACK_IMPORTED_MODULE_80__[\"sinuMollweideRaw\"]; });\n\n/* harmony import */ var _sinusoidal__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./sinusoidal */ \"./node_modules/d3-geo-projection/src/sinusoidal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoSinusoidal\", function() { return _sinusoidal__WEBPACK_IMPORTED_MODULE_81__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoSinusoidalRaw\", function() { return _sinusoidal__WEBPACK_IMPORTED_MODULE_81__[\"sinusoidalRaw\"]; });\n\n/* harmony import */ var _stitch__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./stitch */ \"./node_modules/d3-geo-projection/src/stitch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoStitch\", function() { return _stitch__WEBPACK_IMPORTED_MODULE_82__[\"default\"]; });\n\n/* harmony import */ var _times__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./times */ \"./node_modules/d3-geo-projection/src/times.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTimes\", function() { return _times__WEBPACK_IMPORTED_MODULE_83__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTimesRaw\", function() { return _times__WEBPACK_IMPORTED_MODULE_83__[\"timesRaw\"]; });\n\n/* harmony import */ var _twoPointAzimuthal__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./twoPointAzimuthal */ \"./node_modules/d3-geo-projection/src/twoPointAzimuthal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTwoPointAzimuthal\", function() { return _twoPointAzimuthal__WEBPACK_IMPORTED_MODULE_84__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTwoPointAzimuthalRaw\", function() { return _twoPointAzimuthal__WEBPACK_IMPORTED_MODULE_84__[\"twoPointAzimuthalRaw\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTwoPointAzimuthalUsa\", function() { return _twoPointAzimuthal__WEBPACK_IMPORTED_MODULE_84__[\"twoPointAzimuthalUsa\"]; });\n\n/* harmony import */ var _twoPointEquidistant__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./twoPointEquidistant */ \"./node_modules/d3-geo-projection/src/twoPointEquidistant.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTwoPointEquidistant\", function() { return _twoPointEquidistant__WEBPACK_IMPORTED_MODULE_85__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTwoPointEquidistantRaw\", function() { return _twoPointEquidistant__WEBPACK_IMPORTED_MODULE_85__[\"twoPointEquidistantRaw\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTwoPointEquidistantUsa\", function() { return _twoPointEquidistant__WEBPACK_IMPORTED_MODULE_85__[\"twoPointEquidistantUsa\"]; });\n\n/* harmony import */ var _vanDerGrinten__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./vanDerGrinten */ \"./node_modules/d3-geo-projection/src/vanDerGrinten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten\", function() { return _vanDerGrinten__WEBPACK_IMPORTED_MODULE_86__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrintenRaw\", function() { return _vanDerGrinten__WEBPACK_IMPORTED_MODULE_86__[\"vanDerGrintenRaw\"]; });\n\n/* harmony import */ var _vanDerGrinten2__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./vanDerGrinten2 */ \"./node_modules/d3-geo-projection/src/vanDerGrinten2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten2\", function() { return _vanDerGrinten2__WEBPACK_IMPORTED_MODULE_87__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten2Raw\", function() { return _vanDerGrinten2__WEBPACK_IMPORTED_MODULE_87__[\"vanDerGrinten2Raw\"]; });\n\n/* harmony import */ var _vanDerGrinten3__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./vanDerGrinten3 */ \"./node_modules/d3-geo-projection/src/vanDerGrinten3.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten3\", function() { return _vanDerGrinten3__WEBPACK_IMPORTED_MODULE_88__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten3Raw\", function() { return _vanDerGrinten3__WEBPACK_IMPORTED_MODULE_88__[\"vanDerGrinten3Raw\"]; });\n\n/* harmony import */ var _vanDerGrinten4__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./vanDerGrinten4 */ \"./node_modules/d3-geo-projection/src/vanDerGrinten4.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten4\", function() { return _vanDerGrinten4__WEBPACK_IMPORTED_MODULE_89__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoVanDerGrinten4Raw\", function() { return _vanDerGrinten4__WEBPACK_IMPORTED_MODULE_89__[\"vanDerGrinten4Raw\"]; });\n\n/* harmony import */ var _wagner_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./wagner.js */ \"./node_modules/d3-geo-projection/src/wagner.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagner\", function() { return _wagner_js__WEBPACK_IMPORTED_MODULE_90__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagner7\", function() { return _wagner_js__WEBPACK_IMPORTED_MODULE_90__[\"wagner7\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagnerRaw\", function() { return _wagner_js__WEBPACK_IMPORTED_MODULE_90__[\"wagnerRaw\"]; });\n\n/* harmony import */ var _wagner4_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./wagner4.js */ \"./node_modules/d3-geo-projection/src/wagner4.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagner4\", function() { return _wagner4_js__WEBPACK_IMPORTED_MODULE_91__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagner4Raw\", function() { return _wagner4_js__WEBPACK_IMPORTED_MODULE_91__[\"wagner4Raw\"]; });\n\n/* harmony import */ var _wagner6_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./wagner6.js */ \"./node_modules/d3-geo-projection/src/wagner6.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagner6\", function() { return _wagner6_js__WEBPACK_IMPORTED_MODULE_92__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWagner6Raw\", function() { return _wagner6_js__WEBPACK_IMPORTED_MODULE_92__[\"wagner6Raw\"]; });\n\n/* harmony import */ var _wiechel_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./wiechel.js */ \"./node_modules/d3-geo-projection/src/wiechel.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWiechel\", function() { return _wiechel_js__WEBPACK_IMPORTED_MODULE_93__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWiechelRaw\", function() { return _wiechel_js__WEBPACK_IMPORTED_MODULE_93__[\"wiechelRaw\"]; });\n\n/* harmony import */ var _winkel3__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./winkel3 */ \"./node_modules/d3-geo-projection/src/winkel3.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWinkel3\", function() { return _winkel3__WEBPACK_IMPORTED_MODULE_94__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoWinkel3Raw\", function() { return _winkel3__WEBPACK_IMPORTED_MODULE_94__[\"winkel3Raw\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/integrate.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/integrate.js ***!
  \*********************************************************/
/*! exports provided: integrate */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"integrate\", function() { return integrate; });\n// https://github.com/scijs/integrate-adaptive-simpson\n\n// This algorithm adapted from pseudocode in:\n// http://www.math.utk.edu/~ccollins/refs/Handouts/rich.pdf\nfunction adsimp (f, a, b, fa, fm, fb, V0, tol, maxdepth, depth, state) {\n  if (state.nanEncountered) {\n    return NaN;\n  }\n\n  var h, f1, f2, sl, sr, s2, m, V1, V2, err;\n\n  h = b - a;\n  f1 = f(a + h * 0.25);\n  f2 = f(b - h * 0.25);\n\n  // Simple check for NaN:\n  if (isNaN(f1)) {\n    state.nanEncountered = true;\n    return;\n  }\n\n  // Simple check for NaN:\n  if (isNaN(f2)) {\n    state.nanEncountered = true;\n    return;\n  }\n\n  sl = h * (fa + 4 * f1 + fm) / 12;\n  sr = h * (fm + 4 * f2 + fb) / 12;\n  s2 = sl + sr;\n  err = (s2 - V0) / 15;\n\n  if (depth > maxdepth) {\n    state.maxDepthCount++;\n    return s2 + err;\n  } else if (Math.abs(err) < tol) {\n    return s2 + err;\n  } else {\n    m = a + h * 0.5;\n\n    V1 = adsimp(f, a, m, fa, f1, fm, sl, tol * 0.5, maxdepth, depth + 1, state);\n\n    if (isNaN(V1)) {\n      state.nanEncountered = true;\n      return NaN;\n    }\n\n    V2 = adsimp(f, m, b, fm, f2, fb, sr, tol * 0.5, maxdepth, depth + 1, state);\n\n    if (isNaN(V2)) {\n      state.nanEncountered = true;\n      return NaN;\n    }\n\n    return V1 + V2;\n  }\n}\n\nfunction integrate (f, a, b, tol, maxdepth) {\n  var state = {\n    maxDepthCount: 0,\n    nanEncountered: false\n  };\n\n  if (tol === undefined) {\n    tol = 1e-8;\n  }\n  if (maxdepth === undefined) {\n    maxdepth = 20;\n  }\n\n  var fa = f(a);\n  var fm = f(0.5 * (a + b));\n  var fb = f(b);\n\n  var V0 = (fa + 4 * fm + fb) * (b - a) / 6;\n\n  var result = adsimp(f, a, b, fa, fm, fb, V0, tol, maxdepth, 1, state);\n\n/*\n  if (state.maxDepthCount > 0 && console && console.warn) {\n    console.warn('integrate-adaptive-simpson: Warning: maximum recursion depth (' + maxdepth + ') reached ' + state.maxDepthCount + ' times');\n  }\n\n  if (state.nanEncountered && console && console.warn) {\n    console.warn('integrate-adaptive-simpson: Warning: NaN encountered. Halting early.');\n  }\n*/\n\n  return result;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/integrate.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/boggs.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/boggs.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _boggs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../boggs.js */ \"./node_modules/d3-geo-projection/src/boggs.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,   0], [-100,  90], [ -40,   0]],\n  [[ -40,   0], [  30,  90], [ 180,   0]]\n], [ // southern hemisphere\n  [[-180,   0], [-160, -90], [-100,   0]],\n  [[-100,   0], [ -60, -90], [ -20,   0]],\n  [[ -20,   0], [  20, -90], [  80,   0]],\n  [[  80,   0], [ 140, -90], [ 180,   0]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_boggs_js__WEBPACK_IMPORTED_MODULE_0__[\"boggsRaw\"], lobes)\n      .scale(160.857);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/boggs.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/homolosine.js":
/*!**********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/homolosine.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _homolosine_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../homolosine.js */ \"./node_modules/d3-geo-projection/src/homolosine.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,   0], [-100,  90], [ -40,   0]],\n  [[ -40,   0], [  30,  90], [ 180,   0]]\n], [ // southern hemisphere\n  [[-180,   0], [-160, -90], [-100,   0]],\n  [[-100,   0], [ -60, -90], [ -20,   0]],\n  [[ -20,   0], [  20, -90], [  80,   0]],\n  [[  80,   0], [ 140, -90], [ 180,   0]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_homolosine_js__WEBPACK_IMPORTED_MODULE_0__[\"homolosineRaw\"], lobes)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/homolosine.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n\nfunction pointEqual(a, b) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(a[0] - b[0]) < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] && Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(a[1] - b[1]) < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"];\n}\n\nfunction interpolateLine(coordinates, m) {\n  var i = -1,\n      n = coordinates.length,\n      p0 = coordinates[0],\n      p1,\n      dx,\n      dy,\n      resampled = [];\n  while (++i < n) {\n    p1 = coordinates[i];\n    dx = (p1[0] - p0[0]) / m;\n    dy = (p1[1] - p0[1]) / m;\n    for (var j = 0; j < m; ++j) resampled.push([p0[0] + j * dx, p0[1] + j * dy]);\n    p0 = p1;\n  }\n  resampled.push(p1);\n  return resampled;\n}\n\nfunction interpolateSphere(lobes) {\n  var coordinates = [],\n      lobe,\n      lambda0, phi0, phi1,\n      lambda2, phi2,\n      i, n = lobes[0].length;\n\n  // Northern Hemisphere\n  for (i = 0; i < n; ++i) {\n    lobe = lobes[0][i];\n    lambda0 = lobe[0][0], phi0 = lobe[0][1], phi1 = lobe[1][1];\n    lambda2 = lobe[2][0], phi2 = lobe[2][1];\n    coordinates.push(interpolateLine([\n      [lambda0 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi0 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]],\n      [lambda0 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi1 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]],\n      [lambda2 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi1 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]],\n      [lambda2 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi2 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]]\n    ], 30));\n  }\n\n  // Southern Hemisphere\n  for (i = lobes[1].length - 1; i >= 0; --i) {\n    lobe = lobes[1][i];\n    lambda0 = lobe[0][0], phi0 = lobe[0][1], phi1 = lobe[1][1];\n    lambda2 = lobe[2][0], phi2 = lobe[2][1];\n    coordinates.push(interpolateLine([\n      [lambda2 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi2 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]],\n      [lambda2 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]],\n      [lambda0 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi1 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]],\n      [lambda0 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"], phi0 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]]\n    ], 30));\n  }\n\n  return {\n    type: \"Polygon\",\n    coordinates: [Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(coordinates)]\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(project, lobes, inverse) {\n  var sphere, bounds;\n\n  function forward(lambda, phi) {\n    var sign = phi < 0 ? -1 : +1, lobe = lobes[+(phi < 0)];\n    for (var i = 0, n = lobe.length - 1; i < n && lambda > lobe[i][2][0]; ++i);\n    var p = project(lambda - lobe[i][1][0], phi);\n    p[0] += project(lobe[i][1][0], sign * phi > sign * lobe[i][0][1] ? lobe[i][0][1] : phi)[0];\n    return p;\n  }\n\n  if (inverse) {\n    forward.invert = inverse(forward);\n  } else if (project.invert) {\n    forward.invert = function(x, y) {\n      var bound = bounds[+(y < 0)], lobe = lobes[+(y < 0)];\n      for (var i = 0, n = bound.length; i < n; ++i) {\n        var b = bound[i];\n        if (b[0][0] <= x && x < b[1][0] && b[0][1] <= y && y < b[1][1]) {\n          var p = project.invert(x - project(lobe[i][1][0], 0)[0], y);\n          p[0] += lobe[i][1][0];\n          return pointEqual(forward(p[0], p[1]), [x, y]) ? p : null;\n        }\n      }\n    };\n  }\n\n  var p = Object(d3_geo__WEBPACK_IMPORTED_MODULE_1__[\"geoProjection\"])(forward),\n      stream_ = p.stream;\n\n  p.stream = function(stream) {\n    var rotate = p.rotate(),\n        rotateStream = stream_(stream),\n        sphereStream = (p.rotate([0, 0]), stream_(stream));\n    p.rotate(rotate);\n    rotateStream.sphere = function() { Object(d3_geo__WEBPACK_IMPORTED_MODULE_1__[\"geoStream\"])(sphere, sphereStream); };\n    return rotateStream;\n  };\n  \n  p.lobes = function(_) {\n    if (!arguments.length) return lobes.map(function(lobe) {\n      return lobe.map(function(l) {\n        return [\n          [l[0][0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"], l[0][1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"]],\n          [l[1][0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"], l[1][1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"]],\n          [l[2][0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"], l[2][1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"]]\n        ];\n      });\n    });\n\n    sphere = interpolateSphere(_);\n\n    lobes = _.map(function(lobe) {\n      return lobe.map(function(l) {\n        return [\n          [l[0][0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"], l[0][1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"]],\n          [l[1][0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"], l[1][1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"]],\n          [l[2][0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"], l[2][1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"]]\n        ];\n      });\n    });\n\n    bounds = lobes.map(function(lobe) {\n      return lobe.map(function(l) {\n        var x0 = project(l[0][0], l[0][1])[0],\n            x1 = project(l[2][0], l[2][1])[0],\n            y0 = project(l[1][0], l[0][1])[1],\n            y1 = project(l[1][0], l[1][1])[1],\n            t;\n        if (y0 > y1) t = y0, y0 = y1, y1 = t;\n        return [[x0, y0], [x1, y1]];\n      });\n    });\n\n    return p;\n  };\n\n  if (lobes != null) p.lobes(lobes);\n\n  return p;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/mollweide.js":
/*!*********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/mollweide.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,   0], [-100,  90], [ -40,   0]],\n  [[ -40,   0], [  30,  90], [ 180,   0]]\n], [ // southern hemisphere\n  [[-180,   0], [-160, -90], [-100,   0]],\n  [[-100,   0], [ -60, -90], [ -20,   0]],\n  [[ -20,   0], [  20, -90], [  80,   0]],\n  [[  80,   0], [ 140, -90], [ 180,   0]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_mollweide_js__WEBPACK_IMPORTED_MODULE_0__[\"mollweideRaw\"], lobes)\n      .scale(169.529);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/mollweide.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/mollweideHemispheres.js":
/*!********************************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/mollweideHemispheres.js ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,   0], [ -90,  90], [   0,   0]],\n  [[   0,   0], [  90,  90], [ 180,   0]]\n], [ // southern hemisphere\n  [[-180,   0], [ -90, -90], [   0,   0]],\n  [[   0,   0], [  90, -90], [ 180,   0]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_mollweide_js__WEBPACK_IMPORTED_MODULE_0__[\"mollweideRaw\"], lobes)\n      .scale(169.529)\n      .rotate([20, 0]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/mollweideHemispheres.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/quarticAuthalic.js":
/*!***************************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/quarticAuthalic.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hammer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../hammer.js */ \"./node_modules/d3-geo-projection/src/hammer.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,  0],  [-90,  90], [   0,  0]],\n  [[   0,  0], [  90,  90], [ 180, 0]]\n], [ // southern hemisphere\n  [[-180, 0], [-90, -90], [  0, 0]],\n  [[   0, 0], [ 90, -90], [180, 0]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_hammer_js__WEBPACK_IMPORTED_MODULE_0__[\"hammerRaw\"])(Infinity), lobes)\n      .rotate([20, 0])\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/quarticAuthalic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/sinuMollweide.js":
/*!*************************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/sinuMollweide.js ***!
  \*************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sinuMollweide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sinuMollweide.js */ \"./node_modules/d3-geo-projection/src/sinuMollweide.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n/* harmony import */ var _newton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../newton.js */ \"./node_modules/d3-geo-projection/src/newton.js\");\n\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,  35], [ -30,  90], [   0,  35]],\n  [[   0,  35], [  30,  90], [ 180,  35]]\n], [ // southern hemisphere\n  [[-180, -10], [-102, -90], [ -65, -10]],\n  [[ -65, -10], [   5, -90], [  77, -10]],\n  [[  77, -10], [ 103, -90], [ 180, -10]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_sinuMollweide_js__WEBPACK_IMPORTED_MODULE_0__[\"sinuMollweideRaw\"], lobes, _newton_js__WEBPACK_IMPORTED_MODULE_2__[\"solve2d\"])\n      .rotate([-20, -55])\n      .scale(164.263)\n      .center([0, -5.4036]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/sinuMollweide.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/interrupted/sinusoidal.js":
/*!**********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/interrupted/sinusoidal.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sinusoidal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../sinusoidal.js */ \"./node_modules/d3-geo-projection/src/sinusoidal.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/interrupted/index.js\");\n\n\n\nvar lobes = [[ // northern hemisphere\n  [[-180,   0], [-110,  90], [ -40,   0]],\n  [[ -40,   0], [   0,  90], [  40,   0]],\n  [[  40,   0], [ 110,  90], [ 180,   0]]\n], [ // southern hemisphere\n  [[-180,   0], [-110, -90], [ -40,   0]],\n  [[ -40,   0], [   0, -90], [  40,   0]],\n  [[  40,   0], [ 110, -90], [ 180,   0]]\n]];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_sinusoidal_js__WEBPACK_IMPORTED_MODULE_0__[\"sinusoidalRaw\"], lobes)\n      .scale(152.63)\n      .rotate([-20, 0]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/interrupted/sinusoidal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/kavrayskiy7.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/kavrayskiy7.js ***!
  \***********************************************************/
/*! exports provided: kavrayskiy7Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kavrayskiy7Raw\", function() { return kavrayskiy7Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction kavrayskiy7Raw(lambda, phi) {\n  return [3 / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"] * lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 3 - phi * phi), phi];\n}\n\nkavrayskiy7Raw.invert = function(x, y) {\n  return [_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"] / 3 * x / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 3 - y * y), y];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(kavrayskiy7Raw)\n      .scale(158.837);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/kavrayskiy7.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/lagrange.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/lagrange.js ***!
  \********************************************************/
/*! exports provided: lagrangeRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lagrangeRaw\", function() { return lagrangeRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction lagrangeRaw(n) {\n\n  function forward(lambda, phi) {\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [0, phi < 0 ? -2 : 2];\n    var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        v = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pow\"])((1 + sinPhi) / (1 - sinPhi), n / 2),\n        c = 0.5 * (v + 1 / v) + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda *= n);\n    return [\n      2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) / c,\n      (v - 1 / v) / c\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var y0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y);\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y0 - 2) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return x ? null : [0, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]];\n    if (y0 > 2) return null;\n\n    x /= 2, y /= 2;\n    var x2 = x * x,\n        y2 = y * y,\n        t = 2 * y / (1 + x2 + y2); // tanh(nPhi)\n    t = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pow\"])((1 + t) / (1 - t), 1 / n);\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(2 * x, 1 - x2 - y2) / n,\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((t - 1) / (t + 1))\n    ];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var n = 0.5,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(lagrangeRaw),\n      p = m(n);\n\n  p.spacing = function(_) {\n    return arguments.length ? m(n = +_) : n;\n  };\n\n  return p\n      .scale(124.75);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/lagrange.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/larrivee.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/larrivee.js ***!
  \********************************************************/
/*! exports provided: larriveeRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"larriveeRaw\", function() { return larriveeRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nvar pi_sqrt2 = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"];\n\nfunction larriveeRaw(lambda, phi) {\n  return [\n    lambda * (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi))) / 2,\n    phi / (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi / 2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda / 6))\n  ];\n}\n\nlarriveeRaw.invert = function(x, y) {\n  var x0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x),\n      y0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y),\n      lambda = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"],\n      phi = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"];\n  if (y0 < pi_sqrt2) phi *= y0 / pi_sqrt2;\n  else lambda += 6 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(pi_sqrt2 / y0);\n  for (var i = 0; i < 25; i++) {\n    var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        sqrtcosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi)),\n        sinPhi_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi / 2),\n        cosPhi_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi / 2),\n        sinLambda_6 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda / 6),\n        cosLambda_6 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda / 6),\n        f0 = 0.5 * lambda * (1 + sqrtcosPhi) - x0,\n        f1 = phi / (cosPhi_2 * cosLambda_6) - y0,\n        df0dPhi = sqrtcosPhi ? -0.25 * lambda * sinPhi / sqrtcosPhi : 0,\n        df0dLambda = 0.5 * (1 + sqrtcosPhi),\n        df1dPhi = (1 + 0.5 * phi * sinPhi_2 / cosPhi_2) / (cosPhi_2 * cosLambda_6),\n        df1dLambda = (phi / cosPhi_2) * (sinLambda_6 / 6) / (cosLambda_6 * cosLambda_6),\n        denom = df0dPhi * df1dLambda - df1dPhi * df0dLambda,\n        dPhi = (f0 * df1dLambda - f1 * df0dLambda) / denom,\n        dLambda = (f1 * df0dPhi - f0 * df1dPhi) / denom;\n    phi -= dPhi;\n    lambda -= dLambda;\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dPhi) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(dLambda) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) break;\n  }\n  return [x < 0 ? -lambda : lambda, y < 0 ? -phi : phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(larriveeRaw)\n      .scale(97.2672);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/larrivee.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/laskowski.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/laskowski.js ***!
  \*********************************************************/
/*! exports provided: laskowskiRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"laskowskiRaw\", function() { return laskowskiRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction laskowskiRaw(lambda, phi) {\n  var lambda2 = lambda * lambda, phi2 = phi * phi;\n  return [\n    lambda * (0.975534 + phi2 * (-0.119161 + lambda2 * -0.0143059 + phi2 * -0.0547009)),\n    phi * (1.00384 + lambda2 * (0.0802894 + phi2 * -0.02855 + lambda2 * 0.000199025) + phi2 * (0.0998909 + phi2 * -0.0491032))\n  ];\n}\n\nlaskowskiRaw.invert = function(x, y) {\n  var lambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n      phi = y / 2,\n      i = 50;\n  do {\n    var lambda2 = lambda * lambda,\n        phi2 = phi * phi,\n        lambdaPhi = lambda * phi,\n        fx = lambda * (0.975534 + phi2 * (-0.119161 + lambda2 * -0.0143059 + phi2 * -0.0547009)) - x,\n        fy = phi * (1.00384 + lambda2 * (0.0802894 + phi2 * -0.02855 + lambda2 * 0.000199025) + phi2 * (0.0998909 + phi2 * -0.0491032)) - y,\n        deltaxDeltaLambda = 0.975534 - phi2 * (0.119161 + 3 * lambda2 * 0.0143059 + phi2 * 0.0547009),\n        deltaxDeltaPhi = -lambdaPhi * (2 * 0.119161 + 4 * 0.0547009 * phi2 + 2 * 0.0143059 * lambda2),\n        deltayDeltaLambda = lambdaPhi * (2 * 0.0802894 + 4 * 0.000199025 * lambda2 + 2 * -0.02855 * phi2),\n        deltayDeltaPhi = 1.00384 + lambda2 * (0.0802894 + 0.000199025 * lambda2) + phi2 * (3 * (0.0998909 - 0.02855 * lambda2) - 5 * 0.0491032 * phi2),\n        denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda,\n        deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator,\n        deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n    lambda -= deltaLambda, phi -= deltaPhi;\n  } while ((Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(deltaLambda) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(deltaPhi) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) && --i > 0);\n  return i && [lambda, phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(laskowskiRaw)\n      .scale(139.98);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/laskowski.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/littrow.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/littrow.js ***!
  \*******************************************************/
/*! exports provided: littrowRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"littrowRaw\", function() { return littrowRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction littrowRaw(lambda, phi) {\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda)\n  ];\n}\n\nlittrowRaw.invert = function(x, y) {\n  var x2 = x * x,\n      y2 = y * y,\n      y2_1 = y2 + 1,\n      x2_y2_1 = x2 + y2_1,\n      cosPhi = x\n          ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((x2_y2_1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x2_y2_1 * x2_y2_1 - 4 * x2)) / x2)\n          : 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(y2_1);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x * cosPhi),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(cosPhi)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(littrowRaw)\n      .scale(144.049)\n      .clipAngle(90 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/littrow.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/loximuthal.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/loximuthal.js ***!
  \**********************************************************/
/*! exports provided: loximuthalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loximuthalRaw\", function() { return loximuthalRaw; });\n/* harmony import */ var _parallel1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parallel1.js */ \"./node_modules/d3-geo-projection/src/parallel1.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction loximuthalRaw(phi0) {\n  var cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0),\n      tanPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] + phi0 / 2);\n\n  function forward(lambda, phi) {\n    var y = phi - phi0,\n        x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] ? lambda * cosPhi0\n            : Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] + phi / 2) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]\n            ? 0 : lambda * y / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(x) / tanPhi0);\n    return [x, y];\n  }\n\n  forward.invert = function(x, y) {\n    var lambda,\n        phi = y + phi0;\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] ? x / cosPhi0\n          : (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] + phi / 2) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) ? 0\n          : x * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(lambda) / tanPhi0) / y,\n      phi\n    ];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_parallel1_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(loximuthalRaw)\n      .parallel(40)\n      .scale(158.837);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/loximuthal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/math.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/math.js ***!
  \****************************************************/
/*! exports provided: abs, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, round, sign, sin, tan, epsilon, epsilon2, pi, halfPi, quarterPi, sqrt1_2, sqrt2, sqrtPi, tau, degrees, radians, sinci, asin, acos, sqrt, tanh, sinh, cosh, arsinh, arcosh */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"abs\", function() { return abs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"atan\", function() { return atan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"atan2\", function() { return atan2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ceil\", function() { return ceil; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cos\", function() { return cos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exp\", function() { return exp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"floor\", function() { return floor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"log\", function() { return log; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return max; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return min; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pow\", function() { return pow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"round\", function() { return round; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sign\", function() { return sign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sin\", function() { return sin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tan\", function() { return tan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"epsilon\", function() { return epsilon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"epsilon2\", function() { return epsilon2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pi\", function() { return pi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"halfPi\", function() { return halfPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quarterPi\", function() { return quarterPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrt1_2\", function() { return sqrt1_2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrt2\", function() { return sqrt2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrtPi\", function() { return sqrtPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tau\", function() { return tau; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"degrees\", function() { return degrees; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"radians\", function() { return radians; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinci\", function() { return sinci; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asin\", function() { return asin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"acos\", function() { return acos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrt\", function() { return sqrt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tanh\", function() { return tanh; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinh\", function() { return sinh; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cosh\", function() { return cosh; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arsinh\", function() { return arsinh; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arcosh\", function() { return arcosh; });\nvar abs = Math.abs;\nvar atan = Math.atan;\nvar atan2 = Math.atan2;\nvar ceil = Math.ceil;\nvar cos = Math.cos;\nvar exp = Math.exp;\nvar floor = Math.floor;\nvar log = Math.log;\nvar max = Math.max;\nvar min = Math.min;\nvar pow = Math.pow;\nvar round = Math.round;\nvar sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nvar sin = Math.sin;\nvar tan = Math.tan;\n\nvar epsilon = 1e-6;\nvar epsilon2 = 1e-12;\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nvar quarterPi = pi / 4;\nvar sqrt1_2 = Math.SQRT1_2;\nvar sqrt2 = sqrt(2);\nvar sqrtPi = sqrt(pi);\nvar tau = pi * 2;\nvar degrees = 180 / pi;\nvar radians = pi / 180;\n\nfunction sinci(x) {\n  return x ? x / Math.sin(x) : 1;\n}\n\nfunction asin(x) {\n  return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nfunction acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nfunction sqrt(x) {\n  return x > 0 ? Math.sqrt(x) : 0;\n}\n\nfunction tanh(x) {\n  x = exp(2 * x);\n  return (x - 1) / (x + 1);\n}\n\nfunction sinh(x) {\n  return (exp(x) - exp(-x)) / 2;\n}\n\nfunction cosh(x) {\n  return (exp(x) + exp(-x)) / 2;\n}\n\nfunction arsinh(x) {\n  return log(x + sqrt(x * x + 1));\n}\n\nfunction arcosh(x) {\n  return log(x + sqrt(x * x - 1));\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/math.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/miller.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/miller.js ***!
  \******************************************************/
/*! exports provided: millerRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"millerRaw\", function() { return millerRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction millerRaw(lambda, phi) {\n  return [lambda, 1.25 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] + 0.4 * phi))];\n}\n\nmillerRaw.invert = function(x, y) {\n  return [x, 2.5 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"exp\"])(0.8 * y)) - 0.625 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(millerRaw)\n      .scale(108.318);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/miller.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/modifiedStereographic.js":
/*!*********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/modifiedStereographic.js ***!
  \*********************************************************************/
/*! exports provided: modifiedStereographicRaw, modifiedStereographicAlaska, modifiedStereographicGs48, modifiedStereographicGs50, modifiedStereographicMiller, modifiedStereographicLee, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifiedStereographicRaw\", function() { return modifiedStereographicRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifiedStereographicAlaska\", function() { return modifiedStereographicAlaska; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifiedStereographicGs48\", function() { return modifiedStereographicGs48; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifiedStereographicGs50\", function() { return modifiedStereographicGs50; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifiedStereographicMiller\", function() { return modifiedStereographicMiller; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modifiedStereographicLee\", function() { return modifiedStereographicLee; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return modifiedStereographic; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction modifiedStereographicRaw(C) {\n  var m = C.length - 1;\n\n  function forward(lambda, phi) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        k = 2 / (1 + cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda)),\n        zr = k * cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n        zi = k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        i = m,\n        w = C[i],\n        ar = w[0],\n        ai = w[1],\n        t;\n    while (--i >= 0) {\n      w = C[i];\n      ar = w[0] + zr * (t = ar) - zi * ai;\n      ai = w[1] + zr * ai + zi * t;\n    }\n    ar = zr * (t = ar) - zi * ai;\n    ai = zr * ai + zi * t;\n    return [ar, ai];\n  }\n\n  forward.invert = function(x, y) {\n    var i = 20,\n        zr = x,\n        zi = y;\n    do {\n      var j = m,\n          w = C[j],\n          ar = w[0],\n          ai = w[1],\n          br = 0,\n          bi = 0,\n          t;\n\n      while (--j >= 0) {\n        w = C[j];\n        br = ar + zr * (t = br) - zi * bi;\n        bi = ai + zr * bi + zi * t;\n        ar = w[0] + zr * (t = ar) - zi * ai;\n        ai = w[1] + zr * ai + zi * t;\n      }\n      br = ar + zr * (t = br) - zi * bi;\n      bi = ai + zr * bi + zi * t;\n      ar = zr * (t = ar) - zi * ai - x;\n      ai = zr * ai + zi * t - y;\n\n      var denominator = br * br + bi * bi, deltar, deltai;\n      zr -= deltar = (ar * br + ai * bi) / denominator;\n      zi -= deltai = (ai * br - ar * bi) / denominator;\n    } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(deltar) + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(deltai) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n\n    if (i) {\n      var rho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(zr * zr + zi * zi),\n          c = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(rho * 0.5),\n          sinc = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(c);\n      return [Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(zr * sinc, rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(c)), rho ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(zi * sinc / rho) : 0];\n    }\n  };\n\n  return forward;\n}\n\nvar alaska = [[0.9972523, 0], [0.0052513, -0.0041175], [0.0074606, 0.0048125], [-0.0153783, -0.1968253], [0.0636871, -0.1408027], [0.3660976, -0.2937382]],\n    gs48 = [[0.98879, 0], [0, 0], [-0.050909, 0], [0, 0], [0.075528, 0]],\n    gs50 = [[0.9842990, 0], [0.0211642, 0.0037608], [-0.1036018, -0.0575102], [-0.0329095, -0.0320119], [0.0499471, 0.1223335], [0.0260460, 0.0899805], [0.0007388, -0.1435792], [0.0075848, -0.1334108], [-0.0216473, 0.0776645], [-0.0225161, 0.0853673]],\n    miller = [[0.9245, 0], [0, 0], [0.01943, 0]],\n    lee = [[0.721316, 0], [0, 0], [-0.00881625, -0.00617325]];\n\nfunction modifiedStereographicAlaska() {\n  return modifiedStereographic(alaska, [152, -64])\n      .scale(1400)\n      .center([-160.908, 62.4864])\n      .clipAngle(30)\n      .angle(7.8);\n}\n\nfunction modifiedStereographicGs48() {\n  return modifiedStereographic(gs48, [95, -38])\n      .scale(1000)\n      .clipAngle(55)\n      .center([-96.5563, 38.8675]);\n}\n\nfunction modifiedStereographicGs50() {\n  return modifiedStereographic(gs50, [120, -45])\n      .scale(359.513)\n      .clipAngle(55)\n      .center([-117.474, 53.0628]);\n}\n\nfunction modifiedStereographicMiller() {\n  return modifiedStereographic(miller, [-20, -18])\n      .scale(209.091)\n      .center([20, 16.7214])\n      .clipAngle(82);\n}\n\nfunction modifiedStereographicLee() {\n  return modifiedStereographic(lee, [165, 10])\n      .scale(250)\n      .clipAngle(130)\n      .center([-165, -10]);\n}\n\nfunction modifiedStereographic(coefficients, rotate) {\n  var p = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(modifiedStereographicRaw(coefficients)).rotate(rotate).clipAngle(90),\n      r = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoRotation\"])(rotate),\n      center = p.center;\n\n  delete p.rotate;\n\n  p.center = function(_) {\n    return arguments.length ? center(r(_)) : r.invert(center());\n  };\n\n  return p;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/modifiedStereographic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/mollweide.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/mollweide.js ***!
  \*********************************************************/
/*! exports provided: mollweideBromleyTheta, mollweideBromleyRaw, mollweideRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mollweideBromleyTheta\", function() { return mollweideBromleyTheta; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mollweideBromleyRaw\", function() { return mollweideBromleyRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mollweideRaw\", function() { return mollweideRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction mollweideBromleyTheta(cp, phi) {\n  var cpsinPhi = cp * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi), i = 30, delta;\n  do phi -= delta = (phi + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) - cpsinPhi) / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi));\n  while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  return phi / 2;\n}\n\nfunction mollweideBromleyRaw(cx, cy, cp) {\n\n  function forward(lambda, phi) {\n    return [cx * lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi = mollweideBromleyTheta(cp, phi)), cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)];\n  }\n\n  forward.invert = function(x, y) {\n    return y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y / cy), [x / (cx * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y)), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((2 * y + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * y)) / cp)];\n  };\n\n  return forward;\n}\n\nvar mollweideRaw = mollweideBromleyRaw(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"] / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"], _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"], _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(mollweideRaw)\n      .scale(169.529);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/mollweide.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/mtFlatPolarParabolic.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/mtFlatPolarParabolic.js ***!
  \********************************************************************/
/*! exports provided: mtFlatPolarParabolicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mtFlatPolarParabolicRaw\", function() { return mtFlatPolarParabolicRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nvar sqrt6 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(6),\n    sqrt7 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(7);\n\nfunction mtFlatPolarParabolicRaw(lambda, phi) {\n  var theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(7 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) / (3 * sqrt6));\n  return [\n    sqrt6 * lambda * (2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(2 * theta / 3) - 1) / sqrt7,\n    9 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta / 3) / sqrt7\n  ];\n}\n\nmtFlatPolarParabolicRaw.invert = function(x, y) {\n  var theta = 3 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y * sqrt7 / 9);\n  return [\n    x * sqrt7 / (sqrt6 * (2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(2 * theta / 3) - 1)),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta) * 3 * sqrt6 / 7)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(mtFlatPolarParabolicRaw)\n      .scale(164.859);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/mtFlatPolarParabolic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/mtFlatPolarQuartic.js":
/*!******************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/mtFlatPolarQuartic.js ***!
  \******************************************************************/
/*! exports provided: mtFlatPolarQuarticRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mtFlatPolarQuarticRaw\", function() { return mtFlatPolarQuarticRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction mtFlatPolarQuarticRaw(lambda, phi) {\n  var k = (1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"]) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      theta = phi;\n  for (var i = 0, delta; i < 25; i++) {\n    theta -= delta = (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta / 2) + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta) - k) / (0.5 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta / 2) + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta));\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) break;\n  }\n  return [\n    lambda * (1 + 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta / 2)) / (3 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"]),\n    2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta / 2) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"])\n  ];\n}\n\nmtFlatPolarQuarticRaw.invert = function(x, y) {\n  var sinTheta_2 = y * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"]) / (2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3)),\n      theta = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sinTheta_2);\n  return [\n    3 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt2\"] * x / (1 + 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta / 2)),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((sinTheta_2 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta)) / (1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"]))\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(mtFlatPolarQuarticRaw)\n      .scale(188.209);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/mtFlatPolarQuartic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/mtFlatPolarSinusoidal.js":
/*!*********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/mtFlatPolarSinusoidal.js ***!
  \*********************************************************************/
/*! exports provided: mtFlatPolarSinusoidalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mtFlatPolarSinusoidalRaw\", function() { return mtFlatPolarSinusoidalRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction mtFlatPolarSinusoidalRaw(lambda, phi) {\n  var A = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(6 / (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])),\n      k = (1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      theta = phi / 2;\n  for (var i = 0, delta; i < 25; i++) {\n    theta -= delta = (theta / 2 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta) - k) / (0.5 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta));\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) break;\n  }\n  return [\n    A * (0.5 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta)) * lambda / 1.5,\n    A * theta\n  ];\n}\n\nmtFlatPolarSinusoidalRaw.invert = function(x, y) {\n  var A = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(6 / (4 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])),\n      theta = y / A;\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(theta) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) theta = theta < 0 ? -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] : _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"];\n  return [\n    1.5 * x / (A * (0.5 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta))),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])((theta / 2 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(theta)) / (1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4))\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(mtFlatPolarSinusoidalRaw)\n      .scale(166.518);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/mtFlatPolarSinusoidal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/naturalEarth2.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/naturalEarth2.js ***!
  \*************************************************************/
/*! exports provided: naturalEarth2Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"naturalEarth2Raw\", function() { return naturalEarth2Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction naturalEarth2Raw(lambda, phi) {\n  var phi2 = phi * phi, phi4 = phi2 * phi2, phi6 = phi2 * phi4;\n  return [\n    lambda * (0.84719 - 0.13063 * phi2 + phi6 * phi6 * (-0.04515 + 0.05494 * phi2 - 0.02326 * phi4 + 0.00331 * phi6)),\n    phi * (1.01183 + phi4 * phi4 * (-0.02625 + 0.01926 * phi2 - 0.00396 * phi4))\n  ];\n}\n\nnaturalEarth2Raw.invert = function(x, y) {\n  var phi = y, i = 25, delta, phi2, phi4, phi6;\n  do {\n    phi2 = phi * phi; phi4 = phi2 * phi2;\n    phi -= delta = ((phi * (1.01183 + phi4 * phi4 * (-0.02625 + 0.01926 * phi2 - 0.00396 * phi4))) - y) /\n      (1.01183 + phi4 * phi4 * ((9 * -0.02625) + (11 * 0.01926) * phi2 + (13 * -0.00396) * phi4));\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"] && --i > 0);\n  phi2 = phi * phi; phi4 = phi2 * phi2; phi6 = phi2 * phi4;\n  return [\n    x / (0.84719 - 0.13063 * phi2 + phi6 * phi6 * (-0.04515 + 0.05494 * phi2 - 0.02326 * phi4 + 0.00331 * phi6)),\n    phi\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(naturalEarth2Raw)\n      .scale(175.295);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/naturalEarth2.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/nellHammer.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/nellHammer.js ***!
  \**********************************************************/
/*! exports provided: nellHammerRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nellHammerRaw\", function() { return nellHammerRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction nellHammerRaw(lambda, phi) {\n  return [\n    lambda * (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi)) / 2,\n    2 * (phi - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi / 2))\n  ];\n}\n\nnellHammerRaw.invert = function(x, y) {\n  var p = y / 2;\n  for (var i = 0, delta = Infinity; i < 10 && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]; ++i) {\n    var c = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y / 2);\n    y -= delta = (y - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(y / 2) - p) / (1 - 0.5 / (c * c));\n  }\n  return [\n    2 * x / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y)),\n    y\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(nellHammerRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/nellHammer.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/newton.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/newton.js ***!
  \******************************************************/
/*! exports provided: solve, solve2d */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"solve\", function() { return solve; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"solve2d\", function() { return solve2d; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n// Approximate Newton-Raphson\n// Solve f(x) = y, start from x\nfunction solve(f, y, x) {\n  var steps = 100, delta, f0, f1;\n  x = x === undefined ? 0 : +x;\n  y = +y;\n  do {\n    f0 = f(x);\n    f1 = f(x + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]);\n    if (f0 === f1) f1 = f0 + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"];\n    x -= delta = (-1 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] * (f0 - y)) / (f0 - f1);\n  } while (steps-- > 0 && Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]);\n  return steps < 0 ? NaN : x;\n}\n\n// Approximate Newton-Raphson in 2D\n// Solve f(a,b) = [x,y]\nfunction solve2d(f, MAX_ITERATIONS, eps) {\n  if (MAX_ITERATIONS === undefined) MAX_ITERATIONS = 40;\n  if (eps === undefined) eps = _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon2\"];\n  return function(x, y, a, b) {\n    var err2, da, db;\n    a = a === undefined ? 0 : +a;\n    b = b === undefined ? 0 : +b;\n    for (var i = 0; i < MAX_ITERATIONS; i++) {\n      var p = f(a, b),\n        // diffs\n        tx = p[0] - x,\n        ty = p[1] - y;\n      if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(tx) < eps && Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(ty) < eps) break; // we're there!\n\n      // backtrack if we overshot\n      var h = tx * tx + ty * ty;\n      if (h > err2) {\n        a -= da /= 2;\n        b -= db /= 2;\n        continue;\n      }\n      err2 = h;\n\n      // partial derivatives\n      var ea = (a > 0 ? -1 : 1) * eps,\n        eb = (b > 0 ? -1 : 1) * eps,\n        pa = f(a + ea, b),\n        pb = f(a, b + eb),\n        dxa = (pa[0] - p[0]) / ea,\n        dya = (pa[1] - p[1]) / ea,\n        dxb = (pb[0] - p[0]) / eb,\n        dyb = (pb[1] - p[1]) / eb,\n        // determinant\n        D = dyb * dxa - dya * dxb,\n        // newton step — or half-step for small D\n        l = (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(D) < 0.5 ? 0.5 : 1) / D;\n      da = (ty * dxb - tx * dyb) * l;\n      db = (tx * dya - ty * dxa) * l;\n      a += da;\n      b += db;\n      if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(da) < eps && Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(db) < eps) break; // we're crawling\n    }\n    return [a, b];\n  };\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/newton.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/nicolosi.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/nicolosi.js ***!
  \********************************************************/
/*! exports provided: nicolosiRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nicolosiRaw\", function() { return nicolosiRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _newton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./newton.js */ \"./node_modules/d3-geo-projection/src/newton.js\");\n\n\n\n\n// Based on Torben Jansen's implementation\n// https://beta.observablehq.com/@toja/nicolosi-globular-projection\n// https://beta.observablehq.com/@toja/nicolosi-globular-inverse\n\nfunction nicolosiRaw(lambda, phi) {\n  var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n    q = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n    s = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(lambda);\n\n  if (lambda === 0 || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) === _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) return [0, phi];\n  else if (phi === 0) return [lambda, 0];\n  else if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) === _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) return [lambda * q, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * sinPhi];\n\n  var b = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / (2 * lambda) - (2 * lambda) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n    c = (2 * phi) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n    d = (1 - c * c) / (sinPhi - c);\n\n  var b2 = b * b,\n    d2 = d * d,\n    b2d2 = 1 + b2 / d2,\n    d2b2 = 1 + d2 / b2;\n\n  var M = ((b * sinPhi) / d - b / 2) / b2d2,\n    N = ((d2 * sinPhi) / b2 + d / 2) / d2b2,\n    m = M * M + (q * q) / b2d2,\n    n = N * N - ((d2 * sinPhi * sinPhi) / b2 + d * sinPhi - 1) / d2b2;\n\n  return [\n    _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * (M + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(m) * s),\n    _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * (N + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(n < 0 ? 0 : n) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(-phi * b) * s)\n  ];\n}\n\nnicolosiRaw.invert = function(x, y) {\n\n  x /= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"];\n  y /= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"];\n\n  var x2 = x * x,\n    y2 = y * y,\n    x2y2 = x2 + y2,\n    pi2 = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"];\n\n  return [\n    x ? (x2y2 -1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((1 - x2y2) * (1 - x2y2) + 4 * x2)) / (2 * x) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] : 0,\n    Object(_newton_js__WEBPACK_IMPORTED_MODULE_2__[\"solve\"])(function(phi) {\n      return (\n        x2y2 * (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi) - 2 * phi) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] +\n        4 * phi * phi * (y - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)) +\n        2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * phi -\n        pi2 * y\n      );\n    }, 0)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(nicolosiRaw)\n    .scale(127.267);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/nicolosi.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/noop.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/noop.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (() => {});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/noop.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/parallel1.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/parallel1.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(projectAt) {\n  var phi0 = 0,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(projectAt),\n      p = m(phi0);\n\n  p.parallel = function(_) {\n    return arguments.length ? m(phi0 = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]) : phi0 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n  };\n\n  return p;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/parallel1.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/patterson.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/patterson.js ***!
  \*********************************************************/
/*! exports provided: pattersonRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pattersonRaw\", function() { return pattersonRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n// Based on Java implementation by Bojan Savric.\n// https://github.com/OSUCartography/JMapProjLib/blob/master/src/com/jhlabs/map/proj/PattersonProjection.java\n\nvar pattersonK1 = 1.0148,\n    pattersonK2 = 0.23185,\n    pattersonK3 = -0.14499,\n    pattersonK4 = 0.02406,\n    pattersonC1 = pattersonK1,\n    pattersonC2 = 5 * pattersonK2,\n    pattersonC3 = 7 * pattersonK3,\n    pattersonC4 = 9 * pattersonK4,\n    pattersonYmax = 1.790857183;\n\nfunction pattersonRaw(lambda, phi) {\n  var phi2 = phi * phi;\n  return [\n    lambda,\n    phi * (pattersonK1 + phi2 * phi2 * (pattersonK2 + phi2 * (pattersonK3 + pattersonK4 * phi2)))\n  ];\n}\n\npattersonRaw.invert = function(x, y) {\n  if (y > pattersonYmax) y = pattersonYmax;\n  else if (y < -pattersonYmax) y = -pattersonYmax;\n  var yc = y, delta;\n\n  do { // Newton-Raphson\n    var y2 = yc * yc;\n    yc -= delta = ((yc * (pattersonK1 + y2 * y2 * (pattersonK2 + y2 * (pattersonK3 + pattersonK4 * y2)))) - y) / (pattersonC1 + y2 * y2 * (pattersonC2 + y2 * (pattersonC3 + pattersonC4 * y2)));\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]);\n\n  return [x, yc];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(pattersonRaw)\n      .scale(139.319);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/patterson.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyconic.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyconic.js ***!
  \*********************************************************/
/*! exports provided: polyconicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polyconicRaw\", function() { return polyconicRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction polyconicRaw(lambda, phi) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [lambda, 0];\n  var tanPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi),\n      k = lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(k) / tanPhi,\n    phi + (1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(k)) / tanPhi\n  ];\n}\n\npolyconicRaw.invert = function(x, y) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [x, 0];\n  var k = x * x + y * y,\n      phi = y * 0.5,\n      i = 10, delta;\n  do {\n    var tanPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi),\n        secPhi = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        j = k - 2 * y * phi + phi * phi;\n    phi -= delta = (tanPhi * j + 2 * (phi - y)) / (2 + j * secPhi * secPhi + 2 * (phi - y) * tanPhi);\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  tanPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi);\n  return [\n    (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi + 1 / tanPhi) ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(x * tanPhi) : Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x * tanPhi)) + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"])) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n    phi\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(polyconicRaw)\n      .scale(103.74);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyconic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyhedral/butterfly.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyhedral/butterfly.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/polyhedral/index.js\");\n/* harmony import */ var _octahedron_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./octahedron.js */ \"./node_modules/d3-geo-projection/src/polyhedral/octahedron.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(faceProjection) {\n\n  faceProjection = faceProjection || function(face) {\n    var c = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoCentroid\"])({type: \"MultiPoint\", coordinates: face});\n    return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoGnomonic\"])().scale(1).translate([0, 0]).rotate([-c[0], -c[1]]);\n  };\n\n  var faces = _octahedron_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].map(function(face) {\n    return {face: face, project: faceProjection(face)};\n  });\n\n  [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {\n    var node = faces[d];\n    node && (node.children || (node.children = [])).push(faces[i]);\n  });\n\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(faces[0], function(lambda, phi) {\n        return faces[lambda < -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 2 ? phi < 0 ? 6 : 4\n            : lambda < 0 ? phi < 0 ? 2 : 0\n            : lambda < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 2 ? phi < 0 ? 3 : 1\n            : phi < 0 ? 7 : 5];\n      })\n      .angle(-30)\n      .scale(101.858)\n      .center([0, 45]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyhedral/butterfly.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyhedral/collignon.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyhedral/collignon.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _collignon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../collignon.js */ \"./node_modules/d3-geo-projection/src/collignon.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/polyhedral/index.js\");\n/* harmony import */ var _octahedron_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./octahedron.js */ \"./node_modules/d3-geo-projection/src/polyhedral/octahedron.js\");\n\n\n\n\n\n\nvar kx = 2 / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(3);\n\nfunction collignonK(a, b) {\n  var p = Object(_collignon_js__WEBPACK_IMPORTED_MODULE_1__[\"collignonRaw\"])(a, b);\n  return [p[0] * kx, p[1]];\n}\n\ncollignonK.invert = function(x,y) {\n  return _collignon_js__WEBPACK_IMPORTED_MODULE_1__[\"collignonRaw\"].invert(x / kx, y);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(faceProjection) {\n\n  faceProjection = faceProjection || function(face) {\n    var c = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoCentroid\"])({type: \"MultiPoint\", coordinates: face});\n    return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(collignonK).translate([0, 0]).scale(1).rotate(c[1] > 0 ? [-c[0], 0] : [180 - c[0], 180]);\n  };\n\n  var faces = _octahedron_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].map(function(face) {\n    return {face: face, project: faceProjection(face)};\n  });\n\n  [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {\n    var node = faces[d];\n    node && (node.children || (node.children = [])).push(faces[i]);\n  });\n\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(faces[0], function(lambda, phi) {\n        return faces[lambda < -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] / 2 ? phi < 0 ? 6 : 4\n            : lambda < 0 ? phi < 0 ? 2 : 0\n            : lambda < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] / 2 ? phi < 0 ? 3 : 1\n            : phi < 0 ? 7 : 5];\n      })\n      .angle(-30)\n      .scale(121.906)\n      .center([0, 48.5904]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyhedral/collignon.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyhedral/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyhedral/index.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _matrix_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./matrix.js */ \"./node_modules/d3-geo-projection/src/polyhedral/matrix.js\");\n\n\n\n\n// Creates a polyhedral projection.\n//  * root: a spanning tree of polygon faces.  Nodes are automatically\n//    augmented with a transform matrix.\n//  * face: a function that returns the appropriate node for a given {lambda, phi}\n//    point (radians).\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(root, face) {\n\n  recurse(root, {transform: null});\n\n  function recurse(node, parent) {\n    node.edges = faceEdges(node.face);\n    // Find shared edge.\n    if (parent.face) {\n      var shared = node.shared = sharedEdge(node.face, parent.face),\n          m = Object(_matrix_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(shared.map(parent.project), shared.map(node.project));\n      node.transform = parent.transform ? Object(_matrix_js__WEBPACK_IMPORTED_MODULE_2__[\"multiply\"])(parent.transform, m) : m;\n      // Replace shared edge in parent edges array.\n      var edges = parent.edges;\n      for (var i = 0, n = edges.length; i < n; ++i) {\n        if (pointEqual(shared[0], edges[i][1]) && pointEqual(shared[1], edges[i][0])) edges[i] = node;\n        if (pointEqual(shared[0], edges[i][0]) && pointEqual(shared[1], edges[i][1])) edges[i] = node;\n      }\n      edges = node.edges;\n      for (i = 0, n = edges.length; i < n; ++i) {\n        if (pointEqual(shared[0], edges[i][0]) && pointEqual(shared[1], edges[i][1])) edges[i] = parent;\n        if (pointEqual(shared[0], edges[i][1]) && pointEqual(shared[1], edges[i][0])) edges[i] = parent;\n      }\n    } else {\n      node.transform = parent.transform;\n    }\n    if (node.children) {\n      node.children.forEach(function(child) {\n        recurse(child, node);\n      });\n    }\n    return node;\n  }\n\n  function forward(lambda, phi) {\n    var node = face(lambda, phi),\n        point = node.project([lambda * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], phi * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]]),\n        t;\n    if (t = node.transform) {\n      return [\n        t[0] * point[0] + t[1] * point[1] + t[2],\n        -(t[3] * point[0] + t[4] * point[1] + t[5])\n      ];\n    }\n    point[1] = -point[1];\n    return point;\n  }\n\n  // Naive inverse!  A faster solution would use bounding boxes, or even a\n  // polygonal quadtree.\n  if (hasInverse(root)) forward.invert = function(x, y) {\n    var coordinates = faceInvert(root, [x, -y]);\n    return coordinates && (coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], coordinates);\n  };\n\n  function faceInvert(node, coordinates) {\n    var invert = node.project.invert,\n        t = node.transform,\n        point = coordinates;\n    if (t) {\n      t = Object(_matrix_js__WEBPACK_IMPORTED_MODULE_2__[\"inverse\"])(t);\n      point = [\n        t[0] * point[0] + t[1] * point[1] + t[2],\n        (t[3] * point[0] + t[4] * point[1] + t[5])\n      ];\n    }\n    if (invert && node === faceDegrees(p = invert(point))) return p;\n    var p,\n        children = node.children;\n    for (var i = 0, n = children && children.length; i < n; ++i) {\n      if (p = faceInvert(children[i], coordinates)) return p;\n    }\n  }\n\n  function faceDegrees(coordinates) {\n    return face(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n  }\n\n  var proj = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(forward),\n      stream_ = proj.stream;\n\n  proj.stream = function(stream) {\n    var rotate = proj.rotate(),\n        rotateStream = stream_(stream),\n        sphereStream = (proj.rotate([0, 0]), stream_(stream));\n    proj.rotate(rotate);\n    rotateStream.sphere = function() {\n      sphereStream.polygonStart();\n      sphereStream.lineStart();\n      outline(sphereStream, root);\n      sphereStream.lineEnd();\n      sphereStream.polygonEnd();\n    };\n    return rotateStream;\n  };\n\n  return proj.angle(-30);\n});\n\nfunction outline(stream, node, parent) {\n  var point,\n      edges = node.edges,\n      n = edges.length,\n      edge,\n      multiPoint = {type: \"MultiPoint\", coordinates: node.face},\n      notPoles = node.face.filter(function(d) { return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(d[1]) !== 90; }),\n      b = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoBounds\"])({type: \"MultiPoint\", coordinates: notPoles}),\n      inside = false,\n      j = -1,\n      dx = b[1][0] - b[0][0];\n  // TODO\n  var c = dx === 180 || dx === 360\n      ? [(b[0][0] + b[1][0]) / 2, (b[0][1] + b[1][1]) / 2]\n      : Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoCentroid\"])(multiPoint);\n  // First find the shared edge…\n  if (parent) while (++j < n) {\n    if (edges[j] === parent) break;\n  }\n  ++j;\n  for (var i = 0; i < n; ++i) {\n    edge = edges[(i + j) % n];\n    if (Array.isArray(edge)) {\n      if (!inside) {\n        stream.point((point = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoInterpolate\"])(edge[0], c)(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]))[0], point[1]);\n        inside = true;\n      }\n      stream.point((point = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoInterpolate\"])(edge[1], c)(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]))[0], point[1]);\n    } else {\n      inside = false;\n      if (edge !== parent) outline(stream, edge, node);\n    }\n  }\n}\n\n// Tests equality of two spherical points.\nfunction pointEqual(a, b) {\n  return a && b && a[0] === b[0] && a[1] === b[1];\n}\n\n// Finds a shared edge given two clockwise polygons.\nfunction sharedEdge(a, b) {\n  var x, y, n = a.length, found = null;\n  for (var i = 0; i < n; ++i) {\n    x = a[i];\n    for (var j = b.length; --j >= 0;) {\n      y = b[j];\n      if (x[0] === y[0] && x[1] === y[1]) {\n        if (found) return [found, x];\n        found = x;\n      }\n    }\n  }\n}\n\n// Converts an array of n face vertices to an array of n + 1 edges.\nfunction faceEdges(face) {\n  var n = face.length,\n      edges = [];\n  for (var a = face[n - 1], i = 0; i < n; ++i) edges.push([a, a = face[i]]);\n  return edges;\n}\n\nfunction hasInverse(node) {\n  return node.project.invert || node.children && node.children.some(hasInverse);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyhedral/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyhedral/matrix.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyhedral/matrix.js ***!
  \*****************************************************************/
/*! exports provided: default, inverse, multiply */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inverse\", function() { return inverse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multiply\", function() { return multiply; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n// Note: 6-element arrays are used to denote the 3x3 affine transform matrix:\n// [a, b, c,\n//  d, e, f,\n//  0, 0, 1] - this redundant row is left out.\n\n// Transform matrix for [a0, a1] -> [b0, b1].\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var u = subtract(a[1], a[0]),\n      v = subtract(b[1], b[0]),\n      phi = angle(u, v),\n      s = length(u) / length(v);\n\n  return multiply([\n    1, 0, a[0][0],\n    0, 1, a[0][1]\n  ], multiply([\n    s, 0, 0,\n    0, s, 0\n  ], multiply([\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi), 0,\n    -Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi), 0\n  ], [\n    1, 0, -b[0][0],\n    0, 1, -b[0][1]\n  ])));\n});\n\n// Inverts a transform matrix.\nfunction inverse(m) {\n  var k = 1 / (m[0] * m[4] - m[1] * m[3]);\n  return [\n    k * m[4], -k * m[1], k * (m[1] * m[5] - m[2] * m[4]),\n    -k * m[3], k * m[0], k * (m[2] * m[3] - m[0] * m[5])\n  ];\n}\n\n// Multiplies two 3x2 matrices.\nfunction multiply(a, b) {\n  return [\n    a[0] * b[0] + a[1] * b[3],\n    a[0] * b[1] + a[1] * b[4],\n    a[0] * b[2] + a[1] * b[5] + a[2],\n    a[3] * b[0] + a[4] * b[3],\n    a[3] * b[1] + a[4] * b[4],\n    a[3] * b[2] + a[4] * b[5] + a[5]\n  ];\n}\n\n// Subtracts 2D vectors.\nfunction subtract(a, b) {\n  return [a[0] - b[0], a[1] - b[1]];\n}\n\n// Magnitude of a 2D vector.\nfunction length(v) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(v[0] * v[0] + v[1] * v[1]);\n}\n\n// Angle between two 2D vectors.\nfunction angle(a, b) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(a[0] * b[1] - a[1] * b[0], a[0] * b[0] + a[1] * b[1]);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyhedral/matrix.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyhedral/octahedron.js":
/*!*********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyhedral/octahedron.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n// TODO generate on-the-fly to avoid external modification.\nvar octahedron = [\n  [0, 90],\n  [-90, 0], [0, 0], [90, 0], [180, 0],\n  [0, -90]\n];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ([\n  [0, 2, 1],\n  [0, 3, 2],\n  [5, 1, 2],\n  [5, 2, 3],\n  [0, 1, 4],\n  [0, 4, 3],\n  [5, 4, 1],\n  [5, 3, 4]\n].map(function(face) {\n  return face.map(function(i) {\n    return octahedron[i];\n  });\n}));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyhedral/octahedron.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/polyhedral/waterman.js":
/*!*******************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/polyhedral/waterman.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/polyhedral/index.js\");\n/* harmony import */ var _octahedron_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./octahedron.js */ \"./node_modules/d3-geo-projection/src/polyhedral/octahedron.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(faceProjection) {\n\n  faceProjection = faceProjection || function(face) {\n    var c = face.length === 6 ? Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoCentroid\"])({type: \"MultiPoint\", coordinates: face}) : face[0];\n    return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoGnomonic\"])().scale(1).translate([0, 0]).rotate([-c[0], -c[1]]);\n  };\n\n  var w5 = _octahedron_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].map(function(face) {\n    var xyz = face.map(cartesian),\n        n = xyz.length,\n        a = xyz[n - 1],\n        b,\n        hexagon = [];\n    for (var i = 0; i < n; ++i) {\n      b = xyz[i];\n      hexagon.push(spherical([\n        a[0] * 0.9486832980505138 + b[0] * 0.31622776601683794,\n        a[1] * 0.9486832980505138 + b[1] * 0.31622776601683794,\n        a[2] * 0.9486832980505138 + b[2] * 0.31622776601683794\n      ]), spherical([\n        b[0] * 0.9486832980505138 + a[0] * 0.31622776601683794,\n        b[1] * 0.9486832980505138 + a[1] * 0.31622776601683794,\n        b[2] * 0.9486832980505138 + a[2] * 0.31622776601683794\n      ]));\n      a = b;\n    }\n    return hexagon;\n  });\n\n  var cornerNormals = [];\n\n  var parents = [-1, 0, 0, 1, 0, 1, 4, 5];\n\n  w5.forEach(function(hexagon, j) {\n    var face = _octahedron_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"][j],\n        n = face.length,\n        normals = cornerNormals[j] = [];\n    for (var i = 0; i < n; ++i) {\n      w5.push([\n        face[i],\n        hexagon[(i * 2 + 2) % (2 * n)],\n        hexagon[(i * 2 + 1) % (2 * n)]\n      ]);\n      parents.push(j);\n      normals.push(cross(\n        cartesian(hexagon[(i * 2 + 2) % (2 * n)]),\n        cartesian(hexagon[(i * 2 + 1) % (2 * n)])\n      ));\n    }\n  });\n\n  var faces = w5.map(function(face) {\n    return {\n      project: faceProjection(face),\n      face: face\n    };\n  });\n\n  parents.forEach(function(d, i) {\n    var parent = faces[d];\n    parent && (parent.children || (parent.children = [])).push(faces[i]);\n  });\n\n  function face(lambda, phi) {\n    var cosphi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        p = [cosphi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda), cosphi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)];\n\n    var hexagon = lambda < -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 2 ? phi < 0 ? 6 : 4\n        : lambda < 0 ? phi < 0 ? 2 : 0\n        : lambda < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 2 ? phi < 0 ? 3 : 1\n        : phi < 0 ? 7 : 5;\n\n    var n = cornerNormals[hexagon];\n\n    return faces[dot(n[0], p) < 0 ? 8 + 3 * hexagon\n        : dot(n[1], p) < 0 ? 8 + 3 * hexagon + 1\n        : dot(n[2], p) < 0 ? 8 + 3 * hexagon + 2\n        : hexagon];\n  }\n\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(faces[0], face)\n      .angle(-30)\n      .scale(110.625)\n      .center([0,45]);\n});\n\nfunction dot(a, b) {\n  for (var i = 0, n = a.length, s = 0; i < n; ++i) s += a[i] * b[i];\n  return s;\n}\n\nfunction cross(a, b) {\n  return [\n    a[1] * b[2] - a[2] * b[1],\n    a[2] * b[0] - a[0] * b[2],\n    a[0] * b[1] - a[1] * b[0]\n  ];\n}\n\n// Converts 3D Cartesian to spherical coordinates (degrees).\nfunction spherical(cartesian) {\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(cartesian[1], cartesian[0]) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"],\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"max\"])(-1, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(1, cartesian[2]))) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]\n  ];\n}\n\n// Converts spherical coordinates (degrees) to 3D Cartesian.\nfunction cartesian(coordinates) {\n  var lambda = coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n      phi = coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n      cosphi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n  return [\n    cosphi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda),\n    cosphi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)\n  ];\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/polyhedral/waterman.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/project/clockwise.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/project/clockwise.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(ring) {\n  if ((n = ring.length) < 4) return false;\n  var i = 0,\n      n,\n      area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n  while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n  return area <= 0;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/project/clockwise.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/project/contains.js":
/*!****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/project/contains.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(ring, point) {\n  var x = point[0],\n      y = point[1],\n      contains = false;\n  for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n    var pi = ring[i], xi = pi[0], yi = pi[1],\n        pj = ring[j], xj = pj[0], yj = pj[1];\n    if (((yi > y) ^ (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)) contains = !contains;\n  }\n  return contains;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/project/contains.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/project/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/project/index.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-geo-projection/src/noop.js\");\n/* harmony import */ var _clockwise_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./clockwise.js */ \"./node_modules/d3-geo-projection/src/project/clockwise.js\");\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/d3-geo-projection/src/project/contains.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(object, projection) {\n  var stream = projection.stream, project;\n  if (!stream) throw new Error(\"invalid projection\");\n  switch (object && object.type) {\n    case \"Feature\": project = projectFeature; break;\n    case \"FeatureCollection\": project = projectFeatureCollection; break;\n    default: project = projectGeometry; break;\n  }\n  return project(object, stream);\n});\n\nfunction projectFeatureCollection(o, stream) {\n  return {\n    type: \"FeatureCollection\",\n    features: o.features.map(function(f) {\n      return projectFeature(f, stream);\n    })\n  };\n}\n\nfunction projectFeature(o, stream) {\n  return {\n    type: \"Feature\",\n    id: o.id,\n    properties: o.properties,\n    geometry: projectGeometry(o.geometry, stream)\n  };\n}\n\nfunction projectGeometryCollection(o, stream) {\n  return {\n    type: \"GeometryCollection\",\n    geometries: o.geometries.map(function(o) {\n      return projectGeometry(o, stream);\n    })\n  };\n}\n\nfunction projectGeometry(o, stream) {\n  if (!o) return null;\n  if (o.type === \"GeometryCollection\") return projectGeometryCollection(o, stream);\n  var sink;\n  switch (o.type) {\n    case \"Point\": sink = sinkPoint; break;\n    case \"MultiPoint\": sink = sinkPoint; break;\n    case \"LineString\": sink = sinkLine; break;\n    case \"MultiLineString\": sink = sinkLine; break;\n    case \"Polygon\": sink = sinkPolygon; break;\n    case \"MultiPolygon\": sink = sinkPolygon; break;\n    case \"Sphere\": sink = sinkPolygon; break;\n    default: return null;\n  }\n  Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoStream\"])(o, stream(sink));\n  return sink.result();\n}\n\nvar points = [],\n    lines = [];\n\nvar sinkPoint = {\n  point: function(x, y) {\n    points.push([x, y]);\n  },\n  result: function() {\n    var result = !points.length ? null\n        : points.length < 2 ? {type: \"Point\", coordinates: points[0]}\n        : {type: \"MultiPoint\", coordinates: points};\n    points = [];\n    return result;\n  }\n};\n\nvar sinkLine = {\n  lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  point: function(x, y) {\n    points.push([x, y]);\n  },\n  lineEnd: function() {\n    if (points.length) lines.push(points), points = [];\n  },\n  result: function() {\n    var result = !lines.length ? null\n        : lines.length < 2 ? {type: \"LineString\", coordinates: lines[0]}\n        : {type: \"MultiLineString\", coordinates: lines};\n    lines = [];\n    return result;\n  }\n};\n\nvar sinkPolygon = {\n  polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  point: function(x, y) {\n    points.push([x, y]);\n  },\n  lineEnd: function() {\n    var n = points.length;\n    if (n) {\n      do points.push(points[0].slice()); while (++n < 4);\n      lines.push(points), points = [];\n    }\n  },\n  polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  result: function() {\n    if (!lines.length) return null;\n    var polygons = [],\n        holes = [];\n\n    // https://github.com/d3/d3/issues/1558\n    lines.forEach(function(ring) {\n      if (Object(_clockwise_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(ring)) polygons.push([ring]);\n      else holes.push(ring);\n    });\n\n    holes.forEach(function(hole) {\n      var point = hole[0];\n      polygons.some(function(polygon) {\n        if (Object(_contains_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(polygon[0], point)) {\n          polygon.push(hole);\n          return true;\n        }\n      }) || polygons.push([hole]);\n    });\n\n    lines = [];\n\n    return !polygons.length ? null\n        : polygons.length > 1 ? {type: \"MultiPolygon\", coordinates: polygons}\n        : {type: \"Polygon\", coordinates: polygons[0]};\n  }\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/project/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/quantize.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/quantize.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(input, digits) {\n  if (!(0 <= (digits = +digits) && digits <= 20)) throw new Error(\"invalid digits\");\n\n  function quantizePoint(input) {\n    var n = input.length, i = 2, output = new Array(n);\n    output[0] = +input[0].toFixed(digits);\n    output[1] = +input[1].toFixed(digits);\n    while (i < n) output[i] = input[i], ++i;\n    return output;\n  }\n\n  function quantizePoints(input) {\n    return input.map(quantizePoint);\n  }\n\n  function quantizePointsNoDuplicates(input) {\n    var point0 = quantizePoint(input[0]);\n    var output = [point0];\n    for (var i = 1; i < input.length; i++) {\n      var point = quantizePoint(input[i]);\n      if (point.length > 2 || point[0] != point0[0] || point[1] != point0[1]) {\n        output.push(point);\n        point0 = point;\n      }\n    }\n    if (output.length === 1 && input.length > 1) {\n      output.push(quantizePoint(input[input.length - 1]));\n    }\n    return output;\n  }\n\n  function quantizePolygon(input) {\n    return input.map(quantizePointsNoDuplicates);\n  }\n\n  function quantizeGeometry(input) {\n    if (input == null) return input;\n    var output;\n    switch (input.type) {\n      case \"GeometryCollection\": output = {type: \"GeometryCollection\", geometries: input.geometries.map(quantizeGeometry)}; break;\n      case \"Point\": output = {type: \"Point\", coordinates: quantizePoint(input.coordinates)}; break;\n      case \"MultiPoint\": output = {type: input.type, coordinates: quantizePoints(input.coordinates)}; break;\n      case \"LineString\": output = {type: input.type, coordinates: quantizePointsNoDuplicates(input.coordinates)}; break;\n      case \"MultiLineString\": case \"Polygon\": output = {type: input.type, coordinates: quantizePolygon(input.coordinates)}; break;\n      case \"MultiPolygon\": output = {type: \"MultiPolygon\", coordinates: input.coordinates.map(quantizePolygon)}; break;\n      default: return input;\n    }\n    if (input.bbox != null) output.bbox = input.bbox;\n    return output;\n  }\n\n  function quantizeFeature(input) {\n    var output = {type: \"Feature\", properties: input.properties, geometry: quantizeGeometry(input.geometry)};\n    if (input.id != null) output.id = input.id;\n    if (input.bbox != null) output.bbox = input.bbox;\n    return output;\n  }\n\n  if (input != null) switch (input.type) {\n    case \"Feature\": return quantizeFeature(input);\n    case \"FeatureCollection\": {\n      var output = {type: \"FeatureCollection\", features: input.features.map(quantizeFeature)};\n      if (input.bbox != null) output.bbox = input.bbox;\n      return output;\n    }\n    default: return quantizeGeometry(input);\n  }\n\n  return input;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/quantize.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/quincuncial/gringorten.js":
/*!**********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/quincuncial/gringorten.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _gringorten_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../gringorten.js */ \"./node_modules/d3-geo-projection/src/gringorten.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/quincuncial/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_gringorten_js__WEBPACK_IMPORTED_MODULE_0__[\"gringortenRaw\"])\n      .scale(176.423);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/quincuncial/gringorten.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/quincuncial/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/quincuncial/index.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(project) {\n  var dx = project(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"], 0)[0] - project(-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"], 0)[0];\n\n  function projectQuincuncial(lambda, phi) {\n    var t = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n        p = project(t ? lambda : lambda > 0 ? lambda - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] : lambda + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], phi),\n        x = (p[0] - p[1]) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"],\n        y = (p[0] + p[1]) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"];\n    if (t) return [x, y];\n    var d = dx * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"],\n        s = x > 0 ^ y > 0 ? -1 : 1;\n    return [s * x - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * d, s * y - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * d];\n  }\n\n  if (project.invert) projectQuincuncial.invert = function(x0, y0) {\n    var x = (x0 + y0) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"],\n        y = (y0 - x0) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"],\n        t = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x) < 0.5 * dx && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < 0.5 * dx;\n\n    if (!t) {\n      var d = dx * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"],\n          s = x > 0 ^ y > 0 ? -1 : 1,\n          x1 = -s * x0 + (y > 0 ? 1 : -1) * d,\n          y1 = -s * y0 + (x > 0 ? 1 : -1) * d;\n      x = (-x1 - y1) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"];\n      y = (x1 - y1) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt1_2\"];\n    }\n\n    var p = project.invert(x, y);\n    if (!t) p[0] += x > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"];\n    return p;\n  };\n\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(projectQuincuncial)\n      .rotate([-90, -90, 45])\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/quincuncial/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/quincuncial/peirce.js":
/*!******************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/quincuncial/peirce.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _guyou_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../guyou.js */ \"./node_modules/d3-geo-projection/src/guyou.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo-projection/src/quincuncial/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_guyou_js__WEBPACK_IMPORTED_MODULE_0__[\"guyouRaw\"])\n      .scale(111.48);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/quincuncial/peirce.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/rectangularPolyconic.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/rectangularPolyconic.js ***!
  \********************************************************************/
/*! exports provided: rectangularPolyconicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rectangularPolyconicRaw\", function() { return rectangularPolyconicRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _parallel1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parallel1.js */ \"./node_modules/d3-geo-projection/src/parallel1.js\");\n\n\n\nfunction rectangularPolyconicRaw(phi0) {\n  var sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi0);\n\n  function forward(lambda, phi) {\n    var A = sinPhi0 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(lambda * sinPhi0 / 2) / sinPhi0 : lambda / 2;\n    if (!phi) return [2 * A, -phi0];\n    var E = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(A * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi)),\n        cotPhi = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi);\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(E) * cotPhi,\n      phi + (1 - Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(E)) * cotPhi - phi0\n    ];\n  }\n\n  // TODO return null for points outside outline.\n  forward.invert = function(x, y) {\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(y += phi0) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) return [sinPhi0 ? 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(sinPhi0 * x / 2) / sinPhi0 : x, 0];\n    var k = x * x + y * y,\n        phi = 0,\n        i = 10, delta;\n    do {\n      var tanPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi),\n          secPhi = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi),\n          j = k - 2 * y * phi + phi * phi;\n      phi -= delta = (tanPhi * j + 2 * (phi - y)) / (2 + j * secPhi * secPhi + 2 * (phi - y) * tanPhi);\n    } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] && --i > 0);\n    var E = x * (tanPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(phi)),\n        A = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(y) < Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(phi + 1 / tanPhi) ? Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(E) * 0.5 : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"acos\"])(E) * 0.5 + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] / 4) / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi);\n    return [\n      sinPhi0 ? 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(sinPhi0 * A) / sinPhi0 : 2 * A,\n      phi\n    ];\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_parallel1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(rectangularPolyconicRaw)\n      .scale(131.215);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/rectangularPolyconic.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/robinson.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/robinson.js ***!
  \********************************************************/
/*! exports provided: robinsonRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"robinsonRaw\", function() { return robinsonRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nvar K = [\n  [0.9986, -0.062],\n  [1.0000, 0.0000],\n  [0.9986, 0.0620],\n  [0.9954, 0.1240],\n  [0.9900, 0.1860],\n  [0.9822, 0.2480],\n  [0.9730, 0.3100],\n  [0.9600, 0.3720],\n  [0.9427, 0.4340],\n  [0.9216, 0.4958],\n  [0.8962, 0.5571],\n  [0.8679, 0.6176],\n  [0.8350, 0.6769],\n  [0.7986, 0.7346],\n  [0.7597, 0.7903],\n  [0.7186, 0.8435],\n  [0.6732, 0.8936],\n  [0.6213, 0.9394],\n  [0.5722, 0.9761],\n  [0.5322, 1.0000]\n];\n\nK.forEach(function(d) {\n  d[1] *= 1.0144;\n});\n\nfunction robinsonRaw(lambda, phi) {\n  var i = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(18, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) * 36 / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]),\n      i0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"floor\"])(i),\n      di = i - i0,\n      ax = (k = K[i0])[0],\n      ay = k[1],\n      bx = (k = K[++i0])[0],\n      by = k[1],\n      cx = (k = K[Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(19, ++i0)])[0],\n      cy = k[1],\n      k;\n  return [\n    lambda * (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2),\n    (phi > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2)\n  ];\n}\n\nrobinsonRaw.invert = function(x, y) {\n  var yy = y / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      phi = yy * 90,\n      i = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(18, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi / 5)),\n      i0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"max\"])(0, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"floor\"])(i));\n  do {\n    var ay = K[i0][1],\n        by = K[i0 + 1][1],\n        cy = K[Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(19, i0 + 2)][1],\n        u = cy - ay,\n        v = cy - 2 * by + ay,\n        t = 2 * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(yy) - by) / u,\n        c = v / u,\n        di = t * (1 - c * t * (1 - 2 * c * t));\n    if (di >= 0 || i0 === 1) {\n      phi = (y >= 0 ? 5 : -5) * (di + i);\n      var j = 50, delta;\n      do {\n        i = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(18, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) / 5);\n        i0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"floor\"])(i);\n        di = i - i0;\n        ay = K[i0][1];\n        by = K[i0 + 1][1];\n        cy = K[Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(19, i0 + 2)][1];\n        phi -= (delta = (y >= 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) - y) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n      } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"] && --j > 0);\n      break;\n    }\n  } while (--i0 >= 0);\n  var ax = K[i0][0],\n      bx = K[i0 + 1][0],\n      cx = K[Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(19, i0 + 2)][0];\n  return [\n    x / (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2),\n    phi * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(robinsonRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/robinson.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/satellite.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/satellite.js ***!
  \*********************************************************/
/*! exports provided: satelliteRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"satelliteRaw\", function() { return satelliteRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction satelliteVerticalRaw(P) {\n  function forward(lambda, phi) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        k = (P - 1) / (P - cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda));\n    return [\n      k * cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n      k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var rho2 = x * x + y * y,\n        rho = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(rho2),\n        sinc = (P - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - rho2 * (P + 1) / (P - 1))) / ((P - 1) / rho + rho / (P - 1));\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(x * sinc, rho * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - sinc * sinc)),\n      rho ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y * sinc / rho) : 0\n    ];\n  };\n\n  return forward;\n}\n\nfunction satelliteRaw(P, omega) {\n  var vertical = satelliteVerticalRaw(P);\n  if (!omega) return vertical;\n  var cosOmega = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(omega),\n      sinOmega = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(omega);\n\n  function forward(lambda, phi) {\n    var coordinates = vertical(lambda, phi),\n        y = coordinates[1],\n        A = y * sinOmega / (P - 1) + cosOmega;\n    return [\n      coordinates[0] * cosOmega / A,\n      y / A\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var k = (P - 1) / (P - 1 - y * sinOmega);\n    return vertical.invert(k * x, k * y * cosOmega);\n  };\n\n  return forward;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var distance = 2,\n      omega = 0,\n      m = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(satelliteRaw),\n      p = m(distance, omega);\n\n  // As a multiple of radius.\n  p.distance = function(_) {\n    if (!arguments.length) return distance;\n    return m(distance = +_, omega);\n  };\n\n  p.tilt = function(_) {\n    if (!arguments.length) return omega * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n    return m(distance, omega = _ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n  };\n\n  return p\n      .scale(432.147)\n      .clipAngle(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(1 / distance) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"] - 1e-6);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/satellite.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/sinuMollweide.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/sinuMollweide.js ***!
  \*************************************************************/
/*! exports provided: sinuMollweidePhi, sinuMollweideY, sinuMollweideRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinuMollweidePhi\", function() { return sinuMollweidePhi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinuMollweideY\", function() { return sinuMollweideY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinuMollweideRaw\", function() { return sinuMollweideRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n/* harmony import */ var _sinusoidal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sinusoidal.js */ \"./node_modules/d3-geo-projection/src/sinusoidal.js\");\n\n\n\n\nvar sinuMollweidePhi = 0.7109889596207567;\n\nvar sinuMollweideY = 0.0528035274542;\n\nfunction sinuMollweideRaw(lambda, phi) {\n  return phi > -sinuMollweidePhi\n      ? (lambda = Object(_mollweide_js__WEBPACK_IMPORTED_MODULE_1__[\"mollweideRaw\"])(lambda, phi), lambda[1] += sinuMollweideY, lambda)\n      : Object(_sinusoidal_js__WEBPACK_IMPORTED_MODULE_2__[\"sinusoidalRaw\"])(lambda, phi);\n}\n\nsinuMollweideRaw.invert = function(x, y) {\n  return y > -sinuMollweidePhi\n      ? _mollweide_js__WEBPACK_IMPORTED_MODULE_1__[\"mollweideRaw\"].invert(x, y - sinuMollweideY)\n      : _sinusoidal_js__WEBPACK_IMPORTED_MODULE_2__[\"sinusoidalRaw\"].invert(x, y);\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(sinuMollweideRaw)\n      .rotate([-20, -55])\n      .scale(164.263)\n      .center([0, -5.4036]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/sinuMollweide.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/sinusoidal.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/sinusoidal.js ***!
  \**********************************************************/
/*! exports provided: sinusoidalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinusoidalRaw\", function() { return sinusoidalRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction sinusoidalRaw(lambda, phi) {\n  return [lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi), phi];\n}\n\nsinusoidalRaw.invert = function(x, y) {\n  return [x / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(y), y];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(sinusoidalRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/sinusoidal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/square.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/square.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(project) {\n  var dx = project(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"], 0)[0] - project(-_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"], 0)[0];\n\n  function projectSquare(lambda, phi) {\n    var s = lambda > 0 ? -0.5 : 0.5,\n        point = project(lambda + s * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"], phi);\n    point[0] -= s * dx;\n    return point;\n  }\n\n  if (project.invert) projectSquare.invert = function(x, y) {\n    var s = x > 0 ? -0.5 : 0.5,\n        location = project.invert(x + s * dx, y),\n        lambda = location[0] - s * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"];\n    if (lambda < -_math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"]) lambda += 2 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"];\n    else if (lambda > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"]) lambda -= 2 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"];\n    location[0] = lambda;\n    return location;\n  };\n\n  return projectSquare;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/square.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/stitch.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/stitch.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar epsilon = 1e-4,\n    epsilonInverse = 1e4,\n    x0 = -180, x0e = x0 + epsilon,\n    x1 = 180, x1e = x1 - epsilon,\n    y0 = -90, y0e = y0 + epsilon,\n    y1 = 90, y1e = y1 - epsilon;\n\nfunction nonempty(coordinates) {\n  return coordinates.length > 0;\n}\n\nfunction quantize(x) {\n  return Math.floor(x * epsilonInverse) / epsilonInverse;\n}\n\nfunction normalizePoint(y) {\n  return y === y0 || y === y1 ? [0, y] : [x0, quantize(y)]; // pole or antimeridian?\n}\n\nfunction clampPoint(p) {\n  var x = p[0], y = p[1], clamped = false;\n  if (x <= x0e) x = x0, clamped = true;\n  else if (x >= x1e) x = x1, clamped = true;\n  if (y <= y0e) y = y0, clamped = true;\n  else if (y >= y1e) y = y1, clamped = true;\n  return clamped ? [x, y] : p;\n}\n\nfunction clampPoints(points) {\n  return points.map(clampPoint);\n}\n\n// For each ring, detect where it crosses the antimeridian or pole.\nfunction extractFragments(rings, polygon, fragments) {\n  for (var j = 0, m = rings.length; j < m; ++j) {\n    var ring = rings[j].slice();\n\n    // By default, assume that this ring doesn’t need any stitching.\n    fragments.push({index: -1, polygon: polygon, ring: ring});\n\n    for (var i = 0, n = ring.length; i < n; ++i) {\n      var point = ring[i],\n          x = point[0],\n          y = point[1];\n\n      // If this is an antimeridian or polar point…\n      if (x <= x0e || x >= x1e || y <= y0e || y >= y1e) {\n        ring[i] = clampPoint(point);\n\n        // Advance through any antimeridian or polar points…\n        for (var k = i + 1; k < n; ++k) {\n          var pointk = ring[k],\n              xk = pointk[0],\n              yk = pointk[1];\n          if (xk > x0e && xk < x1e && yk > y0e && yk < y1e) break;\n        }\n\n        // If this was just a single antimeridian or polar point,\n        // we don’t need to cut this ring into a fragment;\n        // we can just leave it as-is.\n        if (k === i + 1) continue;\n\n        // Otherwise, if this is not the first point in the ring,\n        // cut the current fragment so that it ends at the current point.\n        // The current point is also normalized for later joining.\n        if (i) {\n          var fragmentBefore = {index: -1, polygon: polygon, ring: ring.slice(0, i + 1)};\n          fragmentBefore.ring[fragmentBefore.ring.length - 1] = normalizePoint(y);\n          fragments[fragments.length - 1] = fragmentBefore;\n        }\n\n        // If the ring started with an antimeridian fragment,\n        // we can ignore that fragment entirely.\n        else fragments.pop();\n\n        // If the remainder of the ring is an antimeridian fragment,\n        // move on to the next ring.\n        if (k >= n) break;\n\n        // Otherwise, add the remaining ring fragment and continue.\n        fragments.push({index: -1, polygon: polygon, ring: ring = ring.slice(k - 1)});\n        ring[0] = normalizePoint(ring[0][1]);\n        i = -1;\n        n = ring.length;\n      }\n    }\n  }\n}\n\n// Now stitch the fragments back together into rings.\nfunction stitchFragments(fragments) {\n  var i, n = fragments.length;\n\n  // To connect the fragments start-to-end, create a simple index by end.\n  var fragmentByStart = {},\n      fragmentByEnd = {},\n      fragment,\n      start,\n      startFragment,\n      end,\n      endFragment;\n\n  // For each fragment…\n  for (i = 0; i < n; ++i) {\n    fragment = fragments[i];\n    start = fragment.ring[0];\n    end = fragment.ring[fragment.ring.length - 1];\n\n    // If this fragment is closed, add it as a standalone ring.\n    if (start[0] === end[0] && start[1] === end[1]) {\n      fragment.polygon.push(fragment.ring);\n      fragments[i] = null;\n      continue;\n    }\n\n    fragment.index = i;\n    fragmentByStart[start] = fragmentByEnd[end] = fragment;\n  }\n\n  // For each open fragment…\n  for (i = 0; i < n; ++i) {\n    fragment = fragments[i];\n    if (fragment) {\n      start = fragment.ring[0];\n      end = fragment.ring[fragment.ring.length - 1];\n      startFragment = fragmentByEnd[start];\n      endFragment = fragmentByStart[end];\n\n      delete fragmentByStart[start];\n      delete fragmentByEnd[end];\n\n      // If this fragment is closed, add it as a standalone ring.\n      if (start[0] === end[0] && start[1] === end[1]) {\n        fragment.polygon.push(fragment.ring);\n        continue;\n      }\n\n      if (startFragment) {\n        delete fragmentByEnd[start];\n        delete fragmentByStart[startFragment.ring[0]];\n        startFragment.ring.pop(); // drop the shared coordinate\n        fragments[startFragment.index] = null;\n        fragment = {index: -1, polygon: startFragment.polygon, ring: startFragment.ring.concat(fragment.ring)};\n\n        if (startFragment === endFragment) {\n          // Connect both ends to this single fragment to create a ring.\n          fragment.polygon.push(fragment.ring);\n        } else {\n          fragment.index = n++;\n          fragments.push(fragmentByStart[fragment.ring[0]] = fragmentByEnd[fragment.ring[fragment.ring.length - 1]] = fragment);\n        }\n      } else if (endFragment) {\n        delete fragmentByStart[end];\n        delete fragmentByEnd[endFragment.ring[endFragment.ring.length - 1]];\n        fragment.ring.pop(); // drop the shared coordinate\n        fragment = {index: n++, polygon: endFragment.polygon, ring: fragment.ring.concat(endFragment.ring)};\n        fragments[endFragment.index] = null;\n        fragments.push(fragmentByStart[fragment.ring[0]] = fragmentByEnd[fragment.ring[fragment.ring.length - 1]] = fragment);\n      } else {\n        fragment.ring.push(fragment.ring[0]); // close ring\n        fragment.polygon.push(fragment.ring);\n      }\n    }\n  }\n}\n\nfunction stitchFeature(input) {\n  var output = {type: \"Feature\", geometry: stitchGeometry(input.geometry)};\n  if (input.id != null) output.id = input.id;\n  if (input.bbox != null) output.bbox = input.bbox;\n  if (input.properties != null) output.properties = input.properties;\n  return output;\n}\n\nfunction stitchGeometry(input) {\n  if (input == null) return input;\n  var output, fragments, i, n;\n  switch (input.type) {\n    case \"GeometryCollection\": output = {type: \"GeometryCollection\", geometries: input.geometries.map(stitchGeometry)}; break;\n    case \"Point\": output = {type: \"Point\", coordinates: clampPoint(input.coordinates)}; break;\n    case \"MultiPoint\": case \"LineString\": output = {type: input.type, coordinates: clampPoints(input.coordinates)}; break;\n    case \"MultiLineString\": output = {type: \"MultiLineString\", coordinates: input.coordinates.map(clampPoints)}; break;\n    case \"Polygon\": {\n      var polygon = [];\n      extractFragments(input.coordinates, polygon, fragments = []);\n      stitchFragments(fragments);\n      output = {type: \"Polygon\", coordinates: polygon};\n      break;\n    }\n    case \"MultiPolygon\": {\n      fragments = [], i = -1, n = input.coordinates.length;\n      var polygons = new Array(n);\n      while (++i < n) extractFragments(input.coordinates[i], polygons[i] = [], fragments);\n      stitchFragments(fragments);\n      output = {type: \"MultiPolygon\", coordinates: polygons.filter(nonempty)};\n      break;\n    }\n    default: return input;\n  }\n  if (input.bbox != null) output.bbox = input.bbox;\n  return output;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(input) {\n  if (input == null) return input;\n  switch (input.type) {\n    case \"Feature\": return stitchFeature(input);\n    case \"FeatureCollection\": {\n      var output = {type: \"FeatureCollection\", features: input.features.map(stitchFeature)};\n      if (input.bbox != null) output.bbox = input.bbox;\n      return output;\n    }\n    default: return stitchGeometry(input);\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/stitch.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/times.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/times.js ***!
  \*****************************************************/
/*! exports provided: timesRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timesRaw\", function() { return timesRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction timesRaw(lambda, phi) {\n  var t = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(phi / 2),\n      s = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] * t);\n  return [\n    lambda * (0.74482 - 0.34588 * s * s),\n    1.70711 * t\n  ];\n}\n\ntimesRaw.invert = function(x, y) {\n  var t = y / 1.70711,\n      s = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"] * t);\n  return [\n    x / (0.74482 - 0.34588 * s * s),\n    2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(t)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(timesRaw)\n      .scale(146.153);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/times.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/twoPoint.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/twoPoint.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n// Compute the origin as the midpoint of the two reference points.\n// Rotate one of the reference points by the origin.\n// Apply the spherical law of sines to compute gamma rotation.\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(raw, p0, p1) {\n  var i = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoInterpolate\"])(p0, p1),\n      o = i(0.5),\n      a = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoRotation\"])([-o[0], -o[1]])(p0),\n      b = i.distance / 2,\n      y = -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(a[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(b)),\n      R = [-o[0], -o[1], -(a[0] > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] - y : y) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]],\n      p = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(raw(b)).rotate(R),\n      r = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoRotation\"])(R),\n      center = p.center;\n\n  delete p.rotate;\n\n  p.center = function(_) {\n    return arguments.length ? center(r(_)) : r.invert(center());\n  };\n\n  return p\n      .clipAngle(90);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/twoPoint.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/twoPointAzimuthal.js":
/*!*****************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/twoPointAzimuthal.js ***!
  \*****************************************************************/
/*! exports provided: twoPointAzimuthalRaw, twoPointAzimuthalUsa, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"twoPointAzimuthalRaw\", function() { return twoPointAzimuthalRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"twoPointAzimuthalUsa\", function() { return twoPointAzimuthalUsa; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return twoPointAzimuthal; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _twoPoint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./twoPoint.js */ \"./node_modules/d3-geo-projection/src/twoPoint.js\");\n\n\n\n\nfunction twoPointAzimuthalRaw(d) {\n  var cosd = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(d);\n\n  function forward(lambda, phi) {\n    var coordinates = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoGnomonicRaw\"])(lambda, phi);\n    coordinates[0] *= cosd;\n    return coordinates;\n  }\n\n  forward.invert = function(x, y) {\n    return d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoGnomonicRaw\"].invert(x / cosd, y);\n  };\n\n  return forward;\n}\n\nfunction twoPointAzimuthalUsa() {\n  return twoPointAzimuthal([-158, 21.5], [-77, 39])\n      .clipAngle(60)\n      .scale(400);\n}\n\nfunction twoPointAzimuthal(p0, p1) {\n  return Object(_twoPoint_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(twoPointAzimuthalRaw, p0, p1);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/twoPointAzimuthal.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/twoPointEquidistant.js":
/*!*******************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/twoPointEquidistant.js ***!
  \*******************************************************************/
/*! exports provided: twoPointEquidistantRaw, twoPointEquidistantUsa, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"twoPointEquidistantRaw\", function() { return twoPointEquidistantRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"twoPointEquidistantUsa\", function() { return twoPointEquidistantUsa; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return twoPointEquidistant; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _twoPoint_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./twoPoint.js */ \"./node_modules/d3-geo-projection/src/twoPoint.js\");\n\n\n\n\nfunction twoPointEquidistantRaw(z0) {\n  if (!(z0 *= 2)) return d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEquidistantRaw\"];\n  var lambdaa = -z0 / 2,\n      lambdab = -lambdaa,\n      z02 = z0 * z0,\n      tanLambda0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(lambdab),\n      S = 0.5 / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambdab);\n\n  function forward(lambda, phi) {\n    var za = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda - lambdaa)),\n        zb = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda - lambdab)),\n        ys = phi < 0 ? -1 : 1;\n    za *= za, zb *= zb;\n    return [\n      (za - zb) / (2 * z0),\n      ys * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(4 * z02 * zb - (z02 - za + zb) * (z02 - za + zb)) / (2 * z0)\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var y2 = y * y,\n        cosza = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(y2 + (t = x + lambdaa) * t)),\n        coszb = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(y2 + (t = x + lambdab) * t)),\n        t,\n        d;\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(d = cosza - coszb, t = (cosza + coszb) * tanLambda0),\n      (y < 0 ? -1 : 1) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(t * t + d * d) * S)\n    ];\n  };\n\n  return forward;\n}\n\nfunction twoPointEquidistantUsa() {\n  return twoPointEquidistant([-158, 21.5], [-77, 39])\n      .clipAngle(130)\n      .scale(122.571);\n}\n\nfunction twoPointEquidistant(p0, p1) {\n  return Object(_twoPoint_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(twoPointEquidistantRaw, p0, p1);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/twoPointEquidistant.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/vanDerGrinten.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/vanDerGrinten.js ***!
  \*************************************************************/
/*! exports provided: vanDerGrintenRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vanDerGrintenRaw\", function() { return vanDerGrintenRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction vanDerGrintenRaw(lambda, phi) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [lambda, 0];\n  var sinTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]),\n      theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sinTheta);\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [0, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(theta / 2)];\n  var cosTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta),\n      A = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / lambda - lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / 2,\n      A2 = A * A,\n      G = cosTheta / (sinTheta + cosTheta - 1),\n      P = G * (2 / sinTheta - 1),\n      P2 = P * P,\n      P2_A2 = P2 + A2,\n      G_P2 = G - P2,\n      Q = A2 + G;\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(lambda) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (A * G_P2 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(A2 * G_P2 * G_P2 - P2_A2 * (G * G - P2))) / P2_A2,\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (P * Q - A * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((A2 + 1) * P2_A2 - Q * Q)) / P2_A2\n  ];\n}\n\nvanDerGrintenRaw.invert = function(x, y) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [x, 0];\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [0, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(y / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]))];\n  var x2 = (x /= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) * x,\n      y2 = (y /= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) * y,\n      x2_y2 = x2 + y2,\n      z = x2_y2 * x2_y2,\n      c1 = -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) * (1 + x2_y2),\n      c2 = c1 - 2 * y2 + x2,\n      c3 = -2 * c1 + 1 + 2 * y2 + z,\n      d = y2 / c3 + (2 * c2 * c2 * c2 / (c3 * c3 * c3) - 9 * c1 * c2 / (c3 * c3)) / 27,\n      a1 = (c1 - c2 * c2 / (3 * c3)) / c3,\n      m1 = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(-a1 / 3),\n      theta1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(3 * d / (a1 * m1)) / 3;\n  return [\n    _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (x2_y2 - 1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 + 2 * (x2 - y2) + z)) / (2 * x),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (-m1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta1 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 3) - c2 / (3 * c3))\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(vanDerGrintenRaw)\n      .scale(79.4183);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/vanDerGrinten.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/vanDerGrinten2.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/vanDerGrinten2.js ***!
  \**************************************************************/
/*! exports provided: vanDerGrinten2Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vanDerGrinten2Raw\", function() { return vanDerGrinten2Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction vanDerGrinten2Raw(lambda, phi) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [lambda, 0];\n  var sinTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]),\n      theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sinTheta);\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [0, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(theta / 2)];\n  var cosTheta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta),\n      A = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / lambda - lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / 2,\n      A2 = A * A,\n      x1 = cosTheta * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 + A2) - A * cosTheta) / (1 + A2 * sinTheta * sinTheta);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(lambda) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * x1,\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - x1 * (2 * A + x1))\n  ];\n}\n\nvanDerGrinten2Raw.invert = function(x, y) {\n  if (!x) return [0, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(y / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]))];\n  var x1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]),\n      A = (1 - x1 * x1 - (y /= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) * y) / (2 * x1),\n      A2 = A * A,\n      B = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(A2 + 1);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (B - A),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((1 - 2 * A * x1) * (A + B) - x1), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(B + A + x1)))\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(vanDerGrinten2Raw)\n      .scale(79.4183);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/vanDerGrinten2.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/vanDerGrinten3.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/vanDerGrinten3.js ***!
  \**************************************************************/
/*! exports provided: vanDerGrinten3Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vanDerGrinten3Raw\", function() { return vanDerGrinten3Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction vanDerGrinten3Raw(lambda, phi) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [lambda, 0];\n  var sinTheta = phi / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      theta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(sinTheta);\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) return [0, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(theta / 2)];\n  var A = (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / lambda - lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) / 2,\n      y1 = sinTheta / (1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(theta));\n  return [\n    _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(lambda) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(A * A + 1 - y1 * y1) - A),\n    _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * y1\n  ];\n}\n\nvanDerGrinten3Raw.invert = function(x, y) {\n  if (!y) return [x, 0];\n  var y1 = y / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n      A = (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (1 - y1 * y1) - x * x) / (2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * x);\n  return [\n    x ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(A * A + 1) - A) : 0,\n    _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])(y1))\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(vanDerGrinten3Raw)\n        .scale(79.4183);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/vanDerGrinten3.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/vanDerGrinten4.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/vanDerGrinten4.js ***!
  \**************************************************************/
/*! exports provided: vanDerGrinten4Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vanDerGrinten4Raw\", function() { return vanDerGrinten4Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction vanDerGrinten4Raw(lambda, phi) {\n  if (!phi) return [lambda, 0];\n  var phi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(phi);\n  if (!lambda || phi0 === _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) return [0, phi];\n  var B = phi0 / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      B2 = B * B,\n      C = (8 * B - B2 * (B2 + 2) - 5) / (2 * B2 * (B - 1)),\n      C2 = C * C,\n      BC = B * C,\n      B_C2 = B2 + C2 + 2 * BC,\n      B_3C = B + 3 * C,\n      lambda0 = lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      lambda1 = lambda0 + 1 / lambda0,\n      D = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(lambda1 * lambda1 - 4),\n      D2 = D * D,\n      F = B_C2 * (B2 + C2 * D2 - 1) + (1 - B2) * (B2 * (B_3C * B_3C + 4 * C2) + 12 * BC * C2 + 4 * C2 * C2),\n      x1 = (D * (B_C2 + C2 - 1) + 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(F)) / (4 * B_C2 + D2);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(lambda) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * x1,\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(phi) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 + D * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x1) - x1 * x1)\n  ];\n}\n\nvanDerGrinten4Raw.invert = function(x, y) {\n  var delta;\n  if (!x || !y) return [x, y];\n  var sy = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(y);\n  y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"];\n  var x1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * x / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"],\n      D = (x1 * x1 - 1 + 4 * y * y) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x1),\n      D2 = D * D,\n      B = y * (2 - (y > 0.5 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(y, Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x)) : 0)),\n      r = x * x + y * y,\n      i = 50;\n  do {\n    var B2 = B * B,\n        C = (8 * B - B2 * (B2 + 2) - 5) / (2 * B2 * (B - 1)),\n        C_ = (3 * B - B2 * B - 10) / (2 * B2 * B),\n        C2 = C * C,\n        BC = B * C,\n        B_C = B + C,\n        B_C2 = B_C * B_C,\n        B_3C = B + 3 * C,\n        F = B_C2 * (B2 + C2 * D2 - 1) + (1 - B2) * (B2 * (B_3C * B_3C + 4 * C2) + C2 * (12 * BC + 4 * C2)),\n        F_ = -2 * B_C * (4 * BC * C2 + (1 - 4 * B2 + 3 * B2 * B2) * (1 + C_) + C2 * (-6 + 14 * B2 - D2 + (-8 + 8 * B2 - 2 * D2) * C_) + BC * (-8 + 12 * B2 + (-10 + 10 * B2 - D2) * C_)),\n        sqrtF = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(F),\n        f = D * (B_C2 + C2 - 1) + 2 * sqrtF - x1 * (4 * B_C2 + D2),\n        f_ = D * (2 * C * C_ + 2 * B_C * (1 + C_)) + F_ / sqrtF - 8 * B_C * (D * (-1 + C2 + B_C2) + 2 * sqrtF) * (1 + C_) / (D2 + 4 * B_C2);\n    B -= delta = f / f_;\n  } while (delta * r * r > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sign\"])(x) * (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(D * D + 4) + D) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 4,\n    sy * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] * B\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(vanDerGrinten4Raw)\n      .scale(127.16);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/vanDerGrinten4.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/wagner.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/wagner.js ***!
  \******************************************************/
/*! exports provided: wagnerRaw, default, wagner7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wagnerRaw\", function() { return wagnerRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return wagner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wagner7\", function() { return wagner7; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction wagnerFormula(cx, cy, m1, m2, n) {\n  function forward(lambda, phi) {\n    var s = m1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(m2 * phi),\n        c0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - s * s),\n        c1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 / (1 + c0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda *= n)));\n    return [\n      cx * c0 * c1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n      cy * s * c1\n    ];\n  }\n\n  forward.invert = function(x, y) {\n    var t1 = x / cx,\n        t2 = y / cy,\n        p = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(t1 * t1 + t2 * t2),\n        c = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(p / 2);\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(x * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tan\"])(c), cx * p) / n,\n      p && Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(y * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(c) / (cy * m1 * p)) / m2\n    ];\n  };\n\n  return forward;\n}\n\nfunction wagnerRaw(poleline, parallels, inflation, ratio) {\n  // 60 is always used as reference parallel\n  var phi1 = _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] / 3;\n\n  // sanitizing the input values\n  // poleline and parallels may approximate but never equal 0\n  poleline = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"max\"])(poleline, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]);\n  parallels = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"max\"])(parallels, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]);\n  // poleline must be <= 90; parallels may approximate but never equal 180\n  poleline = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(poleline, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]);\n  parallels = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(parallels, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]);\n  // 0 <= inflation <= 99.999\n  inflation = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"max\"])(inflation, 0);\n  inflation = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"min\"])(inflation, 100 - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]);\n  // ratio > 0.\n  // sensible values, i.e. something that renders a map which still can be\n  // recognized as world map, are e.g. 20 <= ratio <= 1000.\n  ratio = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"max\"])(ratio, _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]);\n\n  // convert values from boehm notation\n  // areal inflation e.g. from 0 to 1 or 20 to 1.2:\n  var vinflation = inflation/100 + 1;\n  // axial ratio e.g. from 200 to 2:\n  var vratio  = ratio / 100;\n  // the other ones are a bit more complicated...\n  var m2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"acos\"])(vinflation * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi1)) / phi1,\n      m1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(poleline) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(m2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]),\n      n = parallels / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(vratio * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(poleline / 2) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(parallels / 2)),\n      cx = k / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(n * m1 * m2),\n      cy = 1 / (k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(n * m1 * m2));\n\n  return wagnerFormula(cx, cy, m1, m2, n);\n}\n\nfunction wagner() {\n  // default values generate wagner8\n  var poleline = 65 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n      parallels = 60 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"],\n      inflation = 20,\n      ratio = 200,\n      mutate = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjectionMutator\"])(wagnerRaw),\n      projection = mutate(poleline, parallels, inflation, ratio);\n\n  projection.poleline = function(_) {\n    return arguments.length ? mutate(poleline = +_ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], parallels, inflation, ratio) : poleline * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n  };\n\n  projection.parallels = function(_) {\n    return arguments.length ? mutate(poleline, parallels = +_ * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], inflation, ratio) : parallels * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"];\n  };\n  projection.inflation = function(_) {\n    return arguments.length ? mutate(poleline, parallels, inflation = +_, ratio) : inflation;\n  };\n  projection.ratio = function(_) {\n    return arguments.length ? mutate(poleline, parallels, inflation, ratio = +_) : ratio;\n  };\n\n  return projection\n    .scale(163.775);\n}\n\nfunction wagner7() {\n  return wagner()\n      .poleline(65)\n      .parallels(60)\n      .inflation(0)\n      .ratio(200)\n      .scale(172.633);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/wagner.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/wagner4.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/wagner4.js ***!
  \*******************************************************/
/*! exports provided: wagner4Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wagner4Raw\", function() { return wagner4Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n/* harmony import */ var _mollweide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mollweide.js */ \"./node_modules/d3-geo-projection/src/mollweide.js\");\n\n\n\n\nvar A = 4 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] + 3 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3),\n    B = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3) / A);\n\nvar wagner4Raw = Object(_mollweide_js__WEBPACK_IMPORTED_MODULE_2__[\"mollweideBromleyRaw\"])(B * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3) / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], B, A / 6);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(wagner4Raw)\n      .scale(176.84);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/wagner4.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/wagner6.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/wagner6.js ***!
  \*******************************************************/
/*! exports provided: wagner6Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wagner6Raw\", function() { return wagner6Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction wagner6Raw(lambda, phi) {\n  return [lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - 3 * phi * phi / (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])), phi];\n}\n\nwagner6Raw.invert = function(x, y) {\n  return [x / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - 3 * y * y / (_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"])), y];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(wagner6Raw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/wagner6.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/wiechel.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/wiechel.js ***!
  \*******************************************************/
/*! exports provided: wiechelRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wiechelRaw\", function() { return wiechelRaw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\nfunction wiechelRaw(lambda, phi) {\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda) * cosPhi,\n      sin1_Phi = 1 - sinPhi,\n      cosLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * cosPhi, -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi))),\n      sinLambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda);\n  cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(1 - sinPhi * sinPhi);\n  return [\n    sinLambda * cosPhi - cosLambda * sin1_Phi,\n    -cosLambda * cosPhi - sinLambda * sin1_Phi\n  ];\n}\n\nwiechelRaw.invert = function(x, y) {\n  var w = (x * x + y * y) / -2,\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(-w * (2 + w)),\n      b = y * w + x * k,\n      a = x * w - y * k,\n      D = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a * a + b * b);\n  return [\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(k * b, D * (1 + w)),\n    D ? -Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(k * a / D) : 0\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(wiechelRaw)\n      .rotate([0, -90, 45])\n      .scale(124.75)\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/wiechel.js?");

/***/ }),

/***/ "./node_modules/d3-geo-projection/src/winkel3.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-geo-projection/src/winkel3.js ***!
  \*******************************************************/
/*! exports provided: winkel3Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"winkel3Raw\", function() { return winkel3Raw; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var _aitoff_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aitoff.js */ \"./node_modules/d3-geo-projection/src/aitoff.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo-projection/src/math.js\");\n\n\n\n\nfunction winkel3Raw(lambda, phi) {\n  var coordinates = Object(_aitoff_js__WEBPACK_IMPORTED_MODULE_1__[\"aitoffRaw\"])(lambda, phi);\n  return [\n    (coordinates[0] + lambda / _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"]) / 2,\n    (coordinates[1] + phi) / 2\n  ];\n}\n\nwinkel3Raw.invert = function(x, y) {\n  var lambda = x, phi = y, i = 25;\n  do {\n    var cosphi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi),\n        sinphi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi),\n        sin_2phi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(2 * phi),\n        sin2phi = sinphi * sinphi,\n        cos2phi = cosphi * cosphi,\n        sinlambda = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(lambda),\n        coslambda_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(lambda / 2),\n        sinlambda_2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(lambda / 2),\n        sin2lambda_2 = sinlambda_2 * sinlambda_2,\n        C = 1 - cos2phi * coslambda_2 * coslambda_2,\n        E = C ? Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"acos\"])(cosphi * coslambda_2) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(F = 1 / C) : F = 0,\n        F,\n        fx = 0.5 * (2 * E * cosphi * sinlambda_2 + lambda / _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"]) - x,\n        fy = 0.5 * (E * sinphi + phi) - y,\n        dxdlambda = 0.5 * F * (cos2phi * sin2lambda_2 + E * cosphi * coslambda_2 * sin2phi) + 0.5 / _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"],\n        dxdphi = F * (sinlambda * sin_2phi / 4 - E * sinphi * sinlambda_2),\n        dydlambda = 0.125 * F * (sin_2phi * sinlambda_2 - E * sinphi * cos2phi * sinlambda),\n        dydphi = 0.5 * F * (sin2phi * coslambda_2 + E * sin2lambda_2 * cosphi) + 0.5,\n        denominator = dxdphi * dydlambda - dydphi * dxdlambda,\n        dlambda = (fy * dxdphi - fx * dydphi) / denominator,\n        dphi = (fx * dydlambda - fy * dxdlambda) / denominator;\n    lambda -= dlambda, phi -= dphi;\n  } while ((Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(dlambda) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(dphi) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) && --i > 0);\n  return [lambda, phi];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoProjection\"])(winkel3Raw)\n      .scale(158.837);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo-projection/src/winkel3.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/area.js":
/*!*****************************************!*\
  !*** ./node_modules/d3-geo/src/area.js ***!
  \*****************************************/
/*! exports provided: areaRingSum, areaStream, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"areaRingSum\", function() { return areaRingSum; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"areaStream\", function() { return areaStream; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n\n\n\n\n\nvar areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n\n// hello?\n\nvar areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"](),\n    lambda00,\n    phi00,\n    lambda0,\n    cosPhi0,\n    sinPhi0;\n\nvar areaStream = {\n  point: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  polygonStart: function() {\n    areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n    areaStream.lineStart = areaRingStart;\n    areaStream.lineEnd = areaRingEnd;\n  },\n  polygonEnd: function() {\n    var areaRing = +areaRingSum;\n    areaSum.add(areaRing < 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"] + areaRing : areaRing);\n    this.lineStart = this.lineEnd = this.point = _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n  },\n  sphere: function() {\n    areaSum.add(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"]);\n  }\n};\n\nfunction areaRingStart() {\n  areaStream.point = areaPointFirst;\n}\n\nfunction areaRingEnd() {\n  areaPoint(lambda00, phi00);\n}\n\nfunction areaPointFirst(lambda, phi) {\n  areaStream.point = areaPoint;\n  lambda00 = lambda, phi00 = phi;\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  lambda0 = lambda, cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi = phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"]), sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n}\n\nfunction areaPoint(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  phi = phi / 2 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"quarterPi\"]; // half the angular distance from south pole\n\n  // Spherical excess E for a spherical triangle with vertices: south pole,\n  // previous point, current point.  Uses a formula derived from Cagnoli’s\n  // theorem.  See Todhunter, Spherical Trig. (1871), Sec. 103, Eq. (2).\n  var dLambda = lambda - lambda0,\n      sdLambda = dLambda >= 0 ? 1 : -1,\n      adLambda = sdLambda * dLambda,\n      cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      k = sinPhi0 * sinPhi,\n      u = cosPhi0 * cosPhi + k * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(adLambda),\n      v = k * sdLambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(adLambda);\n  areaRingSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(v, u));\n\n  // Advance the previous points.\n  lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(object) {\n  areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n  Object(_stream_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object, areaStream);\n  return areaSum * 2;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/area.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/bounds.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-geo/src/bounds.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ \"./node_modules/d3-geo/src/area.js\");\n/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cartesian.js */ \"./node_modules/d3-geo/src/cartesian.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n\n\n\n\n\n\nvar lambda0, phi0, lambda1, phi1, // bounds\n    lambda2, // previous lambda-coordinate\n    lambda00, phi00, // first point\n    p0, // previous 3D point\n    deltaSum,\n    ranges,\n    range;\n\nvar boundsStream = {\n  point: boundsPoint,\n  lineStart: boundsLineStart,\n  lineEnd: boundsLineEnd,\n  polygonStart: function() {\n    boundsStream.point = boundsRingPoint;\n    boundsStream.lineStart = boundsRingStart;\n    boundsStream.lineEnd = boundsRingEnd;\n    deltaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n    _area_js__WEBPACK_IMPORTED_MODULE_1__[\"areaStream\"].polygonStart();\n  },\n  polygonEnd: function() {\n    _area_js__WEBPACK_IMPORTED_MODULE_1__[\"areaStream\"].polygonEnd();\n    boundsStream.point = boundsPoint;\n    boundsStream.lineStart = boundsLineStart;\n    boundsStream.lineEnd = boundsLineEnd;\n    if (_area_js__WEBPACK_IMPORTED_MODULE_1__[\"areaRingSum\"] < 0) lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n    else if (deltaSum > _math_js__WEBPACK_IMPORTED_MODULE_3__[\"epsilon\"]) phi1 = 90;\n    else if (deltaSum < -_math_js__WEBPACK_IMPORTED_MODULE_3__[\"epsilon\"]) phi0 = -90;\n    range[0] = lambda0, range[1] = lambda1;\n  },\n  sphere: function() {\n    lambda0 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n  }\n};\n\nfunction boundsPoint(lambda, phi) {\n  ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n  if (phi < phi0) phi0 = phi;\n  if (phi > phi1) phi1 = phi;\n}\n\nfunction linePoint(lambda, phi) {\n  var p = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__[\"cartesian\"])([lambda * _math_js__WEBPACK_IMPORTED_MODULE_3__[\"radians\"], phi * _math_js__WEBPACK_IMPORTED_MODULE_3__[\"radians\"]]);\n  if (p0) {\n    var normal = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__[\"cartesianCross\"])(p0, p),\n        equatorial = [normal[1], -normal[0], 0],\n        inflection = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__[\"cartesianCross\"])(equatorial, normal);\n    Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__[\"cartesianNormalizeInPlace\"])(inflection);\n    inflection = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_2__[\"spherical\"])(inflection);\n    var delta = lambda - lambda2,\n        sign = delta > 0 ? 1 : -1,\n        lambdai = inflection[0] * _math_js__WEBPACK_IMPORTED_MODULE_3__[\"degrees\"] * sign,\n        phii,\n        antimeridian = Object(_math_js__WEBPACK_IMPORTED_MODULE_3__[\"abs\"])(delta) > 180;\n    if (antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n      phii = inflection[1] * _math_js__WEBPACK_IMPORTED_MODULE_3__[\"degrees\"];\n      if (phii > phi1) phi1 = phii;\n    } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda)) {\n      phii = -inflection[1] * _math_js__WEBPACK_IMPORTED_MODULE_3__[\"degrees\"];\n      if (phii < phi0) phi0 = phii;\n    } else {\n      if (phi < phi0) phi0 = phi;\n      if (phi > phi1) phi1 = phi;\n    }\n    if (antimeridian) {\n      if (lambda < lambda2) {\n        if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n      } else {\n        if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n      }\n    } else {\n      if (lambda1 >= lambda0) {\n        if (lambda < lambda0) lambda0 = lambda;\n        if (lambda > lambda1) lambda1 = lambda;\n      } else {\n        if (lambda > lambda2) {\n          if (angle(lambda0, lambda) > angle(lambda0, lambda1)) lambda1 = lambda;\n        } else {\n          if (angle(lambda, lambda1) > angle(lambda0, lambda1)) lambda0 = lambda;\n        }\n      }\n    }\n  } else {\n    ranges.push(range = [lambda0 = lambda, lambda1 = lambda]);\n  }\n  if (phi < phi0) phi0 = phi;\n  if (phi > phi1) phi1 = phi;\n  p0 = p, lambda2 = lambda;\n}\n\nfunction boundsLineStart() {\n  boundsStream.point = linePoint;\n}\n\nfunction boundsLineEnd() {\n  range[0] = lambda0, range[1] = lambda1;\n  boundsStream.point = boundsPoint;\n  p0 = null;\n}\n\nfunction boundsRingPoint(lambda, phi) {\n  if (p0) {\n    var delta = lambda - lambda2;\n    deltaSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_3__[\"abs\"])(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n  } else {\n    lambda00 = lambda, phi00 = phi;\n  }\n  _area_js__WEBPACK_IMPORTED_MODULE_1__[\"areaStream\"].point(lambda, phi);\n  linePoint(lambda, phi);\n}\n\nfunction boundsRingStart() {\n  _area_js__WEBPACK_IMPORTED_MODULE_1__[\"areaStream\"].lineStart();\n}\n\nfunction boundsRingEnd() {\n  boundsRingPoint(lambda00, phi00);\n  _area_js__WEBPACK_IMPORTED_MODULE_1__[\"areaStream\"].lineEnd();\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_3__[\"abs\"])(deltaSum) > _math_js__WEBPACK_IMPORTED_MODULE_3__[\"epsilon\"]) lambda0 = -(lambda1 = 180);\n  range[0] = lambda0, range[1] = lambda1;\n  p0 = null;\n}\n\n// Finds the left-right distance between two longitudes.\n// This is almost the same as (lambda1 - lambda0 + 360°) % 360°, except that we want\n// the distance between ±180° to be 360°.\nfunction angle(lambda0, lambda1) {\n  return (lambda1 -= lambda0) < 0 ? lambda1 + 360 : lambda1;\n}\n\nfunction rangeCompare(a, b) {\n  return a[0] - b[0];\n}\n\nfunction rangeContains(range, x) {\n  return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(feature) {\n  var i, n, a, b, merged, deltaMax, delta;\n\n  phi1 = lambda1 = -(lambda0 = phi0 = Infinity);\n  ranges = [];\n  Object(_stream_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(feature, boundsStream);\n\n  // First, sort ranges by their minimum longitudes.\n  if (n = ranges.length) {\n    ranges.sort(rangeCompare);\n\n    // Then, merge any ranges that overlap.\n    for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n      b = ranges[i];\n      if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n        if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n        if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n      } else {\n        merged.push(a = b);\n      }\n    }\n\n    // Finally, find the largest gap between the merged ranges.\n    // The final bounding box will be the inverse of this gap.\n    for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n      b = merged[i];\n      if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0 = b[0], lambda1 = a[1];\n    }\n  }\n\n  ranges = range = null;\n\n  return lambda0 === Infinity || phi0 === Infinity\n      ? [[NaN, NaN], [NaN, NaN]]\n      : [[lambda0, phi0], [lambda1, phi1]];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/bounds.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/cartesian.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-geo/src/cartesian.js ***!
  \**********************************************/
/*! exports provided: spherical, cartesian, cartesianDot, cartesianCross, cartesianAddInPlace, cartesianScale, cartesianNormalizeInPlace */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"spherical\", function() { return spherical; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cartesian\", function() { return cartesian; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cartesianDot\", function() { return cartesianDot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cartesianCross\", function() { return cartesianCross; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cartesianAddInPlace\", function() { return cartesianAddInPlace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cartesianScale\", function() { return cartesianScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cartesianNormalizeInPlace\", function() { return cartesianNormalizeInPlace; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\nfunction spherical(cartesian) {\n  return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(cartesian[1], cartesian[0]), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(cartesian[2])];\n}\n\nfunction cartesian(spherical) {\n  var lambda = spherical[0], phi = spherical[1], cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi);\n  return [cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(lambda), cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(lambda), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi)];\n}\n\nfunction cartesianDot(a, b) {\n  return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nfunction cartesianCross(a, b) {\n  return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nfunction cartesianAddInPlace(a, b) {\n  a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nfunction cartesianScale(vector, k) {\n  return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nfunction cartesianNormalizeInPlace(d) {\n  var l = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n  d[0] /= l, d[1] /= l, d[2] /= l;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/cartesian.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/centroid.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-geo/src/centroid.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n\n\n\n\n\nvar W0, W1,\n    X0, Y0, Z0,\n    X1, Y1, Z1,\n    X2, Y2, Z2,\n    lambda00, phi00, // first point\n    x0, y0, z0; // previous point\n\nvar centroidStream = {\n  sphere: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  point: centroidPoint,\n  lineStart: centroidLineStart,\n  lineEnd: centroidLineEnd,\n  polygonStart: function() {\n    centroidStream.lineStart = centroidRingStart;\n    centroidStream.lineEnd = centroidRingEnd;\n  },\n  polygonEnd: function() {\n    centroidStream.lineStart = centroidLineStart;\n    centroidStream.lineEnd = centroidLineEnd;\n  }\n};\n\n// Arithmetic mean of Cartesian vectors.\nfunction centroidPoint(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n  centroidPointCartesian(cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda), cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda), Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi));\n}\n\nfunction centroidPointCartesian(x, y, z) {\n  ++W0;\n  X0 += (x - X0) / W0;\n  Y0 += (y - Y0) / W0;\n  Z0 += (z - Z0) / W0;\n}\n\nfunction centroidLineStart() {\n  centroidStream.point = centroidLinePointFirst;\n}\n\nfunction centroidLinePointFirst(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n  x0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda);\n  y0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda);\n  z0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n  centroidStream.point = centroidLinePoint;\n  centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLinePoint(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      x = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda),\n      y = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n      z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      w = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n  W1 += w;\n  X1 += w * (x0 + (x0 = x));\n  Y1 += w * (y0 + (y0 = y));\n  Z1 += w * (z0 + (z0 = z));\n  centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidLineEnd() {\n  centroidStream.point = centroidPoint;\n}\n\n// See J. E. Brock, The Inertia Tensor for a Spherical Triangle,\n// J. Applied Mechanics 42, 239 (1975).\nfunction centroidRingStart() {\n  centroidStream.point = centroidRingPointFirst;\n}\n\nfunction centroidRingEnd() {\n  centroidRingPoint(lambda00, phi00);\n  centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingPointFirst(lambda, phi) {\n  lambda00 = lambda, phi00 = phi;\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  centroidStream.point = centroidRingPoint;\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n  x0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda);\n  y0 = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda);\n  z0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi);\n  centroidPointCartesian(x0, y0, z0);\n}\n\nfunction centroidRingPoint(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      x = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda),\n      y = cosPhi * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda),\n      z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      cx = y0 * z - z0 * y,\n      cy = z0 * x - x0 * z,\n      cz = x0 * y - y0 * x,\n      m = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"hypot\"])(cx, cy, cz),\n      w = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(m), // line weight = angle\n      v = m && -w / m; // area weight multiplier\n  X2.add(v * cx);\n  Y2.add(v * cy);\n  Z2.add(v * cz);\n  W1 += w;\n  X1 += w * (x0 + (x0 = x));\n  Y1 += w * (y0 + (y0 = y));\n  Z1 += w * (z0 + (z0 = z));\n  centroidPointCartesian(x0, y0, z0);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(object) {\n  W0 = W1 =\n  X0 = Y0 = Z0 =\n  X1 = Y1 = Z1 = 0;\n  X2 = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n  Y2 = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n  Z2 = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n  Object(_stream_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object, centroidStream);\n\n  var x = +X2,\n      y = +Y2,\n      z = +Z2,\n      m = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"hypot\"])(x, y, z);\n\n  // If the area-weighted ccentroid is undefined, fall back to length-weighted ccentroid.\n  if (m < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"]) {\n    x = X1, y = Y1, z = Z1;\n    // If the feature has zero length, fall back to arithmetic mean of point vectors.\n    if (W1 < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) x = X0, y = Y0, z = Z0;\n    m = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"hypot\"])(x, y, z);\n    // If the feature still has an undefined ccentroid, then return.\n    if (m < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"]) return [NaN, NaN];\n  }\n\n  return [Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y, x) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(z / m) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"]];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/centroid.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/circle.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-geo/src/circle.js ***!
  \*******************************************/
/*! exports provided: circleStream, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"circleStream\", function() { return circleStream; });\n/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cartesian.js */ \"./node_modules/d3-geo/src/cartesian.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-geo/src/constant.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rotation.js */ \"./node_modules/d3-geo/src/rotation.js\");\n\n\n\n\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nfunction circleStream(stream, radius, delta, direction, t0, t1) {\n  if (!delta) return;\n  var cosRadius = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(radius),\n      sinRadius = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(radius),\n      step = direction * delta;\n  if (t0 == null) {\n    t0 = radius + direction * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"];\n    t1 = radius - step / 2;\n  } else {\n    t0 = circleRadius(cosRadius, t0);\n    t1 = circleRadius(cosRadius, t1);\n    if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"];\n  }\n  for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n    point = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"spherical\"])([cosRadius, -sinRadius * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(t), -sinRadius * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(t)]);\n    stream.point(point[0], point[1]);\n  }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n  point = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesian\"])(point), point[0] -= cosRadius;\n  Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianNormalizeInPlace\"])(point);\n  var radius = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"acos\"])(-point[1]);\n  return ((-point[2] < 0 ? -radius : radius) + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) % _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var center = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([0, 0]),\n      radius = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(90),\n      precision = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(6),\n      ring,\n      rotate,\n      stream = {point: point};\n\n  function point(x, y) {\n    ring.push(x = rotate(x, y));\n    x[0] *= _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"], x[1] *= _math_js__WEBPACK_IMPORTED_MODULE_2__[\"degrees\"];\n  }\n\n  function circle() {\n    var c = center.apply(this, arguments),\n        r = radius.apply(this, arguments) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"],\n        p = precision.apply(this, arguments) * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"];\n    ring = [];\n    rotate = Object(_rotation_js__WEBPACK_IMPORTED_MODULE_3__[\"rotateRadians\"])(-c[0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"], -c[1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"], 0).invert;\n    circleStream(stream, r, p, 1);\n    c = {type: \"Polygon\", coordinates: [ring]};\n    ring = rotate = null;\n    return c;\n  }\n\n  circle.center = function(_) {\n    return arguments.length ? (center = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([+_[0], +_[1]]), circle) : center;\n  };\n\n  circle.radius = function(_) {\n    return arguments.length ? (radius = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), circle) : radius;\n  };\n\n  circle.precision = function(_) {\n    return arguments.length ? (precision = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), circle) : precision;\n  };\n\n  return circle;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/circle.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/antimeridian.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo/src/clip/antimeridian.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/clip/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n  function() { return true; },\n  clipAntimeridianLine,\n  clipAntimeridianInterpolate,\n  [-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]]\n));\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n  var lambda0 = NaN,\n      phi0 = NaN,\n      sign0 = NaN,\n      clean; // no intersections\n\n  return {\n    lineStart: function() {\n      stream.lineStart();\n      clean = 1;\n    },\n    point: function(lambda1, phi1) {\n      var sign1 = lambda1 > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"],\n          delta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda1 - lambda0);\n      if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) { // line crosses a pole\n        stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"]);\n        stream.point(sign0, phi0);\n        stream.lineEnd();\n        stream.lineStart();\n        stream.point(sign1, phi0);\n        stream.point(lambda1, phi0);\n        clean = 0;\n      } else if (sign0 !== sign1 && delta >= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"]) { // line crosses antimeridian\n        if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda0 - sign0) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) lambda0 -= sign0 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]; // handle degeneracies\n        if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda1 - sign1) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) lambda1 -= sign1 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"];\n        phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n        stream.point(sign0, phi0);\n        stream.lineEnd();\n        stream.lineStart();\n        stream.point(sign1, phi0);\n        clean = 0;\n      }\n      stream.point(lambda0 = lambda1, phi0 = phi1);\n      sign0 = sign1;\n    },\n    lineEnd: function() {\n      stream.lineEnd();\n      lambda0 = phi0 = NaN;\n    },\n    clean: function() {\n      return 2 - clean; // if intersections, rejoin first and last segments\n    }\n  };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n  var cosPhi0,\n      cosPhi1,\n      sinLambda0Lambda1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda0 - lambda1);\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(sinLambda0Lambda1) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]\n      ? Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan\"])((Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi0) * (cosPhi1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi1)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda1)\n          - Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi1) * (cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi0)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda0))\n          / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n      : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n  var phi;\n  if (from == null) {\n    phi = direction * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"halfPi\"];\n    stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], phi);\n    stream.point(0, phi);\n    stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], phi);\n    stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], 0);\n    stream.point(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], -phi);\n    stream.point(0, -phi);\n    stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], -phi);\n    stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], 0);\n    stream.point(-_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"], phi);\n  } else if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(from[0] - to[0]) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]) {\n    var lambda = from[0] < to[0] ? _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"];\n    phi = direction * lambda / 2;\n    stream.point(-lambda, phi);\n    stream.point(0, phi);\n    stream.point(lambda, phi);\n  } else {\n    stream.point(to[0], to[1]);\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/antimeridian.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/buffer.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/clip/buffer.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var lines = [],\n      line;\n  return {\n    point: function(x, y, m) {\n      line.push([x, y, m]);\n    },\n    lineStart: function() {\n      lines.push(line = []);\n    },\n    lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n    rejoin: function() {\n      if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n    },\n    result: function() {\n      var result = lines;\n      lines = [];\n      line = null;\n      return result;\n    }\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/buffer.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/circle.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/clip/circle.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian.js */ \"./node_modules/d3-geo/src/cartesian.js\");\n/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../circle.js */ \"./node_modules/d3-geo/src/circle.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _pointEqual_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../pointEqual.js */ \"./node_modules/d3-geo/src/pointEqual.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/clip/index.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(radius) {\n  var cr = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(radius),\n      delta = 6 * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"],\n      smallRadius = cr > 0,\n      notHemisphere = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(cr) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]; // TODO optimise for this common case\n\n  function interpolate(from, to, direction, stream) {\n    Object(_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"circleStream\"])(stream, radius, delta, direction, from, to);\n  }\n\n  function visible(lambda, phi) {\n    return Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(lambda) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi) > cr;\n  }\n\n  // Takes a line and cuts into visible segments. Return values used for polygon\n  // clipping: 0 - there were intersections or the line was empty; 1 - no\n  // intersections 2 - there were intersections, and the first and last segments\n  // should be rejoined.\n  function clipLine(stream) {\n    var point0, // previous point\n        c0, // code for previous point\n        v0, // visibility of previous point\n        v00, // visibility of first point\n        clean; // no intersections\n    return {\n      lineStart: function() {\n        v00 = v0 = false;\n        clean = 1;\n      },\n      point: function(lambda, phi) {\n        var point1 = [lambda, phi],\n            point2,\n            v = visible(lambda, phi),\n            c = smallRadius\n              ? v ? 0 : code(lambda, phi)\n              : v ? code(lambda + (lambda < 0 ? _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] : -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"]), phi) : 0;\n        if (!point0 && (v00 = v0 = v)) stream.lineStart();\n        if (v !== v0) {\n          point2 = intersect(point0, point1);\n          if (!point2 || Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(point0, point2) || Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(point1, point2))\n            point1[2] = 1;\n        }\n        if (v !== v0) {\n          clean = 0;\n          if (v) {\n            // outside going in\n            stream.lineStart();\n            point2 = intersect(point1, point0);\n            stream.point(point2[0], point2[1]);\n          } else {\n            // inside going out\n            point2 = intersect(point0, point1);\n            stream.point(point2[0], point2[1], 2);\n            stream.lineEnd();\n          }\n          point0 = point2;\n        } else if (notHemisphere && point0 && smallRadius ^ v) {\n          var t;\n          // If the codes for two points are different, or are both zero,\n          // and there this segment intersects with the small circle.\n          if (!(c & c0) && (t = intersect(point1, point0, true))) {\n            clean = 0;\n            if (smallRadius) {\n              stream.lineStart();\n              stream.point(t[0][0], t[0][1]);\n              stream.point(t[1][0], t[1][1]);\n              stream.lineEnd();\n            } else {\n              stream.point(t[1][0], t[1][1]);\n              stream.lineEnd();\n              stream.lineStart();\n              stream.point(t[0][0], t[0][1], 3);\n            }\n          }\n        }\n        if (v && (!point0 || !Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(point0, point1))) {\n          stream.point(point1[0], point1[1]);\n        }\n        point0 = point1, v0 = v, c0 = c;\n      },\n      lineEnd: function() {\n        if (v0) stream.lineEnd();\n        point0 = null;\n      },\n      // Rejoin first and last segments if there were intersections and the first\n      // and last points were visible.\n      clean: function() {\n        return clean | ((v00 && v0) << 1);\n      }\n    };\n  }\n\n  // Intersects the great circle between a and b with the clip circle.\n  function intersect(a, b, two) {\n    var pa = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesian\"])(a),\n        pb = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesian\"])(b);\n\n    // We have two planes, n1.p = d1 and n2.p = d2.\n    // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n    var n1 = [1, 0, 0], // normal\n        n2 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianCross\"])(pa, pb),\n        n2n2 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianDot\"])(n2, n2),\n        n1n2 = n2[0], // cartesianDot(n1, n2),\n        determinant = n2n2 - n1n2 * n1n2;\n\n    // Two polar points.\n    if (!determinant) return !two && a;\n\n    var c1 =  cr * n2n2 / determinant,\n        c2 = -cr * n1n2 / determinant,\n        n1xn2 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianCross\"])(n1, n2),\n        A = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianScale\"])(n1, c1),\n        B = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianScale\"])(n2, c2);\n    Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianAddInPlace\"])(A, B);\n\n    // Solve |p(t)|^2 = 1.\n    var u = n1xn2,\n        w = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianDot\"])(A, u),\n        uu = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianDot\"])(u, u),\n        t2 = w * w - uu * (Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianDot\"])(A, A) - 1);\n\n    if (t2 < 0) return;\n\n    var t = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(t2),\n        q = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianScale\"])(u, (-w - t) / uu);\n    Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianAddInPlace\"])(q, A);\n    q = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"spherical\"])(q);\n\n    if (!two) return q;\n\n    // Two intersection points.\n    var lambda0 = a[0],\n        lambda1 = b[0],\n        phi0 = a[1],\n        phi1 = b[1],\n        z;\n\n    if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n    var delta = lambda1 - lambda0,\n        polar = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(delta - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"]) < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"],\n        meridian = polar || delta < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"];\n\n    if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n    // Check that the first point is between a and b.\n    if (meridian\n        ? polar\n          ? phi0 + phi1 > 0 ^ q[1] < (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(q[0] - lambda0) < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] ? phi0 : phi1)\n          : phi0 <= q[1] && q[1] <= phi1\n        : delta > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n      var q1 = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianScale\"])(u, (-w + t) / uu);\n      Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesianAddInPlace\"])(q1, A);\n      return [q, Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"spherical\"])(q1)];\n    }\n  }\n\n  // Generates a 4-bit vector representing the location of a point relative to\n  // the small circle's bounding box.\n  function code(lambda, phi) {\n    var r = smallRadius ? radius : _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] - radius,\n        code = 0;\n    if (lambda < -r) code |= 1; // left\n    else if (lambda > r) code |= 2; // right\n    if (phi < -r) code |= 4; // below\n    else if (phi > r) code |= 8; // above\n    return code;\n  }\n\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-_math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"], radius - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"]]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/circle.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/extent.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/clip/extent.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _rectangle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rectangle.js */ \"./node_modules/d3-geo/src/clip/rectangle.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var x0 = 0,\n      y0 = 0,\n      x1 = 960,\n      y1 = 500,\n      cache,\n      cacheStream,\n      clip;\n\n  return clip = {\n    stream: function(stream) {\n      return cache && cacheStream === stream ? cache : cache = Object(_rectangle_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(x0, y0, x1, y1)(cacheStream = stream);\n    },\n    extent: function(_) {\n      return arguments.length ? (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1], cache = cacheStream = null, clip) : [[x0, y0], [x1, y1]];\n    }\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/extent.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/index.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-geo/src/clip/index.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./buffer.js */ \"./node_modules/d3-geo/src/clip/buffer.js\");\n/* harmony import */ var _rejoin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rejoin.js */ \"./node_modules/d3-geo/src/clip/rejoin.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _polygonContains_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../polygonContains.js */ \"./node_modules/d3-geo/src/polygonContains.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(pointVisible, clipLine, interpolate, start) {\n  return function(sink) {\n    var line = clipLine(sink),\n        ringBuffer = Object(_buffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(),\n        ringSink = clipLine(ringBuffer),\n        polygonStarted = false,\n        polygon,\n        segments,\n        ring;\n\n    var clip = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: function() {\n        clip.point = pointRing;\n        clip.lineStart = ringStart;\n        clip.lineEnd = ringEnd;\n        segments = [];\n        polygon = [];\n      },\n      polygonEnd: function() {\n        clip.point = point;\n        clip.lineStart = lineStart;\n        clip.lineEnd = lineEnd;\n        segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__[\"merge\"])(segments);\n        var startInside = Object(_polygonContains_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(polygon, start);\n        if (segments.length) {\n          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n          Object(_rejoin_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(segments, compareIntersection, startInside, interpolate, sink);\n        } else if (startInside) {\n          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n          sink.lineStart();\n          interpolate(null, null, 1, sink);\n          sink.lineEnd();\n        }\n        if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n        segments = polygon = null;\n      },\n      sphere: function() {\n        sink.polygonStart();\n        sink.lineStart();\n        interpolate(null, null, 1, sink);\n        sink.lineEnd();\n        sink.polygonEnd();\n      }\n    };\n\n    function point(lambda, phi) {\n      if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n    }\n\n    function pointLine(lambda, phi) {\n      line.point(lambda, phi);\n    }\n\n    function lineStart() {\n      clip.point = pointLine;\n      line.lineStart();\n    }\n\n    function lineEnd() {\n      clip.point = point;\n      line.lineEnd();\n    }\n\n    function pointRing(lambda, phi) {\n      ring.push([lambda, phi]);\n      ringSink.point(lambda, phi);\n    }\n\n    function ringStart() {\n      ringSink.lineStart();\n      ring = [];\n    }\n\n    function ringEnd() {\n      pointRing(ring[0][0], ring[0][1]);\n      ringSink.lineEnd();\n\n      var clean = ringSink.clean(),\n          ringSegments = ringBuffer.result(),\n          i, n = ringSegments.length, m,\n          segment,\n          point;\n\n      ring.pop();\n      polygon.push(ring);\n      ring = null;\n\n      if (!n) return;\n\n      // No intersections.\n      if (clean & 1) {\n        segment = ringSegments[0];\n        if ((m = segment.length - 1) > 0) {\n          if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n          sink.lineStart();\n          for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n          sink.lineEnd();\n        }\n        return;\n      }\n\n      // Rejoin connected segments.\n      // TODO reuse ringBuffer.rejoin()?\n      if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n      segments.push(ringSegments.filter(validSegment));\n    }\n\n    return clip;\n  };\n});\n\nfunction validSegment(segment) {\n  return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n  return ((a = a.x)[0] < 0 ? a[1] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] : _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] - a[1])\n       - ((b = b.x)[0] < 0 ? b[1] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] : _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] - b[1]);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/line.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-geo/src/clip/line.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b, x0, y0, x1, y1) {\n  var ax = a[0],\n      ay = a[1],\n      bx = b[0],\n      by = b[1],\n      t0 = 0,\n      t1 = 1,\n      dx = bx - ax,\n      dy = by - ay,\n      r;\n\n  r = x0 - ax;\n  if (!dx && r > 0) return;\n  r /= dx;\n  if (dx < 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  } else if (dx > 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  }\n\n  r = x1 - ax;\n  if (!dx && r < 0) return;\n  r /= dx;\n  if (dx < 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  } else if (dx > 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  }\n\n  r = y0 - ay;\n  if (!dy && r > 0) return;\n  r /= dy;\n  if (dy < 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  } else if (dy > 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  }\n\n  r = y1 - ay;\n  if (!dy && r < 0) return;\n  r /= dy;\n  if (dy < 0) {\n    if (r > t1) return;\n    if (r > t0) t0 = r;\n  } else if (dy > 0) {\n    if (r < t0) return;\n    if (r < t1) t1 = r;\n  }\n\n  if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n  if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n  return true;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/line.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/rectangle.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-geo/src/clip/rectangle.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return clipRectangle; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _buffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./buffer.js */ \"./node_modules/d3-geo/src/clip/buffer.js\");\n/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line.js */ \"./node_modules/d3-geo/src/clip/line.js\");\n/* harmony import */ var _rejoin_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rejoin.js */ \"./node_modules/d3-geo/src/clip/rejoin.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n\n\n\n\n\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nfunction clipRectangle(x0, y0, x1, y1) {\n\n  function visible(x, y) {\n    return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n  }\n\n  function interpolate(from, to, direction, stream) {\n    var a = 0, a1 = 0;\n    if (from == null\n        || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n        || comparePoint(from, to) < 0 ^ direction > 0) {\n      do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n      while ((a = (a + direction + 4) % 4) !== a1);\n    } else {\n      stream.point(to[0], to[1]);\n    }\n  }\n\n  function corner(p, direction) {\n    return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(p[0] - x0) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] ? direction > 0 ? 0 : 3\n        : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(p[0] - x1) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] ? direction > 0 ? 2 : 1\n        : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(p[1] - y0) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] ? direction > 0 ? 1 : 0\n        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n  }\n\n  function compareIntersection(a, b) {\n    return comparePoint(a.x, b.x);\n  }\n\n  function comparePoint(a, b) {\n    var ca = corner(a, 1),\n        cb = corner(b, 1);\n    return ca !== cb ? ca - cb\n        : ca === 0 ? b[1] - a[1]\n        : ca === 1 ? a[0] - b[0]\n        : ca === 2 ? a[1] - b[1]\n        : b[0] - a[0];\n  }\n\n  return function(stream) {\n    var activeStream = stream,\n        bufferStream = Object(_buffer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(),\n        segments,\n        polygon,\n        ring,\n        x__, y__, v__, // first point\n        x_, y_, v_, // previous point\n        first,\n        clean;\n\n    var clipStream = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: polygonStart,\n      polygonEnd: polygonEnd\n    };\n\n    function point(x, y) {\n      if (visible(x, y)) activeStream.point(x, y);\n    }\n\n    function polygonInside() {\n      var winding = 0;\n\n      for (var i = 0, n = polygon.length; i < n; ++i) {\n        for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n          a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n          if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n          else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n        }\n      }\n\n      return winding;\n    }\n\n    // Buffer geometry within a polygon and then clip it en masse.\n    function polygonStart() {\n      activeStream = bufferStream, segments = [], polygon = [], clean = true;\n    }\n\n    function polygonEnd() {\n      var startInside = polygonInside(),\n          cleanInside = clean && startInside,\n          visible = (segments = Object(d3_array__WEBPACK_IMPORTED_MODULE_4__[\"merge\"])(segments)).length;\n      if (cleanInside || visible) {\n        stream.polygonStart();\n        if (cleanInside) {\n          stream.lineStart();\n          interpolate(null, null, 1, stream);\n          stream.lineEnd();\n        }\n        if (visible) {\n          Object(_rejoin_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(segments, compareIntersection, startInside, interpolate, stream);\n        }\n        stream.polygonEnd();\n      }\n      activeStream = stream, segments = polygon = ring = null;\n    }\n\n    function lineStart() {\n      clipStream.point = linePoint;\n      if (polygon) polygon.push(ring = []);\n      first = true;\n      v_ = false;\n      x_ = y_ = NaN;\n    }\n\n    // TODO rather than special-case polygons, simply handle them separately.\n    // Ideally, coincident intersection points should be jittered to avoid\n    // clipping issues.\n    function lineEnd() {\n      if (segments) {\n        linePoint(x__, y__);\n        if (v__ && v_) bufferStream.rejoin();\n        segments.push(bufferStream.result());\n      }\n      clipStream.point = point;\n      if (v_) activeStream.lineEnd();\n    }\n\n    function linePoint(x, y) {\n      var v = visible(x, y);\n      if (polygon) ring.push([x, y]);\n      if (first) {\n        x__ = x, y__ = y, v__ = v;\n        first = false;\n        if (v) {\n          activeStream.lineStart();\n          activeStream.point(x, y);\n        }\n      } else {\n        if (v && v_) activeStream.point(x, y);\n        else {\n          var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n              b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n          if (Object(_line_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(a, b, x0, y0, x1, y1)) {\n            if (!v_) {\n              activeStream.lineStart();\n              activeStream.point(a[0], a[1]);\n            }\n            activeStream.point(b[0], b[1]);\n            if (!v) activeStream.lineEnd();\n            clean = false;\n          } else if (v) {\n            activeStream.lineStart();\n            activeStream.point(x, y);\n            clean = false;\n          }\n        }\n      }\n      x_ = x, y_ = y, v_ = v;\n    }\n\n    return clipStream;\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/rectangle.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/clip/rejoin.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/clip/rejoin.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pointEqual_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../pointEqual.js */ \"./node_modules/d3-geo/src/pointEqual.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\nfunction Intersection(point, points, other, entry) {\n  this.x = point;\n  this.z = points;\n  this.o = other; // another intersection\n  this.e = entry; // is an entry?\n  this.v = false; // visited\n  this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(segments, compareIntersection, startInside, interpolate, stream) {\n  var subject = [],\n      clip = [],\n      i,\n      n;\n\n  segments.forEach(function(segment) {\n    if ((n = segment.length - 1) <= 0) return;\n    var n, p0 = segment[0], p1 = segment[n], x;\n\n    if (Object(_pointEqual_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(p0, p1)) {\n      if (!p0[2] && !p1[2]) {\n        stream.lineStart();\n        for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n        stream.lineEnd();\n        return;\n      }\n      // handle degenerate cases by moving the point\n      p1[0] += 2 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"];\n    }\n\n    subject.push(x = new Intersection(p0, segment, null, true));\n    clip.push(x.o = new Intersection(p0, null, x, false));\n    subject.push(x = new Intersection(p1, segment, null, false));\n    clip.push(x.o = new Intersection(p1, null, x, true));\n  });\n\n  if (!subject.length) return;\n\n  clip.sort(compareIntersection);\n  link(subject);\n  link(clip);\n\n  for (i = 0, n = clip.length; i < n; ++i) {\n    clip[i].e = startInside = !startInside;\n  }\n\n  var start = subject[0],\n      points,\n      point;\n\n  while (1) {\n    // Find first unvisited intersection.\n    var current = start,\n        isSubject = true;\n    while (current.v) if ((current = current.n) === start) return;\n    points = current.z;\n    stream.lineStart();\n    do {\n      current.v = current.o.v = true;\n      if (current.e) {\n        if (isSubject) {\n          for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n        } else {\n          interpolate(current.x, current.n.x, 1, stream);\n        }\n        current = current.n;\n      } else {\n        if (isSubject) {\n          points = current.p.z;\n          for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n        } else {\n          interpolate(current.x, current.p.x, -1, stream);\n        }\n        current = current.p;\n      }\n      current = current.o;\n      points = current.z;\n      isSubject = !isSubject;\n    } while (!current.v);\n    stream.lineEnd();\n  }\n});\n\nfunction link(array) {\n  if (!(n = array.length)) return;\n  var n,\n      i = 0,\n      a = array[0],\n      b;\n  while (++i < n) {\n    a.n = b = array[i];\n    b.p = a;\n    a = b;\n  }\n  a.n = b = array[0];\n  b.p = a;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/clip/rejoin.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/compose.js":
/*!********************************************!*\
  !*** ./node_modules/d3-geo/src/compose.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n\n  function compose(x, y) {\n    return x = a(x, y), b(x[0], x[1]);\n  }\n\n  if (a.invert && b.invert) compose.invert = function(x, y) {\n    return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n  };\n\n  return compose;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/compose.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/constant.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-geo/src/constant.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return function() {\n    return x;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/contains.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-geo/src/contains.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _polygonContains_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./polygonContains.js */ \"./node_modules/d3-geo/src/polygonContains.js\");\n/* harmony import */ var _distance_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./distance.js */ \"./node_modules/d3-geo/src/distance.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\n\nvar containsObjectType = {\n  Feature: function(object, point) {\n    return containsGeometry(object.geometry, point);\n  },\n  FeatureCollection: function(object, point) {\n    var features = object.features, i = -1, n = features.length;\n    while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n    return false;\n  }\n};\n\nvar containsGeometryType = {\n  Sphere: function() {\n    return true;\n  },\n  Point: function(object, point) {\n    return containsPoint(object.coordinates, point);\n  },\n  MultiPoint: function(object, point) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) if (containsPoint(coordinates[i], point)) return true;\n    return false;\n  },\n  LineString: function(object, point) {\n    return containsLine(object.coordinates, point);\n  },\n  MultiLineString: function(object, point) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) if (containsLine(coordinates[i], point)) return true;\n    return false;\n  },\n  Polygon: function(object, point) {\n    return containsPolygon(object.coordinates, point);\n  },\n  MultiPolygon: function(object, point) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) if (containsPolygon(coordinates[i], point)) return true;\n    return false;\n  },\n  GeometryCollection: function(object, point) {\n    var geometries = object.geometries, i = -1, n = geometries.length;\n    while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n    return false;\n  }\n};\n\nfunction containsGeometry(geometry, point) {\n  return geometry && containsGeometryType.hasOwnProperty(geometry.type)\n      ? containsGeometryType[geometry.type](geometry, point)\n      : false;\n}\n\nfunction containsPoint(coordinates, point) {\n  return Object(_distance_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(coordinates, point) === 0;\n}\n\nfunction containsLine(coordinates, point) {\n  var ao, bo, ab;\n  for (var i = 0, n = coordinates.length; i < n; i++) {\n    bo = Object(_distance_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(coordinates[i], point);\n    if (bo === 0) return true;\n    if (i > 0) {\n      ab = Object(_distance_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(coordinates[i], coordinates[i - 1]);\n      if (\n        ab > 0 &&\n        ao <= ab &&\n        bo <= ab &&\n        (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon2\"] * ab\n      )\n        return true;\n    }\n    ao = bo;\n  }\n  return false;\n}\n\nfunction containsPolygon(coordinates, point) {\n  return !!Object(_polygonContains_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(coordinates.map(ringRadians), pointRadians(point));\n}\n\nfunction ringRadians(ring) {\n  return ring = ring.map(pointRadians), ring.pop(), ring;\n}\n\nfunction pointRadians(point) {\n  return [point[0] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"], point[1] * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"radians\"]];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(object, point) {\n  return (object && containsObjectType.hasOwnProperty(object.type)\n      ? containsObjectType[object.type]\n      : containsGeometry)(object, point);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/contains.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/distance.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-geo/src/distance.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./length.js */ \"./node_modules/d3-geo/src/length.js\");\n\n\nvar coordinates = [null, null],\n    object = {type: \"LineString\", coordinates: coordinates};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  coordinates[0] = a;\n  coordinates[1] = b;\n  return Object(_length_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/distance.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/graticule.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-geo/src/graticule.js ***!
  \**********************************************/
/*! exports provided: default, graticule10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return graticule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"graticule10\", function() { return graticule10; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\nfunction graticuleX(y0, y1, dy) {\n  var y = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(y0, y1 - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"], dy).concat(y1);\n  return function(x) { return y.map(function(y) { return [x, y]; }); };\n}\n\nfunction graticuleY(x0, x1, dx) {\n  var x = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(x0, x1 - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"], dx).concat(x1);\n  return function(y) { return x.map(function(x) { return [x, y]; }); };\n}\n\nfunction graticule() {\n  var x1, x0, X1, X0,\n      y1, y0, Y1, Y0,\n      dx = 10, dy = dx, DX = 90, DY = 360,\n      x, y, X, Y,\n      precision = 2.5;\n\n  function graticule() {\n    return {type: \"MultiLineString\", coordinates: lines()};\n  }\n\n  function lines() {\n    return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"ceil\"])(X0 / DX) * DX, X1, DX).map(X)\n        .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"ceil\"])(Y0 / DY) * DY, Y1, DY).map(Y))\n        .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"ceil\"])(x0 / dx) * dx, x1, dx).filter(function(x) { return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(x % DX) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]; }).map(x))\n        .concat(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"ceil\"])(y0 / dy) * dy, y1, dy).filter(function(y) { return Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(y % DY) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]; }).map(y));\n  }\n\n  graticule.lines = function() {\n    return lines().map(function(coordinates) { return {type: \"LineString\", coordinates: coordinates}; });\n  };\n\n  graticule.outline = function() {\n    return {\n      type: \"Polygon\",\n      coordinates: [\n        X(X0).concat(\n        Y(Y1).slice(1),\n        X(X1).reverse().slice(1),\n        Y(Y0).reverse().slice(1))\n      ]\n    };\n  };\n\n  graticule.extent = function(_) {\n    if (!arguments.length) return graticule.extentMinor();\n    return graticule.extentMajor(_).extentMinor(_);\n  };\n\n  graticule.extentMajor = function(_) {\n    if (!arguments.length) return [[X0, Y0], [X1, Y1]];\n    X0 = +_[0][0], X1 = +_[1][0];\n    Y0 = +_[0][1], Y1 = +_[1][1];\n    if (X0 > X1) _ = X0, X0 = X1, X1 = _;\n    if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;\n    return graticule.precision(precision);\n  };\n\n  graticule.extentMinor = function(_) {\n    if (!arguments.length) return [[x0, y0], [x1, y1]];\n    x0 = +_[0][0], x1 = +_[1][0];\n    y0 = +_[0][1], y1 = +_[1][1];\n    if (x0 > x1) _ = x0, x0 = x1, x1 = _;\n    if (y0 > y1) _ = y0, y0 = y1, y1 = _;\n    return graticule.precision(precision);\n  };\n\n  graticule.step = function(_) {\n    if (!arguments.length) return graticule.stepMinor();\n    return graticule.stepMajor(_).stepMinor(_);\n  };\n\n  graticule.stepMajor = function(_) {\n    if (!arguments.length) return [DX, DY];\n    DX = +_[0], DY = +_[1];\n    return graticule;\n  };\n\n  graticule.stepMinor = function(_) {\n    if (!arguments.length) return [dx, dy];\n    dx = +_[0], dy = +_[1];\n    return graticule;\n  };\n\n  graticule.precision = function(_) {\n    if (!arguments.length) return precision;\n    precision = +_;\n    x = graticuleX(y0, y1, 90);\n    y = graticuleY(x0, x1, precision);\n    X = graticuleX(Y0, Y1, 90);\n    Y = graticuleY(X0, X1, precision);\n    return graticule;\n  };\n\n  return graticule\n      .extentMajor([[-180, -90 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]], [180, 90 - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]]])\n      .extentMinor([[-180, -80 - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]], [180, 80 + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"]]]);\n}\n\nfunction graticule10() {\n  return graticule()();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/graticule.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/identity.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-geo/src/identity.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (x => x);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/identity.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/index.js":
/*!******************************************!*\
  !*** ./node_modules/d3-geo/src/index.js ***!
  \******************************************/
/*! exports provided: geoArea, geoBounds, geoCentroid, geoCircle, geoClipAntimeridian, geoClipCircle, geoClipExtent, geoClipRectangle, geoContains, geoDistance, geoGraticule, geoGraticule10, geoInterpolate, geoLength, geoPath, geoAlbers, geoAlbersUsa, geoAzimuthalEqualArea, geoAzimuthalEqualAreaRaw, geoAzimuthalEquidistant, geoAzimuthalEquidistantRaw, geoConicConformal, geoConicConformalRaw, geoConicEqualArea, geoConicEqualAreaRaw, geoConicEquidistant, geoConicEquidistantRaw, geoEqualEarth, geoEqualEarthRaw, geoEquirectangular, geoEquirectangularRaw, geoGnomonic, geoGnomonicRaw, geoIdentity, geoProjection, geoProjectionMutator, geoMercator, geoMercatorRaw, geoNaturalEarth1, geoNaturalEarth1Raw, geoOrthographic, geoOrthographicRaw, geoStereographic, geoStereographicRaw, geoTransverseMercator, geoTransverseMercatorRaw, geoRotation, geoStream, geoTransform */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./area.js */ \"./node_modules/d3-geo/src/area.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoArea\", function() { return _area_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _bounds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bounds.js */ \"./node_modules/d3-geo/src/bounds.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoBounds\", function() { return _bounds_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./centroid.js */ \"./node_modules/d3-geo/src/centroid.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCentroid\", function() { return _centroid_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _circle_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./circle.js */ \"./node_modules/d3-geo/src/circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoCircle\", function() { return _circle_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./clip/antimeridian.js */ \"./node_modules/d3-geo/src/clip/antimeridian.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoClipAntimeridian\", function() { return _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _clip_circle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./clip/circle.js */ \"./node_modules/d3-geo/src/clip/circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoClipCircle\", function() { return _clip_circle_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _clip_extent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./clip/extent.js */ \"./node_modules/d3-geo/src/clip/extent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoClipExtent\", function() { return _clip_extent_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./clip/rectangle.js */ \"./node_modules/d3-geo/src/clip/rectangle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoClipRectangle\", function() { return _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./contains.js */ \"./node_modules/d3-geo/src/contains.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoContains\", function() { return _contains_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _distance_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./distance.js */ \"./node_modules/d3-geo/src/distance.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoDistance\", function() { return _distance_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _graticule_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./graticule.js */ \"./node_modules/d3-geo/src/graticule.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGraticule\", function() { return _graticule_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGraticule10\", function() { return _graticule_js__WEBPACK_IMPORTED_MODULE_10__[\"graticule10\"]; });\n\n/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./interpolate.js */ \"./node_modules/d3-geo/src/interpolate.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoInterpolate\", function() { return _interpolate_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _length_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./length.js */ \"./node_modules/d3-geo/src/length.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoLength\", function() { return _length_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _path_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./path/index.js */ \"./node_modules/d3-geo/src/path/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoPath\", function() { return _path_index_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _projection_albers_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./projection/albers.js */ \"./node_modules/d3-geo/src/projection/albers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAlbers\", function() { return _projection_albers_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _projection_albersUsa_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./projection/albersUsa.js */ \"./node_modules/d3-geo/src/projection/albersUsa.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAlbersUsa\", function() { return _projection_albersUsa_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./projection/azimuthalEqualArea.js */ \"./node_modules/d3-geo/src/projection/azimuthalEqualArea.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAzimuthalEqualArea\", function() { return _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAzimuthalEqualAreaRaw\", function() { return _projection_azimuthalEqualArea_js__WEBPACK_IMPORTED_MODULE_16__[\"azimuthalEqualAreaRaw\"]; });\n\n/* harmony import */ var _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./projection/azimuthalEquidistant.js */ \"./node_modules/d3-geo/src/projection/azimuthalEquidistant.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAzimuthalEquidistant\", function() { return _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoAzimuthalEquidistantRaw\", function() { return _projection_azimuthalEquidistant_js__WEBPACK_IMPORTED_MODULE_17__[\"azimuthalEquidistantRaw\"]; });\n\n/* harmony import */ var _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./projection/conicConformal.js */ \"./node_modules/d3-geo/src/projection/conicConformal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoConicConformal\", function() { return _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoConicConformalRaw\", function() { return _projection_conicConformal_js__WEBPACK_IMPORTED_MODULE_18__[\"conicConformalRaw\"]; });\n\n/* harmony import */ var _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./projection/conicEqualArea.js */ \"./node_modules/d3-geo/src/projection/conicEqualArea.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoConicEqualArea\", function() { return _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoConicEqualAreaRaw\", function() { return _projection_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_19__[\"conicEqualAreaRaw\"]; });\n\n/* harmony import */ var _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./projection/conicEquidistant.js */ \"./node_modules/d3-geo/src/projection/conicEquidistant.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoConicEquidistant\", function() { return _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoConicEquidistantRaw\", function() { return _projection_conicEquidistant_js__WEBPACK_IMPORTED_MODULE_20__[\"conicEquidistantRaw\"]; });\n\n/* harmony import */ var _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./projection/equalEarth.js */ \"./node_modules/d3-geo/src/projection/equalEarth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEqualEarth\", function() { return _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEqualEarthRaw\", function() { return _projection_equalEarth_js__WEBPACK_IMPORTED_MODULE_21__[\"equalEarthRaw\"]; });\n\n/* harmony import */ var _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./projection/equirectangular.js */ \"./node_modules/d3-geo/src/projection/equirectangular.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEquirectangular\", function() { return _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoEquirectangularRaw\", function() { return _projection_equirectangular_js__WEBPACK_IMPORTED_MODULE_22__[\"equirectangularRaw\"]; });\n\n/* harmony import */ var _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./projection/gnomonic.js */ \"./node_modules/d3-geo/src/projection/gnomonic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGnomonic\", function() { return _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoGnomonicRaw\", function() { return _projection_gnomonic_js__WEBPACK_IMPORTED_MODULE_23__[\"gnomonicRaw\"]; });\n\n/* harmony import */ var _projection_identity_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./projection/identity.js */ \"./node_modules/d3-geo/src/projection/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoIdentity\", function() { return _projection_identity_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _projection_index_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./projection/index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoProjection\", function() { return _projection_index_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoProjectionMutator\", function() { return _projection_index_js__WEBPACK_IMPORTED_MODULE_25__[\"projectionMutator\"]; });\n\n/* harmony import */ var _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./projection/mercator.js */ \"./node_modules/d3-geo/src/projection/mercator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMercator\", function() { return _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoMercatorRaw\", function() { return _projection_mercator_js__WEBPACK_IMPORTED_MODULE_26__[\"mercatorRaw\"]; });\n\n/* harmony import */ var _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./projection/naturalEarth1.js */ \"./node_modules/d3-geo/src/projection/naturalEarth1.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNaturalEarth1\", function() { return _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoNaturalEarth1Raw\", function() { return _projection_naturalEarth1_js__WEBPACK_IMPORTED_MODULE_27__[\"naturalEarth1Raw\"]; });\n\n/* harmony import */ var _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./projection/orthographic.js */ \"./node_modules/d3-geo/src/projection/orthographic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoOrthographic\", function() { return _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoOrthographicRaw\", function() { return _projection_orthographic_js__WEBPACK_IMPORTED_MODULE_28__[\"orthographicRaw\"]; });\n\n/* harmony import */ var _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./projection/stereographic.js */ \"./node_modules/d3-geo/src/projection/stereographic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoStereographic\", function() { return _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoStereographicRaw\", function() { return _projection_stereographic_js__WEBPACK_IMPORTED_MODULE_29__[\"stereographicRaw\"]; });\n\n/* harmony import */ var _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./projection/transverseMercator.js */ \"./node_modules/d3-geo/src/projection/transverseMercator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTransverseMercator\", function() { return _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTransverseMercatorRaw\", function() { return _projection_transverseMercator_js__WEBPACK_IMPORTED_MODULE_30__[\"transverseMercatorRaw\"]; });\n\n/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./rotation.js */ \"./node_modules/d3-geo/src/rotation.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoRotation\", function() { return _rotation_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoStream\", function() { return _stream_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./transform.js */ \"./node_modules/d3-geo/src/transform.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"geoTransform\", function() { return _transform_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n\n\n\n\n\n\n // DEPRECATED! Use d3.geoIdentity().clipExtent(…).\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/interpolate.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/interpolate.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var x0 = a[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"radians\"],\n      y0 = a[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"radians\"],\n      x1 = b[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"radians\"],\n      y1 = b[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"radians\"],\n      cy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y0),\n      sy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y0),\n      cy1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y1),\n      sy1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y1),\n      kx0 = cy0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x0),\n      ky0 = cy0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x0),\n      kx1 = cy1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x1),\n      ky1 = cy1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x1),\n      d = 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"haversin\"])(y1 - y0) + cy0 * cy1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"haversin\"])(x1 - x0))),\n      k = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(d);\n\n  var interpolate = d ? function(t) {\n    var B = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(t *= d) / k,\n        A = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(d - t) / k,\n        x = A * kx0 + B * kx1,\n        y = A * ky0 + B * ky1,\n        z = A * sy0 + B * sy1;\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(y, x) * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"degrees\"],\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(z, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(x * x + y * y)) * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"degrees\"]\n    ];\n  } : function() {\n    return [x0 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"degrees\"], y0 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"degrees\"]];\n  };\n\n  interpolate.distance = d;\n\n  return interpolate;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/interpolate.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/length.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-geo/src/length.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n\n\n\n\n\nvar lengthSum,\n    lambda0,\n    sinPhi0,\n    cosPhi0;\n\nvar lengthStream = {\n  sphere: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  point: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  lineStart: lengthLineStart,\n  lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n};\n\nfunction lengthLineStart() {\n  lengthStream.point = lengthPointFirst;\n  lengthStream.lineEnd = lengthLineEnd;\n}\n\nfunction lengthLineEnd() {\n  lengthStream.point = lengthStream.lineEnd = _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n}\n\nfunction lengthPointFirst(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  lambda0 = lambda, sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi), cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi);\n  lengthStream.point = lengthPoint;\n}\n\nfunction lengthPoint(lambda, phi) {\n  lambda *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], phi *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"];\n  var sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n      cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n      delta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda - lambda0),\n      cosDelta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(delta),\n      sinDelta = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(delta),\n      x = cosPhi * sinDelta,\n      y = cosPhi0 * sinPhi - sinPhi0 * cosPhi * cosDelta,\n      z = sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosDelta;\n  lengthSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x * x + y * y), z));\n  lambda0 = lambda, sinPhi0 = sinPhi, cosPhi0 = cosPhi;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(object) {\n  lengthSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n  Object(_stream_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object, lengthStream);\n  return +lengthSum;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/length.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/math.js":
/*!*****************************************!*\
  !*** ./node_modules/d3-geo/src/math.js ***!
  \*****************************************/
/*! exports provided: epsilon, epsilon2, pi, halfPi, quarterPi, tau, degrees, radians, abs, atan, atan2, cos, ceil, exp, floor, hypot, log, pow, sin, sign, sqrt, tan, acos, asin, haversin */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"epsilon\", function() { return epsilon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"epsilon2\", function() { return epsilon2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pi\", function() { return pi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"halfPi\", function() { return halfPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quarterPi\", function() { return quarterPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tau\", function() { return tau; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"degrees\", function() { return degrees; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"radians\", function() { return radians; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"abs\", function() { return abs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"atan\", function() { return atan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"atan2\", function() { return atan2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cos\", function() { return cos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ceil\", function() { return ceil; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exp\", function() { return exp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"floor\", function() { return floor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hypot\", function() { return hypot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"log\", function() { return log; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pow\", function() { return pow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sin\", function() { return sin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sign\", function() { return sign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrt\", function() { return sqrt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tan\", function() { return tan; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"acos\", function() { return acos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asin\", function() { return asin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"haversin\", function() { return haversin; });\nvar epsilon = 1e-6;\nvar epsilon2 = 1e-12;\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nvar quarterPi = pi / 4;\nvar tau = pi * 2;\n\nvar degrees = 180 / pi;\nvar radians = pi / 180;\n\nvar abs = Math.abs;\nvar atan = Math.atan;\nvar atan2 = Math.atan2;\nvar cos = Math.cos;\nvar ceil = Math.ceil;\nvar exp = Math.exp;\nvar floor = Math.floor;\nvar hypot = Math.hypot;\nvar log = Math.log;\nvar pow = Math.pow;\nvar sin = Math.sin;\nvar sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nvar sqrt = Math.sqrt;\nvar tan = Math.tan;\n\nfunction acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nfunction asin(x) {\n  return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nfunction haversin(x) {\n  return (x = sin(x / 2)) * x;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/math.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/noop.js":
/*!*****************************************!*\
  !*** ./node_modules/d3-geo/src/noop.js ***!
  \*****************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return noop; });\nfunction noop() {}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/noop.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/area.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-geo/src/path/area.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n\n\n\n\nvar areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"](),\n    areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"](),\n    x00,\n    y00,\n    x0,\n    y0;\n\nvar areaStream = {\n  point: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  polygonStart: function() {\n    areaStream.lineStart = areaRingStart;\n    areaStream.lineEnd = areaRingEnd;\n  },\n  polygonEnd: function() {\n    areaStream.lineStart = areaStream.lineEnd = areaStream.point = _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n    areaSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(areaRingSum));\n    areaRingSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n  },\n  result: function() {\n    var area = areaSum / 2;\n    areaSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n    return area;\n  }\n};\n\nfunction areaRingStart() {\n  areaStream.point = areaPointFirst;\n}\n\nfunction areaPointFirst(x, y) {\n  areaStream.point = areaPoint;\n  x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction areaPoint(x, y) {\n  areaRingSum.add(y0 * x - x0 * y);\n  x0 = x, y0 = y;\n}\n\nfunction areaRingEnd() {\n  areaPoint(x00, y00);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (areaStream);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/area.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/bounds.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/path/bounds.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n\n\nvar x0 = Infinity,\n    y0 = x0,\n    x1 = -x0,\n    y1 = x1;\n\nvar boundsStream = {\n  point: boundsPoint,\n  lineStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  lineEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  polygonStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  polygonEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  result: function() {\n    var bounds = [[x0, y0], [x1, y1]];\n    x1 = y1 = -(y0 = x0 = Infinity);\n    return bounds;\n  }\n};\n\nfunction boundsPoint(x, y) {\n  if (x < x0) x0 = x;\n  if (x > x1) x1 = x;\n  if (y < y0) y0 = y;\n  if (y > y1) y1 = y;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (boundsStream);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/bounds.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/centroid.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-geo/src/path/centroid.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n// TODO Enforce positive area for exterior, negative area for interior?\n\nvar X0 = 0,\n    Y0 = 0,\n    Z0 = 0,\n    X1 = 0,\n    Y1 = 0,\n    Z1 = 0,\n    X2 = 0,\n    Y2 = 0,\n    Z2 = 0,\n    x00,\n    y00,\n    x0,\n    y0;\n\nvar centroidStream = {\n  point: centroidPoint,\n  lineStart: centroidLineStart,\n  lineEnd: centroidLineEnd,\n  polygonStart: function() {\n    centroidStream.lineStart = centroidRingStart;\n    centroidStream.lineEnd = centroidRingEnd;\n  },\n  polygonEnd: function() {\n    centroidStream.point = centroidPoint;\n    centroidStream.lineStart = centroidLineStart;\n    centroidStream.lineEnd = centroidLineEnd;\n  },\n  result: function() {\n    var centroid = Z2 ? [X2 / Z2, Y2 / Z2]\n        : Z1 ? [X1 / Z1, Y1 / Z1]\n        : Z0 ? [X0 / Z0, Y0 / Z0]\n        : [NaN, NaN];\n    X0 = Y0 = Z0 =\n    X1 = Y1 = Z1 =\n    X2 = Y2 = Z2 = 0;\n    return centroid;\n  }\n};\n\nfunction centroidPoint(x, y) {\n  X0 += x;\n  Y0 += y;\n  ++Z0;\n}\n\nfunction centroidLineStart() {\n  centroidStream.point = centroidPointFirstLine;\n}\n\nfunction centroidPointFirstLine(x, y) {\n  centroidStream.point = centroidPointLine;\n  centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidPointLine(x, y) {\n  var dx = x - x0, dy = y - y0, z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(dx * dx + dy * dy);\n  X1 += z * (x0 + x) / 2;\n  Y1 += z * (y0 + y) / 2;\n  Z1 += z;\n  centroidPoint(x0 = x, y0 = y);\n}\n\nfunction centroidLineEnd() {\n  centroidStream.point = centroidPoint;\n}\n\nfunction centroidRingStart() {\n  centroidStream.point = centroidPointFirstRing;\n}\n\nfunction centroidRingEnd() {\n  centroidPointRing(x00, y00);\n}\n\nfunction centroidPointFirstRing(x, y) {\n  centroidStream.point = centroidPointRing;\n  centroidPoint(x00 = x0 = x, y00 = y0 = y);\n}\n\nfunction centroidPointRing(x, y) {\n  var dx = x - x0,\n      dy = y - y0,\n      z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(dx * dx + dy * dy);\n\n  X1 += z * (x0 + x) / 2;\n  Y1 += z * (y0 + y) / 2;\n  Z1 += z;\n\n  z = y0 * x - x0 * y;\n  X2 += z * (x0 + x);\n  Y2 += z * (y0 + y);\n  Z2 += z * 3;\n  centroidPoint(x0 = x, y0 = y);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (centroidStream);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/centroid.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/context.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-geo/src/path/context.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PathContext; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n\n\n\nfunction PathContext(context) {\n  this._context = context;\n}\n\nPathContext.prototype = {\n  _radius: 4.5,\n  pointRadius: function(_) {\n    return this._radius = _, this;\n  },\n  polygonStart: function() {\n    this._line = 0;\n  },\n  polygonEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line === 0) this._context.closePath();\n    this._point = NaN;\n  },\n  point: function(x, y) {\n    switch (this._point) {\n      case 0: {\n        this._context.moveTo(x, y);\n        this._point = 1;\n        break;\n      }\n      case 1: {\n        this._context.lineTo(x, y);\n        break;\n      }\n      default: {\n        this._context.moveTo(x + this._radius, y);\n        this._context.arc(x, y, this._radius, 0, _math_js__WEBPACK_IMPORTED_MODULE_0__[\"tau\"]);\n        break;\n      }\n    }\n  },\n  result: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/context.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/index.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-geo/src/path/index.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../identity.js */ \"./node_modules/d3-geo/src/identity.js\");\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./area.js */ \"./node_modules/d3-geo/src/path/area.js\");\n/* harmony import */ var _bounds_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bounds.js */ \"./node_modules/d3-geo/src/path/bounds.js\");\n/* harmony import */ var _centroid_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./centroid.js */ \"./node_modules/d3-geo/src/path/centroid.js\");\n/* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./context.js */ \"./node_modules/d3-geo/src/path/context.js\");\n/* harmony import */ var _measure_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./measure.js */ \"./node_modules/d3-geo/src/path/measure.js\");\n/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./string.js */ \"./node_modules/d3-geo/src/path/string.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(projection, context) {\n  var pointRadius = 4.5,\n      projectionStream,\n      contextStream;\n\n  function path(object) {\n    if (object) {\n      if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n      Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, projectionStream(contextStream));\n    }\n    return contextStream.result();\n  }\n\n  path.area = function(object) {\n    Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, projectionStream(_area_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]));\n    return _area_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].result();\n  };\n\n  path.measure = function(object) {\n    Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, projectionStream(_measure_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]));\n    return _measure_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].result();\n  };\n\n  path.bounds = function(object) {\n    Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, projectionStream(_bounds_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]));\n    return _bounds_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].result();\n  };\n\n  path.centroid = function(object) {\n    Object(_stream_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, projectionStream(_centroid_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]));\n    return _centroid_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].result();\n  };\n\n  path.projection = function(_) {\n    return arguments.length ? (projectionStream = _ == null ? (projection = null, _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) : (projection = _).stream, path) : projection;\n  };\n\n  path.context = function(_) {\n    if (!arguments.length) return context;\n    contextStream = _ == null ? (context = null, new _string_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]) : new _context_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"](context = _);\n    if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n    return path;\n  };\n\n  path.pointRadius = function(_) {\n    if (!arguments.length) return pointRadius;\n    pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n    return path;\n  };\n\n  return path.projection(projection).context(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/measure.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-geo/src/path/measure.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-geo/src/noop.js\");\n\n\n\n\nvar lengthSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"](),\n    lengthRing,\n    x00,\n    y00,\n    x0,\n    y0;\n\nvar lengthStream = {\n  point: _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  lineStart: function() {\n    lengthStream.point = lengthPointFirst;\n  },\n  lineEnd: function() {\n    if (lengthRing) lengthPoint(x00, y00);\n    lengthStream.point = _noop_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n  },\n  polygonStart: function() {\n    lengthRing = true;\n  },\n  polygonEnd: function() {\n    lengthRing = null;\n  },\n  result: function() {\n    var length = +lengthSum;\n    lengthSum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n    return length;\n  }\n};\n\nfunction lengthPointFirst(x, y) {\n  lengthStream.point = lengthPoint;\n  x00 = x0 = x, y00 = y0 = y;\n}\n\nfunction lengthPoint(x, y) {\n  x0 -= x, y0 -= y;\n  lengthSum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(x0 * x0 + y0 * y0));\n  x0 = x, y0 = y;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (lengthStream);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/measure.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/path/string.js":
/*!************************************************!*\
  !*** ./node_modules/d3-geo/src/path/string.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return PathString; });\nfunction PathString() {\n  this._string = [];\n}\n\nPathString.prototype = {\n  _radius: 4.5,\n  _circle: circle(4.5),\n  pointRadius: function(_) {\n    if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n    return this;\n  },\n  polygonStart: function() {\n    this._line = 0;\n  },\n  polygonEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line === 0) this._string.push(\"Z\");\n    this._point = NaN;\n  },\n  point: function(x, y) {\n    switch (this._point) {\n      case 0: {\n        this._string.push(\"M\", x, \",\", y);\n        this._point = 1;\n        break;\n      }\n      case 1: {\n        this._string.push(\"L\", x, \",\", y);\n        break;\n      }\n      default: {\n        if (this._circle == null) this._circle = circle(this._radius);\n        this._string.push(\"M\", x, \",\", y, this._circle);\n        break;\n      }\n    }\n  },\n  result: function() {\n    if (this._string.length) {\n      var result = this._string.join(\"\");\n      this._string = [];\n      return result;\n    } else {\n      return null;\n    }\n  }\n};\n\nfunction circle(radius) {\n  return \"m0,\" + radius\n      + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius\n      + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius\n      + \"z\";\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/path/string.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/pointEqual.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-geo/src/pointEqual.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(a[0] - b[0]) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"] && Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(a[1] - b[1]) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/pointEqual.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/polygonContains.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-geo/src/polygonContains.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cartesian.js */ \"./node_modules/d3-geo/src/cartesian.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\n\nfunction longitude(point) {\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(point[0]) <= _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"])\n    return point[0];\n  else\n    return Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sign\"])(point[0]) * ((Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(point[0]) + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"]) % _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"]);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(polygon, point) {\n  var lambda = longitude(point),\n      phi = point[1],\n      sinPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi),\n      normal = [Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(lambda), -Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(lambda), 0],\n      angle = 0,\n      winding = 0;\n\n  var sum = new d3_array__WEBPACK_IMPORTED_MODULE_0__[\"Adder\"]();\n\n  if (sinPhi === 1) phi = _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"];\n  else if (sinPhi === -1) phi = -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"];\n\n  for (var i = 0, n = polygon.length; i < n; ++i) {\n    if (!(m = (ring = polygon[i]).length)) continue;\n    var ring,\n        m,\n        point0 = ring[m - 1],\n        lambda0 = longitude(point0),\n        phi0 = point0[1] / 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"quarterPi\"],\n        sinPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi0),\n        cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi0);\n\n    for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n      var point1 = ring[j],\n          lambda1 = longitude(point1),\n          phi1 = point1[1] / 2 + _math_js__WEBPACK_IMPORTED_MODULE_2__[\"quarterPi\"],\n          sinPhi1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(phi1),\n          cosPhi1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(phi1),\n          delta = lambda1 - lambda0,\n          sign = delta >= 0 ? 1 : -1,\n          absDelta = sign * delta,\n          antimeridian = absDelta > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"],\n          k = sinPhi0 * sinPhi1;\n\n      sum.add(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(k * sign * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(absDelta), cosPhi0 * cosPhi1 + k * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(absDelta)));\n      angle += antimeridian ? delta + sign * _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"] : delta;\n\n      // Are the longitudes either side of the point’s meridian (lambda),\n      // and are the latitudes smaller than the parallel (phi)?\n      if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n        var arc = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__[\"cartesianCross\"])(Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__[\"cartesian\"])(point0), Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__[\"cartesian\"])(point1));\n        Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__[\"cartesianNormalizeInPlace\"])(arc);\n        var intersection = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__[\"cartesianCross\"])(normal, arc);\n        Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_1__[\"cartesianNormalizeInPlace\"])(intersection);\n        var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"asin\"])(intersection[2]);\n        if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n          winding += antimeridian ^ delta >= 0 ? 1 : -1;\n        }\n      }\n    }\n  }\n\n  // First, determine whether the South pole is inside or outside:\n  //\n  // It is inside if:\n  // * the polygon winds around it in a clockwise direction.\n  // * the polygon does not (cumulatively) wind around it, but has a negative\n  //   (counter-clockwise) area.\n  //\n  // Second, count the (signed) number of times a segment crosses a lambda\n  // from the point to the South pole.  If it is zero, then the point is the\n  // same side as the South pole.\n\n  return (angle < -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] || angle < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"] && sum < -_math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon2\"]) ^ (winding & 1);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/polygonContains.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/albers.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/albers.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _conicEqualArea_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./conicEqualArea.js */ \"./node_modules/d3-geo/src/projection/conicEqualArea.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])()\n      .parallels([29.5, 45.5])\n      .scale(1070)\n      .translate([480, 250])\n      .rotate([96, 0])\n      .center([-0.6, 38.7]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/albers.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/albersUsa.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/albersUsa.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _albers_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./albers.js */ \"./node_modules/d3-geo/src/projection/albers.js\");\n/* harmony import */ var _conicEqualArea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conicEqualArea.js */ \"./node_modules/d3-geo/src/projection/conicEqualArea.js\");\n/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit.js */ \"./node_modules/d3-geo/src/projection/fit.js\");\n\n\n\n\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n  var n = streams.length;\n  return {\n    point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n    sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n    lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n    lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n    polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n    polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n  };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var cache,\n      cacheStream,\n      lower48 = Object(_albers_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(), lower48Point,\n      alaska = Object(_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n      hawaii = Object(_conicEqualArea_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n      point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n  function albersUsa(coordinates) {\n    var x = coordinates[0], y = coordinates[1];\n    return point = null,\n        (lower48Point.point(x, y), point)\n        || (alaskaPoint.point(x, y), point)\n        || (hawaiiPoint.point(x, y), point);\n  }\n\n  albersUsa.invert = function(coordinates) {\n    var k = lower48.scale(),\n        t = lower48.translate(),\n        x = (coordinates[0] - t[0]) / k,\n        y = (coordinates[1] - t[1]) / k;\n    return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n        : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n        : lower48).invert(coordinates);\n  };\n\n  albersUsa.stream = function(stream) {\n    return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n  };\n\n  albersUsa.precision = function(_) {\n    if (!arguments.length) return lower48.precision();\n    lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n    return reset();\n  };\n\n  albersUsa.scale = function(_) {\n    if (!arguments.length) return lower48.scale();\n    lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n    return albersUsa.translate(lower48.translate());\n  };\n\n  albersUsa.translate = function(_) {\n    if (!arguments.length) return lower48.translate();\n    var k = lower48.scale(), x = +_[0], y = +_[1];\n\n    lower48Point = lower48\n        .translate(_)\n        .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n        .stream(pointStream);\n\n    alaskaPoint = alaska\n        .translate([x - 0.307 * k, y + 0.201 * k])\n        .clipExtent([[x - 0.425 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"], y + 0.120 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]], [x - 0.214 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"], y + 0.234 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]]])\n        .stream(pointStream);\n\n    hawaiiPoint = hawaii\n        .translate([x - 0.205 * k, y + 0.212 * k])\n        .clipExtent([[x - 0.214 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"], y + 0.166 * k + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]], [x - 0.115 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"], y + 0.234 * k - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]]])\n        .stream(pointStream);\n\n    return reset();\n  };\n\n  albersUsa.fitExtent = function(extent, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitExtent\"])(albersUsa, extent, object);\n  };\n\n  albersUsa.fitSize = function(size, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitSize\"])(albersUsa, size, object);\n  };\n\n  albersUsa.fitWidth = function(width, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitWidth\"])(albersUsa, width, object);\n  };\n\n  albersUsa.fitHeight = function(height, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitHeight\"])(albersUsa, height, object);\n  };\n\n  function reset() {\n    cache = cacheStream = null;\n    return albersUsa;\n  }\n\n  return albersUsa.scale(1070);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/albersUsa.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/azimuthal.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/azimuthal.js ***!
  \*********************************************************/
/*! exports provided: azimuthalRaw, azimuthalInvert */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"azimuthalRaw\", function() { return azimuthalRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"azimuthalInvert\", function() { return azimuthalInvert; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\nfunction azimuthalRaw(scale) {\n  return function(x, y) {\n    var cx = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x),\n        cy = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y),\n        k = scale(cx * cy);\n        if (k === Infinity) return [2, 0];\n    return [\n      k * cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x),\n      k * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y)\n    ];\n  }\n}\n\nfunction azimuthalInvert(angle) {\n  return function(x, y) {\n    var z = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(x * x + y * y),\n        c = angle(z),\n        sc = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(c),\n        cc = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(c);\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(x * sc, z * cc),\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(z && y * sc / z)\n    ];\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/azimuthal.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/azimuthalEqualArea.js":
/*!******************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/azimuthalEqualArea.js ***!
  \******************************************************************/
/*! exports provided: azimuthalEqualAreaRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"azimuthalEqualAreaRaw\", function() { return azimuthalEqualAreaRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ \"./node_modules/d3-geo/src/projection/azimuthal.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\n\nvar azimuthalEqualAreaRaw = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalRaw\"])(function(cxcy) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(2 / (1 + cxcy));\n});\n\nazimuthalEqualAreaRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalInvert\"])(function(z) {\n  return 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(z / 2);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(azimuthalEqualAreaRaw)\n      .scale(124.75)\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/azimuthalEqualArea.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/azimuthalEquidistant.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/azimuthalEquidistant.js ***!
  \********************************************************************/
/*! exports provided: azimuthalEquidistantRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"azimuthalEquidistantRaw\", function() { return azimuthalEquidistantRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ \"./node_modules/d3-geo/src/projection/azimuthal.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\n\nvar azimuthalEquidistantRaw = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalRaw\"])(function(c) {\n  return (c = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"acos\"])(c)) && c / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(c);\n});\n\nazimuthalEquidistantRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalInvert\"])(function(z) {\n  return z;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(azimuthalEquidistantRaw)\n      .scale(79.4188)\n      .clipAngle(180 - 1e-3);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/azimuthalEquidistant.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/conic.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/conic.js ***!
  \*****************************************************/
/*! exports provided: conicProjection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conicProjection\", function() { return conicProjection; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\nfunction conicProjection(projectAt) {\n  var phi0 = 0,\n      phi1 = _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] / 3,\n      m = Object(_index_js__WEBPACK_IMPORTED_MODULE_1__[\"projectionMutator\"])(projectAt),\n      p = m(phi0, phi1);\n\n  p.parallels = function(_) {\n    return arguments.length ? m(phi0 = _[0] * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"radians\"], phi1 = _[1] * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"radians\"]) : [phi0 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"degrees\"], phi1 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"degrees\"]];\n  };\n\n  return p;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/conic.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/conicConformal.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/conicConformal.js ***!
  \**************************************************************/
/*! exports provided: conicConformalRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conicConformalRaw\", function() { return conicConformalRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic.js */ \"./node_modules/d3-geo/src/projection/conic.js\");\n/* harmony import */ var _mercator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mercator.js */ \"./node_modules/d3-geo/src/projection/mercator.js\");\n\n\n\n\nfunction tany(y) {\n  return Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])((_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] + y) / 2);\n}\n\nfunction conicConformalRaw(y0, y1) {\n  var cy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y0),\n      n = y0 === y1 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y0) : Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"log\"])(cy0 / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y1)) / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"log\"])(tany(y1) / tany(y0)),\n      f = cy0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"pow\"])(tany(y0), n) / n;\n\n  if (!n) return _mercator_js__WEBPACK_IMPORTED_MODULE_2__[\"mercatorRaw\"];\n\n  function project(x, y) {\n    if (f > 0) { if (y < -_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) y = -_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]; }\n    else { if (y > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) y = _math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]; }\n    var r = f / Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"pow\"])(tany(y), n);\n    return [r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(n * x), f - r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(n * x)];\n  }\n\n  project.invert = function(x, y) {\n    var fy = f - y, r = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(n) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(x * x + fy * fy),\n      l = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(fy)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(fy);\n    if (fy * n < 0)\n      l -= _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(x) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(fy);\n    return [l / n, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"pow\"])(f / r, 1 / n)) - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"]];\n  };\n\n  return project;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_conic_js__WEBPACK_IMPORTED_MODULE_1__[\"conicProjection\"])(conicConformalRaw)\n      .scale(109.5)\n      .parallels([30, 30]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/conicConformal.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/conicEqualArea.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/conicEqualArea.js ***!
  \**************************************************************/
/*! exports provided: conicEqualAreaRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conicEqualAreaRaw\", function() { return conicEqualAreaRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic.js */ \"./node_modules/d3-geo/src/projection/conic.js\");\n/* harmony import */ var _cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cylindricalEqualArea.js */ \"./node_modules/d3-geo/src/projection/cylindricalEqualArea.js\");\n\n\n\n\nfunction conicEqualAreaRaw(y0, y1) {\n  var sy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y0), n = (sy0 + Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y1)) / 2;\n\n  // Are the parallels symmetrical around the Equator?\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(n) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) return Object(_cylindricalEqualArea_js__WEBPACK_IMPORTED_MODULE_2__[\"cylindricalEqualAreaRaw\"])(y0);\n\n  var c = 1 + sy0 * (2 * n - sy0), r0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(c) / n;\n\n  function project(x, y) {\n    var r = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(c - 2 * n * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y)) / n;\n    return [r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x *= n), r0 - r * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x)];\n  }\n\n  project.invert = function(x, y) {\n    var r0y = r0 - y,\n        l = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(r0y)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(r0y);\n    if (r0y * n < 0)\n      l -= _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(x) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(r0y);\n    return [l / n, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n  };\n\n  return project;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_conic_js__WEBPACK_IMPORTED_MODULE_1__[\"conicProjection\"])(conicEqualAreaRaw)\n      .scale(155.424)\n      .center([0, 33.6442]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/conicEqualArea.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/conicEquidistant.js":
/*!****************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/conicEquidistant.js ***!
  \****************************************************************/
/*! exports provided: conicEquidistantRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conicEquidistantRaw\", function() { return conicEquidistantRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _conic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conic.js */ \"./node_modules/d3-geo/src/projection/conic.js\");\n/* harmony import */ var _equirectangular_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./equirectangular.js */ \"./node_modules/d3-geo/src/projection/equirectangular.js\");\n\n\n\n\nfunction conicEquidistantRaw(y0, y1) {\n  var cy0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y0),\n      n = y0 === y1 ? Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y0) : (cy0 - Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y1)) / (y1 - y0),\n      g = cy0 / n + y0;\n\n  if (Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(n) < _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) return _equirectangular_js__WEBPACK_IMPORTED_MODULE_2__[\"equirectangularRaw\"];\n\n  function project(x, y) {\n    var gy = g - y, nx = n * x;\n    return [gy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(nx), g - gy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(nx)];\n  }\n\n  project.invert = function(x, y) {\n    var gy = g - y,\n        l = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan2\"])(x, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"abs\"])(gy)) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(gy);\n    if (gy * n < 0)\n      l -= _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(x) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(gy);\n    return [l / n, g - Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sign\"])(n) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sqrt\"])(x * x + gy * gy)];\n  };\n\n  return project;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_conic_js__WEBPACK_IMPORTED_MODULE_1__[\"conicProjection\"])(conicEquidistantRaw)\n      .scale(131.154)\n      .center([0, 13.9389]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/conicEquidistant.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/cylindricalEqualArea.js":
/*!********************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/cylindricalEqualArea.js ***!
  \********************************************************************/
/*! exports provided: cylindricalEqualAreaRaw */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cylindricalEqualAreaRaw\", function() { return cylindricalEqualAreaRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\nfunction cylindricalEqualAreaRaw(phi0) {\n  var cosPhi0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(phi0);\n\n  function forward(lambda, phi) {\n    return [lambda * cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(phi) / cosPhi0];\n  }\n\n  forward.invert = function(x, y) {\n    return [x / cosPhi0, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"])(y * cosPhi0)];\n  };\n\n  return forward;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/cylindricalEqualArea.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/equalEarth.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/equalEarth.js ***!
  \**********************************************************/
/*! exports provided: equalEarthRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"equalEarthRaw\", function() { return equalEarthRaw; });\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\nvar A1 = 1.340264,\n    A2 = -0.081106,\n    A3 = 0.000893,\n    A4 = 0.003796,\n    M = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(3) / 2,\n    iterations = 12;\n\nfunction equalEarthRaw(lambda, phi) {\n  var l = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(M * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n  return [\n    lambda * Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n    l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n  ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n  var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n  for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n    fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n    fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n    l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n    if (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon2\"]) break;\n  }\n  return [\n    M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(l),\n    Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(l) / M)\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(equalEarthRaw)\n      .scale(177.158);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/equalEarth.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/equirectangular.js":
/*!***************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/equirectangular.js ***!
  \***************************************************************/
/*! exports provided: equirectangularRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"equirectangularRaw\", function() { return equirectangularRaw; });\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\nfunction equirectangularRaw(lambda, phi) {\n  return [lambda, phi];\n}\n\nequirectangularRaw.invert = equirectangularRaw;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(equirectangularRaw)\n      .scale(152.63);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/equirectangular.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/fit.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/fit.js ***!
  \***************************************************/
/*! exports provided: fitExtent, fitSize, fitWidth, fitHeight */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fitExtent\", function() { return fitExtent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fitSize\", function() { return fitSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fitWidth\", function() { return fitWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fitHeight\", function() { return fitHeight; });\n/* harmony import */ var _stream_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stream.js */ \"./node_modules/d3-geo/src/stream.js\");\n/* harmony import */ var _path_bounds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/bounds.js */ \"./node_modules/d3-geo/src/path/bounds.js\");\n\n\n\nfunction fit(projection, fitBounds, object) {\n  var clip = projection.clipExtent && projection.clipExtent();\n  projection.scale(150).translate([0, 0]);\n  if (clip != null) projection.clipExtent(null);\n  Object(_stream_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, projection.stream(_path_bounds_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]));\n  fitBounds(_path_bounds_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].result());\n  if (clip != null) projection.clipExtent(clip);\n  return projection;\n}\n\nfunction fitExtent(projection, extent, object) {\n  return fit(projection, function(b) {\n    var w = extent[1][0] - extent[0][0],\n        h = extent[1][1] - extent[0][1],\n        k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n        x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n        y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n    projection.scale(150 * k).translate([x, y]);\n  }, object);\n}\n\nfunction fitSize(projection, size, object) {\n  return fitExtent(projection, [[0, 0], size], object);\n}\n\nfunction fitWidth(projection, width, object) {\n  return fit(projection, function(b) {\n    var w = +width,\n        k = w / (b[1][0] - b[0][0]),\n        x = (w - k * (b[1][0] + b[0][0])) / 2,\n        y = -k * b[0][1];\n    projection.scale(150 * k).translate([x, y]);\n  }, object);\n}\n\nfunction fitHeight(projection, height, object) {\n  return fit(projection, function(b) {\n    var h = +height,\n        k = h / (b[1][1] - b[0][1]),\n        x = -k * b[0][0],\n        y = (h - k * (b[1][1] + b[0][1])) / 2;\n    projection.scale(150 * k).translate([x, y]);\n  }, object);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/fit.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/gnomonic.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/gnomonic.js ***!
  \********************************************************/
/*! exports provided: gnomonicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gnomonicRaw\", function() { return gnomonicRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ \"./node_modules/d3-geo/src/projection/azimuthal.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\n\nfunction gnomonicRaw(x, y) {\n  var cy = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y), k = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x) * cy;\n  return [cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x) / k, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y) / k];\n}\n\ngnomonicRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalInvert\"])(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(gnomonicRaw)\n      .scale(144.049)\n      .clipAngle(60);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/gnomonic.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/identity.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/identity.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/rectangle.js */ \"./node_modules/d3-geo/src/clip/rectangle.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../identity.js */ \"./node_modules/d3-geo/src/identity.js\");\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform.js */ \"./node_modules/d3-geo/src/transform.js\");\n/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fit.js */ \"./node_modules/d3-geo/src/projection/fit.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, // scale, translate and reflect\n      alpha = 0, ca, sa, // angle\n      x0 = null, y0, x1, y1, // clip extent\n      kx = 1, ky = 1,\n      transform = Object(_transform_js__WEBPACK_IMPORTED_MODULE_2__[\"transformer\"])({\n        point: function(x, y) {\n          var p = projection([x, y])\n          this.stream.point(p[0], p[1]);\n        }\n      }),\n      postclip = _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n      cache,\n      cacheStream;\n\n  function reset() {\n    kx = k * sx;\n    ky = k * sy;\n    cache = cacheStream = null;\n    return projection;\n  }\n\n  function projection (p) {\n    var x = p[0] * kx, y = p[1] * ky;\n    if (alpha) {\n      var t = y * ca - x * sa;\n      x = x * ca + y * sa;\n      y = t;\n    }    \n    return [x + tx, y + ty];\n  }\n  projection.invert = function(p) {\n    var x = p[0] - tx, y = p[1] - ty;\n    if (alpha) {\n      var t = y * ca + x * sa;\n      x = x * ca - y * sa;\n      y = t;\n    }\n    return [x / kx, y / ky];\n  };\n  projection.stream = function(stream) {\n    return cache && cacheStream === stream ? cache : cache = transform(postclip(cacheStream = stream));\n  };\n  projection.postclip = function(_) {\n    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n  };\n  projection.clipExtent = function(_) {\n    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) : Object(_clip_rectangle_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n  };\n  projection.scale = function(_) {\n    return arguments.length ? (k = +_, reset()) : k;\n  };\n  projection.translate = function(_) {\n    return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n  }\n  projection.angle = function(_) {\n    return arguments.length ? (alpha = _ % 360 * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"radians\"], sa = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"sin\"])(alpha), ca = Object(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"cos\"])(alpha), reset()) : alpha * _math_js__WEBPACK_IMPORTED_MODULE_4__[\"degrees\"];\n  };\n  projection.reflectX = function(_) {\n    return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n  };\n  projection.reflectY = function(_) {\n    return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n  };\n  projection.fitExtent = function(extent, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitExtent\"])(projection, extent, object);\n  };\n  projection.fitSize = function(size, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitSize\"])(projection, size, object);\n  };\n  projection.fitWidth = function(width, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitWidth\"])(projection, width, object);\n  };\n  projection.fitHeight = function(height, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_3__[\"fitHeight\"])(projection, height, object);\n  };\n\n  return projection;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/identity.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/index.js ***!
  \*****************************************************/
/*! exports provided: default, projectionMutator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return projection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"projectionMutator\", function() { return projectionMutator; });\n/* harmony import */ var _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clip/antimeridian.js */ \"./node_modules/d3-geo/src/clip/antimeridian.js\");\n/* harmony import */ var _clip_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../clip/circle.js */ \"./node_modules/d3-geo/src/clip/circle.js\");\n/* harmony import */ var _clip_rectangle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../clip/rectangle.js */ \"./node_modules/d3-geo/src/clip/rectangle.js\");\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../compose.js */ \"./node_modules/d3-geo/src/compose.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../identity.js */ \"./node_modules/d3-geo/src/identity.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../rotation.js */ \"./node_modules/d3-geo/src/rotation.js\");\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../transform.js */ \"./node_modules/d3-geo/src/transform.js\");\n/* harmony import */ var _fit_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fit.js */ \"./node_modules/d3-geo/src/projection/fit.js\");\n/* harmony import */ var _resample_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./resample.js */ \"./node_modules/d3-geo/src/projection/resample.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar transformRadians = Object(_transform_js__WEBPACK_IMPORTED_MODULE_7__[\"transformer\"])({\n  point: function(x, y) {\n    this.stream.point(x * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], y * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"]);\n  }\n});\n\nfunction transformRotate(rotate) {\n  return Object(_transform_js__WEBPACK_IMPORTED_MODULE_7__[\"transformer\"])({\n    point: function(x, y) {\n      var r = rotate(x, y);\n      return this.stream.point(r[0], r[1]);\n    }\n  });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n  function transform(x, y) {\n    x *= sx; y *= sy;\n    return [dx + k * x, dy - k * y];\n  }\n  transform.invert = function(x, y) {\n    return [(x - dx) / k * sx, (dy - y) / k * sy];\n  };\n  return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n  if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n  var cosAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_5__[\"cos\"])(alpha),\n      sinAlpha = Object(_math_js__WEBPACK_IMPORTED_MODULE_5__[\"sin\"])(alpha),\n      a = cosAlpha * k,\n      b = sinAlpha * k,\n      ai = cosAlpha / k,\n      bi = sinAlpha / k,\n      ci = (sinAlpha * dy - cosAlpha * dx) / k,\n      fi = (sinAlpha * dx + cosAlpha * dy) / k;\n  function transform(x, y) {\n    x *= sx; y *= sy;\n    return [a * x - b * y + dx, dy - b * x - a * y];\n  }\n  transform.invert = function(x, y) {\n    return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n  };\n  return transform;\n}\n\nfunction projection(project) {\n  return projectionMutator(function() { return project; })();\n}\n\nfunction projectionMutator(projectAt) {\n  var project,\n      k = 150, // scale\n      x = 480, y = 250, // translate\n      lambda = 0, phi = 0, // center\n      deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n      alpha = 0, // post-rotate angle\n      sx = 1, // reflectX\n      sy = 1, // reflectX\n      theta = null, preclip = _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], // pre-clip angle\n      x0 = null, y0, x1, y1, postclip = _identity_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], // post-clip extent\n      delta2 = 0.5, // precision\n      projectResample,\n      projectTransform,\n      projectRotateTransform,\n      cache,\n      cacheStream;\n\n  function projection(point) {\n    return projectRotateTransform(point[0] * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], point[1] * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"]);\n  }\n\n  function invert(point) {\n    point = projectRotateTransform.invert(point[0], point[1]);\n    return point && [point[0] * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"], point[1] * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"]];\n  }\n\n  projection.stream = function(stream) {\n    return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n  };\n\n  projection.preclip = function(_) {\n    return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n  };\n\n  projection.postclip = function(_) {\n    return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n  };\n\n  projection.clipAngle = function(_) {\n    return arguments.length ? (preclip = +_ ? Object(_clip_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(theta = _ * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"]) : (theta = null, _clip_antimeridian_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]), reset()) : theta * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"];\n  };\n\n  projection.clipExtent = function(_) {\n    return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, _identity_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) : Object(_clip_rectangle_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n  };\n\n  projection.scale = function(_) {\n    return arguments.length ? (k = +_, recenter()) : k;\n  };\n\n  projection.translate = function(_) {\n    return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n  };\n\n  projection.center = function(_) {\n    return arguments.length ? (lambda = _[0] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], phi = _[1] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], recenter()) : [lambda * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"], phi * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"]];\n  };\n\n  projection.rotate = function(_) {\n    return arguments.length ? (deltaLambda = _[0] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], deltaPhi = _[1] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], deltaGamma = _.length > 2 ? _[2] % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"] : 0, recenter()) : [deltaLambda * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"], deltaPhi * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"], deltaGamma * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"]];\n  };\n\n  projection.angle = function(_) {\n    return arguments.length ? (alpha = _ % 360 * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"radians\"], recenter()) : alpha * _math_js__WEBPACK_IMPORTED_MODULE_5__[\"degrees\"];\n  };\n\n  projection.reflectX = function(_) {\n    return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n  };\n\n  projection.reflectY = function(_) {\n    return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n  };\n\n  projection.precision = function(_) {\n    return arguments.length ? (projectResample = Object(_resample_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(projectTransform, delta2 = _ * _), reset()) : Object(_math_js__WEBPACK_IMPORTED_MODULE_5__[\"sqrt\"])(delta2);\n  };\n\n  projection.fitExtent = function(extent, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__[\"fitExtent\"])(projection, extent, object);\n  };\n\n  projection.fitSize = function(size, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__[\"fitSize\"])(projection, size, object);\n  };\n\n  projection.fitWidth = function(width, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__[\"fitWidth\"])(projection, width, object);\n  };\n\n  projection.fitHeight = function(height, object) {\n    return Object(_fit_js__WEBPACK_IMPORTED_MODULE_8__[\"fitHeight\"])(projection, height, object);\n  };\n\n  function recenter() {\n    var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n        transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n    rotate = Object(_rotation_js__WEBPACK_IMPORTED_MODULE_6__[\"rotateRadians\"])(deltaLambda, deltaPhi, deltaGamma);\n    projectTransform = Object(_compose_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(project, transform);\n    projectRotateTransform = Object(_compose_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(rotate, projectTransform);\n    projectResample = Object(_resample_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(projectTransform, delta2);\n    return reset();\n  }\n\n  function reset() {\n    cache = cacheStream = null;\n    return projection;\n  }\n\n  return function() {\n    project = projectAt.apply(this, arguments);\n    projection.invert = project.invert && invert;\n    return recenter();\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/index.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/mercator.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/mercator.js ***!
  \********************************************************/
/*! exports provided: mercatorRaw, default, mercatorProjection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mercatorRaw\", function() { return mercatorRaw; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mercatorProjection\", function() { return mercatorProjection; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _rotation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rotation.js */ \"./node_modules/d3-geo/src/rotation.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\n\nfunction mercatorRaw(lambda, phi) {\n  return [lambda, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])((_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n  return [x, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"exp\"])(y)) - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"]];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return mercatorProjection(mercatorRaw)\n      .scale(961 / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"tau\"]);\n});\n\nfunction mercatorProjection(project) {\n  var m = Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(project),\n      center = m.center,\n      scale = m.scale,\n      translate = m.translate,\n      clipExtent = m.clipExtent,\n      x0 = null, y0, x1, y1; // clip extent\n\n  m.scale = function(_) {\n    return arguments.length ? (scale(_), reclip()) : scale();\n  };\n\n  m.translate = function(_) {\n    return arguments.length ? (translate(_), reclip()) : translate();\n  };\n\n  m.center = function(_) {\n    return arguments.length ? (center(_), reclip()) : center();\n  };\n\n  m.clipExtent = function(_) {\n    return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n  };\n\n  function reclip() {\n    var k = _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] * scale(),\n        t = m(Object(_rotation_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(m.rotate()).invert([0, 0]));\n    return clipExtent(x0 == null\n        ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n        ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n        : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n  }\n\n  return reclip();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/mercator.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/naturalEarth1.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/naturalEarth1.js ***!
  \*************************************************************/
/*! exports provided: naturalEarth1Raw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"naturalEarth1Raw\", function() { return naturalEarth1Raw; });\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\nfunction naturalEarth1Raw(lambda, phi) {\n  var phi2 = phi * phi, phi4 = phi2 * phi2;\n  return [\n    lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n    phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n  ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n  var phi = y, i = 25, delta;\n  do {\n    var phi2 = phi * phi, phi4 = phi2 * phi2;\n    phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n        (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n  } while (Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(delta) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] && --i > 0);\n  return [\n    x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n    phi\n  ];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(naturalEarth1Raw)\n      .scale(175.295);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/naturalEarth1.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/orthographic.js":
/*!************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/orthographic.js ***!
  \************************************************************/
/*! exports provided: orthographicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"orthographicRaw\", function() { return orthographicRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ \"./node_modules/d3-geo/src/projection/azimuthal.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\n\nfunction orthographicRaw(x, y) {\n  return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y) * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x), Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y)];\n}\n\northographicRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalInvert\"])(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"asin\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(orthographicRaw)\n      .scale(249.5)\n      .clipAngle(90 + _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/orthographic.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/resample.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/resample.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cartesian_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cartesian.js */ \"./node_modules/d3-geo/src/cartesian.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../transform.js */ \"./node_modules/d3-geo/src/transform.js\");\n\n\n\n\nvar maxDepth = 16, // maximum depth of subdivision\n    cosMinDistance = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(30 * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]); // cos(minimum angular distance)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(project, delta2) {\n  return +delta2 ? resample(project, delta2) : resampleNone(project);\n});\n\nfunction resampleNone(project) {\n  return Object(_transform_js__WEBPACK_IMPORTED_MODULE_2__[\"transformer\"])({\n    point: function(x, y) {\n      x = project(x, y);\n      this.stream.point(x[0], x[1]);\n    }\n  });\n}\n\nfunction resample(project, delta2) {\n\n  function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n    var dx = x1 - x0,\n        dy = y1 - y0,\n        d2 = dx * dx + dy * dy;\n    if (d2 > 4 * delta2 && depth--) {\n      var a = a0 + a1,\n          b = b0 + b1,\n          c = c0 + c1,\n          m = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sqrt\"])(a * a + b * b + c * c),\n          phi2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(c /= m),\n          lambda2 = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(c) - 1) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda0 - lambda1) < _math_js__WEBPACK_IMPORTED_MODULE_1__[\"epsilon\"] ? (lambda0 + lambda1) / 2 : Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(b, a),\n          p = project(lambda2, phi2),\n          x2 = p[0],\n          y2 = p[1],\n          dx2 = x2 - x0,\n          dy2 = y2 - y0,\n          dz = dy * dx2 - dx * dy2;\n      if (dz * dz / d2 > delta2 // perpendicular projected distance\n          || Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n          || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n        resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n        stream.point(x2, y2);\n        resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n      }\n    }\n  }\n  return function(stream) {\n    var lambda00, x00, y00, a00, b00, c00, // first point\n        lambda0, x0, y0, a0, b0, c0; // previous point\n\n    var resampleStream = {\n      point: point,\n      lineStart: lineStart,\n      lineEnd: lineEnd,\n      polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n      polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n    };\n\n    function point(x, y) {\n      x = project(x, y);\n      stream.point(x[0], x[1]);\n    }\n\n    function lineStart() {\n      x0 = NaN;\n      resampleStream.point = linePoint;\n      stream.lineStart();\n    }\n\n    function linePoint(lambda, phi) {\n      var c = Object(_cartesian_js__WEBPACK_IMPORTED_MODULE_0__[\"cartesian\"])([lambda, phi]), p = project(lambda, phi);\n      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n      stream.point(x0, y0);\n    }\n\n    function lineEnd() {\n      resampleStream.point = point;\n      stream.lineEnd();\n    }\n\n    function ringStart() {\n      lineStart();\n      resampleStream.point = ringPoint;\n      resampleStream.lineEnd = ringEnd;\n    }\n\n    function ringPoint(lambda, phi) {\n      linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n      resampleStream.point = linePoint;\n    }\n\n    function ringEnd() {\n      resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n      resampleStream.lineEnd = lineEnd;\n      lineEnd();\n    }\n\n    return resampleStream;\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/resample.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/stereographic.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/stereographic.js ***!
  \*************************************************************/
/*! exports provided: stereographicRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stereographicRaw\", function() { return stereographicRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _azimuthal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./azimuthal.js */ \"./node_modules/d3-geo/src/projection/azimuthal.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-geo/src/projection/index.js\");\n\n\n\n\nfunction stereographicRaw(x, y) {\n  var cy = Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(y), k = 1 + Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"cos\"])(x) * cy;\n  return [cy * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(x) / k, Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"sin\"])(y) / k];\n}\n\nstereographicRaw.invert = Object(_azimuthal_js__WEBPACK_IMPORTED_MODULE_1__[\"azimuthalInvert\"])(function(z) {\n  return 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(z);\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Object(_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(stereographicRaw)\n      .scale(250)\n      .clipAngle(142);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/stereographic.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/projection/transverseMercator.js":
/*!******************************************************************!*\
  !*** ./node_modules/d3-geo/src/projection/transverseMercator.js ***!
  \******************************************************************/
/*! exports provided: transverseMercatorRaw, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transverseMercatorRaw\", function() { return transverseMercatorRaw; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-geo/src/math.js\");\n/* harmony import */ var _mercator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mercator.js */ \"./node_modules/d3-geo/src/projection/mercator.js\");\n\n\n\nfunction transverseMercatorRaw(lambda, phi) {\n  return [Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"log\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tan\"])((_math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"] + phi) / 2)), -lambda];\n}\n\ntransverseMercatorRaw.invert = function(x, y) {\n  return [-y, 2 * Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"atan\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"exp\"])(x)) - _math_js__WEBPACK_IMPORTED_MODULE_0__[\"halfPi\"]];\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var m = Object(_mercator_js__WEBPACK_IMPORTED_MODULE_1__[\"mercatorProjection\"])(transverseMercatorRaw),\n      center = m.center,\n      rotate = m.rotate;\n\n  m.center = function(_) {\n    return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n  };\n\n  m.rotate = function(_) {\n    return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n  };\n\n  return rotate([0, 0, 90])\n      .scale(159.155);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/projection/transverseMercator.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/rotation.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-geo/src/rotation.js ***!
  \*********************************************/
/*! exports provided: rotateRadians, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rotateRadians\", function() { return rotateRadians; });\n/* harmony import */ var _compose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compose.js */ \"./node_modules/d3-geo/src/compose.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-geo/src/math.js\");\n\n\n\nfunction rotationIdentity(lambda, phi) {\n  return [Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"abs\"])(lambda) > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] ? lambda + Math.round(-lambda / _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"]) * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"] : lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nfunction rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n  return (deltaLambda %= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"]) ? (deltaPhi || deltaGamma ? Object(_compose_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n    : rotationLambda(deltaLambda))\n    : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n    : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n  return function(lambda, phi) {\n    return lambda += deltaLambda, [lambda > _math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] ? lambda - _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"] : lambda < -_math_js__WEBPACK_IMPORTED_MODULE_1__[\"pi\"] ? lambda + _math_js__WEBPACK_IMPORTED_MODULE_1__[\"tau\"] : lambda, phi];\n  };\n}\n\nfunction rotationLambda(deltaLambda) {\n  var rotation = forwardRotationLambda(deltaLambda);\n  rotation.invert = forwardRotationLambda(-deltaLambda);\n  return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n  var cosDeltaPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(deltaPhi),\n      sinDeltaPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(deltaPhi),\n      cosDeltaGamma = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(deltaGamma),\n      sinDeltaGamma = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(deltaGamma);\n\n  function rotation(lambda, phi) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda) * cosPhi,\n        y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * cosPhi,\n        z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        k = z * cosDeltaPhi + x * sinDeltaPhi;\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(k * cosDeltaGamma + y * sinDeltaGamma)\n    ];\n  }\n\n  rotation.invert = function(lambda, phi) {\n    var cosPhi = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(phi),\n        x = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"cos\"])(lambda) * cosPhi,\n        y = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(lambda) * cosPhi,\n        z = Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"sin\"])(phi),\n        k = z * cosDeltaGamma - y * sinDeltaGamma;\n    return [\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"atan2\"])(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n      Object(_math_js__WEBPACK_IMPORTED_MODULE_1__[\"asin\"])(k * cosDeltaPhi - x * sinDeltaPhi)\n    ];\n  };\n\n  return rotation;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(rotate) {\n  rotate = rotateRadians(rotate[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], rotate[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], rotate.length > 2 ? rotate[2] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"] : 0);\n\n  function forward(coordinates) {\n    coordinates = rotate(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n    return coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], coordinates;\n  }\n\n  forward.invert = function(coordinates) {\n    coordinates = rotate.invert(coordinates[0] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"], coordinates[1] * _math_js__WEBPACK_IMPORTED_MODULE_1__[\"radians\"]);\n    return coordinates[0] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], coordinates[1] *= _math_js__WEBPACK_IMPORTED_MODULE_1__[\"degrees\"], coordinates;\n  };\n\n  return forward;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/rotation.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/stream.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-geo/src/stream.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction streamGeometry(geometry, stream) {\n  if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n    streamGeometryType[geometry.type](geometry, stream);\n  }\n}\n\nvar streamObjectType = {\n  Feature: function(object, stream) {\n    streamGeometry(object.geometry, stream);\n  },\n  FeatureCollection: function(object, stream) {\n    var features = object.features, i = -1, n = features.length;\n    while (++i < n) streamGeometry(features[i].geometry, stream);\n  }\n};\n\nvar streamGeometryType = {\n  Sphere: function(object, stream) {\n    stream.sphere();\n  },\n  Point: function(object, stream) {\n    object = object.coordinates;\n    stream.point(object[0], object[1], object[2]);\n  },\n  MultiPoint: function(object, stream) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n  },\n  LineString: function(object, stream) {\n    streamLine(object.coordinates, stream, 0);\n  },\n  MultiLineString: function(object, stream) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) streamLine(coordinates[i], stream, 0);\n  },\n  Polygon: function(object, stream) {\n    streamPolygon(object.coordinates, stream);\n  },\n  MultiPolygon: function(object, stream) {\n    var coordinates = object.coordinates, i = -1, n = coordinates.length;\n    while (++i < n) streamPolygon(coordinates[i], stream);\n  },\n  GeometryCollection: function(object, stream) {\n    var geometries = object.geometries, i = -1, n = geometries.length;\n    while (++i < n) streamGeometry(geometries[i], stream);\n  }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n  var i = -1, n = coordinates.length - closed, coordinate;\n  stream.lineStart();\n  while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n  stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n  var i = -1, n = coordinates.length;\n  stream.polygonStart();\n  while (++i < n) streamLine(coordinates[i], stream, 1);\n  stream.polygonEnd();\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(object, stream) {\n  if (object && streamObjectType.hasOwnProperty(object.type)) {\n    streamObjectType[object.type](object, stream);\n  } else {\n    streamGeometry(object, stream);\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/stream.js?");

/***/ }),

/***/ "./node_modules/d3-geo/src/transform.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-geo/src/transform.js ***!
  \**********************************************/
/*! exports provided: default, transformer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transformer\", function() { return transformer; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(methods) {\n  return {\n    stream: transformer(methods)\n  };\n});\n\nfunction transformer(methods) {\n  return function(stream) {\n    var s = new TransformStream;\n    for (var key in methods) s[key] = methods[key];\n    s.stream = stream;\n    return s;\n  };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n  constructor: TransformStream,\n  point: function(x, y) { this.stream.point(x, y); },\n  sphere: function() { this.stream.sphere(); },\n  lineStart: function() { this.stream.lineStart(); },\n  lineEnd: function() { this.stream.lineEnd(); },\n  polygonStart: function() { this.stream.polygonStart(); },\n  polygonEnd: function() { this.stream.polygonEnd(); }\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-geo/src/transform.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/accessors.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/accessors.js ***!
  \****************************************************/
/*! exports provided: optional, required */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"optional\", function() { return optional; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"required\", function() { return required; });\nfunction optional(f) {\n  return f == null ? null : required(f);\n}\n\nfunction required(f) {\n  if (typeof f !== \"function\") throw new Error;\n  return f;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/accessors.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/array.js":
/*!************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/array.js ***!
  \************************************************/
/*! exports provided: default, shuffle */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shuffle\", function() { return shuffle; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n});\n\nfunction shuffle(array) {\n  var m = array.length,\n      t,\n      i;\n\n  while (m) {\n    i = Math.random() * m-- | 0;\n    t = array[m];\n    array[m] = array[i];\n    array[i] = t;\n  }\n\n  return array;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/array.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/cluster.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/cluster.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction defaultSeparation(a, b) {\n  return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n  return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n  return x + c.x;\n}\n\nfunction maxY(children) {\n  return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n  return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n  var children;\n  while (children = node.children) node = children[0];\n  return node;\n}\n\nfunction leafRight(node) {\n  var children;\n  while (children = node.children) node = children[children.length - 1];\n  return node;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var separation = defaultSeparation,\n      dx = 1,\n      dy = 1,\n      nodeSize = false;\n\n  function cluster(root) {\n    var previousNode,\n        x = 0;\n\n    // First walk, computing the initial x & y values.\n    root.eachAfter(function(node) {\n      var children = node.children;\n      if (children) {\n        node.x = meanX(children);\n        node.y = maxY(children);\n      } else {\n        node.x = previousNode ? x += separation(node, previousNode) : 0;\n        node.y = 0;\n        previousNode = node;\n      }\n    });\n\n    var left = leafLeft(root),\n        right = leafRight(root),\n        x0 = left.x - separation(left, right) / 2,\n        x1 = right.x + separation(right, left) / 2;\n\n    // Second walk, normalizing x & y to the desired size.\n    return root.eachAfter(nodeSize ? function(node) {\n      node.x = (node.x - root.x) * dx;\n      node.y = (root.y - node.y) * dy;\n    } : function(node) {\n      node.x = (node.x - x0) / (x1 - x0) * dx;\n      node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n    });\n  }\n\n  cluster.separation = function(x) {\n    return arguments.length ? (separation = x, cluster) : separation;\n  };\n\n  cluster.size = function(x) {\n    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n  };\n\n  cluster.nodeSize = function(x) {\n    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n  };\n\n  return cluster;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/cluster.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/constant.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/constant.js ***!
  \***************************************************/
/*! exports provided: constantZero, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"constantZero\", function() { return constantZero; });\nfunction constantZero() {\n  return 0;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return function() {\n    return x;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/ancestors.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/ancestors.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var node = this, nodes = [node];\n  while (node = node.parent) {\n    nodes.push(node);\n  }\n  return nodes;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/count.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/count.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction count(node) {\n  var sum = 0,\n      children = node.children,\n      i = children && children.length;\n  if (!i) sum = 1;\n  else while (--i >= 0) sum += children[i].value;\n  node.value = sum;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return this.eachAfter(count);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/count.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/descendants.js":
/*!****************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/descendants.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Array.from(this);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/descendants.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/each.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/each.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback, that) {\n  let index = -1;\n  for (const node of this) {\n    callback.call(that, node, ++index, this);\n  }\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/each.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback, that) {\n  var node = this, nodes = [node], next = [], children, i, n, index = -1;\n  while (node = nodes.pop()) {\n    next.push(node);\n    if (children = node.children) {\n      for (i = 0, n = children.length; i < n; ++i) {\n        nodes.push(children[i]);\n      }\n    }\n  }\n  while (node = next.pop()) {\n    callback.call(that, node, ++index, this);\n  }\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js":
/*!***************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback, that) {\n  var node = this, nodes = [node], children, i, index = -1;\n  while (node = nodes.pop()) {\n    callback.call(that, node, ++index, this);\n    if (children = node.children) {\n      for (i = children.length - 1; i >= 0; --i) {\n        nodes.push(children[i]);\n      }\n    }\n  }\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/find.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/find.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback, that) {\n  let index = -1;\n  for (const node of this) {\n    if (callback.call(that, node, ++index, this)) {\n      return node;\n    }\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/find.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/index.js ***!
  \**********************************************************/
/*! exports provided: default, computeHeight, Node */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return hierarchy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"computeHeight\", function() { return computeHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Node\", function() { return Node; });\n/* harmony import */ var _count_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./count.js */ \"./node_modules/d3-hierarchy/src/hierarchy/count.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./each.js */ \"./node_modules/d3-hierarchy/src/hierarchy/each.js\");\n/* harmony import */ var _eachBefore_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eachBefore.js */ \"./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js\");\n/* harmony import */ var _eachAfter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eachAfter.js */ \"./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js\");\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./find.js */ \"./node_modules/d3-hierarchy/src/hierarchy/find.js\");\n/* harmony import */ var _sum_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sum.js */ \"./node_modules/d3-hierarchy/src/hierarchy/sum.js\");\n/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./sort.js */ \"./node_modules/d3-hierarchy/src/hierarchy/sort.js\");\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./path.js */ \"./node_modules/d3-hierarchy/src/hierarchy/path.js\");\n/* harmony import */ var _ancestors_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ancestors.js */ \"./node_modules/d3-hierarchy/src/hierarchy/ancestors.js\");\n/* harmony import */ var _descendants_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./descendants.js */ \"./node_modules/d3-hierarchy/src/hierarchy/descendants.js\");\n/* harmony import */ var _leaves_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./leaves.js */ \"./node_modules/d3-hierarchy/src/hierarchy/leaves.js\");\n/* harmony import */ var _links_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./links.js */ \"./node_modules/d3-hierarchy/src/hierarchy/links.js\");\n/* harmony import */ var _iterator_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./iterator.js */ \"./node_modules/d3-hierarchy/src/hierarchy/iterator.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction hierarchy(data, children) {\n  if (data instanceof Map) {\n    data = [undefined, data];\n    if (children === undefined) children = mapChildren;\n  } else if (children === undefined) {\n    children = objectChildren;\n  }\n\n  var root = new Node(data),\n      node,\n      nodes = [root],\n      child,\n      childs,\n      i,\n      n;\n\n  while (node = nodes.pop()) {\n    if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n      node.children = childs;\n      for (i = n - 1; i >= 0; --i) {\n        nodes.push(child = childs[i] = new Node(childs[i]));\n        child.parent = node;\n        child.depth = node.depth + 1;\n      }\n    }\n  }\n\n  return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n  return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n  return d.children;\n}\n\nfunction mapChildren(d) {\n  return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n  if (node.data.value !== undefined) node.value = node.data.value;\n  node.data = node.data.data;\n}\n\nfunction computeHeight(node) {\n  var height = 0;\n  do node.height = height;\n  while ((node = node.parent) && (node.height < ++height));\n}\n\nfunction Node(data) {\n  this.data = data;\n  this.depth =\n  this.height = 0;\n  this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n  constructor: Node,\n  count: _count_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  each: _each_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  eachAfter: _eachAfter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  eachBefore: _eachBefore_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  find: _find_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  sum: _sum_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  sort: _sort_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  path: _path_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n  ancestors: _ancestors_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n  descendants: _descendants_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n  leaves: _leaves_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n  links: _links_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n  copy: node_copy,\n  [Symbol.iterator]: _iterator_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/index.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/iterator.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/iterator.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function*() {\n  var node = this, current, next = [node], children, i, n;\n  do {\n    current = next.reverse(), next = [];\n    while (node = current.pop()) {\n      yield node;\n      if (children = node.children) {\n        for (i = 0, n = children.length; i < n; ++i) {\n          next.push(children[i]);\n        }\n      }\n    }\n  } while (next.length);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/iterator.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/leaves.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/leaves.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var leaves = [];\n  this.eachBefore(function(node) {\n    if (!node.children) {\n      leaves.push(node);\n    }\n  });\n  return leaves;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/leaves.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/links.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/links.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var root = this, links = [];\n  root.each(function(node) {\n    if (node !== root) { // Don’t include the root’s parent, if any.\n      links.push({source: node.parent, target: node});\n    }\n  });\n  return links;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/links.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/path.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/path.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(end) {\n  var start = this,\n      ancestor = leastCommonAncestor(start, end),\n      nodes = [start];\n  while (start !== ancestor) {\n    start = start.parent;\n    nodes.push(start);\n  }\n  var k = nodes.length;\n  while (end !== ancestor) {\n    nodes.splice(k, 0, end);\n    end = end.parent;\n  }\n  return nodes;\n});\n\nfunction leastCommonAncestor(a, b) {\n  if (a === b) return a;\n  var aNodes = a.ancestors(),\n      bNodes = b.ancestors(),\n      c = null;\n  a = aNodes.pop();\n  b = bNodes.pop();\n  while (a === b) {\n    c = a;\n    a = aNodes.pop();\n    b = bNodes.pop();\n  }\n  return c;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/path.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/sort.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/sort.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(compare) {\n  return this.eachBefore(function(node) {\n    if (node.children) {\n      node.children.sort(compare);\n    }\n  });\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/sort.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/hierarchy/sum.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/hierarchy/sum.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(value) {\n  return this.eachAfter(function(node) {\n    var sum = +value(node.data) || 0,\n        children = node.children,\n        i = children && children.length;\n    while (--i >= 0) sum += children[i].value;\n    node.value = sum;\n  });\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/hierarchy/sum.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/index.js":
/*!************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/index.js ***!
  \************************************************/
/*! exports provided: cluster, hierarchy, pack, packSiblings, packEnclose, partition, stratify, tree, treemap, treemapBinary, treemapDice, treemapSlice, treemapSliceDice, treemapSquarify, treemapResquarify */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cluster_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cluster.js */ \"./node_modules/d3-hierarchy/src/cluster.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cluster\", function() { return _cluster_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index.js */ \"./node_modules/d3-hierarchy/src/hierarchy/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hierarchy\", function() { return _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _pack_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pack/index.js */ \"./node_modules/d3-hierarchy/src/pack/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pack\", function() { return _pack_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _pack_siblings_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pack/siblings.js */ \"./node_modules/d3-hierarchy/src/pack/siblings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"packSiblings\", function() { return _pack_siblings_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _pack_enclose_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pack/enclose.js */ \"./node_modules/d3-hierarchy/src/pack/enclose.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"packEnclose\", function() { return _pack_enclose_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _partition_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./partition.js */ \"./node_modules/d3-hierarchy/src/partition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return _partition_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _stratify_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./stratify.js */ \"./node_modules/d3-hierarchy/src/stratify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stratify\", function() { return _stratify_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _tree_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tree.js */ \"./node_modules/d3-hierarchy/src/tree.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tree\", function() { return _tree_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _treemap_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./treemap/index.js */ \"./node_modules/d3-hierarchy/src/treemap/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemap\", function() { return _treemap_index_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _treemap_binary_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./treemap/binary.js */ \"./node_modules/d3-hierarchy/src/treemap/binary.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemapBinary\", function() { return _treemap_binary_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _treemap_dice_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./treemap/dice.js */ \"./node_modules/d3-hierarchy/src/treemap/dice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemapDice\", function() { return _treemap_dice_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _treemap_slice_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./treemap/slice.js */ \"./node_modules/d3-hierarchy/src/treemap/slice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemapSlice\", function() { return _treemap_slice_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _treemap_sliceDice_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./treemap/sliceDice.js */ \"./node_modules/d3-hierarchy/src/treemap/sliceDice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemapSliceDice\", function() { return _treemap_sliceDice_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _treemap_squarify_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./treemap/squarify.js */ \"./node_modules/d3-hierarchy/src/treemap/squarify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemapSquarify\", function() { return _treemap_squarify_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _treemap_resquarify_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./treemap/resquarify.js */ \"./node_modules/d3-hierarchy/src/treemap/resquarify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"treemapResquarify\", function() { return _treemap_resquarify_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/pack/enclose.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/pack/enclose.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array.js */ \"./node_modules/d3-hierarchy/src/array.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(circles) {\n  var i = 0, n = (circles = Object(_array_js__WEBPACK_IMPORTED_MODULE_0__[\"shuffle\"])(Array.from(circles))).length, B = [], p, e;\n\n  while (i < n) {\n    p = circles[i];\n    if (e && enclosesWeak(e, p)) ++i;\n    else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n  }\n\n  return e;\n});\n\nfunction extendBasis(B, p) {\n  var i, j;\n\n  if (enclosesWeakAll(p, B)) return [p];\n\n  // If we get here then B must have at least one element.\n  for (i = 0; i < B.length; ++i) {\n    if (enclosesNot(p, B[i])\n        && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n      return [B[i], p];\n    }\n  }\n\n  // If we get here then B must have at least two elements.\n  for (i = 0; i < B.length - 1; ++i) {\n    for (j = i + 1; j < B.length; ++j) {\n      if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n          && enclosesNot(encloseBasis2(B[i], p), B[j])\n          && enclosesNot(encloseBasis2(B[j], p), B[i])\n          && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n        return [B[i], B[j], p];\n      }\n    }\n  }\n\n  // If we get here then something is very wrong.\n  throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n  var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n  return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n  var dr = a.r - b.r + Math.max(a.r, b.r, 1) * 1e-9, dx = b.x - a.x, dy = b.y - a.y;\n  return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n  for (var i = 0; i < B.length; ++i) {\n    if (!enclosesWeak(a, B[i])) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction encloseBasis(B) {\n  switch (B.length) {\n    case 1: return encloseBasis1(B[0]);\n    case 2: return encloseBasis2(B[0], B[1]);\n    case 3: return encloseBasis3(B[0], B[1], B[2]);\n  }\n}\n\nfunction encloseBasis1(a) {\n  return {\n    x: a.x,\n    y: a.y,\n    r: a.r\n  };\n}\n\nfunction encloseBasis2(a, b) {\n  var x1 = a.x, y1 = a.y, r1 = a.r,\n      x2 = b.x, y2 = b.y, r2 = b.r,\n      x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n      l = Math.sqrt(x21 * x21 + y21 * y21);\n  return {\n    x: (x1 + x2 + x21 / l * r21) / 2,\n    y: (y1 + y2 + y21 / l * r21) / 2,\n    r: (l + r1 + r2) / 2\n  };\n}\n\nfunction encloseBasis3(a, b, c) {\n  var x1 = a.x, y1 = a.y, r1 = a.r,\n      x2 = b.x, y2 = b.y, r2 = b.r,\n      x3 = c.x, y3 = c.y, r3 = c.r,\n      a2 = x1 - x2,\n      a3 = x1 - x3,\n      b2 = y1 - y2,\n      b3 = y1 - y3,\n      c2 = r2 - r1,\n      c3 = r3 - r1,\n      d1 = x1 * x1 + y1 * y1 - r1 * r1,\n      d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n      d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n      ab = a3 * b2 - a2 * b3,\n      xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n      xb = (b3 * c2 - b2 * c3) / ab,\n      ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n      yb = (a2 * c3 - a3 * c2) / ab,\n      A = xb * xb + yb * yb - 1,\n      B = 2 * (r1 + xa * xb + ya * yb),\n      C = xa * xa + ya * ya - r1 * r1,\n      r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n  return {\n    x: x1 + xa + xb * r,\n    y: y1 + ya + yb * r,\n    r: r\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/pack/enclose.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/pack/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/pack/index.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _siblings_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./siblings.js */ \"./node_modules/d3-hierarchy/src/pack/siblings.js\");\n/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../accessors.js */ \"./node_modules/d3-hierarchy/src/accessors.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant.js */ \"./node_modules/d3-hierarchy/src/constant.js\");\n\n\n\n\nfunction defaultRadius(d) {\n  return Math.sqrt(d.value);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var radius = null,\n      dx = 1,\n      dy = 1,\n      padding = _constant_js__WEBPACK_IMPORTED_MODULE_2__[\"constantZero\"];\n\n  function pack(root) {\n    root.x = dx / 2, root.y = dy / 2;\n    if (radius) {\n      root.eachBefore(radiusLeaf(radius))\n          .eachAfter(packChildren(padding, 0.5))\n          .eachBefore(translateChild(1));\n    } else {\n      root.eachBefore(radiusLeaf(defaultRadius))\n          .eachAfter(packChildren(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"constantZero\"], 1))\n          .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n          .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n    }\n    return root;\n  }\n\n  pack.radius = function(x) {\n    return arguments.length ? (radius = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_1__[\"optional\"])(x), pack) : radius;\n  };\n\n  pack.size = function(x) {\n    return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n  };\n\n  pack.padding = function(x) {\n    return arguments.length ? (padding = typeof x === \"function\" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+x), pack) : padding;\n  };\n\n  return pack;\n});\n\nfunction radiusLeaf(radius) {\n  return function(node) {\n    if (!node.children) {\n      node.r = Math.max(0, +radius(node) || 0);\n    }\n  };\n}\n\nfunction packChildren(padding, k) {\n  return function(node) {\n    if (children = node.children) {\n      var children,\n          i,\n          n = children.length,\n          r = padding(node) * k || 0,\n          e;\n\n      if (r) for (i = 0; i < n; ++i) children[i].r += r;\n      e = Object(_siblings_js__WEBPACK_IMPORTED_MODULE_0__[\"packEnclose\"])(children);\n      if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n      node.r = e + r;\n    }\n  };\n}\n\nfunction translateChild(k) {\n  return function(node) {\n    var parent = node.parent;\n    node.r *= k;\n    if (parent) {\n      node.x = parent.x + k * node.x;\n      node.y = parent.y + k * node.y;\n    }\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/pack/index.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/pack/siblings.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/pack/siblings.js ***!
  \********************************************************/
/*! exports provided: packEnclose, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"packEnclose\", function() { return packEnclose; });\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../array.js */ \"./node_modules/d3-hierarchy/src/array.js\");\n/* harmony import */ var _enclose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enclose.js */ \"./node_modules/d3-hierarchy/src/pack/enclose.js\");\n\n\n\nfunction place(b, a, c) {\n  var dx = b.x - a.x, x, a2,\n      dy = b.y - a.y, y, b2,\n      d2 = dx * dx + dy * dy;\n  if (d2) {\n    a2 = a.r + c.r, a2 *= a2;\n    b2 = b.r + c.r, b2 *= b2;\n    if (a2 > b2) {\n      x = (d2 + b2 - a2) / (2 * d2);\n      y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n      c.x = b.x - x * dx - y * dy;\n      c.y = b.y - x * dy + y * dx;\n    } else {\n      x = (d2 + a2 - b2) / (2 * d2);\n      y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n      c.x = a.x + x * dx - y * dy;\n      c.y = a.y + x * dy + y * dx;\n    }\n  } else {\n    c.x = a.x + c.r;\n    c.y = a.y;\n  }\n}\n\nfunction intersects(a, b) {\n  var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n  return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n  var a = node._,\n      b = node.next._,\n      ab = a.r + b.r,\n      dx = (a.x * b.r + b.x * a.r) / ab,\n      dy = (a.y * b.r + b.y * a.r) / ab;\n  return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n  this._ = circle;\n  this.next = null;\n  this.previous = null;\n}\n\nfunction packEnclose(circles) {\n  if (!(n = (circles = Object(_array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(circles)).length)) return 0;\n\n  var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n  // Place the first circle.\n  a = circles[0], a.x = 0, a.y = 0;\n  if (!(n > 1)) return a.r;\n\n  // Place the second circle.\n  b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n  if (!(n > 2)) return a.r + b.r;\n\n  // Place the third circle.\n  place(b, a, c = circles[2]);\n\n  // Initialize the front-chain using the first three circles a, b and c.\n  a = new Node(a), b = new Node(b), c = new Node(c);\n  a.next = c.previous = b;\n  b.next = a.previous = c;\n  c.next = b.previous = a;\n\n  // Attempt to place each remaining circle…\n  pack: for (i = 3; i < n; ++i) {\n    place(a._, b._, c = circles[i]), c = new Node(c);\n\n    // Find the closest intersecting circle on the front-chain, if any.\n    // “Closeness” is determined by linear distance along the front-chain.\n    // “Ahead” or “behind” is likewise determined by linear distance.\n    j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n    do {\n      if (sj <= sk) {\n        if (intersects(j._, c._)) {\n          b = j, a.next = b, b.previous = a, --i;\n          continue pack;\n        }\n        sj += j._.r, j = j.next;\n      } else {\n        if (intersects(k._, c._)) {\n          a = k, a.next = b, b.previous = a, --i;\n          continue pack;\n        }\n        sk += k._.r, k = k.previous;\n      }\n    } while (j !== k.next);\n\n    // Success! Insert the new circle c between a and b.\n    c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n    // Compute the new closest circle pair to the centroid.\n    aa = score(a);\n    while ((c = c.next) !== b) {\n      if ((ca = score(c)) < aa) {\n        a = c, aa = ca;\n      }\n    }\n    b = a.next;\n  }\n\n  // Compute the enclosing circle of the front chain.\n  a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = Object(_enclose_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a);\n\n  // Translate the circles to put the enclosing circle around the origin.\n  for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n  return c.r;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(circles) {\n  packEnclose(circles);\n  return circles;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/pack/siblings.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/partition.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/partition.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _treemap_round_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treemap/round.js */ \"./node_modules/d3-hierarchy/src/treemap/round.js\");\n/* harmony import */ var _treemap_dice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./treemap/dice.js */ \"./node_modules/d3-hierarchy/src/treemap/dice.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var dx = 1,\n      dy = 1,\n      padding = 0,\n      round = false;\n\n  function partition(root) {\n    var n = root.height + 1;\n    root.x0 =\n    root.y0 = padding;\n    root.x1 = dx;\n    root.y1 = dy / n;\n    root.eachBefore(positionNode(dy, n));\n    if (round) root.eachBefore(_treemap_round_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n    return root;\n  }\n\n  function positionNode(dy, n) {\n    return function(node) {\n      if (node.children) {\n        Object(_treemap_dice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n      }\n      var x0 = node.x0,\n          y0 = node.y0,\n          x1 = node.x1 - padding,\n          y1 = node.y1 - padding;\n      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n      node.x0 = x0;\n      node.y0 = y0;\n      node.x1 = x1;\n      node.y1 = y1;\n    };\n  }\n\n  partition.round = function(x) {\n    return arguments.length ? (round = !!x, partition) : round;\n  };\n\n  partition.size = function(x) {\n    return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n  };\n\n  partition.padding = function(x) {\n    return arguments.length ? (padding = +x, partition) : padding;\n  };\n\n  return partition;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/partition.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/stratify.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/stratify.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./accessors.js */ \"./node_modules/d3-hierarchy/src/accessors.js\");\n/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hierarchy/index.js */ \"./node_modules/d3-hierarchy/src/hierarchy/index.js\");\n\n\n\nvar preroot = {depth: -1},\n    ambiguous = {};\n\nfunction defaultId(d) {\n  return d.id;\n}\n\nfunction defaultParentId(d) {\n  return d.parentId;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var id = defaultId,\n      parentId = defaultParentId;\n\n  function stratify(data) {\n    var nodes = Array.from(data),\n        n = nodes.length,\n        d,\n        i,\n        root,\n        parent,\n        node,\n        nodeId,\n        nodeKey,\n        nodeByKey = new Map;\n\n    for (i = 0; i < n; ++i) {\n      d = nodes[i], node = nodes[i] = new _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__[\"Node\"](d);\n      if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n        nodeKey = node.id = nodeId;\n        nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n      }\n      if ((nodeId = parentId(d, i, data)) != null && (nodeId += \"\")) {\n        node.parent = nodeId;\n      }\n    }\n\n    for (i = 0; i < n; ++i) {\n      node = nodes[i];\n      if (nodeId = node.parent) {\n        parent = nodeByKey.get(nodeId);\n        if (!parent) throw new Error(\"missing: \" + nodeId);\n        if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n        if (parent.children) parent.children.push(node);\n        else parent.children = [node];\n        node.parent = parent;\n      } else {\n        if (root) throw new Error(\"multiple roots\");\n        root = node;\n      }\n    }\n\n    if (!root) throw new Error(\"no root\");\n    root.parent = preroot;\n    root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(_hierarchy_index_js__WEBPACK_IMPORTED_MODULE_1__[\"computeHeight\"]);\n    root.parent = null;\n    if (n > 0) throw new Error(\"cycle\");\n\n    return root;\n  }\n\n  stratify.id = function(x) {\n    return arguments.length ? (id = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_0__[\"required\"])(x), stratify) : id;\n  };\n\n  stratify.parentId = function(x) {\n    return arguments.length ? (parentId = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_0__[\"required\"])(x), stratify) : parentId;\n  };\n\n  return stratify;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/stratify.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/tree.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-hierarchy/src/tree.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hierarchy/index.js */ \"./node_modules/d3-hierarchy/src/hierarchy/index.js\");\n\n\nfunction defaultSeparation(a, b) {\n  return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n//   return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n  var children = v.children;\n  return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n  var children = v.children;\n  return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n  var change = shift / (wp.i - wm.i);\n  wp.c -= change;\n  wp.s += shift;\n  wm.c += change;\n  wp.z += shift;\n  wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n  var shift = 0,\n      change = 0,\n      children = v.children,\n      i = children.length,\n      w;\n  while (--i >= 0) {\n    w = children[i];\n    w.z += shift;\n    w.m += shift;\n    shift += w.s + (change += w.c);\n  }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n  return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n  this._ = node;\n  this.parent = null;\n  this.children = null;\n  this.A = null; // default ancestor\n  this.a = this; // ancestor\n  this.z = 0; // prelim\n  this.m = 0; // mod\n  this.c = 0; // change\n  this.s = 0; // shift\n  this.t = null; // thread\n  this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(_hierarchy_index_js__WEBPACK_IMPORTED_MODULE_0__[\"Node\"].prototype);\n\nfunction treeRoot(root) {\n  var tree = new TreeNode(root, 0),\n      node,\n      nodes = [tree],\n      child,\n      children,\n      i,\n      n;\n\n  while (node = nodes.pop()) {\n    if (children = node._.children) {\n      node.children = new Array(n = children.length);\n      for (i = n - 1; i >= 0; --i) {\n        nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n        child.parent = node;\n      }\n    }\n  }\n\n  (tree.parent = new TreeNode(null, 0)).children = [tree];\n  return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var separation = defaultSeparation,\n      dx = 1,\n      dy = 1,\n      nodeSize = null;\n\n  function tree(root) {\n    var t = treeRoot(root);\n\n    // Compute the layout using Buchheim et al.’s algorithm.\n    t.eachAfter(firstWalk), t.parent.m = -t.z;\n    t.eachBefore(secondWalk);\n\n    // If a fixed node size is specified, scale x and y.\n    if (nodeSize) root.eachBefore(sizeNode);\n\n    // If a fixed tree size is specified, scale x and y based on the extent.\n    // Compute the left-most, right-most, and depth-most nodes for extents.\n    else {\n      var left = root,\n          right = root,\n          bottom = root;\n      root.eachBefore(function(node) {\n        if (node.x < left.x) left = node;\n        if (node.x > right.x) right = node;\n        if (node.depth > bottom.depth) bottom = node;\n      });\n      var s = left === right ? 1 : separation(left, right) / 2,\n          tx = s - left.x,\n          kx = dx / (right.x + s + tx),\n          ky = dy / (bottom.depth || 1);\n      root.eachBefore(function(node) {\n        node.x = (node.x + tx) * kx;\n        node.y = node.depth * ky;\n      });\n    }\n\n    return root;\n  }\n\n  // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n  // applied recursively to the children of v, as well as the function\n  // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n  // node v is placed to the midpoint of its outermost children.\n  function firstWalk(v) {\n    var children = v.children,\n        siblings = v.parent.children,\n        w = v.i ? siblings[v.i - 1] : null;\n    if (children) {\n      executeShifts(v);\n      var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n      if (w) {\n        v.z = w.z + separation(v._, w._);\n        v.m = v.z - midpoint;\n      } else {\n        v.z = midpoint;\n      }\n    } else if (w) {\n      v.z = w.z + separation(v._, w._);\n    }\n    v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n  }\n\n  // Computes all real x-coordinates by summing up the modifiers recursively.\n  function secondWalk(v) {\n    v._.x = v.z + v.parent.m;\n    v.m += v.parent.m;\n  }\n\n  // The core of the algorithm. Here, a new subtree is combined with the\n  // previous subtrees. Threads are used to traverse the inside and outside\n  // contours of the left and right subtree up to the highest common level. The\n  // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n  // superscript o means outside and i means inside, the subscript - means left\n  // subtree and + means right subtree. For summing up the modifiers along the\n  // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n  // nodes of the inside contours conflict, we compute the left one of the\n  // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n  // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n  // Finally, we add a new thread (if necessary).\n  function apportion(v, w, ancestor) {\n    if (w) {\n      var vip = v,\n          vop = v,\n          vim = w,\n          vom = vip.parent.children[0],\n          sip = vip.m,\n          sop = vop.m,\n          sim = vim.m,\n          som = vom.m,\n          shift;\n      while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n        vom = nextLeft(vom);\n        vop = nextRight(vop);\n        vop.a = v;\n        shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n        if (shift > 0) {\n          moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n          sip += shift;\n          sop += shift;\n        }\n        sim += vim.m;\n        sip += vip.m;\n        som += vom.m;\n        sop += vop.m;\n      }\n      if (vim && !nextRight(vop)) {\n        vop.t = vim;\n        vop.m += sim - sop;\n      }\n      if (vip && !nextLeft(vom)) {\n        vom.t = vip;\n        vom.m += sip - som;\n        ancestor = v;\n      }\n    }\n    return ancestor;\n  }\n\n  function sizeNode(node) {\n    node.x *= dx;\n    node.y = node.depth * dy;\n  }\n\n  tree.separation = function(x) {\n    return arguments.length ? (separation = x, tree) : separation;\n  };\n\n  tree.size = function(x) {\n    return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n  };\n\n  tree.nodeSize = function(x) {\n    return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n  };\n\n  return tree;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/tree.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/binary.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/binary.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(parent, x0, y0, x1, y1) {\n  var nodes = parent.children,\n      i, n = nodes.length,\n      sum, sums = new Array(n + 1);\n\n  for (sums[0] = sum = i = 0; i < n; ++i) {\n    sums[i + 1] = sum += nodes[i].value;\n  }\n\n  partition(0, n, parent.value, x0, y0, x1, y1);\n\n  function partition(i, j, value, x0, y0, x1, y1) {\n    if (i >= j - 1) {\n      var node = nodes[i];\n      node.x0 = x0, node.y0 = y0;\n      node.x1 = x1, node.y1 = y1;\n      return;\n    }\n\n    var valueOffset = sums[i],\n        valueTarget = (value / 2) + valueOffset,\n        k = i + 1,\n        hi = j - 1;\n\n    while (k < hi) {\n      var mid = k + hi >>> 1;\n      if (sums[mid] < valueTarget) k = mid + 1;\n      else hi = mid;\n    }\n\n    if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n    var valueLeft = sums[k] - valueOffset,\n        valueRight = value - valueLeft;\n\n    if ((x1 - x0) > (y1 - y0)) {\n      var xk = value ? (x0 * valueRight + x1 * valueLeft) / value : x1;\n      partition(i, k, valueLeft, x0, y0, xk, y1);\n      partition(k, j, valueRight, xk, y0, x1, y1);\n    } else {\n      var yk = value ? (y0 * valueRight + y1 * valueLeft) / value : y1;\n      partition(i, k, valueLeft, x0, y0, x1, yk);\n      partition(k, j, valueRight, x0, yk, x1, y1);\n    }\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/binary.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/dice.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/dice.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(parent, x0, y0, x1, y1) {\n  var nodes = parent.children,\n      node,\n      i = -1,\n      n = nodes.length,\n      k = parent.value && (x1 - x0) / parent.value;\n\n  while (++i < n) {\n    node = nodes[i], node.y0 = y0, node.y1 = y1;\n    node.x0 = x0, node.x1 = x0 += node.value * k;\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/dice.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/index.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/index.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _round_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./round.js */ \"./node_modules/d3-hierarchy/src/treemap/round.js\");\n/* harmony import */ var _squarify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./squarify.js */ \"./node_modules/d3-hierarchy/src/treemap/squarify.js\");\n/* harmony import */ var _accessors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../accessors.js */ \"./node_modules/d3-hierarchy/src/accessors.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant.js */ \"./node_modules/d3-hierarchy/src/constant.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var tile = _squarify_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n      round = false,\n      dx = 1,\n      dy = 1,\n      paddingStack = [0],\n      paddingInner = _constant_js__WEBPACK_IMPORTED_MODULE_3__[\"constantZero\"],\n      paddingTop = _constant_js__WEBPACK_IMPORTED_MODULE_3__[\"constantZero\"],\n      paddingRight = _constant_js__WEBPACK_IMPORTED_MODULE_3__[\"constantZero\"],\n      paddingBottom = _constant_js__WEBPACK_IMPORTED_MODULE_3__[\"constantZero\"],\n      paddingLeft = _constant_js__WEBPACK_IMPORTED_MODULE_3__[\"constantZero\"];\n\n  function treemap(root) {\n    root.x0 =\n    root.y0 = 0;\n    root.x1 = dx;\n    root.y1 = dy;\n    root.eachBefore(positionNode);\n    paddingStack = [0];\n    if (round) root.eachBefore(_round_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n    return root;\n  }\n\n  function positionNode(node) {\n    var p = paddingStack[node.depth],\n        x0 = node.x0 + p,\n        y0 = node.y0 + p,\n        x1 = node.x1 - p,\n        y1 = node.y1 - p;\n    if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n    if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n    node.x0 = x0;\n    node.y0 = y0;\n    node.x1 = x1;\n    node.y1 = y1;\n    if (node.children) {\n      p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n      x0 += paddingLeft(node) - p;\n      y0 += paddingTop(node) - p;\n      x1 -= paddingRight(node) - p;\n      y1 -= paddingBottom(node) - p;\n      if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n      if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n      tile(node, x0, y0, x1, y1);\n    }\n  }\n\n  treemap.round = function(x) {\n    return arguments.length ? (round = !!x, treemap) : round;\n  };\n\n  treemap.size = function(x) {\n    return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n  };\n\n  treemap.tile = function(x) {\n    return arguments.length ? (tile = Object(_accessors_js__WEBPACK_IMPORTED_MODULE_2__[\"required\"])(x), treemap) : tile;\n  };\n\n  treemap.padding = function(x) {\n    return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n  };\n\n  treemap.paddingInner = function(x) {\n    return arguments.length ? (paddingInner = typeof x === \"function\" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(+x), treemap) : paddingInner;\n  };\n\n  treemap.paddingOuter = function(x) {\n    return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n  };\n\n  treemap.paddingTop = function(x) {\n    return arguments.length ? (paddingTop = typeof x === \"function\" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(+x), treemap) : paddingTop;\n  };\n\n  treemap.paddingRight = function(x) {\n    return arguments.length ? (paddingRight = typeof x === \"function\" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(+x), treemap) : paddingRight;\n  };\n\n  treemap.paddingBottom = function(x) {\n    return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(+x), treemap) : paddingBottom;\n  };\n\n  treemap.paddingLeft = function(x) {\n    return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(+x), treemap) : paddingLeft;\n  };\n\n  return treemap;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/index.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/resquarify.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/resquarify.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ \"./node_modules/d3-hierarchy/src/treemap/dice.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/d3-hierarchy/src/treemap/slice.js\");\n/* harmony import */ var _squarify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./squarify.js */ \"./node_modules/d3-hierarchy/src/treemap/squarify.js\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(ratio) {\n\n  function resquarify(parent, x0, y0, x1, y1) {\n    if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n      var rows,\n          row,\n          nodes,\n          i,\n          j = -1,\n          n,\n          m = rows.length,\n          value = parent.value;\n\n      while (++j < m) {\n        row = rows[j], nodes = row.children;\n        for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n        if (row.dice) Object(_dice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);\n        else Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);\n        value -= row.value;\n      }\n    } else {\n      parent._squarify = rows = Object(_squarify_js__WEBPACK_IMPORTED_MODULE_2__[\"squarifyRatio\"])(ratio, parent, x0, y0, x1, y1);\n      rows.ratio = ratio;\n    }\n  }\n\n  resquarify.ratio = function(x) {\n    return custom((x = +x) > 1 ? x : 1);\n  };\n\n  return resquarify;\n})(_squarify_js__WEBPACK_IMPORTED_MODULE_2__[\"phi\"]));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/resquarify.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/round.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/round.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(node) {\n  node.x0 = Math.round(node.x0);\n  node.y0 = Math.round(node.y0);\n  node.x1 = Math.round(node.x1);\n  node.y1 = Math.round(node.y1);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/round.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/slice.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/slice.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(parent, x0, y0, x1, y1) {\n  var nodes = parent.children,\n      node,\n      i = -1,\n      n = nodes.length,\n      k = parent.value && (y1 - y0) / parent.value;\n\n  while (++i < n) {\n    node = nodes[i], node.x0 = x0, node.x1 = x1;\n    node.y0 = y0, node.y1 = y0 += node.value * k;\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/slice.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/sliceDice.js":
/*!************************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/sliceDice.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ \"./node_modules/d3-hierarchy/src/treemap/dice.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/d3-hierarchy/src/treemap/slice.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(parent, x0, y0, x1, y1) {\n  (parent.depth & 1 ? _slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : _dice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(parent, x0, y0, x1, y1);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/sliceDice.js?");

/***/ }),

/***/ "./node_modules/d3-hierarchy/src/treemap/squarify.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-hierarchy/src/treemap/squarify.js ***!
  \***********************************************************/
/*! exports provided: phi, squarifyRatio, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"phi\", function() { return phi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"squarifyRatio\", function() { return squarifyRatio; });\n/* harmony import */ var _dice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dice.js */ \"./node_modules/d3-hierarchy/src/treemap/dice.js\");\n/* harmony import */ var _slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slice.js */ \"./node_modules/d3-hierarchy/src/treemap/slice.js\");\n\n\n\nvar phi = (1 + Math.sqrt(5)) / 2;\n\nfunction squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n  var rows = [],\n      nodes = parent.children,\n      row,\n      nodeValue,\n      i0 = 0,\n      i1 = 0,\n      n = nodes.length,\n      dx, dy,\n      value = parent.value,\n      sumValue,\n      minValue,\n      maxValue,\n      newRatio,\n      minRatio,\n      alpha,\n      beta;\n\n  while (i0 < n) {\n    dx = x1 - x0, dy = y1 - y0;\n\n    // Find the next non-empty node.\n    do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n    minValue = maxValue = sumValue;\n    alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n    beta = sumValue * sumValue * alpha;\n    minRatio = Math.max(maxValue / beta, beta / minValue);\n\n    // Keep adding nodes while the aspect ratio maintains or improves.\n    for (; i1 < n; ++i1) {\n      sumValue += nodeValue = nodes[i1].value;\n      if (nodeValue < minValue) minValue = nodeValue;\n      if (nodeValue > maxValue) maxValue = nodeValue;\n      beta = sumValue * sumValue * alpha;\n      newRatio = Math.max(maxValue / beta, beta / minValue);\n      if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n      minRatio = newRatio;\n    }\n\n    // Position and record the row orientation.\n    rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n    if (row.dice) Object(_dice_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n    else Object(_slice_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n    value -= sumValue, i0 = i1;\n  }\n\n  return rows;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(ratio) {\n\n  function squarify(parent, x0, y0, x1, y1) {\n    squarifyRatio(ratio, parent, x0, y0, x1, y1);\n  }\n\n  squarify.ratio = function(x) {\n    return custom((x = +x) > 1 ? x : 1);\n  };\n\n  return squarify;\n})(phi));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-hierarchy/src/treemap/squarify.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/array.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/array.js ***!
  \**************************************************/
/*! exports provided: default, genericArray */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"genericArray\", function() { return genericArray; });\n/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ \"./node_modules/d3-interpolate/src/value.js\");\n/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./numberArray.js */ \"./node_modules/d3-interpolate/src/numberArray.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return (Object(_numberArray_js__WEBPACK_IMPORTED_MODULE_1__[\"isNumberArray\"])(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : genericArray)(a, b);\n});\n\nfunction genericArray(a, b) {\n  var nb = b ? b.length : 0,\n      na = a ? Math.min(nb, a.length) : 0,\n      x = new Array(na),\n      c = new Array(nb),\n      i;\n\n  for (i = 0; i < na; ++i) x[i] = Object(_value_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a[i], b[i]);\n  for (; i < nb; ++i) c[i] = b[i];\n\n  return function(t) {\n    for (i = 0; i < na; ++i) c[i] = x[i](t);\n    return c;\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/array.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/basis.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/basis.js ***!
  \**************************************************/
/*! exports provided: basis, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"basis\", function() { return basis; });\nfunction basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/basis.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/basisClosed.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-interpolate/src/basisClosed.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-interpolate/src/basis.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return Object(_basis_js__WEBPACK_IMPORTED_MODULE_0__[\"basis\"])((t - i / n) * n, v0, v1, v2, v3);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/basisClosed.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/color.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/color.js ***!
  \**************************************************/
/*! exports provided: hue, gamma, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hue\", function() { return hue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gamma\", function() { return gamma; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return nogamma; });\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-interpolate/src/constant.js\");\n\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nfunction hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(a) ? b : a);\n}\n\nfunction gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(a) ? b : a);\n  };\n}\n\nfunction nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(isNaN(a) ? b : a);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/color.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/constant.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-interpolate/src/constant.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (x => () => x);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/cubehelix.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-interpolate/src/cubehelix.js ***!
  \******************************************************/
/*! exports provided: default, cubehelixLong */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cubehelixLong\", function() { return cubehelixLong; });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n\nfunction cubehelix(hue) {\n  return (function cubehelixGamma(y) {\n    y = +y;\n\n    function cubehelix(start, end) {\n      var h = hue((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"cubehelix\"])(start)).h, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"cubehelix\"])(end)).h),\n          s = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.s, end.s),\n          l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.l, end.l),\n          opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.opacity, end.opacity);\n      return function(t) {\n        start.h = h(t);\n        start.s = s(t);\n        start.l = l(Math.pow(t, y));\n        start.opacity = opacity(t);\n        return start + \"\";\n      };\n    }\n\n    cubehelix.gamma = cubehelixGamma;\n\n    return cubehelix;\n  })(1);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (cubehelix(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"hue\"]));\nvar cubehelixLong = cubehelix(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/cubehelix.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/date.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-interpolate/src/date.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var d = new Date;\n  return a = +a, b = +b, function(t) {\n    return d.setTime(a * (1 - t) + b * t), d;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/date.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/discrete.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-interpolate/src/discrete.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(range) {\n  var n = range.length;\n  return function(t) {\n    return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/discrete.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/hcl.js":
/*!************************************************!*\
  !*** ./node_modules/d3-interpolate/src/hcl.js ***!
  \************************************************/
/*! exports provided: default, hclLong */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hclLong\", function() { return hclLong; });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n\nfunction hcl(hue) {\n  return function(start, end) {\n    var h = hue((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"hcl\"])(start)).h, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"hcl\"])(end)).h),\n        c = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.c, end.c),\n        l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.l, end.l),\n        opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.opacity, end.opacity);\n    return function(t) {\n      start.h = h(t);\n      start.c = c(t);\n      start.l = l(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hcl(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"hue\"]));\nvar hclLong = hcl(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/hcl.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/hsl.js":
/*!************************************************!*\
  !*** ./node_modules/d3-interpolate/src/hsl.js ***!
  \************************************************/
/*! exports provided: default, hslLong */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hslLong\", function() { return hslLong; });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n\nfunction hsl(hue) {\n  return function(start, end) {\n    var h = hue((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"hsl\"])(start)).h, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"hsl\"])(end)).h),\n        s = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.s, end.s),\n        l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.l, end.l),\n        opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.opacity, end.opacity);\n    return function(t) {\n      start.h = h(t);\n      start.s = s(t);\n      start.l = l(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hsl(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"hue\"]));\nvar hslLong = hsl(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/hsl.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/hue.js":
/*!************************************************!*\
  !*** ./node_modules/d3-interpolate/src/hue.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var i = Object(_color_js__WEBPACK_IMPORTED_MODULE_0__[\"hue\"])(+a, +b);\n  return function(t) {\n    var x = i(t);\n    return x - 360 * Math.floor(x / 360);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/hue.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/index.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/index.js ***!
  \**************************************************/
/*! exports provided: interpolate, interpolateArray, interpolateBasis, interpolateBasisClosed, interpolateDate, interpolateDiscrete, interpolateHue, interpolateNumber, interpolateNumberArray, interpolateObject, interpolateRound, interpolateString, interpolateTransformCss, interpolateTransformSvg, interpolateZoom, interpolateRgb, interpolateRgbBasis, interpolateRgbBasisClosed, interpolateHsl, interpolateHslLong, interpolateLab, interpolateHcl, interpolateHclLong, interpolateCubehelix, interpolateCubehelixLong, piecewise, quantize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ \"./node_modules/d3-interpolate/src/value.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolate\", function() { return _value_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-interpolate/src/array.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateArray\", function() { return _array_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-interpolate/src/basis.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateBasis\", function() { return _basis_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./basisClosed.js */ \"./node_modules/d3-interpolate/src/basisClosed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateBasisClosed\", function() { return _basisClosed_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./date.js */ \"./node_modules/d3-interpolate/src/date.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateDate\", function() { return _date_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _discrete_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./discrete.js */ \"./node_modules/d3-interpolate/src/discrete.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateDiscrete\", function() { return _discrete_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _hue_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./hue.js */ \"./node_modules/d3-interpolate/src/hue.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateHue\", function() { return _hue_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-interpolate/src/number.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateNumber\", function() { return _number_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./numberArray.js */ \"./node_modules/d3-interpolate/src/numberArray.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateNumberArray\", function() { return _numberArray_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./object.js */ \"./node_modules/d3-interpolate/src/object.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateObject\", function() { return _object_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _round_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./round.js */ \"./node_modules/d3-interpolate/src/round.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateRound\", function() { return _round_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./string.js */ \"./node_modules/d3-interpolate/src/string.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateString\", function() { return _string_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _transform_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./transform/index.js */ \"./node_modules/d3-interpolate/src/transform/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateTransformCss\", function() { return _transform_index_js__WEBPACK_IMPORTED_MODULE_12__[\"interpolateTransformCss\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateTransformSvg\", function() { return _transform_index_js__WEBPACK_IMPORTED_MODULE_12__[\"interpolateTransformSvg\"]; });\n\n/* harmony import */ var _zoom_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./zoom.js */ \"./node_modules/d3-interpolate/src/zoom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateZoom\", function() { return _zoom_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./rgb.js */ \"./node_modules/d3-interpolate/src/rgb.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateRgb\", function() { return _rgb_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateRgbBasis\", function() { return _rgb_js__WEBPACK_IMPORTED_MODULE_14__[\"rgbBasis\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateRgbBasisClosed\", function() { return _rgb_js__WEBPACK_IMPORTED_MODULE_14__[\"rgbBasisClosed\"]; });\n\n/* harmony import */ var _hsl_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hsl.js */ \"./node_modules/d3-interpolate/src/hsl.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateHsl\", function() { return _hsl_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateHslLong\", function() { return _hsl_js__WEBPACK_IMPORTED_MODULE_15__[\"hslLong\"]; });\n\n/* harmony import */ var _lab_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./lab.js */ \"./node_modules/d3-interpolate/src/lab.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateLab\", function() { return _lab_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _hcl_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hcl.js */ \"./node_modules/d3-interpolate/src/hcl.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateHcl\", function() { return _hcl_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateHclLong\", function() { return _hcl_js__WEBPACK_IMPORTED_MODULE_17__[\"hclLong\"]; });\n\n/* harmony import */ var _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./cubehelix.js */ \"./node_modules/d3-interpolate/src/cubehelix.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateCubehelix\", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateCubehelixLong\", function() { return _cubehelix_js__WEBPACK_IMPORTED_MODULE_18__[\"cubehelixLong\"]; });\n\n/* harmony import */ var _piecewise_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./piecewise.js */ \"./node_modules/d3-interpolate/src/piecewise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"piecewise\", function() { return _piecewise_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _quantize_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./quantize.js */ \"./node_modules/d3-interpolate/src/quantize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantize\", function() { return _quantize_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/lab.js":
/*!************************************************!*\
  !*** ./node_modules/d3-interpolate/src/lab.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return lab; });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n\nfunction lab(start, end) {\n  var l = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"lab\"])(start)).l, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"lab\"])(end)).l),\n      a = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.a, end.a),\n      b = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.b, end.b),\n      opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(start.opacity, end.opacity);\n  return function(t) {\n    start.l = l(t);\n    start.a = a(t);\n    start.b = b(t);\n    start.opacity = opacity(t);\n    return start + \"\";\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/lab.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/number.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-interpolate/src/number.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/number.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/numberArray.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-interpolate/src/numberArray.js ***!
  \********************************************************/
/*! exports provided: default, isNumberArray */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumberArray\", function() { return isNumberArray; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  if (!b) b = [];\n  var n = a ? Math.min(b.length, a.length) : 0,\n      c = b.slice(),\n      i;\n  return function(t) {\n    for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n    return c;\n  };\n});\n\nfunction isNumberArray(x) {\n  return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/numberArray.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/object.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-interpolate/src/object.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ \"./node_modules/d3-interpolate/src/value.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var i = {},\n      c = {},\n      k;\n\n  if (a === null || typeof a !== \"object\") a = {};\n  if (b === null || typeof b !== \"object\") b = {};\n\n  for (k in b) {\n    if (k in a) {\n      i[k] = Object(_value_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a[k], b[k]);\n    } else {\n      c[k] = b[k];\n    }\n  }\n\n  return function(t) {\n    for (k in i) c[k] = i[k](t);\n    return c;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/object.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/piecewise.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-interpolate/src/piecewise.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return piecewise; });\n/* harmony import */ var _value_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./value.js */ \"./node_modules/d3-interpolate/src/value.js\");\n\n\nfunction piecewise(interpolate, values) {\n  if (values === undefined) values = interpolate, interpolate = _value_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n  var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n  while (i < n) I[i] = interpolate(v, v = values[++i]);\n  return function(t) {\n    var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n    return I[i](t - i);\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/piecewise.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/quantize.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-interpolate/src/quantize.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(interpolator, n) {\n  var samples = new Array(n);\n  for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n  return samples;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/quantize.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/rgb.js":
/*!************************************************!*\
  !*** ./node_modules/d3-interpolate/src/rgb.js ***!
  \************************************************/
/*! exports provided: default, rgbBasis, rgbBasisClosed */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgbBasis\", function() { return rgbBasis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rgbBasisClosed\", function() { return rgbBasisClosed; });\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-interpolate/src/basis.js\");\n/* harmony import */ var _basisClosed_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./basisClosed.js */ \"./node_modules/d3-interpolate/src/basisClosed.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./color.js */ \"./node_modules/d3-interpolate/src/color.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function rgbGamma(y) {\n  var color = Object(_color_js__WEBPACK_IMPORTED_MODULE_3__[\"gamma\"])(y);\n\n  function rgb(start, end) {\n    var r = color((start = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"rgb\"])(start)).r, (end = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"rgb\"])(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = Object(_color_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1));\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"rgb\"])(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nvar rgbBasis = rgbSpline(_basis_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nvar rgbBasisClosed = rgbSpline(_basisClosed_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/rgb.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/round.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/round.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return Math.round(a * (1 - t) + b * t);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/round.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/string.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-interpolate/src/string.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-interpolate/src/number.js\");\n\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/string.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/transform/decompose.js":
/*!****************************************************************!*\
  !*** ./node_modules/d3-interpolate/src/transform/decompose.js ***!
  \****************************************************************/
/*! exports provided: identity, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\nvar degrees = 180 / Math.PI;\n\nvar identity = {\n  translateX: 0,\n  translateY: 0,\n  rotate: 0,\n  skewX: 0,\n  scaleX: 1,\n  scaleY: 1\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b, c, d, e, f) {\n  var scaleX, scaleY, skewX;\n  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n  return {\n    translateX: e,\n    translateY: f,\n    rotate: Math.atan2(b, a) * degrees,\n    skewX: Math.atan(skewX) * degrees,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/transform/decompose.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/transform/index.js":
/*!************************************************************!*\
  !*** ./node_modules/d3-interpolate/src/transform/index.js ***!
  \************************************************************/
/*! exports provided: interpolateTransformCss, interpolateTransformSvg */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateTransformCss\", function() { return interpolateTransformCss; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateTransformSvg\", function() { return interpolateTransformSvg; });\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../number.js */ \"./node_modules/d3-interpolate/src/number.js\");\n/* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parse.js */ \"./node_modules/d3-interpolate/src/transform/parse.js\");\n\n\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n  function pop(s) {\n    return s.length ? s.pop() + \" \" : \"\";\n  }\n\n  function translate(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n      q.push({i: i - 4, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xa, xb)}, {i: i - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(ya, yb)});\n    } else if (xb || yb) {\n      s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n    }\n  }\n\n  function rotate(a, b, s, q) {\n    if (a !== b) {\n      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n      q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"rotate(\" + b + degParen);\n    }\n  }\n\n  function skewX(a, b, s, q) {\n    if (a !== b) {\n      q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"skewX(\" + b + degParen);\n    }\n  }\n\n  function scale(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n      q.push({i: i - 4, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(xa, xb)}, {i: i - 2, x: Object(_number_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(ya, yb)});\n    } else if (xb !== 1 || yb !== 1) {\n      s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n    }\n  }\n\n  return function(a, b) {\n    var s = [], // string constants and placeholders\n        q = []; // number interpolators\n    a = parse(a), b = parse(b);\n    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n    rotate(a.rotate, b.rotate, s, q);\n    skewX(a.skewX, b.skewX, s, q);\n    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n    a = b = null; // gc\n    return function(t) {\n      var i = -1, n = q.length, o;\n      while (++i < n) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    };\n  };\n}\n\nvar interpolateTransformCss = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__[\"parseCss\"], \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(_parse_js__WEBPACK_IMPORTED_MODULE_1__[\"parseSvg\"], \", \", \")\", \")\");\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/transform/index.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/transform/parse.js":
/*!************************************************************!*\
  !*** ./node_modules/d3-interpolate/src/transform/parse.js ***!
  \************************************************************/
/*! exports provided: parseCss, parseSvg */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseCss\", function() { return parseCss; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseSvg\", function() { return parseSvg; });\n/* harmony import */ var _decompose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./decompose.js */ \"./node_modules/d3-interpolate/src/transform/decompose.js\");\n\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nfunction parseCss(value) {\n  const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n  return m.isIdentity ? _decompose_js__WEBPACK_IMPORTED_MODULE_0__[\"identity\"] : Object(_decompose_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nfunction parseSvg(value) {\n  if (value == null) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n  if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n  svgNode.setAttribute(\"transform\", value);\n  if (!(value = svgNode.transform.baseVal.consolidate())) return _decompose_js__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n  value = value.matrix;\n  return Object(_decompose_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/transform/parse.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/value.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-interpolate/src/value.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var _rgb_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgb.js */ \"./node_modules/d3-interpolate/src/rgb.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-interpolate/src/array.js\");\n/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date.js */ \"./node_modules/d3-interpolate/src/date.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-interpolate/src/number.js\");\n/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./object.js */ \"./node_modules/d3-interpolate/src/object.js\");\n/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./string.js */ \"./node_modules/d3-interpolate/src/string.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-interpolate/src/constant.js\");\n/* harmony import */ var _numberArray_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./numberArray.js */ \"./node_modules/d3-interpolate/src/numberArray.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  var t = typeof b, c;\n  return b == null || t === \"boolean\" ? Object(_constant_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(b)\n      : (t === \"number\" ? _number_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]\n      : t === \"string\" ? ((c = Object(d3_color__WEBPACK_IMPORTED_MODULE_0__[\"color\"])(b)) ? (b = c, _rgb_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) : _string_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])\n      : b instanceof d3_color__WEBPACK_IMPORTED_MODULE_0__[\"color\"] ? _rgb_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n      : b instanceof Date ? _date_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n      : Object(_numberArray_js__WEBPACK_IMPORTED_MODULE_8__[\"isNumberArray\"])(b) ? _numberArray_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]\n      : Array.isArray(b) ? _array_js__WEBPACK_IMPORTED_MODULE_2__[\"genericArray\"]\n      : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? _object_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n      : _number_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(a, b);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/value.js?");

/***/ }),

/***/ "./node_modules/d3-interpolate/src/zoom.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-interpolate/src/zoom.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar epsilon2 = 1e-12;\n\nfunction cosh(x) {\n  return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n  return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n  return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function zoomRho(rho, rho2, rho4) {\n\n  // p0 = [ux0, uy0, w0]\n  // p1 = [ux1, uy1, w1]\n  function zoom(p0, p1) {\n    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n        ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n        dx = ux1 - ux0,\n        dy = uy1 - uy0,\n        d2 = dx * dx + dy * dy,\n        i,\n        S;\n\n    // Special case for u0 ≅ u1.\n    if (d2 < epsilon2) {\n      S = Math.log(w1 / w0) / rho;\n      i = function(t) {\n        return [\n          ux0 + t * dx,\n          uy0 + t * dy,\n          w0 * Math.exp(rho * t * S)\n        ];\n      }\n    }\n\n    // General case.\n    else {\n      var d1 = Math.sqrt(d2),\n          b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n          b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n          r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n          r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n      S = (r1 - r0) / rho;\n      i = function(t) {\n        var s = t * S,\n            coshr0 = cosh(r0),\n            u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n        return [\n          ux0 + u * dx,\n          uy0 + u * dy,\n          w0 * coshr0 / cosh(rho * s + r0)\n        ];\n      }\n    }\n\n    i.duration = S * 1000 * rho / Math.SQRT2;\n\n    return i;\n  }\n\n  zoom.rho = function(_) {\n    var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n    return zoomRho(_1, _2, _4);\n  };\n\n  return zoom;\n})(Math.SQRT2, 2, 4));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-interpolate/src/zoom.js?");

/***/ }),

/***/ "./node_modules/d3-path/src/index.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-path/src/index.js ***!
  \*******************************************/
/*! exports provided: path */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _path_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./path.js */ \"./node_modules/d3-path/src/path.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"path\", function() { return _path_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-path/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-path/src/path.js":
/*!******************************************!*\
  !*** ./node_modules/d3-path/src/path.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nconst pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction Path() {\n  this._x0 = this._y0 = // start of current subpath\n  this._x1 = this._y1 = null; // end of current subpath\n  this._ = \"\";\n}\n\nfunction path() {\n  return new Path;\n}\n\nPath.prototype = path.prototype = {\n  constructor: Path,\n  moveTo: function(x, y) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n  },\n  closePath: function() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._ += \"Z\";\n    }\n  },\n  lineTo: function(x, y) {\n    this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  quadraticCurveTo: function(x1, y1, x, y) {\n    this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n    this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  arcTo: function(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n    var x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      var x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n      }\n\n      this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n    }\n  },\n  arc: function(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n    var dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._ += \"M\" + x0 + \",\" + y0;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._ += \"L\" + x0 + \",\" + y0;\n    }\n\n    // Is this arc empty? We’re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n    }\n  },\n  rect: function(x, y, w, h) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n  },\n  toString: function() {\n    return this._;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (path);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-path/src/path.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/add.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-quadtree/src/add.js ***!
  \*********************************************/
/*! exports provided: default, addAll */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addAll\", function() { return addAll; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(d) {\n  const x = +this._x.call(null, d),\n      y = +this._y.call(null, d);\n  return add(this.cover(x, y), x, y, d);\n});\n\nfunction add(tree, x, y, d) {\n  if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n  var parent,\n      node = tree._root,\n      leaf = {data: d},\n      x0 = tree._x0,\n      y0 = tree._y0,\n      x1 = tree._x1,\n      y1 = tree._y1,\n      xm,\n      ym,\n      xp,\n      yp,\n      right,\n      bottom,\n      i,\n      j;\n\n  // If the tree is empty, initialize the root as a leaf.\n  if (!node) return tree._root = leaf, tree;\n\n  // Find the existing leaf for the new point, or add it.\n  while (node.length) {\n    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n    if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n  }\n\n  // Is the new point is exactly coincident with the existing point?\n  xp = +tree._x.call(null, node.data);\n  yp = +tree._y.call(null, node.data);\n  if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n  // Otherwise, split the leaf node until the old and new point are separated.\n  do {\n    parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n  } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n  return parent[j] = node, parent[i] = leaf, tree;\n}\n\nfunction addAll(data) {\n  var d, i, n = data.length,\n      x,\n      y,\n      xz = new Array(n),\n      yz = new Array(n),\n      x0 = Infinity,\n      y0 = Infinity,\n      x1 = -Infinity,\n      y1 = -Infinity;\n\n  // Compute the points and their extent.\n  for (i = 0; i < n; ++i) {\n    if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n    xz[i] = x;\n    yz[i] = y;\n    if (x < x0) x0 = x;\n    if (x > x1) x1 = x;\n    if (y < y0) y0 = y;\n    if (y > y1) y1 = y;\n  }\n\n  // If there were no (valid) points, abort.\n  if (x0 > x1 || y0 > y1) return this;\n\n  // Expand the tree to cover the new points.\n  this.cover(x0, y0).cover(x1, y1);\n\n  // Add the new points.\n  for (i = 0; i < n; ++i) {\n    add(this, xz[i], yz[i], data[i]);\n  }\n\n  return this;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/add.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/cover.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-quadtree/src/cover.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, y) {\n  if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n  var x0 = this._x0,\n      y0 = this._y0,\n      x1 = this._x1,\n      y1 = this._y1;\n\n  // If the quadtree has no extent, initialize them.\n  // Integer extent are necessary so that if we later double the extent,\n  // the existing quadrant boundaries don’t change due to floating point error!\n  if (isNaN(x0)) {\n    x1 = (x0 = Math.floor(x)) + 1;\n    y1 = (y0 = Math.floor(y)) + 1;\n  }\n\n  // Otherwise, double repeatedly to cover.\n  else {\n    var z = x1 - x0 || 1,\n        node = this._root,\n        parent,\n        i;\n\n    while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n      i = (y < y0) << 1 | (x < x0);\n      parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n      switch (i) {\n        case 0: x1 = x0 + z, y1 = y0 + z; break;\n        case 1: x0 = x1 - z, y1 = y0 + z; break;\n        case 2: x1 = x0 + z, y0 = y1 - z; break;\n        case 3: x0 = x1 - z, y0 = y1 - z; break;\n      }\n    }\n\n    if (this._root && this._root.length) this._root = node;\n  }\n\n  this._x0 = x0;\n  this._y0 = y0;\n  this._x1 = x1;\n  this._y1 = y1;\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/cover.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/data.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-quadtree/src/data.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var data = [];\n  this.visit(function(node) {\n    if (!node.length) do data.push(node.data); while (node = node.next)\n  });\n  return data;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/data.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/extent.js":
/*!************************************************!*\
  !*** ./node_modules/d3-quadtree/src/extent.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(_) {\n  return arguments.length\n      ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n      : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/extent.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/find.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-quadtree/src/find.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ \"./node_modules/d3-quadtree/src/quad.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, y, radius) {\n  var data,\n      x0 = this._x0,\n      y0 = this._y0,\n      x1,\n      y1,\n      x2,\n      y2,\n      x3 = this._x1,\n      y3 = this._y1,\n      quads = [],\n      node = this._root,\n      q,\n      i;\n\n  if (node) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](node, x0, y0, x3, y3));\n  if (radius == null) radius = Infinity;\n  else {\n    x0 = x - radius, y0 = y - radius;\n    x3 = x + radius, y3 = y + radius;\n    radius *= radius;\n  }\n\n  while (q = quads.pop()) {\n\n    // Stop searching if this quadrant can’t contain a closer node.\n    if (!(node = q.node)\n        || (x1 = q.x0) > x3\n        || (y1 = q.y0) > y3\n        || (x2 = q.x1) < x0\n        || (y2 = q.y1) < y0) continue;\n\n    // Bisect the current quadrant.\n    if (node.length) {\n      var xm = (x1 + x2) / 2,\n          ym = (y1 + y2) / 2;\n\n      quads.push(\n        new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](node[3], xm, ym, x2, y2),\n        new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](node[2], x1, ym, xm, y2),\n        new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](node[1], xm, y1, x2, ym),\n        new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](node[0], x1, y1, xm, ym)\n      );\n\n      // Visit the closest quadrant first.\n      if (i = (y >= ym) << 1 | (x >= xm)) {\n        q = quads[quads.length - 1];\n        quads[quads.length - 1] = quads[quads.length - 1 - i];\n        quads[quads.length - 1 - i] = q;\n      }\n    }\n\n    // Visit this point. (Visiting coincident points isn’t necessary!)\n    else {\n      var dx = x - +this._x.call(null, node.data),\n          dy = y - +this._y.call(null, node.data),\n          d2 = dx * dx + dy * dy;\n      if (d2 < radius) {\n        var d = Math.sqrt(radius = d2);\n        x0 = x - d, y0 = y - d;\n        x3 = x + d, y3 = y + d;\n        data = node.data;\n      }\n    }\n  }\n\n  return data;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/find.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/index.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-quadtree/src/index.js ***!
  \***********************************************/
/*! exports provided: quadtree */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _quadtree_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quadtree.js */ \"./node_modules/d3-quadtree/src/quadtree.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quadtree\", function() { return _quadtree_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/quad.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-quadtree/src/quad.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(node, x0, y0, x1, y1) {\n  this.node = node;\n  this.x0 = x0;\n  this.y0 = y0;\n  this.x1 = x1;\n  this.y1 = y1;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/quad.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/quadtree.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-quadtree/src/quadtree.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return quadtree; });\n/* harmony import */ var _add_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.js */ \"./node_modules/d3-quadtree/src/add.js\");\n/* harmony import */ var _cover_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cover.js */ \"./node_modules/d3-quadtree/src/cover.js\");\n/* harmony import */ var _data_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data.js */ \"./node_modules/d3-quadtree/src/data.js\");\n/* harmony import */ var _extent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extent.js */ \"./node_modules/d3-quadtree/src/extent.js\");\n/* harmony import */ var _find_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./find.js */ \"./node_modules/d3-quadtree/src/find.js\");\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/d3-quadtree/src/remove.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./root.js */ \"./node_modules/d3-quadtree/src/root.js\");\n/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./size.js */ \"./node_modules/d3-quadtree/src/size.js\");\n/* harmony import */ var _visit_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./visit.js */ \"./node_modules/d3-quadtree/src/visit.js\");\n/* harmony import */ var _visitAfter_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./visitAfter.js */ \"./node_modules/d3-quadtree/src/visitAfter.js\");\n/* harmony import */ var _x_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./x.js */ \"./node_modules/d3-quadtree/src/x.js\");\n/* harmony import */ var _y_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./y.js */ \"./node_modules/d3-quadtree/src/y.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction quadtree(nodes, x, y) {\n  var tree = new Quadtree(x == null ? _x_js__WEBPACK_IMPORTED_MODULE_10__[\"defaultX\"] : x, y == null ? _y_js__WEBPACK_IMPORTED_MODULE_11__[\"defaultY\"] : y, NaN, NaN, NaN, NaN);\n  return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n  this._x = x;\n  this._y = y;\n  this._x0 = x0;\n  this._y0 = y0;\n  this._x1 = x1;\n  this._y1 = y1;\n  this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n  var copy = {data: leaf.data}, next = copy;\n  while (leaf = leaf.next) next = next.next = {data: leaf.data};\n  return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n  var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n      node = this._root,\n      nodes,\n      child;\n\n  if (!node) return copy;\n\n  if (!node.length) return copy._root = leaf_copy(node), copy;\n\n  nodes = [{source: node, target: copy._root = new Array(4)}];\n  while (node = nodes.pop()) {\n    for (var i = 0; i < 4; ++i) {\n      if (child = node.source[i]) {\n        if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n        else node.target[i] = leaf_copy(child);\n      }\n    }\n  }\n\n  return copy;\n};\n\ntreeProto.add = _add_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\ntreeProto.addAll = _add_js__WEBPACK_IMPORTED_MODULE_0__[\"addAll\"];\ntreeProto.cover = _cover_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\ntreeProto.data = _data_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\ntreeProto.extent = _extent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\ntreeProto.find = _find_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\ntreeProto.remove = _remove_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\ntreeProto.removeAll = _remove_js__WEBPACK_IMPORTED_MODULE_5__[\"removeAll\"];\ntreeProto.root = _root_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\ntreeProto.size = _size_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\ntreeProto.visit = _visit_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\ntreeProto.visitAfter = _visitAfter_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"];\ntreeProto.x = _x_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\ntreeProto.y = _y_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/quadtree.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/remove.js":
/*!************************************************!*\
  !*** ./node_modules/d3-quadtree/src/remove.js ***!
  \************************************************/
/*! exports provided: default, removeAll */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAll\", function() { return removeAll; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(d) {\n  if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n  var parent,\n      node = this._root,\n      retainer,\n      previous,\n      next,\n      x0 = this._x0,\n      y0 = this._y0,\n      x1 = this._x1,\n      y1 = this._y1,\n      x,\n      y,\n      xm,\n      ym,\n      right,\n      bottom,\n      i,\n      j;\n\n  // If the tree is empty, initialize the root as a leaf.\n  if (!node) return this;\n\n  // Find the leaf node for the point.\n  // While descending, also retain the deepest parent with a non-removed sibling.\n  if (node.length) while (true) {\n    if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n    if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n    if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n    if (!node.length) break;\n    if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n  }\n\n  // Find the point to remove.\n  while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n  if (next = node.next) delete node.next;\n\n  // If there are multiple coincident points, remove just the point.\n  if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n  // If this is the root point, remove it.\n  if (!parent) return this._root = next, this;\n\n  // Remove this leaf.\n  next ? parent[i] = next : delete parent[i];\n\n  // If the parent now contains exactly one leaf, collapse superfluous parents.\n  if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n      && node === (parent[3] || parent[2] || parent[1] || parent[0])\n      && !node.length) {\n    if (retainer) retainer[j] = node;\n    else this._root = node;\n  }\n\n  return this;\n});\n\nfunction removeAll(data) {\n  for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n  return this;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/remove.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/root.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-quadtree/src/root.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return this._root;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/root.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/size.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-quadtree/src/size.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var size = 0;\n  this.visit(function(node) {\n    if (!node.length) do ++size; while (node = node.next)\n  });\n  return size;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/size.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/visit.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-quadtree/src/visit.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ \"./node_modules/d3-quadtree/src/quad.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback) {\n  var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n  if (node) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](node, this._x0, this._y0, this._x1, this._y1));\n  while (q = quads.pop()) {\n    if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n      var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n      if (child = node[3]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, xm, ym, x1, y1));\n      if (child = node[2]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, x0, ym, xm, y1));\n      if (child = node[1]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, xm, y0, x1, ym));\n      if (child = node[0]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, x0, y0, xm, ym));\n    }\n  }\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/visit.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/visitAfter.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-quadtree/src/visitAfter.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _quad_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quad.js */ \"./node_modules/d3-quadtree/src/quad.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback) {\n  var quads = [], next = [], q;\n  if (this._root) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](this._root, this._x0, this._y0, this._x1, this._y1));\n  while (q = quads.pop()) {\n    var node = q.node;\n    if (node.length) {\n      var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n      if (child = node[0]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, x0, y0, xm, ym));\n      if (child = node[1]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, xm, y0, x1, ym));\n      if (child = node[2]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, x0, ym, xm, y1));\n      if (child = node[3]) quads.push(new _quad_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](child, xm, ym, x1, y1));\n    }\n    next.push(q);\n  }\n  while (q = next.pop()) {\n    callback(q.node, q.x0, q.y0, q.x1, q.y1);\n  }\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/visitAfter.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/x.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-quadtree/src/x.js ***!
  \*******************************************/
/*! exports provided: defaultX, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultX\", function() { return defaultX; });\nfunction defaultX(d) {\n  return d[0];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(_) {\n  return arguments.length ? (this._x = _, this) : this._x;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/x.js?");

/***/ }),

/***/ "./node_modules/d3-quadtree/src/y.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-quadtree/src/y.js ***!
  \*******************************************/
/*! exports provided: defaultY, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultY\", function() { return defaultY; });\nfunction defaultY(d) {\n  return d[1];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(_) {\n  return arguments.length ? (this._y = _, this) : this._y;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-quadtree/src/y.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/band.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-scale/src/band.js ***!
  \*******************************************/
/*! exports provided: default, point */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return band; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return point; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _ordinal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ordinal.js */ \"./node_modules/d3-scale/src/ordinal.js\");\n\n\n\n\nfunction band() {\n  var scale = Object(_ordinal_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])().unknown(undefined),\n      domain = scale.domain,\n      ordinalRange = scale.range,\n      r0 = 0,\n      r1 = 1,\n      step,\n      bandwidth,\n      round = false,\n      paddingInner = 0,\n      paddingOuter = 0,\n      align = 0.5;\n\n  delete scale.unknown;\n\n  function rescale() {\n    var n = domain().length,\n        reverse = r1 < r0,\n        start = reverse ? r1 : r0,\n        stop = reverse ? r0 : r1;\n    step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n    if (round) step = Math.floor(step);\n    start += (stop - start - step * (n - paddingInner)) * align;\n    bandwidth = step * (1 - paddingInner);\n    if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n    var values = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"range\"])(n).map(function(i) { return start + step * i; });\n    return ordinalRange(reverse ? values.reverse() : values);\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n  };\n\n  scale.rangeRound = function(_) {\n    return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n  };\n\n  scale.bandwidth = function() {\n    return bandwidth;\n  };\n\n  scale.step = function() {\n    return step;\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, rescale()) : round;\n  };\n\n  scale.padding = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n  };\n\n  scale.paddingInner = function(_) {\n    return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n  };\n\n  scale.paddingOuter = function(_) {\n    return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n  };\n\n  scale.align = function(_) {\n    return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n  };\n\n  scale.copy = function() {\n    return band(domain(), [r0, r1])\n        .round(round)\n        .paddingInner(paddingInner)\n        .paddingOuter(paddingOuter)\n        .align(align);\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_1__[\"initRange\"].apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n  var copy = scale.copy;\n\n  scale.padding = scale.paddingOuter;\n  delete scale.paddingInner;\n  delete scale.paddingOuter;\n\n  scale.copy = function() {\n    return pointish(copy());\n  };\n\n  return scale;\n}\n\nfunction point() {\n  return pointish(band.apply(null, arguments).paddingInner(1));\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/band.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/constant.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-scale/src/constant.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return constants; });\nfunction constants(x) {\n  return function() {\n    return x;\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/continuous.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-scale/src/continuous.js ***!
  \*************************************************/
/*! exports provided: identity, copy, transformer, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"copy\", function() { return copy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transformer\", function() { return transformer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return continuous; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/index.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-scale/src/constant.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-scale/src/number.js\");\n\n\n\n\n\nvar unit = [0, 1];\n\nfunction identity(x) {\n  return x;\n}\n\nfunction normalize(a, b) {\n  return (b -= (a = +a))\n      ? function(x) { return (x - a) / b; }\n      : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n  var t;\n  if (a > b) t = a, a = b, b = t;\n  return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n  var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n  if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n  else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n  return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n  var j = Math.min(domain.length, range.length) - 1,\n      d = new Array(j),\n      r = new Array(j),\n      i = -1;\n\n  // Reverse descending domains.\n  if (domain[j] < domain[0]) {\n    domain = domain.slice().reverse();\n    range = range.slice().reverse();\n  }\n\n  while (++i < j) {\n    d[i] = normalize(domain[i], domain[i + 1]);\n    r[i] = interpolate(range[i], range[i + 1]);\n  }\n\n  return function(x) {\n    var i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisect\"])(domain, x, 1, j) - 1;\n    return r[i](d[i](x));\n  };\n}\n\nfunction copy(source, target) {\n  return target\n      .domain(source.domain())\n      .range(source.range())\n      .interpolate(source.interpolate())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nfunction transformer() {\n  var domain = unit,\n      range = unit,\n      interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__[\"interpolate\"],\n      transform,\n      untransform,\n      unknown,\n      clamp = identity,\n      piecewise,\n      output,\n      input;\n\n  function rescale() {\n    var n = Math.min(domain.length, range.length);\n    if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n    piecewise = n > 2 ? polymap : bimap;\n    output = input = null;\n    return scale;\n  }\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n  }\n\n  scale.invert = function(y) {\n    return clamp(untransform((input || (input = piecewise(range, domain.map(transform), d3_interpolate__WEBPACK_IMPORTED_MODULE_1__[\"interpolateNumber\"])))(y)));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]), rescale()) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return range = Array.from(_), interpolate = d3_interpolate__WEBPACK_IMPORTED_MODULE_1__[\"interpolateRound\"], rescale();\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n  };\n\n  scale.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, rescale()) : interpolate;\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t, u) {\n    transform = t, untransform = u;\n    return rescale();\n  };\n}\n\nfunction continuous() {\n  return transformer()(identity, identity);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/continuous.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/diverging.js":
/*!************************************************!*\
  !*** ./node_modules/d3-scale/src/diverging.js ***!
  \************************************************/
/*! exports provided: default, divergingLog, divergingSymlog, divergingPow, divergingSqrt */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return diverging; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"divergingLog\", function() { return divergingLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"divergingSymlog\", function() { return divergingSymlog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"divergingPow\", function() { return divergingPow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"divergingSqrt\", function() { return divergingSqrt; });\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/index.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _log_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./log.js */ \"./node_modules/d3-scale/src/log.js\");\n/* harmony import */ var _sequential_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./sequential.js */ \"./node_modules/d3-scale/src/sequential.js\");\n/* harmony import */ var _symlog_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symlog.js */ \"./node_modules/d3-scale/src/symlog.js\");\n/* harmony import */ var _pow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pow.js */ \"./node_modules/d3-scale/src/pow.js\");\n\n\n\n\n\n\n\n\n\nfunction transformer() {\n  var x0 = 0,\n      x1 = 0.5,\n      x2 = 1,\n      s = 1,\n      t0,\n      t1,\n      t2,\n      k10,\n      k21,\n      interpolator = _continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"],\n      transform,\n      clamp = false,\n      unknown;\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, scale) : clamp;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  function range(interpolate) {\n    return function(_) {\n      var r0, r1, r2;\n      return arguments.length ? ([r0, r1, r2] = _, interpolator = Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__[\"piecewise\"])(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n    };\n  }\n\n  scale.range = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__[\"interpolate\"]);\n\n  scale.rangeRound = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__[\"interpolateRound\"]);\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t) {\n    transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n    return scale;\n  };\n}\n\nfunction diverging() {\n  var scale = Object(_linear_js__WEBPACK_IMPORTED_MODULE_3__[\"linearish\"])(transformer()(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]));\n\n  scale.copy = function() {\n    return Object(_sequential_js__WEBPACK_IMPORTED_MODULE_5__[\"copy\"])(scale, diverging());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction divergingLog() {\n  var scale = Object(_log_js__WEBPACK_IMPORTED_MODULE_4__[\"loggish\"])(transformer()).domain([0.1, 1, 10]);\n\n  scale.copy = function() {\n    return Object(_sequential_js__WEBPACK_IMPORTED_MODULE_5__[\"copy\"])(scale, divergingLog()).base(scale.base());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction divergingSymlog() {\n  var scale = Object(_symlog_js__WEBPACK_IMPORTED_MODULE_6__[\"symlogish\"])(transformer());\n\n  scale.copy = function() {\n    return Object(_sequential_js__WEBPACK_IMPORTED_MODULE_5__[\"copy\"])(scale, divergingSymlog()).constant(scale.constant());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction divergingPow() {\n  var scale = Object(_pow_js__WEBPACK_IMPORTED_MODULE_7__[\"powish\"])(transformer());\n\n  scale.copy = function() {\n    return Object(_sequential_js__WEBPACK_IMPORTED_MODULE_5__[\"copy\"])(scale, divergingPow()).exponent(scale.exponent());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction divergingSqrt() {\n  return divergingPow.apply(null, arguments).exponent(0.5);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/diverging.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/identity.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-scale/src/identity.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return identity; });\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-scale/src/number.js\");\n\n\n\nfunction identity(domain) {\n  var unknown;\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : x;\n  }\n\n  scale.invert = scale;\n\n  scale.domain = scale.range = function(_) {\n    return arguments.length ? (domain = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]), scale) : domain.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return identity(domain).unknown(unknown);\n  };\n\n  domain = arguments.length ? Array.from(domain, _number_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) : [0, 1];\n\n  return Object(_linear_js__WEBPACK_IMPORTED_MODULE_0__[\"linearish\"])(scale);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/identity.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/index.js":
/*!********************************************!*\
  !*** ./node_modules/d3-scale/src/index.js ***!
  \********************************************/
/*! exports provided: scaleBand, scalePoint, scaleIdentity, scaleLinear, scaleLog, scaleSymlog, scaleOrdinal, scaleImplicit, scalePow, scaleSqrt, scaleRadial, scaleQuantile, scaleQuantize, scaleThreshold, scaleTime, scaleUtc, scaleSequential, scaleSequentialLog, scaleSequentialPow, scaleSequentialSqrt, scaleSequentialSymlog, scaleSequentialQuantile, scaleDiverging, scaleDivergingLog, scaleDivergingPow, scaleDivergingSqrt, scaleDivergingSymlog, tickFormat */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _band_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./band.js */ \"./node_modules/d3-scale/src/band.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleBand\", function() { return _band_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scalePoint\", function() { return _band_js__WEBPACK_IMPORTED_MODULE_0__[\"point\"]; });\n\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-scale/src/identity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleIdentity\", function() { return _identity_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleLinear\", function() { return _linear_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _log_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./log.js */ \"./node_modules/d3-scale/src/log.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleLog\", function() { return _log_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _symlog_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symlog.js */ \"./node_modules/d3-scale/src/symlog.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSymlog\", function() { return _symlog_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _ordinal_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ordinal.js */ \"./node_modules/d3-scale/src/ordinal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleOrdinal\", function() { return _ordinal_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleImplicit\", function() { return _ordinal_js__WEBPACK_IMPORTED_MODULE_5__[\"implicit\"]; });\n\n/* harmony import */ var _pow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pow.js */ \"./node_modules/d3-scale/src/pow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scalePow\", function() { return _pow_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSqrt\", function() { return _pow_js__WEBPACK_IMPORTED_MODULE_6__[\"sqrt\"]; });\n\n/* harmony import */ var _radial_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./radial.js */ \"./node_modules/d3-scale/src/radial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleRadial\", function() { return _radial_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _quantile_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./quantile.js */ \"./node_modules/d3-scale/src/quantile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleQuantile\", function() { return _quantile_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _quantize_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./quantize.js */ \"./node_modules/d3-scale/src/quantize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleQuantize\", function() { return _quantize_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _threshold_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./threshold.js */ \"./node_modules/d3-scale/src/threshold.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleThreshold\", function() { return _threshold_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _time_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./time.js */ \"./node_modules/d3-scale/src/time.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleTime\", function() { return _time_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _utcTime_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcTime.js */ \"./node_modules/d3-scale/src/utcTime.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleUtc\", function() { return _utcTime_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _sequential_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sequential.js */ \"./node_modules/d3-scale/src/sequential.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSequential\", function() { return _sequential_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialLog\", function() { return _sequential_js__WEBPACK_IMPORTED_MODULE_13__[\"sequentialLog\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialPow\", function() { return _sequential_js__WEBPACK_IMPORTED_MODULE_13__[\"sequentialPow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialSqrt\", function() { return _sequential_js__WEBPACK_IMPORTED_MODULE_13__[\"sequentialSqrt\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialSymlog\", function() { return _sequential_js__WEBPACK_IMPORTED_MODULE_13__[\"sequentialSymlog\"]; });\n\n/* harmony import */ var _sequentialQuantile_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./sequentialQuantile.js */ \"./node_modules/d3-scale/src/sequentialQuantile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleSequentialQuantile\", function() { return _sequentialQuantile_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _diverging_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./diverging.js */ \"./node_modules/d3-scale/src/diverging.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleDiverging\", function() { return _diverging_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingLog\", function() { return _diverging_js__WEBPACK_IMPORTED_MODULE_15__[\"divergingLog\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingPow\", function() { return _diverging_js__WEBPACK_IMPORTED_MODULE_15__[\"divergingPow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingSqrt\", function() { return _diverging_js__WEBPACK_IMPORTED_MODULE_15__[\"divergingSqrt\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleDivergingSymlog\", function() { return _diverging_js__WEBPACK_IMPORTED_MODULE_15__[\"divergingSymlog\"]; });\n\n/* harmony import */ var _tickFormat_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tickFormat.js */ \"./node_modules/d3-scale/src/tickFormat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tickFormat\", function() { return _tickFormat_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/init.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-scale/src/init.js ***!
  \*******************************************/
/*! exports provided: initRange, initInterpolator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initRange\", function() { return initRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initInterpolator\", function() { return initInterpolator; });\nfunction initRange(domain, range) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: this.range(domain); break;\n    default: this.range(range).domain(domain); break;\n  }\n  return this;\n}\n\nfunction initInterpolator(domain, interpolator) {\n  switch (arguments.length) {\n    case 0: break;\n    case 1: {\n      if (typeof domain === \"function\") this.interpolator(domain);\n      else this.range(domain);\n      break;\n    }\n    default: {\n      this.domain(domain);\n      if (typeof interpolator === \"function\") this.interpolator(interpolator);\n      else this.range(interpolator);\n      break;\n    }\n  }\n  return this;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/init.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/linear.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-scale/src/linear.js ***!
  \*********************************************/
/*! exports provided: linearish, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linearish\", function() { return linearish; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return linear; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _tickFormat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tickFormat.js */ \"./node_modules/d3-scale/src/tickFormat.js\");\n\n\n\n\n\nfunction linearish(scale) {\n  var domain = scale.domain;\n\n  scale.ticks = function(count) {\n    var d = domain();\n    return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ticks\"])(d[0], d[d.length - 1], count == null ? 10 : count);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    var d = domain();\n    return Object(_tickFormat_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n  };\n\n  scale.nice = function(count) {\n    if (count == null) count = 10;\n\n    var d = domain();\n    var i0 = 0;\n    var i1 = d.length - 1;\n    var start = d[i0];\n    var stop = d[i1];\n    var prestep;\n    var step;\n    var maxIter = 10;\n\n    if (stop < start) {\n      step = start, start = stop, stop = step;\n      step = i0, i0 = i1, i1 = step;\n    }\n    \n    while (maxIter-- > 0) {\n      step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"tickIncrement\"])(start, stop, count);\n      if (step === prestep) {\n        d[i0] = start\n        d[i1] = stop\n        return domain(d);\n      } else if (step > 0) {\n        start = Math.floor(start / step) * step;\n        stop = Math.ceil(stop / step) * step;\n      } else if (step < 0) {\n        start = Math.ceil(start * step) / step;\n        stop = Math.floor(stop * step) / step;\n      } else {\n        break;\n      }\n      prestep = step;\n    }\n\n    return scale;\n  };\n\n  return scale;\n}\n\nfunction linear() {\n  var scale = Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n\n  scale.copy = function() {\n    return Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"copy\"])(scale, linear());\n  };\n\n  _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initRange\"].apply(scale, arguments);\n\n  return linearish(scale);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/linear.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/log.js":
/*!******************************************!*\
  !*** ./node_modules/d3-scale/src/log.js ***!
  \******************************************/
/*! exports provided: loggish, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loggish\", function() { return loggish; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return log; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/index.js\");\n/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nice.js */ \"./node_modules/d3-scale/src/nice.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\n\n\n\nfunction transformLog(x) {\n  return Math.log(x);\n}\n\nfunction transformExp(x) {\n  return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n  return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n  return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n  return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n  return base === 10 ? pow10\n      : base === Math.E ? Math.exp\n      : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n  return base === Math.E ? Math.log\n      : base === 10 && Math.log10\n      || base === 2 && Math.log2\n      || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n  return function(x) {\n    return -f(-x);\n  };\n}\n\nfunction loggish(transform) {\n  var scale = transform(transformLog, transformExp),\n      domain = scale.domain,\n      base = 10,\n      logs,\n      pows;\n\n  function rescale() {\n    logs = logp(base), pows = powp(base);\n    if (domain()[0] < 0) {\n      logs = reflect(logs), pows = reflect(pows);\n      transform(transformLogn, transformExpn);\n    } else {\n      transform(transformLog, transformExp);\n    }\n    return scale;\n  }\n\n  scale.base = function(_) {\n    return arguments.length ? (base = +_, rescale()) : base;\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain(_), rescale()) : domain();\n  };\n\n  scale.ticks = function(count) {\n    var d = domain(),\n        u = d[0],\n        v = d[d.length - 1],\n        r;\n\n    if (r = v < u) i = u, u = v, v = i;\n\n    var i = logs(u),\n        j = logs(v),\n        p,\n        k,\n        t,\n        n = count == null ? 10 : +count,\n        z = [];\n\n    if (!(base % 1) && j - i < n) {\n      i = Math.floor(i), j = Math.ceil(j);\n      if (u > 0) for (; i <= j; ++i) {\n        for (k = 1, p = pows(i); k < base; ++k) {\n          t = p * k;\n          if (t < u) continue;\n          if (t > v) break;\n          z.push(t);\n        }\n      } else for (; i <= j; ++i) {\n        for (k = base - 1, p = pows(i); k >= 1; --k) {\n          t = p * k;\n          if (t < u) continue;\n          if (t > v) break;\n          z.push(t);\n        }\n      }\n      if (z.length * 2 < n) z = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ticks\"])(u, v, n);\n    } else {\n      z = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ticks\"])(i, j, Math.min(j - i, n)).map(pows);\n    }\n\n    return r ? z.reverse() : z;\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n    if (typeof specifier !== \"function\") specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"format\"])(specifier);\n    if (count === Infinity) return specifier;\n    if (count == null) count = 10;\n    var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n    return function(d) {\n      var i = d / pows(Math.round(logs(d)));\n      if (i * base < base - 0.5) i *= base;\n      return i <= k ? specifier(d) : \"\";\n    };\n  };\n\n  scale.nice = function() {\n    return domain(Object(_nice_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(domain(), {\n      floor: function(x) { return pows(Math.floor(logs(x))); },\n      ceil: function(x) { return pows(Math.ceil(logs(x))); }\n    }));\n  };\n\n  return scale;\n}\n\nfunction log() {\n  var scale = loggish(Object(_continuous_js__WEBPACK_IMPORTED_MODULE_3__[\"transformer\"])()).domain([1, 10]);\n\n  scale.copy = function() {\n    return Object(_continuous_js__WEBPACK_IMPORTED_MODULE_3__[\"copy\"])(scale, log()).base(scale.base());\n  };\n\n  _init_js__WEBPACK_IMPORTED_MODULE_4__[\"initRange\"].apply(scale, arguments);\n\n  return scale;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/log.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/nice.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-scale/src/nice.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return nice; });\nfunction nice(domain, interval) {\n  domain = domain.slice();\n\n  var i0 = 0,\n      i1 = domain.length - 1,\n      x0 = domain[i0],\n      x1 = domain[i1],\n      t;\n\n  if (x1 < x0) {\n    t = i0, i0 = i1, i1 = t;\n    t = x0, x0 = x1, x1 = t;\n  }\n\n  domain[i0] = interval.floor(x0);\n  domain[i1] = interval.ceil(x1);\n  return domain;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/nice.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/number.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-scale/src/number.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return number; });\nfunction number(x) {\n  return +x;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/number.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/ordinal.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-scale/src/ordinal.js ***!
  \**********************************************/
/*! exports provided: implicit, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"implicit\", function() { return implicit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ordinal; });\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\nconst implicit = Symbol(\"implicit\");\n\nfunction ordinal() {\n  var index = new Map(),\n      domain = [],\n      range = [],\n      unknown = implicit;\n\n  function scale(d) {\n    var key = d + \"\", i = index.get(key);\n    if (!i) {\n      if (unknown !== implicit) return unknown;\n      index.set(key, i = domain.push(d));\n    }\n    return range[(i - 1) % range.length];\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [], index = new Map();\n    for (const value of _) {\n      const key = value + \"\";\n      if (index.has(key)) continue;\n      index.set(key, domain.push(value));\n    }\n    return scale;\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), scale) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return ordinal(domain, range).unknown(unknown);\n  };\n\n  _init_js__WEBPACK_IMPORTED_MODULE_0__[\"initRange\"].apply(scale, arguments);\n\n  return scale;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/ordinal.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/pow.js":
/*!******************************************!*\
  !*** ./node_modules/d3-scale/src/pow.js ***!
  \******************************************/
/*! exports provided: powish, default, sqrt */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"powish\", function() { return powish; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return pow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrt\", function() { return sqrt; });\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\n\nfunction transformPow(exponent) {\n  return function(x) {\n    return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n  };\n}\n\nfunction transformSqrt(x) {\n  return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n  return x < 0 ? -x * x : x * x;\n}\n\nfunction powish(transform) {\n  var scale = transform(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"], _continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]),\n      exponent = 1;\n\n  function rescale() {\n    return exponent === 1 ? transform(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"], _continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"])\n        : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n        : transform(transformPow(exponent), transformPow(1 / exponent));\n  }\n\n  scale.exponent = function(_) {\n    return arguments.length ? (exponent = +_, rescale()) : exponent;\n  };\n\n  return Object(_linear_js__WEBPACK_IMPORTED_MODULE_0__[\"linearish\"])(scale);\n}\n\nfunction pow() {\n  var scale = powish(Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"transformer\"])());\n\n  scale.copy = function() {\n    return Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"copy\"])(scale, pow()).exponent(scale.exponent());\n  };\n\n  _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initRange\"].apply(scale, arguments);\n\n  return scale;\n}\n\nfunction sqrt() {\n  return pow.apply(null, arguments).exponent(0.5);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/pow.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/quantile.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-scale/src/quantile.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return quantile; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\nfunction quantile() {\n  var domain = [],\n      range = [],\n      thresholds = [],\n      unknown;\n\n  function rescale() {\n    var i = 0, n = Math.max(1, range.length);\n    thresholds = new Array(n - 1);\n    while (++i < n) thresholds[i - 1] = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"quantileSorted\"])(domain, i / n);\n    return scale;\n  }\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisect\"])(thresholds, x)];\n  }\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN] : [\n      i > 0 ? thresholds[i - 1] : domain[0],\n      i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n    ];\n  };\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ascending\"]);\n    return rescale();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.quantiles = function() {\n    return thresholds.slice();\n  };\n\n  scale.copy = function() {\n    return quantile()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_1__[\"initRange\"].apply(scale, arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/quantile.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/quantize.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-scale/src/quantize.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return quantize; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\n\nfunction quantize() {\n  var x0 = 0,\n      x1 = 1,\n      n = 1,\n      domain = [0.5],\n      range = [0, 1],\n      unknown;\n\n  function scale(x) {\n    return x <= x ? range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisect\"])(domain, x, 0, n)] : unknown;\n  }\n\n  function rescale() {\n    var i = -1;\n    domain = new Array(n);\n    while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n    return scale;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return i < 0 ? [NaN, NaN]\n        : i < 1 ? [x0, domain[0]]\n        : i >= n ? [domain[n - 1], x1]\n        : [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : scale;\n  };\n\n  scale.thresholds = function() {\n    return domain.slice();\n  };\n\n  scale.copy = function() {\n    return quantize()\n        .domain([x0, x1])\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initRange\"].apply(Object(_linear_js__WEBPACK_IMPORTED_MODULE_1__[\"linearish\"])(scale), arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/quantize.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/radial.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-scale/src/radial.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return radial; });\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _number_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./number.js */ \"./node_modules/d3-scale/src/number.js\");\n\n\n\n\n\nfunction square(x) {\n  return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n  return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nfunction radial() {\n  var squared = Object(_continuous_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(),\n      range = [0, 1],\n      round = false,\n      unknown;\n\n  function scale(x) {\n    var y = unsquare(squared(x));\n    return isNaN(y) ? unknown : round ? Math.round(y) : y;\n  }\n\n  scale.invert = function(y) {\n    return squared.invert(square(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? (squared.domain(_), scale) : squared.domain();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (squared.range((range = Array.from(_, _number_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])).map(square)), scale) : range.slice();\n  };\n\n  scale.rangeRound = function(_) {\n    return scale.range(_).round(true);\n  };\n\n  scale.round = function(_) {\n    return arguments.length ? (round = !!_, scale) : round;\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return radial(squared.domain(), range)\n        .round(round)\n        .clamp(squared.clamp())\n        .unknown(unknown);\n  };\n\n  _init_js__WEBPACK_IMPORTED_MODULE_1__[\"initRange\"].apply(scale, arguments);\n\n  return Object(_linear_js__WEBPACK_IMPORTED_MODULE_2__[\"linearish\"])(scale);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/radial.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/sequential.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-scale/src/sequential.js ***!
  \*************************************************/
/*! exports provided: copy, default, sequentialLog, sequentialSymlog, sequentialPow, sequentialSqrt */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"copy\", function() { return copy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return sequential; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequentialLog\", function() { return sequentialLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequentialSymlog\", function() { return sequentialSymlog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequentialPow\", function() { return sequentialPow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequentialSqrt\", function() { return sequentialSqrt; });\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/index.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _log_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./log.js */ \"./node_modules/d3-scale/src/log.js\");\n/* harmony import */ var _symlog_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symlog.js */ \"./node_modules/d3-scale/src/symlog.js\");\n/* harmony import */ var _pow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pow.js */ \"./node_modules/d3-scale/src/pow.js\");\n\n\n\n\n\n\n\n\nfunction transformer() {\n  var x0 = 0,\n      x1 = 1,\n      t0,\n      t1,\n      k10,\n      transform,\n      interpolator = _continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"],\n      clamp = false,\n      unknown;\n\n  function scale(x) {\n    return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n  };\n\n  scale.clamp = function(_) {\n    return arguments.length ? (clamp = !!_, scale) : clamp;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  function range(interpolate) {\n    return function(_) {\n      var r0, r1;\n      return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n    };\n  }\n\n  scale.range = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__[\"interpolate\"]);\n\n  scale.rangeRound = range(d3_interpolate__WEBPACK_IMPORTED_MODULE_0__[\"interpolateRound\"]);\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  return function(t) {\n    transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n    return scale;\n  };\n}\n\nfunction copy(source, target) {\n  return target\n      .domain(source.domain())\n      .interpolator(source.interpolator())\n      .clamp(source.clamp())\n      .unknown(source.unknown());\n}\n\nfunction sequential() {\n  var scale = Object(_linear_js__WEBPACK_IMPORTED_MODULE_3__[\"linearish\"])(transformer()(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]));\n\n  scale.copy = function() {\n    return copy(scale, sequential());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction sequentialLog() {\n  var scale = Object(_log_js__WEBPACK_IMPORTED_MODULE_4__[\"loggish\"])(transformer()).domain([1, 10]);\n\n  scale.copy = function() {\n    return copy(scale, sequentialLog()).base(scale.base());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction sequentialSymlog() {\n  var scale = Object(_symlog_js__WEBPACK_IMPORTED_MODULE_5__[\"symlogish\"])(transformer());\n\n  scale.copy = function() {\n    return copy(scale, sequentialSymlog()).constant(scale.constant());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction sequentialPow() {\n  var scale = Object(_pow_js__WEBPACK_IMPORTED_MODULE_6__[\"powish\"])(transformer());\n\n  scale.copy = function() {\n    return copy(scale, sequentialPow()).exponent(scale.exponent());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\nfunction sequentialSqrt() {\n  return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/sequential.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/sequentialQuantile.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-scale/src/sequentialQuantile.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return sequentialQuantile; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\n\nfunction sequentialQuantile() {\n  var domain = [],\n      interpolator = _continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"identity\"];\n\n  function scale(x) {\n    if (!isNaN(x = +x)) return interpolator((Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisect\"])(domain, x, 1) - 1) / (domain.length - 1));\n  }\n\n  scale.domain = function(_) {\n    if (!arguments.length) return domain.slice();\n    domain = [];\n    for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n    domain.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ascending\"]);\n    return scale;\n  };\n\n  scale.interpolator = function(_) {\n    return arguments.length ? (interpolator = _, scale) : interpolator;\n  };\n\n  scale.range = function() {\n    return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n  };\n\n  scale.quantiles = function(n) {\n    return Array.from({length: n + 1}, (_, i) => Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"quantile\"])(domain, i / n));\n  };\n\n  scale.copy = function() {\n    return sequentialQuantile(interpolator).domain(domain);\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initInterpolator\"].apply(scale, arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/sequentialQuantile.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/symlog.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-scale/src/symlog.js ***!
  \*********************************************/
/*! exports provided: symlogish, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"symlogish\", function() { return symlogish; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return symlog; });\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-scale/src/linear.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\n\nfunction transformSymlog(c) {\n  return function(x) {\n    return Math.sign(x) * Math.log1p(Math.abs(x / c));\n  };\n}\n\nfunction transformSymexp(c) {\n  return function(x) {\n    return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n  };\n}\n\nfunction symlogish(transform) {\n  var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n  scale.constant = function(_) {\n    return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n  };\n\n  return Object(_linear_js__WEBPACK_IMPORTED_MODULE_0__[\"linearish\"])(scale);\n}\n\nfunction symlog() {\n  var scale = symlogish(Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"transformer\"])());\n\n  scale.copy = function() {\n    return Object(_continuous_js__WEBPACK_IMPORTED_MODULE_1__[\"copy\"])(scale, symlog()).constant(scale.constant());\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_2__[\"initRange\"].apply(scale, arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/symlog.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/threshold.js":
/*!************************************************!*\
  !*** ./node_modules/d3-scale/src/threshold.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return threshold; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\nfunction threshold() {\n  var domain = [0.5],\n      range = [0, 1],\n      unknown,\n      n = 1;\n\n  function scale(x) {\n    return x <= x ? range[Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisect\"])(domain, x, 0, n)] : unknown;\n  }\n\n  scale.domain = function(_) {\n    return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n  };\n\n  scale.range = function(_) {\n    return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n  };\n\n  scale.invertExtent = function(y) {\n    var i = range.indexOf(y);\n    return [domain[i - 1], domain[i]];\n  };\n\n  scale.unknown = function(_) {\n    return arguments.length ? (unknown = _, scale) : unknown;\n  };\n\n  scale.copy = function() {\n    return threshold()\n        .domain(domain)\n        .range(range)\n        .unknown(unknown);\n  };\n\n  return _init_js__WEBPACK_IMPORTED_MODULE_1__[\"initRange\"].apply(scale, arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/threshold.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/tickFormat.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-scale/src/tickFormat.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return tickFormat; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/index.js\");\n\n\n\nfunction tickFormat(start, stop, count, specifier) {\n  var step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"tickStep\"])(start, stop, count),\n      precision;\n  specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"formatSpecifier\"])(specifier == null ? \",f\" : specifier);\n  switch (specifier.type) {\n    case \"s\": {\n      var value = Math.max(Math.abs(start), Math.abs(stop));\n      if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"precisionPrefix\"])(step, value))) specifier.precision = precision;\n      return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"formatPrefix\"])(specifier, value);\n    }\n    case \"\":\n    case \"e\":\n    case \"g\":\n    case \"p\":\n    case \"r\": {\n      if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"precisionRound\"])(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n      break;\n    }\n    case \"f\":\n    case \"%\": {\n      if (specifier.precision == null && !isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"precisionFixed\"])(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n      break;\n    }\n  }\n  return Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"format\"])(specifier);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/tickFormat.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/time.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-scale/src/time.js ***!
  \*******************************************/
/*! exports provided: calendar, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calendar\", function() { return calendar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return time; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time */ \"./node_modules/d3-time/src/index.js\");\n/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time-format */ \"./node_modules/d3-time-format/src/index.js\");\n/* harmony import */ var _continuous_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./continuous.js */ \"./node_modules/d3-scale/src/continuous.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n/* harmony import */ var _nice_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./nice.js */ \"./node_modules/d3-scale/src/nice.js\");\n\n\n\n\n\n\n\nvar durationSecond = 1000,\n    durationMinute = durationSecond * 60,\n    durationHour = durationMinute * 60,\n    durationDay = durationHour * 24,\n    durationWeek = durationDay * 7,\n    durationMonth = durationDay * 30,\n    durationYear = durationDay * 365;\n\nfunction date(t) {\n  return new Date(t);\n}\n\nfunction number(t) {\n  return t instanceof Date ? +t : +new Date(+t);\n}\n\nfunction calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n  var scale = Object(_continuous_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(),\n      invert = scale.invert,\n      domain = scale.domain;\n\n  var formatMillisecond = format(\".%L\"),\n      formatSecond = format(\":%S\"),\n      formatMinute = format(\"%I:%M\"),\n      formatHour = format(\"%I %p\"),\n      formatDay = format(\"%a %d\"),\n      formatWeek = format(\"%b %d\"),\n      formatMonth = format(\"%B\"),\n      formatYear = format(\"%Y\");\n\n  var tickIntervals = [\n    [second,  1,      durationSecond],\n    [second,  5,  5 * durationSecond],\n    [second, 15, 15 * durationSecond],\n    [second, 30, 30 * durationSecond],\n    [minute,  1,      durationMinute],\n    [minute,  5,  5 * durationMinute],\n    [minute, 15, 15 * durationMinute],\n    [minute, 30, 30 * durationMinute],\n    [  hour,  1,      durationHour  ],\n    [  hour,  3,  3 * durationHour  ],\n    [  hour,  6,  6 * durationHour  ],\n    [  hour, 12, 12 * durationHour  ],\n    [   day,  1,      durationDay   ],\n    [   day,  2,  2 * durationDay   ],\n    [  week,  1,      durationWeek  ],\n    [ month,  1,      durationMonth ],\n    [ month,  3,  3 * durationMonth ],\n    [  year,  1,      durationYear  ]\n  ];\n\n  function tickFormat(date) {\n    return (second(date) < date ? formatMillisecond\n        : minute(date) < date ? formatSecond\n        : hour(date) < date ? formatMinute\n        : day(date) < date ? formatHour\n        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n        : year(date) < date ? formatMonth\n        : formatYear)(date);\n  }\n\n  function tickInterval(interval, start, stop) {\n    if (interval == null) interval = 10;\n\n    // If a desired tick count is specified, pick a reasonable tick interval\n    // based on the extent of the domain and a rough estimate of tick size.\n    // Otherwise, assume interval is already a time interval and use it.\n    if (typeof interval === \"number\") {\n      var target = Math.abs(stop - start) / interval,\n          i = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisector\"])(function(i) { return i[2]; }).right(tickIntervals, target),\n          step;\n      if (i === tickIntervals.length) {\n        step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"tickStep\"])(start / durationYear, stop / durationYear, interval);\n        interval = year;\n      } else if (i) {\n        i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n        step = i[1];\n        interval = i[0];\n      } else {\n        step = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"tickStep\"])(start, stop, interval), 1);\n        interval = millisecond;\n      }\n      return interval.every(step);\n    }\n\n    return interval;\n  }\n\n  scale.invert = function(y) {\n    return new Date(invert(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n  };\n\n  scale.ticks = function(interval) {\n    var d = domain(),\n        t0 = d[0],\n        t1 = d[d.length - 1],\n        r = t1 < t0,\n        t;\n    if (r) t = t0, t0 = t1, t1 = t;\n    t = tickInterval(interval, t0, t1);\n    t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n    return r ? t.reverse() : t;\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return specifier == null ? tickFormat : format(specifier);\n  };\n\n  scale.nice = function(interval) {\n    var d = domain();\n    return (interval = tickInterval(interval, d[0], d[d.length - 1]))\n        ? domain(Object(_nice_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(d, interval))\n        : scale;\n  };\n\n  scale.copy = function() {\n    return Object(_continuous_js__WEBPACK_IMPORTED_MODULE_3__[\"copy\"])(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n  };\n\n  return scale;\n}\n\nfunction time() {\n  return _init_js__WEBPACK_IMPORTED_MODULE_4__[\"initRange\"].apply(calendar(d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeYear\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMonth\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeWeek\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeDay\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeHour\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMinute\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeSecond\"], d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMillisecond\"], d3_time_format__WEBPACK_IMPORTED_MODULE_2__[\"timeFormat\"]).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/time.js?");

/***/ }),

/***/ "./node_modules/d3-scale/src/utcTime.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-scale/src/utcTime.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return utcTime; });\n/* harmony import */ var _time_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./time.js */ \"./node_modules/d3-scale/src/time.js\");\n/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time-format */ \"./node_modules/d3-time-format/src/index.js\");\n/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-time */ \"./node_modules/d3-time/src/index.js\");\n/* harmony import */ var _init_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./init.js */ \"./node_modules/d3-scale/src/init.js\");\n\n\n\n\n\nfunction utcTime() {\n  return _init_js__WEBPACK_IMPORTED_MODULE_3__[\"initRange\"].apply(Object(_time_js__WEBPACK_IMPORTED_MODULE_0__[\"calendar\"])(d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcYear\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcMonth\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcWeek\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcDay\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcHour\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcMinute\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcSecond\"], d3_time__WEBPACK_IMPORTED_MODULE_2__[\"utcMillisecond\"], d3_time_format__WEBPACK_IMPORTED_MODULE_1__[\"utcFormat\"]).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-scale/src/utcTime.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/array.js":
/*!************************************************!*\
  !*** ./node_modules/d3-selection/src/array.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/array.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/constant.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-selection/src/constant.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return function() {\n    return x;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/create.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-selection/src/create.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./creator.js */ \"./node_modules/d3-selection/src/creator.js\");\n/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.js */ \"./node_modules/d3-selection/src/select.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name) {\n  return Object(_select_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Object(_creator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(name).call(document.documentElement));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/create.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/creator.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-selection/src/creator.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespace.js */ \"./node_modules/d3-selection/src/namespace.js\");\n/* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namespaces.js */ \"./node_modules/d3-selection/src/namespaces.js\");\n\n\n\nfunction creatorInherit(name) {\n  return function() {\n    var document = this.ownerDocument,\n        uri = this.namespaceURI;\n    return uri === _namespaces_js__WEBPACK_IMPORTED_MODULE_1__[\"xhtml\"] && document.documentElement.namespaceURI === _namespaces_js__WEBPACK_IMPORTED_MODULE_1__[\"xhtml\"]\n        ? document.createElement(name)\n        : document.createElementNS(uri, name);\n  };\n}\n\nfunction creatorFixed(fullname) {\n  return function() {\n    return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name) {\n  var fullname = Object(_namespace_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(name);\n  return (fullname.local\n      ? creatorFixed\n      : creatorInherit)(fullname);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/creator.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/index.js":
/*!************************************************!*\
  !*** ./node_modules/d3-selection/src/index.js ***!
  \************************************************/
/*! exports provided: create, creator, local, matcher, namespace, namespaces, pointer, pointers, select, selectAll, selection, selector, selectorAll, style, window */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _create_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create.js */ \"./node_modules/d3-selection/src/create.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"create\", function() { return _create_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./creator.js */ \"./node_modules/d3-selection/src/creator.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"creator\", function() { return _creator_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _local_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local.js */ \"./node_modules/d3-selection/src/local.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"local\", function() { return _local_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./matcher.js */ \"./node_modules/d3-selection/src/matcher.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"matcher\", function() { return _matcher_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./namespace.js */ \"./node_modules/d3-selection/src/namespace.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"namespace\", function() { return _namespace_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./namespaces.js */ \"./node_modules/d3-selection/src/namespaces.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"namespaces\", function() { return _namespaces_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _pointer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pointer.js */ \"./node_modules/d3-selection/src/pointer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointer\", function() { return _pointer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _pointers_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./pointers.js */ \"./node_modules/d3-selection/src/pointers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointers\", function() { return _pointers_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./select.js */ \"./node_modules/d3-selection/src/select.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"select\", function() { return _select_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectAll.js */ \"./node_modules/d3-selection/src/selectAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selectAll\", function() { return _selectAll_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selection/index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selection\", function() { return _selection_index_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selector.js */ \"./node_modules/d3-selection/src/selector.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selector\", function() { return _selector_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _selectorAll_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./selectorAll.js */ \"./node_modules/d3-selection/src/selectorAll.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"selectorAll\", function() { return _selectorAll_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _selection_style_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./selection/style.js */ \"./node_modules/d3-selection/src/selection/style.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"style\", function() { return _selection_style_js__WEBPACK_IMPORTED_MODULE_13__[\"styleValue\"]; });\n\n/* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./window.js */ \"./node_modules/d3-selection/src/window.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return _window_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/local.js":
/*!************************************************!*\
  !*** ./node_modules/d3-selection/src/local.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return local; });\nvar nextId = 0;\n\nfunction local() {\n  return new Local;\n}\n\nfunction Local() {\n  this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n  constructor: Local,\n  get: function(node) {\n    var id = this._;\n    while (!(id in node)) if (!(node = node.parentNode)) return;\n    return node[id];\n  },\n  set: function(node, value) {\n    return node[this._] = value;\n  },\n  remove: function(node) {\n    return this._ in node && delete node[this._];\n  },\n  toString: function() {\n    return this._;\n  }\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/local.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/matcher.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-selection/src/matcher.js ***!
  \**************************************************/
/*! exports provided: default, childMatcher */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"childMatcher\", function() { return childMatcher; });\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(selector) {\n  return function() {\n    return this.matches(selector);\n  };\n});\n\nfunction childMatcher(selector) {\n  return function(node) {\n    return node.matches(selector);\n  };\n}\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/matcher.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/namespace.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-selection/src/namespace.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _namespaces_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./namespaces.js */ \"./node_modules/d3-selection/src/namespaces.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name) {\n  var prefix = name += \"\", i = prefix.indexOf(\":\");\n  if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n  return _namespaces_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasOwnProperty(prefix) ? {space: _namespaces_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"][prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/namespace.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/namespaces.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-selection/src/namespaces.js ***!
  \*****************************************************/
/*! exports provided: xhtml, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"xhtml\", function() { return xhtml; });\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  svg: \"http://www.w3.org/2000/svg\",\n  xhtml: xhtml,\n  xlink: \"http://www.w3.org/1999/xlink\",\n  xml: \"http://www.w3.org/XML/1998/namespace\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/namespaces.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/pointer.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-selection/src/pointer.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sourceEvent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sourceEvent.js */ \"./node_modules/d3-selection/src/sourceEvent.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(event, node) {\n  event = Object(_sourceEvent_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(event);\n  if (node === undefined) node = event.currentTarget;\n  if (node) {\n    var svg = node.ownerSVGElement || node;\n    if (svg.createSVGPoint) {\n      var point = svg.createSVGPoint();\n      point.x = event.clientX, point.y = event.clientY;\n      point = point.matrixTransform(node.getScreenCTM().inverse());\n      return [point.x, point.y];\n    }\n    if (node.getBoundingClientRect) {\n      var rect = node.getBoundingClientRect();\n      return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n    }\n  }\n  return [event.pageX, event.pageY];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/pointer.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/pointers.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-selection/src/pointers.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _pointer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pointer.js */ \"./node_modules/d3-selection/src/pointer.js\");\n/* harmony import */ var _sourceEvent_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sourceEvent.js */ \"./node_modules/d3-selection/src/sourceEvent.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(events, node) {\n  if (events.target) { // i.e., instanceof Event, not TouchList or iterable\n    events = Object(_sourceEvent_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(events);\n    if (node === undefined) node = events.currentTarget;\n    events = events.touches || [events];\n  }\n  return Array.from(events, event => Object(_pointer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(event, node));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/pointers.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/select.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-selection/src/select.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./selection/index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(selector) {\n  return typeof selector === \"string\"\n      ? new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"]([[document.querySelector(selector)]], [document.documentElement])\n      : new _selection_index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"]([[selector]], _selection_index_js__WEBPACK_IMPORTED_MODULE_0__[\"root\"]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/select.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selectAll.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-selection/src/selectAll.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-selection/src/array.js\");\n/* harmony import */ var _selection_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selection/index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(selector) {\n  return typeof selector === \"string\"\n      ? new _selection_index_js__WEBPACK_IMPORTED_MODULE_1__[\"Selection\"]([document.querySelectorAll(selector)], [document.documentElement])\n      : new _selection_index_js__WEBPACK_IMPORTED_MODULE_1__[\"Selection\"]([selector == null ? [] : Object(_array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(selector)], _selection_index_js__WEBPACK_IMPORTED_MODULE_1__[\"root\"]);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selectAll.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/append.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/append.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator.js */ \"./node_modules/d3-selection/src/creator.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name) {\n  var create = typeof name === \"function\" ? name : Object(_creator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(name);\n  return this.select(function() {\n    return this.appendChild(create.apply(this, arguments));\n  });\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/append.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/attr.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/attr.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _namespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../namespace.js */ \"./node_modules/d3-selection/src/namespace.js\");\n\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, value) {\n  return function() {\n    this.setAttribute(name, value);\n  };\n}\n\nfunction attrConstantNS(fullname, value) {\n  return function() {\n    this.setAttributeNS(fullname.space, fullname.local, value);\n  };\n}\n\nfunction attrFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttribute(name);\n    else this.setAttribute(name, v);\n  };\n}\n\nfunction attrFunctionNS(fullname, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n    else this.setAttributeNS(fullname.space, fullname.local, v);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name, value) {\n  var fullname = Object(_namespace_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(name);\n\n  if (arguments.length < 2) {\n    var node = this.node();\n    return fullname.local\n        ? node.getAttributeNS(fullname.space, fullname.local)\n        : node.getAttribute(fullname);\n  }\n\n  return this.each((value == null\n      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)\n      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/attr.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/call.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/call.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var callback = arguments[0];\n  arguments[0] = this;\n  callback.apply(null, arguments);\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/call.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/classed.js":
/*!************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/classed.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction classArray(string) {\n  return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n  return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n  this._node = node;\n  this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n  add: function(name) {\n    var i = this._names.indexOf(name);\n    if (i < 0) {\n      this._names.push(name);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  remove: function(name) {\n    var i = this._names.indexOf(name);\n    if (i >= 0) {\n      this._names.splice(i, 1);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  contains: function(name) {\n    return this._names.indexOf(name) >= 0;\n  }\n};\n\nfunction classedAdd(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n  return function() {\n    classedAdd(this, names);\n  };\n}\n\nfunction classedFalse(names) {\n  return function() {\n    classedRemove(this, names);\n  };\n}\n\nfunction classedFunction(names, value) {\n  return function() {\n    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name, value) {\n  var names = classArray(name + \"\");\n\n  if (arguments.length < 2) {\n    var list = classList(this.node()), i = -1, n = names.length;\n    while (++i < n) if (!list.contains(names[i])) return false;\n    return true;\n  }\n\n  return this.each((typeof value === \"function\"\n      ? classedFunction : value\n      ? classedTrue\n      : classedFalse)(names, value));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/classed.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/clone.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/clone.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction selection_cloneShallow() {\n  var clone = this.cloneNode(false), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n  var clone = this.cloneNode(true), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(deep) {\n  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/clone.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/data.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/data.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n/* harmony import */ var _enter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./enter.js */ \"./node_modules/d3-selection/src/selection/enter.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../array.js */ \"./node_modules/d3-selection/src/array.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../constant.js */ \"./node_modules/d3-selection/src/constant.js\");\n\n\n\n\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n  var i = 0,\n      node,\n      groupLength = group.length,\n      dataLength = data.length;\n\n  // Put any non-null nodes that fit into update.\n  // Put any null nodes into enter.\n  // Put any remaining data into enter.\n  for (; i < dataLength; ++i) {\n    if (node = group[i]) {\n      node.__data__ = data[i];\n      update[i] = node;\n    } else {\n      enter[i] = new _enter_js__WEBPACK_IMPORTED_MODULE_1__[\"EnterNode\"](parent, data[i]);\n    }\n  }\n\n  // Put any non-null nodes that don’t fit into exit.\n  for (; i < groupLength; ++i) {\n    if (node = group[i]) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n  var i,\n      node,\n      nodeByKeyValue = new Map,\n      groupLength = group.length,\n      dataLength = data.length,\n      keyValues = new Array(groupLength),\n      keyValue;\n\n  // Compute the key for each node.\n  // If multiple nodes have the same key, the duplicates are added to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if (node = group[i]) {\n      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n      if (nodeByKeyValue.has(keyValue)) {\n        exit[i] = node;\n      } else {\n        nodeByKeyValue.set(keyValue, node);\n      }\n    }\n  }\n\n  // Compute the key for each datum.\n  // If there a node associated with this key, join and add it to update.\n  // If there is not (or the key is a duplicate), add it to enter.\n  for (i = 0; i < dataLength; ++i) {\n    keyValue = key.call(parent, data[i], i, data) + \"\";\n    if (node = nodeByKeyValue.get(keyValue)) {\n      update[i] = node;\n      node.__data__ = data[i];\n      nodeByKeyValue.delete(keyValue);\n    } else {\n      enter[i] = new _enter_js__WEBPACK_IMPORTED_MODULE_1__[\"EnterNode\"](parent, data[i]);\n    }\n  }\n\n  // Add any remaining nodes that were not bound to data to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction datum(node) {\n  return node.__data__;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(value, key) {\n  if (!arguments.length) return Array.from(this, datum);\n\n  var bind = key ? bindKey : bindIndex,\n      parents = this._parents,\n      groups = this._groups;\n\n  if (typeof value !== \"function\") value = Object(_constant_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value);\n\n  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n    var parent = parents[j],\n        group = groups[j],\n        groupLength = group.length,\n        data = Object(_array_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value.call(parent, parent && parent.__data__, j, parents)),\n        dataLength = data.length,\n        enterGroup = enter[j] = new Array(dataLength),\n        updateGroup = update[j] = new Array(dataLength),\n        exitGroup = exit[j] = new Array(groupLength);\n\n    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n    // Now connect the enter nodes to their following update node, such that\n    // appendChild can insert the materialized enter node before this node,\n    // rather than at the end of the parent node.\n    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n      if (previous = enterGroup[i0]) {\n        if (i0 >= i1) i1 = i0 + 1;\n        while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n        previous._next = next || null;\n      }\n    }\n  }\n\n  update = new _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"](update, parents);\n  update._enter = enter;\n  update._exit = exit;\n  return update;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/data.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/datum.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/datum.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(value) {\n  return arguments.length\n      ? this.property(\"__data__\", value)\n      : this.node().__data__;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/datum.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/dispatch.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/dispatch.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window.js */ \"./node_modules/d3-selection/src/window.js\");\n\n\nfunction dispatchEvent(node, type, params) {\n  var window = Object(_window_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node),\n      event = window.CustomEvent;\n\n  if (typeof event === \"function\") {\n    event = new event(type, params);\n  } else {\n    event = window.document.createEvent(\"Event\");\n    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n    else event.initEvent(type, false, false);\n  }\n\n  node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params);\n  };\n}\n\nfunction dispatchFunction(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params.apply(this, arguments));\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(type, params) {\n  return this.each((typeof params === \"function\"\n      ? dispatchFunction\n      : dispatchConstant)(type, params));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/dispatch.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/each.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/each.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback) {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) callback.call(node, node.__data__, i, group);\n    }\n  }\n\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/each.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/empty.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/empty.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return !this.node();\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/empty.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/enter.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/enter.js ***!
  \**********************************************************/
/*! exports provided: default, EnterNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EnterNode\", function() { return EnterNode; });\n/* harmony import */ var _sparse_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse.js */ \"./node_modules/d3-selection/src/selection/sparse.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return new _index_js__WEBPACK_IMPORTED_MODULE_1__[\"Selection\"](this._enter || this._groups.map(_sparse_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]), this._parents);\n});\n\nfunction EnterNode(parent, datum) {\n  this.ownerDocument = parent.ownerDocument;\n  this.namespaceURI = parent.namespaceURI;\n  this._next = null;\n  this._parent = parent;\n  this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n  constructor: EnterNode,\n  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n  querySelector: function(selector) { return this._parent.querySelector(selector); },\n  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/enter.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/exit.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/exit.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sparse_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sparse.js */ \"./node_modules/d3-selection/src/selection/sparse.js\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return new _index_js__WEBPACK_IMPORTED_MODULE_1__[\"Selection\"](this._exit || this._groups.map(_sparse_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]), this._parents);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/exit.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/filter.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/filter.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../matcher.js */ \"./node_modules/d3-selection/src/matcher.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(match) {\n  if (typeof match !== \"function\") match = Object(_matcher_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"](subgroups, this._parents);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/filter.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/html.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/html.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction htmlRemove() {\n  this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n  return function() {\n    this.innerHTML = value;\n  };\n}\n\nfunction htmlFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.innerHTML = v == null ? \"\" : v;\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? htmlRemove : (typeof value === \"function\"\n          ? htmlFunction\n          : htmlConstant)(value))\n      : this.node().innerHTML;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/html.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/index.js ***!
  \**********************************************************/
/*! exports provided: root, Selection, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"root\", function() { return root; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Selection\", function() { return Selection; });\n/* harmony import */ var _select_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select.js */ \"./node_modules/d3-selection/src/selection/select.js\");\n/* harmony import */ var _selectAll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectAll.js */ \"./node_modules/d3-selection/src/selection/selectAll.js\");\n/* harmony import */ var _selectChild_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./selectChild.js */ \"./node_modules/d3-selection/src/selection/selectChild.js\");\n/* harmony import */ var _selectChildren_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./selectChildren.js */ \"./node_modules/d3-selection/src/selection/selectChildren.js\");\n/* harmony import */ var _filter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./filter.js */ \"./node_modules/d3-selection/src/selection/filter.js\");\n/* harmony import */ var _data_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data.js */ \"./node_modules/d3-selection/src/selection/data.js\");\n/* harmony import */ var _enter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./enter.js */ \"./node_modules/d3-selection/src/selection/enter.js\");\n/* harmony import */ var _exit_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./exit.js */ \"./node_modules/d3-selection/src/selection/exit.js\");\n/* harmony import */ var _join_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./join.js */ \"./node_modules/d3-selection/src/selection/join.js\");\n/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./merge.js */ \"./node_modules/d3-selection/src/selection/merge.js\");\n/* harmony import */ var _order_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./order.js */ \"./node_modules/d3-selection/src/selection/order.js\");\n/* harmony import */ var _sort_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./sort.js */ \"./node_modules/d3-selection/src/selection/sort.js\");\n/* harmony import */ var _call_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./call.js */ \"./node_modules/d3-selection/src/selection/call.js\");\n/* harmony import */ var _nodes_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./nodes.js */ \"./node_modules/d3-selection/src/selection/nodes.js\");\n/* harmony import */ var _node_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./node.js */ \"./node_modules/d3-selection/src/selection/node.js\");\n/* harmony import */ var _size_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./size.js */ \"./node_modules/d3-selection/src/selection/size.js\");\n/* harmony import */ var _empty_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./empty.js */ \"./node_modules/d3-selection/src/selection/empty.js\");\n/* harmony import */ var _each_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./each.js */ \"./node_modules/d3-selection/src/selection/each.js\");\n/* harmony import */ var _attr_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./attr.js */ \"./node_modules/d3-selection/src/selection/attr.js\");\n/* harmony import */ var _style_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./style.js */ \"./node_modules/d3-selection/src/selection/style.js\");\n/* harmony import */ var _property_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./property.js */ \"./node_modules/d3-selection/src/selection/property.js\");\n/* harmony import */ var _classed_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./classed.js */ \"./node_modules/d3-selection/src/selection/classed.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./text.js */ \"./node_modules/d3-selection/src/selection/text.js\");\n/* harmony import */ var _html_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./html.js */ \"./node_modules/d3-selection/src/selection/html.js\");\n/* harmony import */ var _raise_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./raise.js */ \"./node_modules/d3-selection/src/selection/raise.js\");\n/* harmony import */ var _lower_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./lower.js */ \"./node_modules/d3-selection/src/selection/lower.js\");\n/* harmony import */ var _append_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./append.js */ \"./node_modules/d3-selection/src/selection/append.js\");\n/* harmony import */ var _insert_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./insert.js */ \"./node_modules/d3-selection/src/selection/insert.js\");\n/* harmony import */ var _remove_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./remove.js */ \"./node_modules/d3-selection/src/selection/remove.js\");\n/* harmony import */ var _clone_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./clone.js */ \"./node_modules/d3-selection/src/selection/clone.js\");\n/* harmony import */ var _datum_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./datum.js */ \"./node_modules/d3-selection/src/selection/datum.js\");\n/* harmony import */ var _on_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./on.js */ \"./node_modules/d3-selection/src/selection/on.js\");\n/* harmony import */ var _dispatch_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./dispatch.js */ \"./node_modules/d3-selection/src/selection/dispatch.js\");\n/* harmony import */ var _iterator_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./iterator.js */ \"./node_modules/d3-selection/src/selection/iterator.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar root = [null];\n\nfunction Selection(groups, parents) {\n  this._groups = groups;\n  this._parents = parents;\n}\n\nfunction selection() {\n  return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n  return this;\n}\n\nSelection.prototype = selection.prototype = {\n  constructor: Selection,\n  select: _select_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  selectAll: _selectAll_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  selectChild: _selectChild_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  selectChildren: _selectChildren_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  filter: _filter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  data: _data_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  enter: _enter_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  exit: _exit_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n  join: _join_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n  merge: _merge_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n  selection: selection_selection,\n  order: _order_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n  sort: _sort_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n  call: _call_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n  nodes: _nodes_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n  node: _node_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n  size: _size_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n  empty: _empty_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n  each: _each_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n  attr: _attr_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n  style: _style_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n  property: _property_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n  classed: _classed_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n  text: _text_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n  html: _html_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"],\n  raise: _raise_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n  lower: _lower_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"],\n  append: _append_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"],\n  insert: _insert_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"],\n  remove: _remove_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"],\n  clone: _clone_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"],\n  datum: _datum_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"],\n  on: _on_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"],\n  dispatch: _dispatch_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"],\n  [Symbol.iterator]: _iterator_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (selection);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/index.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/insert.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/insert.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _creator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../creator.js */ \"./node_modules/d3-selection/src/creator.js\");\n/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector.js */ \"./node_modules/d3-selection/src/selector.js\");\n\n\n\nfunction constantNull() {\n  return null;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name, before) {\n  var create = typeof name === \"function\" ? name : Object(_creator_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(name),\n      select = before == null ? constantNull : typeof before === \"function\" ? before : Object(_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(before);\n  return this.select(function() {\n    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n  });\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/insert.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/iterator.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/iterator.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function*() {\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) yield node;\n    }\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/iterator.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/join.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/join.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(onenter, onupdate, onexit) {\n  var enter = this.enter(), update = this, exit = this.exit();\n  enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n  if (onupdate != null) update = onupdate(update);\n  if (onexit == null) exit.remove(); else onexit(exit);\n  return enter && update ? enter.merge(update).order() : update;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/join.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/lower.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/lower.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction lower() {\n  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return this.each(lower);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/lower.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/merge.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/merge.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(selection) {\n  if (!(selection instanceof _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"])) throw new Error(\"invalid merge\");\n\n  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"](merges, this._parents);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/merge.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/node.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/node.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n      var node = group[i];\n      if (node) return node;\n    }\n  }\n\n  return null;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/node.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/nodes.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/nodes.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return Array.from(this);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/nodes.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/on.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/on.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction contextListener(listener) {\n  return function(event) {\n    listener.call(this, event, this.__data__);\n  };\n}\n\nfunction parseTypenames(typenames) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    return {type: t, name: name};\n  });\n}\n\nfunction onRemove(typename) {\n  return function() {\n    var on = this.__on;\n    if (!on) return;\n    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n      } else {\n        on[++i] = o;\n      }\n    }\n    if (++i) on.length = i;\n    else delete this.__on;\n  };\n}\n\nfunction onAdd(typename, value, options) {\n  return function() {\n    var on = this.__on, o, listener = contextListener(value);\n    if (on) for (var j = 0, m = on.length; j < m; ++j) {\n      if ((o = on[j]).type === typename.type && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n        this.addEventListener(o.type, o.listener = listener, o.options = options);\n        o.value = value;\n        return;\n      }\n    }\n    this.addEventListener(typename.type, listener, options);\n    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n    if (!on) this.__on = [o];\n    else on.push(o);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(typename, value, options) {\n  var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n  if (arguments.length < 2) {\n    var on = this.node().__on;\n    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n      for (i = 0, o = on[j]; i < n; ++i) {\n        if ((t = typenames[i]).type === o.type && t.name === o.name) {\n          return o.value;\n        }\n      }\n    }\n    return;\n  }\n\n  on = value ? onAdd : onRemove;\n  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/on.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/order.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/order.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n\n  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n      if (node = group[i]) {\n        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n        next = node;\n      }\n    }\n  }\n\n  return this;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/order.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/property.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/property.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction propertyRemove(name) {\n  return function() {\n    delete this[name];\n  };\n}\n\nfunction propertyConstant(name, value) {\n  return function() {\n    this[name] = value;\n  };\n}\n\nfunction propertyFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) delete this[name];\n    else this[name] = v;\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name, value) {\n  return arguments.length > 1\n      ? this.each((value == null\n          ? propertyRemove : typeof value === \"function\"\n          ? propertyFunction\n          : propertyConstant)(name, value))\n      : this.node()[name];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/property.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/raise.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/raise.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction raise() {\n  if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return this.each(raise);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/raise.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/remove.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/remove.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction remove() {\n  var parent = this.parentNode;\n  if (parent) parent.removeChild(this);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return this.each(remove);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/remove.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/select.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/select.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n/* harmony import */ var _selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selector.js */ \"./node_modules/d3-selection/src/selector.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(select) {\n  if (typeof select !== \"function\") select = Object(_selector_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n      }\n    }\n  }\n\n  return new _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"](subgroups, this._parents);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/select.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/selectAll.js":
/*!**************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/selectAll.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array.js */ \"./node_modules/d3-selection/src/array.js\");\n/* harmony import */ var _selectorAll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectorAll.js */ \"./node_modules/d3-selection/src/selectorAll.js\");\n\n\n\n\nfunction arrayAll(select) {\n  return function() {\n    var group = select.apply(this, arguments);\n    return group == null ? [] : Object(_array_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(group);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(select) {\n  if (typeof select === \"function\") select = arrayAll(select);\n  else select = Object(_selectorAll_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        subgroups.push(select.call(node, node.__data__, i, group));\n        parents.push(node);\n      }\n    }\n  }\n\n  return new _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"](subgroups, parents);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/selectAll.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/selectChild.js":
/*!****************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/selectChild.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../matcher.js */ \"./node_modules/d3-selection/src/matcher.js\");\n\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n  return function() {\n    return find.call(this.children, match);\n  };\n}\n\nfunction childFirst() {\n  return this.firstElementChild;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(match) {\n  return this.select(match == null ? childFirst\n      : childFind(typeof match === \"function\" ? match : Object(_matcher_js__WEBPACK_IMPORTED_MODULE_0__[\"childMatcher\"])(match)));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/selectChild.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/selectChildren.js":
/*!*******************************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/selectChildren.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _matcher_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../matcher.js */ \"./node_modules/d3-selection/src/matcher.js\");\n\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n  return this.children;\n}\n\nfunction childrenFilter(match) {\n  return function() {\n    return filter.call(this.children, match);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(match) {\n  return this.selectAll(match == null ? children\n      : childrenFilter(typeof match === \"function\" ? match : Object(_matcher_js__WEBPACK_IMPORTED_MODULE_0__[\"childMatcher\"])(match)));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/selectChildren.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/size.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/size.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  let size = 0;\n  for (const node of this) ++size; // eslint-disable-line no-unused-vars\n  return size;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/size.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/sort.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/sort.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./node_modules/d3-selection/src/selection/index.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(compare) {\n  if (!compare) compare = ascending;\n\n  function compareNode(a, b) {\n    return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n  }\n\n  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        sortgroup[i] = node;\n      }\n    }\n    sortgroup.sort(compareNode);\n  }\n\n  return new _index_js__WEBPACK_IMPORTED_MODULE_0__[\"Selection\"](sortgroups, this._parents).order();\n});\n\nfunction ascending(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/sort.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/sparse.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/sparse.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(update) {\n  return new Array(update.length);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/sparse.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/style.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/style.js ***!
  \**********************************************************/
/*! exports provided: default, styleValue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"styleValue\", function() { return styleValue; });\n/* harmony import */ var _window_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../window.js */ \"./node_modules/d3-selection/src/window.js\");\n\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, value, priority) {\n  return function() {\n    this.style.setProperty(name, value, priority);\n  };\n}\n\nfunction styleFunction(name, value, priority) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.style.removeProperty(name);\n    else this.style.setProperty(name, v, priority);\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(name, value, priority) {\n  return arguments.length > 1\n      ? this.each((value == null\n            ? styleRemove : typeof value === \"function\"\n            ? styleFunction\n            : styleConstant)(name, value, priority == null ? \"\" : priority))\n      : styleValue(this.node(), name);\n});\n\nfunction styleValue(node, name) {\n  return node.style.getPropertyValue(name)\n      || Object(_window_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/style.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selection/text.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-selection/src/selection/text.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction textRemove() {\n  this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.textContent = v == null ? \"\" : v;\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? textRemove : (typeof value === \"function\"\n          ? textFunction\n          : textConstant)(value))\n      : this.node().textContent;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selection/text.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selector.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-selection/src/selector.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction none() {}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(selector) {\n  return selector == null ? none : function() {\n    return this.querySelector(selector);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selector.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/selectorAll.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-selection/src/selectorAll.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction empty() {\n  return [];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(selector) {\n  return selector == null ? empty : function() {\n    return this.querySelectorAll(selector);\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/selectorAll.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/sourceEvent.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-selection/src/sourceEvent.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(event) {\n  let sourceEvent;\n  while (sourceEvent = event.sourceEvent) event = sourceEvent;\n  return event;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/sourceEvent.js?");

/***/ }),

/***/ "./node_modules/d3-selection/src/window.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-selection/src/window.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(node) {\n  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n      || (node.document && node) // node is a Window\n      || node.defaultView; // node is a Document\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-selection/src/window.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/arc.js":
/*!******************************************!*\
  !*** ./node_modules/d3-shape/src/arc.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ \"./node_modules/d3-path/src/index.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-shape/src/math.js\");\n\n\n\n\nfunction arcInnerRadius(d) {\n  return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n  return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n  return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n  return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n  return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n  var x10 = x1 - x0, y10 = y1 - y0,\n      x32 = x3 - x2, y32 = y3 - y2,\n      t = y32 * x10 - x32 * y10;\n  if (t * t < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) return;\n  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n  return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n  var x01 = x0 - x1,\n      y01 = y0 - y1,\n      lo = (cw ? rc : -rc) / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(x01 * x01 + y01 * y01),\n      ox = lo * y01,\n      oy = -lo * x01,\n      x11 = x0 + ox,\n      y11 = y0 + oy,\n      x10 = x1 + ox,\n      y10 = y1 + oy,\n      x00 = (x11 + x10) / 2,\n      y00 = (y11 + y10) / 2,\n      dx = x10 - x11,\n      dy = y10 - y11,\n      d2 = dx * dx + dy * dy,\n      r = r1 - rc,\n      D = x11 * y10 - x10 * y11,\n      d = (dy < 0 ? -1 : 1) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"max\"])(0, r * r * d2 - D * D)),\n      cx0 = (D * dy - dx * d) / d2,\n      cy0 = (-D * dx - dy * d) / d2,\n      cx1 = (D * dy + dx * d) / d2,\n      cy1 = (-D * dx + dy * d) / d2,\n      dx0 = cx0 - x00,\n      dy0 = cy0 - y00,\n      dx1 = cx1 - x00,\n      dy1 = cy1 - y00;\n\n  // Pick the closer of the two intersection points.\n  // TODO Is there a faster way to determine which intersection to use?\n  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n  return {\n    cx: cx0,\n    cy: cy0,\n    x01: -ox,\n    y01: -oy,\n    x11: cx0 * (r1 / r - 1),\n    y11: cy0 * (r1 / r - 1)\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var innerRadius = arcInnerRadius,\n      outerRadius = arcOuterRadius,\n      cornerRadius = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(0),\n      padRadius = null,\n      startAngle = arcStartAngle,\n      endAngle = arcEndAngle,\n      padAngle = arcPadAngle,\n      context = null;\n\n  function arc() {\n    var buffer,\n        r,\n        r0 = +innerRadius.apply(this, arguments),\n        r1 = +outerRadius.apply(this, arguments),\n        a0 = startAngle.apply(this, arguments) - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"],\n        a1 = endAngle.apply(this, arguments) - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"halfPi\"],\n        da = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(a1 - a0),\n        cw = a1 > a0;\n\n    if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__[\"path\"])();\n\n    // Ensure that the outer radius is always larger than the inner radius.\n    if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n    // Is it a point?\n    if (!(r1 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"])) context.moveTo(0, 0);\n\n    // Or is it a circle or annulus?\n    else if (da > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"tau\"] - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) {\n      context.moveTo(r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a0), r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a0));\n      context.arc(0, 0, r1, a0, a1, !cw);\n      if (r0 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) {\n        context.moveTo(r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a1), r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a1));\n        context.arc(0, 0, r0, a1, a0, cw);\n      }\n    }\n\n    // Or is it a circular or annular sector?\n    else {\n      var a01 = a0,\n          a11 = a1,\n          a00 = a0,\n          a10 = a1,\n          da0 = da,\n          da1 = da,\n          ap = padAngle.apply(this, arguments) / 2,\n          rp = (ap > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) && (padRadius ? +padRadius.apply(this, arguments) : Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(r0 * r0 + r1 * r1)),\n          rc = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"min\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"abs\"])(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n          rc0 = rc,\n          rc1 = rc,\n          t0,\n          t1;\n\n      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n      if (rp > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) {\n        var p0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"asin\"])(rp / r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(ap)),\n            p1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"asin\"])(rp / r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(ap));\n        if ((da0 -= p0 * 2) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n        else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n        if ((da1 -= p1 * 2) > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n        else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n      }\n\n      var x01 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a01),\n          y01 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a01),\n          x10 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a10),\n          y10 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a10);\n\n      // Apply rounded corners?\n      if (rc > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) {\n        var x11 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a11),\n            y11 = r1 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a11),\n            x00 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a00),\n            y00 = r0 * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a00),\n            oc;\n\n        // Restrict the corner radius according to the sector angle.\n        if (da < _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n          var ax = x01 - oc[0],\n              ay = y01 - oc[1],\n              bx = x11 - oc[0],\n              by = y11 - oc[1],\n              kc = 1 / Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"acos\"])((ax * bx + ay * by) / (Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(ax * ax + ay * ay) * Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(bx * bx + by * by))) / 2),\n              lc = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sqrt\"])(oc[0] * oc[0] + oc[1] * oc[1]);\n          rc0 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"min\"])(rc, (r0 - lc) / (kc - 1));\n          rc1 = Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"min\"])(rc, (r1 - lc) / (kc + 1));\n        }\n      }\n\n      // Is the sector collapsed to a line?\n      if (!(da1 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"])) context.moveTo(x01, y01);\n\n      // Does the sector’s outer ring have rounded corners?\n      else if (rc1 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) {\n        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n        // Have the corners merged?\n        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.y01, t1.x01), !cw);\n\n        // Otherwise, draw the two corners and the ring.\n        else {\n          context.arc(t0.cx, t0.cy, rc1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.y11, t0.x11), !cw);\n          context.arc(0, 0, r1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.cy + t0.y11, t0.cx + t0.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n          context.arc(t1.cx, t1.cy, rc1, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.y11, t1.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.y01, t1.x01), !cw);\n        }\n      }\n\n      // Or is the outer ring just a circular arc?\n      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n      // Is there no inner ring, and it’s a circular sector?\n      // Or perhaps it’s an annular sector collapsed due to padding?\n      if (!(r0 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) || !(da0 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"])) context.lineTo(x10, y10);\n\n      // Does the sector’s inner ring (or point) have rounded corners?\n      else if (rc0 > _math_js__WEBPACK_IMPORTED_MODULE_2__[\"epsilon\"]) {\n        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n        // Have the corners merged?\n        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.y01, t1.x01), !cw);\n\n        // Otherwise, draw the two corners and the ring.\n        else {\n          context.arc(t0.cx, t0.cy, rc0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.y01, t0.x01), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.y11, t0.x11), !cw);\n          context.arc(0, 0, r0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t0.cy + t0.y11, t0.cx + t0.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n          context.arc(t1.cx, t1.cy, rc0, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.y11, t1.x11), Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"atan2\"])(t1.y01, t1.x01), !cw);\n        }\n      }\n\n      // Or is the inner ring just a circular arc?\n      else context.arc(0, 0, r0, a10, a00, cw);\n    }\n\n    context.closePath();\n\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  arc.centroid = function() {\n    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - _math_js__WEBPACK_IMPORTED_MODULE_2__[\"pi\"] / 2;\n    return [Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"cos\"])(a) * r, Object(_math_js__WEBPACK_IMPORTED_MODULE_2__[\"sin\"])(a) * r];\n  };\n\n  arc.innerRadius = function(_) {\n    return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : innerRadius;\n  };\n\n  arc.outerRadius = function(_) {\n    return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : outerRadius;\n  };\n\n  arc.cornerRadius = function(_) {\n    return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : cornerRadius;\n  };\n\n  arc.padRadius = function(_) {\n    return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : padRadius;\n  };\n\n  arc.startAngle = function(_) {\n    return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : startAngle;\n  };\n\n  arc.endAngle = function(_) {\n    return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : endAngle;\n  };\n\n  arc.padAngle = function(_) {\n    return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), arc) : padAngle;\n  };\n\n  arc.context = function(_) {\n    return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n  };\n\n  return arc;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/arc.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/area.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-shape/src/area.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ \"./node_modules/d3-path/src/index.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-shape/src/array.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./curve/linear.js */ \"./node_modules/d3-shape/src/curve/linear.js\");\n/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./line.js */ \"./node_modules/d3-shape/src/line.js\");\n/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./point.js */ \"./node_modules/d3-shape/src/point.js\");\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x0, y0, y1) {\n  var x1 = null,\n      defined = Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(true),\n      context = null,\n      curve = _curve_linear_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n      output = null;\n\n  x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_5__[\"x\"] : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+x0);\n  y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(0) : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+y0);\n  y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_5__[\"y\"] : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+y1);\n\n  function area(data) {\n    var i,\n        j,\n        k,\n        n = (data = Object(_array_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(data)).length,\n        d,\n        defined0 = false,\n        buffer,\n        x0z = new Array(n),\n        y0z = new Array(n);\n\n    if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__[\"path\"])());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) {\n          j = i;\n          output.areaStart();\n          output.lineStart();\n        } else {\n          output.lineEnd();\n          output.lineStart();\n          for (k = i - 1; k >= j; --k) {\n            output.point(x0z[k], y0z[k]);\n          }\n          output.lineEnd();\n          output.areaEnd();\n        }\n      }\n      if (defined0) {\n        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n      }\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  function arealine() {\n    return Object(_line_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])().defined(defined).curve(curve).context(context);\n  }\n\n  area.x = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), x1 = null, area) : x0;\n  };\n\n  area.x0 = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), area) : x0;\n  };\n\n  area.x1 = function(_) {\n    return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), area) : x1;\n  };\n\n  area.y = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), y1 = null, area) : y0;\n  };\n\n  area.y0 = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), area) : y0;\n  };\n\n  area.y1 = function(_) {\n    return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), area) : y1;\n  };\n\n  area.lineX0 =\n  area.lineY0 = function() {\n    return arealine().x(x0).y(y0);\n  };\n\n  area.lineY1 = function() {\n    return arealine().x(x0).y(y1);\n  };\n\n  area.lineX1 = function() {\n    return arealine().x(x1).y(y0);\n  };\n\n  area.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(!!_), area) : defined;\n  };\n\n  area.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n  };\n\n  area.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n  };\n\n  return area;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/area.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/areaRadial.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/areaRadial.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _curve_radial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial.js */ \"./node_modules/d3-shape/src/curve/radial.js\");\n/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ \"./node_modules/d3-shape/src/area.js\");\n/* harmony import */ var _lineRadial_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lineRadial.js */ \"./node_modules/d3-shape/src/lineRadial.js\");\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var a = Object(_area_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])().curve(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__[\"curveRadialLinear\"]),\n      c = a.curve,\n      x0 = a.lineX0,\n      x1 = a.lineX1,\n      y0 = a.lineY0,\n      y1 = a.lineY1;\n\n  a.angle = a.x, delete a.x;\n  a.startAngle = a.x0, delete a.x0;\n  a.endAngle = a.x1, delete a.x1;\n  a.radius = a.y, delete a.y;\n  a.innerRadius = a.y0, delete a.y0;\n  a.outerRadius = a.y1, delete a.y1;\n  a.lineStartAngle = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__[\"lineRadial\"])(x0()); }, delete a.lineX0;\n  a.lineEndAngle = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__[\"lineRadial\"])(x1()); }, delete a.lineX1;\n  a.lineInnerRadius = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__[\"lineRadial\"])(y0()); }, delete a.lineY0;\n  a.lineOuterRadius = function() { return Object(_lineRadial_js__WEBPACK_IMPORTED_MODULE_2__[\"lineRadial\"])(y1()); }, delete a.lineY1;\n\n  a.curve = function(_) {\n    return arguments.length ? c(Object(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_)) : c()._curve;\n  };\n\n  return a;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/areaRadial.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/array.js":
/*!********************************************!*\
  !*** ./node_modules/d3-shape/src/array.js ***!
  \********************************************/
/*! exports provided: slice, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return slice; });\nvar slice = Array.prototype.slice;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/array.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/constant.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-shape/src/constant.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return function constant() {\n    return x;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/constant.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/basis.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/basis.js ***!
  \**************************************************/
/*! exports provided: point, Basis, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return point; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Basis\", function() { return Basis; });\nfunction point(that, x, y) {\n  that._context.bezierCurveTo(\n    (2 * that._x0 + that._x1) / 3,\n    (2 * that._y0 + that._y1) / 3,\n    (that._x0 + 2 * that._x1) / 3,\n    (that._y0 + 2 * that._y1) / 3,\n    (that._x0 + 4 * that._x1 + x) / 6,\n    (that._y0 + 4 * that._y1 + y) / 6\n  );\n}\n\nfunction Basis(context) {\n  this._context = context;\n}\n\nBasis.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 3: point(this, this._x1, this._y1); // proceed\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new Basis(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/basis.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/basisClosed.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/basisClosed.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-shape/src/noop.js\");\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-shape/src/curve/basis.js\");\n\n\n\nfunction BasisClosed(context) {\n  this._context = context;\n}\n\nBasisClosed.prototype = {\n  areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x2, this._y2);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x2, this._y2);\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n      default: Object(_basis_js__WEBPACK_IMPORTED_MODULE_1__[\"point\"])(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new BasisClosed(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/basisClosed.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/basisOpen.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/basisOpen.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-shape/src/curve/basis.js\");\n\n\nfunction BasisOpen(context) {\n  this._context = context;\n}\n\nBasisOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n      case 3: this._point = 4; // proceed\n      default: Object(_basis_js__WEBPACK_IMPORTED_MODULE_0__[\"point\"])(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new BasisOpen(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/basisOpen.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/bundle.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/bundle.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _basis_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./basis.js */ \"./node_modules/d3-shape/src/curve/basis.js\");\n\n\nfunction Bundle(context, beta) {\n  this._basis = new _basis_js__WEBPACK_IMPORTED_MODULE_0__[\"Basis\"](context);\n  this._beta = beta;\n}\n\nBundle.prototype = {\n  lineStart: function() {\n    this._x = [];\n    this._y = [];\n    this._basis.lineStart();\n  },\n  lineEnd: function() {\n    var x = this._x,\n        y = this._y,\n        j = x.length - 1;\n\n    if (j > 0) {\n      var x0 = x[0],\n          y0 = y[0],\n          dx = x[j] - x0,\n          dy = y[j] - y0,\n          i = -1,\n          t;\n\n      while (++i <= j) {\n        t = i / j;\n        this._basis.point(\n          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n        );\n      }\n    }\n\n    this._x = this._y = null;\n    this._basis.lineEnd();\n  },\n  point: function(x, y) {\n    this._x.push(+x);\n    this._y.push(+y);\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(beta) {\n\n  function bundle(context) {\n    return beta === 1 ? new _basis_js__WEBPACK_IMPORTED_MODULE_0__[\"Basis\"](context) : new Bundle(context, beta);\n  }\n\n  bundle.beta = function(beta) {\n    return custom(+beta);\n  };\n\n  return bundle;\n})(0.85));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/bundle.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/cardinal.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/cardinal.js ***!
  \*****************************************************/
/*! exports provided: point, Cardinal, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return point; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Cardinal\", function() { return Cardinal; });\nfunction point(that, x, y) {\n  that._context.bezierCurveTo(\n    that._x1 + that._k * (that._x2 - that._x0),\n    that._y1 + that._k * (that._y2 - that._y0),\n    that._x2 + that._k * (that._x1 - x),\n    that._y2 + that._k * (that._y1 - y),\n    that._x2,\n    that._y2\n  );\n}\n\nfunction Cardinal(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x2, this._y2); break;\n      case 3: point(this, this._x1, this._y1); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n      case 2: this._point = 3; // proceed\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(tension) {\n\n  function cardinal(context) {\n    return new Cardinal(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/cardinal.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/cardinalClosed.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/cardinalClosed.js ***!
  \***********************************************************/
/*! exports provided: CardinalClosed, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CardinalClosed\", function() { return CardinalClosed; });\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-shape/src/noop.js\");\n/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal.js */ \"./node_modules/d3-shape/src/curve/cardinal.js\");\n\n\n\nfunction CardinalClosed(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n  areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.lineTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        this.point(this._x5, this._y5);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n      default: Object(_cardinal_js__WEBPACK_IMPORTED_MODULE_1__[\"point\"])(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(tension) {\n\n  function cardinal(context) {\n    return new CardinalClosed(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/cardinalClosed.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/cardinalOpen.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/cardinalOpen.js ***!
  \*********************************************************/
/*! exports provided: CardinalOpen, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CardinalOpen\", function() { return CardinalOpen; });\n/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinal.js */ \"./node_modules/d3-shape/src/curve/cardinal.js\");\n\n\nfunction CardinalOpen(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n      case 3: this._point = 4; // proceed\n      default: Object(_cardinal_js__WEBPACK_IMPORTED_MODULE_0__[\"point\"])(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(tension) {\n\n  function cardinal(context) {\n    return new CardinalOpen(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/cardinalOpen.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/catmullRom.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/catmullRom.js ***!
  \*******************************************************/
/*! exports provided: point, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return point; });\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-shape/src/math.js\");\n/* harmony import */ var _cardinal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cardinal.js */ \"./node_modules/d3-shape/src/curve/cardinal.js\");\n\n\n\nfunction point(that, x, y) {\n  var x1 = that._x1,\n      y1 = that._y1,\n      x2 = that._x2,\n      y2 = that._y2;\n\n  if (that._l01_a > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) {\n    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n        n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n  }\n\n  if (that._l23_a > _math_js__WEBPACK_IMPORTED_MODULE_0__[\"epsilon\"]) {\n    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n        m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n  }\n\n  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n  this._context = context;\n  this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._l01_a = this._l12_a = this._l23_a =\n    this._l01_2a = this._l12_2a = this._l23_2a =\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x2, this._y2); break;\n      case 3: this.point(this._x2, this._y2); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n\n    if (this._point) {\n      var x23 = this._x2 - x,\n          y23 = this._y2 - y;\n      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n    }\n\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; // proceed\n      default: point(this, x, y); break;\n    }\n\n    this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(alpha) {\n\n  function catmullRom(context) {\n    return alpha ? new CatmullRom(context, alpha) : new _cardinal_js__WEBPACK_IMPORTED_MODULE_1__[\"Cardinal\"](context, 0);\n  }\n\n  catmullRom.alpha = function(alpha) {\n    return custom(+alpha);\n  };\n\n  return catmullRom;\n})(0.5));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/catmullRom.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/catmullRomClosed.js":
/*!*************************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/catmullRomClosed.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cardinalClosed_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalClosed.js */ \"./node_modules/d3-shape/src/curve/cardinalClosed.js\");\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-shape/src/noop.js\");\n/* harmony import */ var _catmullRom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./catmullRom.js */ \"./node_modules/d3-shape/src/curve/catmullRom.js\");\n\n\n\n\nfunction CatmullRomClosed(context, alpha) {\n  this._context = context;\n  this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n  areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n    this._l01_a = this._l12_a = this._l23_a =\n    this._l01_2a = this._l12_2a = this._l23_2a =\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.lineTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        this.point(this._x5, this._y5);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n\n    if (this._point) {\n      var x23 = this._x2 - x,\n          y23 = this._y2 - y;\n      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n    }\n\n    switch (this._point) {\n      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n      default: Object(_catmullRom_js__WEBPACK_IMPORTED_MODULE_2__[\"point\"])(this, x, y); break;\n    }\n\n    this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(alpha) {\n\n  function catmullRom(context) {\n    return alpha ? new CatmullRomClosed(context, alpha) : new _cardinalClosed_js__WEBPACK_IMPORTED_MODULE_0__[\"CardinalClosed\"](context, 0);\n  }\n\n  catmullRom.alpha = function(alpha) {\n    return custom(+alpha);\n  };\n\n  return catmullRom;\n})(0.5));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/catmullRomClosed.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/catmullRomOpen.js":
/*!***********************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/catmullRomOpen.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _cardinalOpen_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cardinalOpen.js */ \"./node_modules/d3-shape/src/curve/cardinalOpen.js\");\n/* harmony import */ var _catmullRom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./catmullRom.js */ \"./node_modules/d3-shape/src/curve/catmullRom.js\");\n\n\n\nfunction CatmullRomOpen(context, alpha) {\n  this._context = context;\n  this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._l01_a = this._l12_a = this._l23_a =\n    this._l01_2a = this._l12_2a = this._l23_2a =\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n\n    if (this._point) {\n      var x23 = this._x2 - x,\n          y23 = this._y2 - y;\n      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n    }\n\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n      case 3: this._point = 4; // proceed\n      default: Object(_catmullRom_js__WEBPACK_IMPORTED_MODULE_1__[\"point\"])(this, x, y); break;\n    }\n\n    this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ((function custom(alpha) {\n\n  function catmullRom(context) {\n    return alpha ? new CatmullRomOpen(context, alpha) : new _cardinalOpen_js__WEBPACK_IMPORTED_MODULE_0__[\"CardinalOpen\"](context, 0);\n  }\n\n  catmullRom.alpha = function(alpha) {\n    return custom(+alpha);\n  };\n\n  return catmullRom;\n})(0.5));\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/catmullRomOpen.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/linear.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/linear.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction Linear(context) {\n  this._context = context;\n}\n\nLinear.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // proceed\n      default: this._context.lineTo(x, y); break;\n    }\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new Linear(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/linear.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/linearClosed.js":
/*!*********************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/linearClosed.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _noop_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.js */ \"./node_modules/d3-shape/src/noop.js\");\n\n\nfunction LinearClosed(context) {\n  this._context = context;\n}\n\nLinearClosed.prototype = {\n  areaStart: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  areaEnd: _noop_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._point) this._context.closePath();\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    if (this._point) this._context.lineTo(x, y);\n    else this._point = 1, this._context.moveTo(x, y);\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new LinearClosed(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/linearClosed.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/monotone.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/monotone.js ***!
  \*****************************************************/
/*! exports provided: monotoneX, monotoneY */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monotoneX\", function() { return monotoneX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monotoneY\", function() { return monotoneY; });\nfunction sign(x) {\n  return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n  var h0 = that._x1 - that._x0,\n      h1 = x2 - that._x1,\n      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n      p = (s0 * h1 + s1 * h0) / (h0 + h1);\n  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n  var h = that._x1 - that._x0;\n  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n  var x0 = that._x0,\n      y0 = that._y0,\n      x1 = that._x1,\n      y1 = that._y1,\n      dx = (x1 - x0) / 3;\n  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n  this._context = context;\n}\n\nMonotoneX.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 =\n    this._t0 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n      case 3: point(this, this._t0, slope2(this, this._t0)); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    var t1 = NaN;\n\n    x = +x, y = +y;\n    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n      default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n    }\n\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n    this._t0 = t1;\n  }\n}\n\nfunction MonotoneY(context) {\n  this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n  MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n  this._context = context;\n}\n\nReflectContext.prototype = {\n  moveTo: function(x, y) { this._context.moveTo(y, x); },\n  closePath: function() { this._context.closePath(); },\n  lineTo: function(x, y) { this._context.lineTo(y, x); },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nfunction monotoneX(context) {\n  return new MonotoneX(context);\n}\n\nfunction monotoneY(context) {\n  return new MonotoneY(context);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/monotone.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/natural.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/natural.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nfunction Natural(context) {\n  this._context = context;\n}\n\nNatural.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = [];\n    this._y = [];\n  },\n  lineEnd: function() {\n    var x = this._x,\n        y = this._y,\n        n = x.length;\n\n    if (n) {\n      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n      if (n === 2) {\n        this._context.lineTo(x[1], y[1]);\n      } else {\n        var px = controlPoints(x),\n            py = controlPoints(y);\n        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n        }\n      }\n    }\n\n    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n    this._x = this._y = null;\n  },\n  point: function(x, y) {\n    this._x.push(+x);\n    this._y.push(+y);\n  }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n  var i,\n      n = x.length - 1,\n      m,\n      a = new Array(n),\n      b = new Array(n),\n      r = new Array(n);\n  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n  a[n - 1] = r[n - 1] / b[n - 1];\n  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n  b[n - 1] = (x[n] + a[n - 1]) / 2;\n  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n  return [a, b];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new Natural(context);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/natural.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/radial.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/radial.js ***!
  \***************************************************/
/*! exports provided: curveRadialLinear, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"curveRadialLinear\", function() { return curveRadialLinear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return curveRadial; });\n/* harmony import */ var _linear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear.js */ \"./node_modules/d3-shape/src/curve/linear.js\");\n\n\nvar curveRadialLinear = curveRadial(_linear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\nfunction Radial(curve) {\n  this._curve = curve;\n}\n\nRadial.prototype = {\n  areaStart: function() {\n    this._curve.areaStart();\n  },\n  areaEnd: function() {\n    this._curve.areaEnd();\n  },\n  lineStart: function() {\n    this._curve.lineStart();\n  },\n  lineEnd: function() {\n    this._curve.lineEnd();\n  },\n  point: function(a, r) {\n    this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n  }\n};\n\nfunction curveRadial(curve) {\n\n  function radial(context) {\n    return new Radial(curve(context));\n  }\n\n  radial._curve = curve;\n\n  return radial;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/radial.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/curve/step.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/curve/step.js ***!
  \*************************************************/
/*! exports provided: default, stepBefore, stepAfter */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stepBefore\", function() { return stepBefore; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stepAfter\", function() { return stepAfter; });\nfunction Step(context, t) {\n  this._context = context;\n  this._t = t;\n}\n\nStep.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = this._y = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // proceed\n      default: {\n        if (this._t <= 0) {\n          this._context.lineTo(this._x, y);\n          this._context.lineTo(x, y);\n        } else {\n          var x1 = this._x * (1 - this._t) + x * this._t;\n          this._context.lineTo(x1, this._y);\n          this._context.lineTo(x1, y);\n        }\n        break;\n      }\n    }\n    this._x = x, this._y = y;\n  }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(context) {\n  return new Step(context, 0.5);\n});\n\nfunction stepBefore(context) {\n  return new Step(context, 0);\n}\n\nfunction stepAfter(context) {\n  return new Step(context, 1);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/curve/step.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/descending.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/descending.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, b) {\n  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/descending.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/identity.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-shape/src/identity.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(d) {\n  return d;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/identity.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/index.js":
/*!********************************************!*\
  !*** ./node_modules/d3-shape/src/index.js ***!
  \********************************************/
/*! exports provided: arc, area, line, pie, areaRadial, radialArea, lineRadial, radialLine, pointRadial, linkHorizontal, linkVertical, linkRadial, symbol, symbols, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye, curveBasisClosed, curveBasisOpen, curveBasis, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore, stack, stackOffsetExpand, stackOffsetDiverging, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderAppearance, stackOrderAscending, stackOrderDescending, stackOrderInsideOut, stackOrderNone, stackOrderReverse */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arc.js */ \"./node_modules/d3-shape/src/arc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"arc\", function() { return _arc_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _area_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./area.js */ \"./node_modules/d3-shape/src/area.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"area\", function() { return _area_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./line.js */ \"./node_modules/d3-shape/src/line.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"line\", function() { return _line_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _pie_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pie.js */ \"./node_modules/d3-shape/src/pie.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pie\", function() { return _pie_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./areaRadial.js */ \"./node_modules/d3-shape/src/areaRadial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"areaRadial\", function() { return _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"radialArea\", function() { return _areaRadial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lineRadial.js */ \"./node_modules/d3-shape/src/lineRadial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lineRadial\", function() { return _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"radialLine\", function() { return _lineRadial_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _pointRadial_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./pointRadial.js */ \"./node_modules/d3-shape/src/pointRadial.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointRadial\", function() { return _pointRadial_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _link_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./link/index.js */ \"./node_modules/d3-shape/src/link/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"linkHorizontal\", function() { return _link_index_js__WEBPACK_IMPORTED_MODULE_7__[\"linkHorizontal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"linkVertical\", function() { return _link_index_js__WEBPACK_IMPORTED_MODULE_7__[\"linkVertical\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"linkRadial\", function() { return _link_index_js__WEBPACK_IMPORTED_MODULE_7__[\"linkRadial\"]; });\n\n/* harmony import */ var _symbol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./symbol.js */ \"./node_modules/d3-shape/src/symbol.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbol\", function() { return _symbol_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbols\", function() { return _symbol_js__WEBPACK_IMPORTED_MODULE_8__[\"symbols\"]; });\n\n/* harmony import */ var _symbol_circle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./symbol/circle.js */ \"./node_modules/d3-shape/src/symbol/circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolCircle\", function() { return _symbol_circle_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _symbol_cross_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./symbol/cross.js */ \"./node_modules/d3-shape/src/symbol/cross.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolCross\", function() { return _symbol_cross_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./symbol/diamond.js */ \"./node_modules/d3-shape/src/symbol/diamond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolDiamond\", function() { return _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _symbol_square_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./symbol/square.js */ \"./node_modules/d3-shape/src/symbol/square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolSquare\", function() { return _symbol_square_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _symbol_star_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./symbol/star.js */ \"./node_modules/d3-shape/src/symbol/star.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolStar\", function() { return _symbol_star_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./symbol/triangle.js */ \"./node_modules/d3-shape/src/symbol/triangle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolTriangle\", function() { return _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _symbol_wye_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./symbol/wye.js */ \"./node_modules/d3-shape/src/symbol/wye.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"symbolWye\", function() { return _symbol_wye_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _curve_basisClosed_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./curve/basisClosed.js */ \"./node_modules/d3-shape/src/curve/basisClosed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveBasisClosed\", function() { return _curve_basisClosed_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _curve_basisOpen_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./curve/basisOpen.js */ \"./node_modules/d3-shape/src/curve/basisOpen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveBasisOpen\", function() { return _curve_basisOpen_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _curve_basis_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./curve/basis.js */ \"./node_modules/d3-shape/src/curve/basis.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveBasis\", function() { return _curve_basis_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _curve_bundle_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./curve/bundle.js */ \"./node_modules/d3-shape/src/curve/bundle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveBundle\", function() { return _curve_bundle_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _curve_cardinalClosed_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./curve/cardinalClosed.js */ \"./node_modules/d3-shape/src/curve/cardinalClosed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveCardinalClosed\", function() { return _curve_cardinalClosed_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony import */ var _curve_cardinalOpen_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./curve/cardinalOpen.js */ \"./node_modules/d3-shape/src/curve/cardinalOpen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveCardinalOpen\", function() { return _curve_cardinalOpen_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony import */ var _curve_cardinal_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./curve/cardinal.js */ \"./node_modules/d3-shape/src/curve/cardinal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveCardinal\", function() { return _curve_cardinal_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _curve_catmullRomClosed_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./curve/catmullRomClosed.js */ \"./node_modules/d3-shape/src/curve/catmullRomClosed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveCatmullRomClosed\", function() { return _curve_catmullRomClosed_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _curve_catmullRomOpen_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./curve/catmullRomOpen.js */ \"./node_modules/d3-shape/src/curve/catmullRomOpen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveCatmullRomOpen\", function() { return _curve_catmullRomOpen_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _curve_catmullRom_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./curve/catmullRom.js */ \"./node_modules/d3-shape/src/curve/catmullRom.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveCatmullRom\", function() { return _curve_catmullRom_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony import */ var _curve_linearClosed_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./curve/linearClosed.js */ \"./node_modules/d3-shape/src/curve/linearClosed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveLinearClosed\", function() { return _curve_linearClosed_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./curve/linear.js */ \"./node_modules/d3-shape/src/curve/linear.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveLinear\", function() { return _curve_linear_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _curve_monotone_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./curve/monotone.js */ \"./node_modules/d3-shape/src/curve/monotone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveMonotoneX\", function() { return _curve_monotone_js__WEBPACK_IMPORTED_MODULE_28__[\"monotoneX\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveMonotoneY\", function() { return _curve_monotone_js__WEBPACK_IMPORTED_MODULE_28__[\"monotoneY\"]; });\n\n/* harmony import */ var _curve_natural_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./curve/natural.js */ \"./node_modules/d3-shape/src/curve/natural.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveNatural\", function() { return _curve_natural_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony import */ var _curve_step_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./curve/step.js */ \"./node_modules/d3-shape/src/curve/step.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveStep\", function() { return _curve_step_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveStepAfter\", function() { return _curve_step_js__WEBPACK_IMPORTED_MODULE_30__[\"stepAfter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"curveStepBefore\", function() { return _curve_step_js__WEBPACK_IMPORTED_MODULE_30__[\"stepBefore\"]; });\n\n/* harmony import */ var _stack_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./stack.js */ \"./node_modules/d3-shape/src/stack.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stack\", function() { return _stack_js__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _offset_expand_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./offset/expand.js */ \"./node_modules/d3-shape/src/offset/expand.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetExpand\", function() { return _offset_expand_js__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _offset_diverging_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./offset/diverging.js */ \"./node_modules/d3-shape/src/offset/diverging.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetDiverging\", function() { return _offset_diverging_js__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony import */ var _offset_none_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./offset/none.js */ \"./node_modules/d3-shape/src/offset/none.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetNone\", function() { return _offset_none_js__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony import */ var _offset_silhouette_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./offset/silhouette.js */ \"./node_modules/d3-shape/src/offset/silhouette.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetSilhouette\", function() { return _offset_silhouette_js__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony import */ var _offset_wiggle_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./offset/wiggle.js */ \"./node_modules/d3-shape/src/offset/wiggle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOffsetWiggle\", function() { return _offset_wiggle_js__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony import */ var _order_appearance_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./order/appearance.js */ \"./node_modules/d3-shape/src/order/appearance.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOrderAppearance\", function() { return _order_appearance_js__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony import */ var _order_ascending_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./order/ascending.js */ \"./node_modules/d3-shape/src/order/ascending.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOrderAscending\", function() { return _order_ascending_js__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony import */ var _order_descending_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./order/descending.js */ \"./node_modules/d3-shape/src/order/descending.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOrderDescending\", function() { return _order_descending_js__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony import */ var _order_insideOut_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./order/insideOut.js */ \"./node_modules/d3-shape/src/order/insideOut.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOrderInsideOut\", function() { return _order_insideOut_js__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony import */ var _order_none_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./order/none.js */ \"./node_modules/d3-shape/src/order/none.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOrderNone\", function() { return _order_none_js__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony import */ var _order_reverse_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./order/reverse.js */ \"./node_modules/d3-shape/src/order/reverse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stackOrderReverse\", function() { return _order_reverse_js__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n\n\n\n\n // Note: radialArea is deprecated!\n // Note: radialLine is deprecated!\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/line.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-shape/src/line.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ \"./node_modules/d3-path/src/index.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-shape/src/array.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n/* harmony import */ var _curve_linear_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./curve/linear.js */ \"./node_modules/d3-shape/src/curve/linear.js\");\n/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./point.js */ \"./node_modules/d3-shape/src/point.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, y) {\n  var defined = Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(true),\n      context = null,\n      curve = _curve_linear_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n      output = null;\n\n  x = typeof x === \"function\" ? x : (x === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_4__[\"x\"] : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(x);\n  y = typeof y === \"function\" ? y : (y === undefined) ? _point_js__WEBPACK_IMPORTED_MODULE_4__[\"y\"] : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(y);\n\n  function line(data) {\n    var i,\n        n = (data = Object(_array_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(data)).length,\n        d,\n        defined0 = false,\n        buffer;\n\n    if (context == null) output = curve(buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__[\"path\"])());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) output.lineStart();\n        else output.lineEnd();\n      }\n      if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  line.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), line) : x;\n  };\n\n  line.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), line) : y;\n  };\n\n  line.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(!!_), line) : defined;\n  };\n\n  line.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n  };\n\n  line.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n  };\n\n  return line;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/line.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/lineRadial.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/lineRadial.js ***!
  \*************************************************/
/*! exports provided: lineRadial, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineRadial\", function() { return lineRadial; });\n/* harmony import */ var _curve_radial_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./curve/radial.js */ \"./node_modules/d3-shape/src/curve/radial.js\");\n/* harmony import */ var _line_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./line.js */ \"./node_modules/d3-shape/src/line.js\");\n\n\n\nfunction lineRadial(l) {\n  var c = l.curve;\n\n  l.angle = l.x, delete l.x;\n  l.radius = l.y, delete l.y;\n\n  l.curve = function(_) {\n    return arguments.length ? c(Object(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_)) : c()._curve;\n  };\n\n  return l;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  return lineRadial(Object(_line_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])().curve(_curve_radial_js__WEBPACK_IMPORTED_MODULE_0__[\"curveRadialLinear\"]));\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/lineRadial.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/link/index.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/link/index.js ***!
  \*************************************************/
/*! exports provided: linkHorizontal, linkVertical, linkRadial */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linkHorizontal\", function() { return linkHorizontal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linkVertical\", function() { return linkVertical; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linkRadial\", function() { return linkRadial; });\n/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ \"./node_modules/d3-path/src/index.js\");\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../array.js */ \"./node_modules/d3-shape/src/array.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n/* harmony import */ var _point_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../point.js */ \"./node_modules/d3-shape/src/point.js\");\n/* harmony import */ var _pointRadial_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../pointRadial.js */ \"./node_modules/d3-shape/src/pointRadial.js\");\n\n\n\n\n\n\nfunction linkSource(d) {\n  return d.source;\n}\n\nfunction linkTarget(d) {\n  return d.target;\n}\n\nfunction link(curve) {\n  var source = linkSource,\n      target = linkTarget,\n      x = _point_js__WEBPACK_IMPORTED_MODULE_3__[\"x\"],\n      y = _point_js__WEBPACK_IMPORTED_MODULE_3__[\"y\"],\n      context = null;\n\n  function link() {\n    var buffer, argv = _array_js__WEBPACK_IMPORTED_MODULE_1__[\"slice\"].call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n    if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__[\"path\"])();\n    curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  link.source = function(_) {\n    return arguments.length ? (source = _, link) : source;\n  };\n\n  link.target = function(_) {\n    return arguments.length ? (target = _, link) : target;\n  };\n\n  link.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), link) : x;\n  };\n\n  link.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+_), link) : y;\n  };\n\n  link.context = function(_) {\n    return arguments.length ? ((context = _ == null ? null : _), link) : context;\n  };\n\n  return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n  context.moveTo(x0, y0);\n  context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n  context.moveTo(x0, y0);\n  context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n  var p0 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x0, y0),\n      p1 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x0, y0 = (y0 + y1) / 2),\n      p2 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x1, y0),\n      p3 = Object(_pointRadial_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(x1, y1);\n  context.moveTo(p0[0], p0[1]);\n  context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nfunction linkHorizontal() {\n  return link(curveHorizontal);\n}\n\nfunction linkVertical() {\n  return link(curveVertical);\n}\n\nfunction linkRadial() {\n  var l = link(curveRadial);\n  l.angle = l.x, delete l.x;\n  l.radius = l.y, delete l.y;\n  return l;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/link/index.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/math.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-shape/src/math.js ***!
  \*******************************************/
/*! exports provided: abs, atan2, cos, max, min, sin, sqrt, epsilon, pi, halfPi, tau, acos, asin */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"abs\", function() { return abs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"atan2\", function() { return atan2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cos\", function() { return cos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"max\", function() { return max; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"min\", function() { return min; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sin\", function() { return sin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sqrt\", function() { return sqrt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"epsilon\", function() { return epsilon; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pi\", function() { return pi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"halfPi\", function() { return halfPi; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tau\", function() { return tau; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"acos\", function() { return acos; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asin\", function() { return asin; });\nvar abs = Math.abs;\nvar atan2 = Math.atan2;\nvar cos = Math.cos;\nvar max = Math.max;\nvar min = Math.min;\nvar sin = Math.sin;\nvar sqrt = Math.sqrt;\n\nvar epsilon = 1e-12;\nvar pi = Math.PI;\nvar halfPi = pi / 2;\nvar tau = 2 * pi;\n\nfunction acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nfunction asin(x) {\n  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/math.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/noop.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-shape/src/noop.js ***!
  \*******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/noop.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/offset/diverging.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-shape/src/offset/diverging.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n    for (yp = yn = 0, i = 0; i < n; ++i) {\n      if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n        d[0] = yp, d[1] = yp += dy;\n      } else if (dy < 0) {\n        d[1] = yn, d[0] = yn += dy;\n      } else {\n        d[0] = 0, d[1] = dy;\n      }\n    }\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/offset/diverging.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/offset/expand.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-shape/src/offset/expand.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ \"./node_modules/d3-shape/src/offset/none.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n    for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n    if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n  }\n  Object(_none_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series, order);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/offset/expand.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/offset/none.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-shape/src/offset/none.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series, order) {\n  if (!((n = series.length) > 1)) return;\n  for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n    s0 = s1, s1 = series[order[i]];\n    for (j = 0; j < m; ++j) {\n      s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n    }\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/offset/none.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/offset/silhouette.js":
/*!********************************************************!*\
  !*** ./node_modules/d3-shape/src/offset/silhouette.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ \"./node_modules/d3-shape/src/offset/none.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series, order) {\n  if (!((n = series.length) > 0)) return;\n  for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n    for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n    s0[j][1] += s0[j][0] = -y / 2;\n  }\n  Object(_none_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series, order);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/offset/silhouette.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/offset/wiggle.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-shape/src/offset/wiggle.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ \"./node_modules/d3-shape/src/offset/none.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series, order) {\n  if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n  for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n    for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n      var si = series[order[i]],\n          sij0 = si[j][1] || 0,\n          sij1 = si[j - 1][1] || 0,\n          s3 = (sij0 - sij1) / 2;\n      for (var k = 0; k < i; ++k) {\n        var sk = series[order[k]],\n            skj0 = sk[j][1] || 0,\n            skj1 = sk[j - 1][1] || 0;\n        s3 += skj0 - skj1;\n      }\n      s1 += sij0, s2 += s3 * sij0;\n    }\n    s0[j - 1][1] += s0[j - 1][0] = y;\n    if (s1) y -= s2 / s1;\n  }\n  s0[j - 1][1] += s0[j - 1][0] = y;\n  Object(_none_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series, order);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/offset/wiggle.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/order/appearance.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-shape/src/order/appearance.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ \"./node_modules/d3-shape/src/order/none.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series) {\n  var peaks = series.map(peak);\n  return Object(_none_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n});\n\nfunction peak(series) {\n  var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n  while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n  return j;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/order/appearance.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/order/ascending.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-shape/src/order/ascending.js ***!
  \******************************************************/
/*! exports provided: default, sum */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sum\", function() { return sum; });\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ \"./node_modules/d3-shape/src/order/none.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series) {\n  var sums = series.map(sum);\n  return Object(_none_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series).sort(function(a, b) { return sums[a] - sums[b]; });\n});\n\nfunction sum(series) {\n  var s = 0, i = -1, n = series.length, v;\n  while (++i < n) if (v = +series[i][1]) s += v;\n  return s;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/order/ascending.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/order/descending.js":
/*!*******************************************************!*\
  !*** ./node_modules/d3-shape/src/order/descending.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-shape/src/order/ascending.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series) {\n  return Object(_ascending_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series).reverse();\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/order/descending.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/order/insideOut.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-shape/src/order/insideOut.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _appearance_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./appearance.js */ \"./node_modules/d3-shape/src/order/appearance.js\");\n/* harmony import */ var _ascending_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ascending.js */ \"./node_modules/d3-shape/src/order/ascending.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series) {\n  var n = series.length,\n      i,\n      j,\n      sums = series.map(_ascending_js__WEBPACK_IMPORTED_MODULE_1__[\"sum\"]),\n      order = Object(_appearance_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series),\n      top = 0,\n      bottom = 0,\n      tops = [],\n      bottoms = [];\n\n  for (i = 0; i < n; ++i) {\n    j = order[i];\n    if (top < bottom) {\n      top += sums[j];\n      tops.push(j);\n    } else {\n      bottom += sums[j];\n      bottoms.push(j);\n    }\n  }\n\n  return bottoms.reverse().concat(tops);\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/order/insideOut.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/order/none.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/order/none.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series) {\n  var n = series.length, o = new Array(n);\n  while (--n >= 0) o[n] = n;\n  return o;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/order/none.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/order/reverse.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-shape/src/order/reverse.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _none_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./none.js */ \"./node_modules/d3-shape/src/order/none.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(series) {\n  return Object(_none_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(series).reverse();\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/order/reverse.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/pie.js":
/*!******************************************!*\
  !*** ./node_modules/d3-shape/src/pie.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-shape/src/array.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n/* harmony import */ var _descending_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./descending.js */ \"./node_modules/d3-shape/src/descending.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/d3-shape/src/identity.js\");\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./math.js */ \"./node_modules/d3-shape/src/math.js\");\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var value = _identity_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n      sortValues = _descending_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n      sort = null,\n      startAngle = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(0),\n      endAngle = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"]),\n      padAngle = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(0);\n\n  function pie(data) {\n    var i,\n        n = (data = Object(_array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data)).length,\n        j,\n        k,\n        sum = 0,\n        index = new Array(n),\n        arcs = new Array(n),\n        a0 = +startAngle.apply(this, arguments),\n        da = Math.min(_math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"], Math.max(-_math_js__WEBPACK_IMPORTED_MODULE_4__[\"tau\"], endAngle.apply(this, arguments) - a0)),\n        a1,\n        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n        pa = p * (da < 0 ? -1 : 1),\n        v;\n\n    for (i = 0; i < n; ++i) {\n      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n        sum += v;\n      }\n    }\n\n    // Optionally sort the arcs by previously-computed values or by data.\n    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n    // Compute the arcs! They are stored in the original data's order.\n    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n        data: data[j],\n        index: i,\n        value: v,\n        startAngle: a0,\n        endAngle: a1,\n        padAngle: p\n      };\n    }\n\n    return arcs;\n  }\n\n  pie.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), pie) : value;\n  };\n\n  pie.sortValues = function(_) {\n    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n  };\n\n  pie.sort = function(_) {\n    return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n  };\n\n  pie.startAngle = function(_) {\n    return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), pie) : startAngle;\n  };\n\n  pie.endAngle = function(_) {\n    return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), pie) : endAngle;\n  };\n\n  pie.padAngle = function(_) {\n    return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), pie) : padAngle;\n  };\n\n  return pie;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/pie.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/point.js":
/*!********************************************!*\
  !*** ./node_modules/d3-shape/src/point.js ***!
  \********************************************/
/*! exports provided: x, y */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"x\", function() { return x; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"y\", function() { return y; });\nfunction x(p) {\n  return p[0];\n}\n\nfunction y(p) {\n  return p[1];\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/point.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/pointRadial.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-shape/src/pointRadial.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x, y) {\n  return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/pointRadial.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/stack.js":
/*!********************************************!*\
  !*** ./node_modules/d3-shape/src/stack.js ***!
  \********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.js */ \"./node_modules/d3-shape/src/array.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n/* harmony import */ var _offset_none_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offset/none.js */ \"./node_modules/d3-shape/src/offset/none.js\");\n/* harmony import */ var _order_none_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./order/none.js */ \"./node_modules/d3-shape/src/order/none.js\");\n\n\n\n\n\nfunction stackValue(d, key) {\n  return d[key];\n}\n\nfunction stackSeries(key) {\n  const series = [];\n  series.key = key;\n  return series;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function() {\n  var keys = Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([]),\n      order = _order_none_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n      offset = _offset_none_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n      value = stackValue;\n\n  function stack(data) {\n    var sz = Array.from(keys.apply(this, arguments), stackSeries),\n        i, n = sz.length, j = -1,\n        oz;\n\n    for (const d of data) {\n      for (i = 0, ++j; i < n; ++i) {\n        (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n      }\n    }\n\n    for (i = 0, oz = Object(_array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(order(sz)); i < n; ++i) {\n      sz[oz[i]].index = i;\n    }\n\n    offset(sz, oz);\n    return sz;\n  }\n\n  stack.keys = function(_) {\n    return arguments.length ? (keys = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Array.from(_)), stack) : keys;\n  };\n\n  stack.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(+_), stack) : value;\n  };\n\n  stack.order = function(_) {\n    return arguments.length ? (order = _ == null ? _order_none_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] : typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Array.from(_)), stack) : order;\n  };\n\n  stack.offset = function(_) {\n    return arguments.length ? (offset = _ == null ? _offset_none_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _, stack) : offset;\n  };\n\n  return stack;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/stack.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-shape/src/symbol.js ***!
  \*********************************************/
/*! exports provided: symbols, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"symbols\", function() { return symbols; });\n/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-path */ \"./node_modules/d3-path/src/index.js\");\n/* harmony import */ var _symbol_circle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./symbol/circle.js */ \"./node_modules/d3-shape/src/symbol/circle.js\");\n/* harmony import */ var _symbol_cross_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./symbol/cross.js */ \"./node_modules/d3-shape/src/symbol/cross.js\");\n/* harmony import */ var _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./symbol/diamond.js */ \"./node_modules/d3-shape/src/symbol/diamond.js\");\n/* harmony import */ var _symbol_star_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./symbol/star.js */ \"./node_modules/d3-shape/src/symbol/star.js\");\n/* harmony import */ var _symbol_square_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./symbol/square.js */ \"./node_modules/d3-shape/src/symbol/square.js\");\n/* harmony import */ var _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./symbol/triangle.js */ \"./node_modules/d3-shape/src/symbol/triangle.js\");\n/* harmony import */ var _symbol_wye_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./symbol/wye.js */ \"./node_modules/d3-shape/src/symbol/wye.js\");\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constant.js */ \"./node_modules/d3-shape/src/constant.js\");\n\n\n\n\n\n\n\n\n\n\nvar symbols = [\n  _symbol_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  _symbol_cross_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  _symbol_diamond_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  _symbol_square_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  _symbol_star_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  _symbol_triangle_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  _symbol_wye_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]\n];\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(type, size) {\n  var context = null;\n  type = typeof type === \"function\" ? type : Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(type || _symbol_circle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n  size = typeof size === \"function\" ? size : Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(size === undefined ? 64 : +size);\n\n  function symbol() {\n    var buffer;\n    if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_0__[\"path\"])();\n    type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  symbol.type = function(_) {\n    return arguments.length ? (type = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(_), symbol) : type;\n  };\n\n  symbol.size = function(_) {\n    return arguments.length ? (size = typeof _ === \"function\" ? _ : Object(_constant_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(+_), symbol) : size;\n  };\n\n  symbol.context = function(_) {\n    return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n  };\n\n  return symbol;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/circle.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/circle.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-shape/src/math.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var r = Math.sqrt(size / _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"]);\n    context.moveTo(r, 0);\n    context.arc(0, 0, r, 0, _math_js__WEBPACK_IMPORTED_MODULE_0__[\"tau\"]);\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/circle.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/cross.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/cross.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var r = Math.sqrt(size / 5) / 2;\n    context.moveTo(-3 * r, -r);\n    context.lineTo(-r, -r);\n    context.lineTo(-r, -3 * r);\n    context.lineTo(r, -3 * r);\n    context.lineTo(r, -r);\n    context.lineTo(3 * r, -r);\n    context.lineTo(3 * r, r);\n    context.lineTo(r, r);\n    context.lineTo(r, 3 * r);\n    context.lineTo(-r, 3 * r);\n    context.lineTo(-r, r);\n    context.lineTo(-3 * r, r);\n    context.closePath();\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/cross.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/diamond.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/diamond.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar tan30 = Math.sqrt(1 / 3),\n    tan30_2 = tan30 * 2;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var y = Math.sqrt(size / tan30_2),\n        x = y * tan30;\n    context.moveTo(0, -y);\n    context.lineTo(x, 0);\n    context.lineTo(0, y);\n    context.lineTo(-x, 0);\n    context.closePath();\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/diamond.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/square.js":
/*!****************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/square.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var w = Math.sqrt(size),\n        x = -w / 2;\n    context.rect(x, x, w, w);\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/square.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/star.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/star.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../math.js */ \"./node_modules/d3-shape/src/math.js\");\n\n\nvar ka = 0.89081309152928522810,\n    kr = Math.sin(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] / 10) / Math.sin(7 * _math_js__WEBPACK_IMPORTED_MODULE_0__[\"pi\"] / 10),\n    kx = Math.sin(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tau\"] / 10) * kr,\n    ky = -Math.cos(_math_js__WEBPACK_IMPORTED_MODULE_0__[\"tau\"] / 10) * kr;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var r = Math.sqrt(size * ka),\n        x = kx * r,\n        y = ky * r;\n    context.moveTo(0, -r);\n    context.lineTo(x, y);\n    for (var i = 1; i < 5; ++i) {\n      var a = _math_js__WEBPACK_IMPORTED_MODULE_0__[\"tau\"] * i / 5,\n          c = Math.cos(a),\n          s = Math.sin(a);\n      context.lineTo(s * r, -c * r);\n      context.lineTo(c * x - s * y, s * x + c * y);\n    }\n    context.closePath();\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/star.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/triangle.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/triangle.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar sqrt3 = Math.sqrt(3);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var y = -Math.sqrt(size / (sqrt3 * 3));\n    context.moveTo(0, y * 2);\n    context.lineTo(-sqrt3 * y, -y);\n    context.lineTo(sqrt3 * y, -y);\n    context.closePath();\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/triangle.js?");

/***/ }),

/***/ "./node_modules/d3-shape/src/symbol/wye.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-shape/src/symbol/wye.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar c = -0.5,\n    s = Math.sqrt(3) / 2,\n    k = 1 / Math.sqrt(12),\n    a = (k / 2 + 1) * 3;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  draw: function(context, size) {\n    var r = Math.sqrt(size / a),\n        x0 = r / 2,\n        y0 = r * k,\n        x1 = x0,\n        y1 = r * k + r,\n        x2 = -x1,\n        y2 = y1;\n    context.moveTo(x0, y0);\n    context.lineTo(x1, y1);\n    context.lineTo(x2, y2);\n    context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n    context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n    context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n    context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n    context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n    context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n    context.closePath();\n  }\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-shape/src/symbol/wye.js?");

/***/ }),

/***/ "./node_modules/d3-time-format/src/defaultLocale.js":
/*!**********************************************************!*\
  !*** ./node_modules/d3-time-format/src/defaultLocale.js ***!
  \**********************************************************/
/*! exports provided: timeFormat, timeParse, utcFormat, utcParse, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return timeFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeParse\", function() { return timeParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFormat\", function() { return utcFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcParse\", function() { return utcParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return defaultLocale; });\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-time-format/src/locale.js\");\n\n\nvar locale;\nvar timeFormat;\nvar timeParse;\nvar utcFormat;\nvar utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nfunction defaultLocale(definition) {\n  locale = Object(_locale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time-format/src/defaultLocale.js?");

/***/ }),

/***/ "./node_modules/d3-time-format/src/index.js":
/*!**************************************************!*\
  !*** ./node_modules/d3-time-format/src/index.js ***!
  \**************************************************/
/*! exports provided: timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse, timeFormatLocale, isoFormat, isoParse */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-time-format/src/defaultLocale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormatDefaultLocale\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"timeFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeParse\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"timeParse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFormat\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"utcFormat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcParse\", function() { return _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"utcParse\"]; });\n\n/* harmony import */ var _locale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./locale.js */ \"./node_modules/d3-time-format/src/locale.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormatLocale\", function() { return _locale_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isoFormat.js */ \"./node_modules/d3-time-format/src/isoFormat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isoFormat\", function() { return _isoFormat_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _isoParse_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isoParse.js */ \"./node_modules/d3-time-format/src/isoParse.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isoParse\", function() { return _isoParse_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time-format/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-time-format/src/isoFormat.js":
/*!******************************************************!*\
  !*** ./node_modules/d3-time-format/src/isoFormat.js ***!
  \******************************************************/
/*! exports provided: isoSpecifier, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isoSpecifier\", function() { return isoSpecifier; });\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-time-format/src/defaultLocale.js\");\n\n\nvar isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n  return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n    ? formatIsoNative\n    : Object(_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__[\"utcFormat\"])(isoSpecifier);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (formatIso);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time-format/src/isoFormat.js?");

/***/ }),

/***/ "./node_modules/d3-time-format/src/isoParse.js":
/*!*****************************************************!*\
  !*** ./node_modules/d3-time-format/src/isoParse.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _isoFormat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isoFormat.js */ \"./node_modules/d3-time-format/src/isoFormat.js\");\n/* harmony import */ var _defaultLocale_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultLocale.js */ \"./node_modules/d3-time-format/src/defaultLocale.js\");\n\n\n\nfunction parseIsoNative(string) {\n  var date = new Date(string);\n  return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n    ? parseIsoNative\n    : Object(_defaultLocale_js__WEBPACK_IMPORTED_MODULE_1__[\"utcParse\"])(_isoFormat_js__WEBPACK_IMPORTED_MODULE_0__[\"isoSpecifier\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (parseIso);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time-format/src/isoParse.js?");

/***/ }),

/***/ "./node_modules/d3-time-format/src/locale.js":
/*!***************************************************!*\
  !*** ./node_modules/d3-time-format/src/locale.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return formatLocale; });\n/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-time */ \"./node_modules/d3-time/src/index.js\");\n\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nfunction formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"g\": parseYear,\n    \"G\": parseFullYear,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"])(week);\n          week = d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcDay\"].offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"].ceil(week) : Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"])(week);\n          week = d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeDay\"].offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeDay\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeSunday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(d);\n  return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeMonday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeYear\"])(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n  d = dISO(d);\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"timeThursday\"].ceil(d);\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcDay\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcSunday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d), d) + (Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcMonday\"].count(Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcYear\"])(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? Object(d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"])(d) : d3_time__WEBPACK_IMPORTED_MODULE_0__[\"utcThursday\"].ceil(d);\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time-format/src/locale.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/day.js":
/*!*****************************************!*\
  !*** ./node_modules/d3-time/src/day.js ***!
  \*****************************************/
/*! exports provided: default, days */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"days\", function() { return days; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar day = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n  date => date.setHours(0, 0, 0, 0),\n  (date, step) => date.setDate(date.getDate() + step),\n  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationDay\"],\n  date => date.getDate() - 1\n);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (day);\nvar days = day.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/day.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/duration.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-time/src/duration.js ***!
  \**********************************************/
/*! exports provided: durationSecond, durationMinute, durationHour, durationDay, durationWeek */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"durationSecond\", function() { return durationSecond; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"durationMinute\", function() { return durationMinute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"durationHour\", function() { return durationHour; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"durationDay\", function() { return durationDay; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"durationWeek\", function() { return durationWeek; });\nvar durationSecond = 1e3;\nvar durationMinute = 6e4;\nvar durationHour = 36e5;\nvar durationDay = 864e5;\nvar durationWeek = 6048e5;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/duration.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/hour.js":
/*!******************************************!*\
  !*** ./node_modules/d3-time/src/hour.js ***!
  \******************************************/
/*! exports provided: default, hours */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hours\", function() { return hours; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar hour = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"] - date.getMinutes() * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]);\n}, function(date, step) {\n  date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"]);\n}, function(start, end) {\n  return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"];\n}, function(date) {\n  return date.getHours();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hour);\nvar hours = hour.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/hour.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/index.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-time/src/index.js ***!
  \*******************************************/
/*! exports provided: timeInterval, timeMillisecond, timeMilliseconds, utcMillisecond, utcMilliseconds, timeSecond, timeSeconds, utcSecond, utcSeconds, timeMinute, timeMinutes, timeHour, timeHours, timeDay, timeDays, timeWeek, timeWeeks, timeSunday, timeSundays, timeMonday, timeMondays, timeTuesday, timeTuesdays, timeWednesday, timeWednesdays, timeThursday, timeThursdays, timeFriday, timeFridays, timeSaturday, timeSaturdays, timeMonth, timeMonths, timeYear, timeYears, utcMinute, utcMinutes, utcHour, utcHours, utcDay, utcDays, utcWeek, utcWeeks, utcSunday, utcSundays, utcMonday, utcMondays, utcTuesday, utcTuesdays, utcWednesday, utcWednesdays, utcThursday, utcThursdays, utcFriday, utcFridays, utcSaturday, utcSaturdays, utcMonth, utcMonths, utcYear, utcYears */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return _interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _millisecond_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./millisecond.js */ \"./node_modules/d3-time/src/millisecond.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMillisecond\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMilliseconds\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"milliseconds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMillisecond\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMilliseconds\", function() { return _millisecond_js__WEBPACK_IMPORTED_MODULE_1__[\"milliseconds\"]; });\n\n/* harmony import */ var _second_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./second.js */ \"./node_modules/d3-time/src/second.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSecond\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSeconds\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"seconds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSecond\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSeconds\", function() { return _second_js__WEBPACK_IMPORTED_MODULE_2__[\"seconds\"]; });\n\n/* harmony import */ var _minute_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./minute.js */ \"./node_modules/d3-time/src/minute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMinute\", function() { return _minute_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMinutes\", function() { return _minute_js__WEBPACK_IMPORTED_MODULE_3__[\"minutes\"]; });\n\n/* harmony import */ var _hour_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hour.js */ \"./node_modules/d3-time/src/hour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeHour\", function() { return _hour_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeHours\", function() { return _hour_js__WEBPACK_IMPORTED_MODULE_4__[\"hours\"]; });\n\n/* harmony import */ var _day_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./day.js */ \"./node_modules/d3-time/src/day.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeDay\", function() { return _day_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeDays\", function() { return _day_js__WEBPACK_IMPORTED_MODULE_5__[\"days\"]; });\n\n/* harmony import */ var _week_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./week.js */ \"./node_modules/d3-time/src/week.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWeek\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWeeks\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSunday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSundays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"sundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"monday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMondays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"mondays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeTuesday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"tuesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeTuesdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"tuesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWednesday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"wednesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeWednesdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"wednesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeThursday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"thursday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeThursdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"thursdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFriday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"friday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFridays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"fridays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSaturday\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"saturday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSaturdays\", function() { return _week_js__WEBPACK_IMPORTED_MODULE_6__[\"saturdays\"]; });\n\n/* harmony import */ var _month_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./month.js */ \"./node_modules/d3-time/src/month.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonth\", function() { return _month_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeMonths\", function() { return _month_js__WEBPACK_IMPORTED_MODULE_7__[\"months\"]; });\n\n/* harmony import */ var _year_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./year.js */ \"./node_modules/d3-time/src/year.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeYear\", function() { return _year_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeYears\", function() { return _year_js__WEBPACK_IMPORTED_MODULE_8__[\"years\"]; });\n\n/* harmony import */ var _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utcMinute.js */ \"./node_modules/d3-time/src/utcMinute.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMinute\", function() { return _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMinutes\", function() { return _utcMinute_js__WEBPACK_IMPORTED_MODULE_9__[\"utcMinutes\"]; });\n\n/* harmony import */ var _utcHour_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utcHour.js */ \"./node_modules/d3-time/src/utcHour.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcHour\", function() { return _utcHour_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcHours\", function() { return _utcHour_js__WEBPACK_IMPORTED_MODULE_10__[\"utcHours\"]; });\n\n/* harmony import */ var _utcDay_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utcDay.js */ \"./node_modules/d3-time/src/utcDay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcDay\", function() { return _utcDay_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcDays\", function() { return _utcDay_js__WEBPACK_IMPORTED_MODULE_11__[\"utcDays\"]; });\n\n/* harmony import */ var _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utcWeek.js */ \"./node_modules/d3-time/src/utcWeek.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWeek\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWeeks\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSunday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSunday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSundays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSundays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcMonday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMondays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcMondays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcTuesday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcTuesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcTuesdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcTuesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWednesday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcWednesday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcWednesdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcWednesdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcThursday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcThursday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcThursdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcThursdays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFriday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcFriday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFridays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcFridays\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSaturday\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSaturday\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSaturdays\", function() { return _utcWeek_js__WEBPACK_IMPORTED_MODULE_12__[\"utcSaturdays\"]; });\n\n/* harmony import */ var _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utcMonth.js */ \"./node_modules/d3-time/src/utcMonth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonth\", function() { return _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcMonths\", function() { return _utcMonth_js__WEBPACK_IMPORTED_MODULE_13__[\"utcMonths\"]; });\n\n/* harmony import */ var _utcYear_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utcYear.js */ \"./node_modules/d3-time/src/utcYear.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcYear\", function() { return _utcYear_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcYears\", function() { return _utcYear_js__WEBPACK_IMPORTED_MODULE_14__[\"utcYears\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/interval.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-time/src/interval.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return newInterval; });\nvar t0 = new Date,\n    t1 = new Date;\n\nfunction newInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = function(date) {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = function(date) {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = function(date) {\n    var d0 = interval(date),\n        d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = function(date, step) {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = function(start, stop, step) {\n    var range = [], previous;\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = function(test) {\n    return newInterval(function(date) {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, function(date, step) {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = function(start, end) {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = function(step) {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? function(d) { return field(d) % step === 0; }\n              : function(d) { return interval.count(0, d) % step === 0; });\n    };\n  }\n\n  return interval;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/interval.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/millisecond.js":
/*!*************************************************!*\
  !*** ./node_modules/d3-time/src/millisecond.js ***!
  \*************************************************/
/*! exports provided: default, milliseconds */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"milliseconds\", function() { return milliseconds; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar millisecond = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function() {\n  // noop\n}, function(date, step) {\n  date.setTime(+date + step);\n}, function(start, end) {\n  return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n  k = Math.floor(k);\n  if (!isFinite(k) || !(k > 0)) return null;\n  if (!(k > 1)) return millisecond;\n  return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n    date.setTime(Math.floor(date / k) * k);\n  }, function(date, step) {\n    date.setTime(+date + step * k);\n  }, function(start, end) {\n    return (end - start) / k;\n  });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (millisecond);\nvar milliseconds = millisecond.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/millisecond.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/minute.js":
/*!********************************************!*\
  !*** ./node_modules/d3-time/src/minute.js ***!
  \********************************************/
/*! exports provided: default, minutes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"minutes\", function() { return minutes; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar minute = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"]);\n}, function(date, step) {\n  date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]);\n}, function(start, end) {\n  return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"];\n}, function(date) {\n  return date.getMinutes();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (minute);\nvar minutes = minute.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/minute.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/month.js":
/*!*******************************************!*\
  !*** ./node_modules/d3-time/src/month.js ***!
  \*******************************************/
/*! exports provided: default, months */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"months\", function() { return months; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar month = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n  return date.getMonth();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (month);\nvar months = month.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/month.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/second.js":
/*!********************************************!*\
  !*** ./node_modules/d3-time/src/second.js ***!
  \********************************************/
/*! exports provided: default, seconds */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"seconds\", function() { return seconds; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar second = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n  date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"]);\n}, function(start, end) {\n  return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationSecond\"];\n}, function(date) {\n  return date.getUTCSeconds();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (second);\nvar seconds = second.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/second.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/utcDay.js":
/*!********************************************!*\
  !*** ./node_modules/d3-time/src/utcDay.js ***!
  \********************************************/
/*! exports provided: default, utcDays */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcDays\", function() { return utcDays; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar utcDay = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n  return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationDay\"];\n}, function(date) {\n  return date.getUTCDate() - 1;\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcDay);\nvar utcDays = utcDay.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/utcDay.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/utcHour.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-time/src/utcHour.js ***!
  \*********************************************/
/*! exports provided: default, utcHours */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcHours\", function() { return utcHours; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar utcHour = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"]);\n}, function(start, end) {\n  return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationHour\"];\n}, function(date) {\n  return date.getUTCHours();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcHour);\nvar utcHours = utcHour.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/utcHour.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/utcMinute.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-time/src/utcMinute.js ***!
  \***********************************************/
/*! exports provided: default, utcMinutes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMinutes\", function() { return utcMinutes; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nvar utcMinute = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setUTCSeconds(0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]);\n}, function(start, end) {\n  return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"];\n}, function(date) {\n  return date.getUTCMinutes();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcMinute);\nvar utcMinutes = utcMinute.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/utcMinute.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/utcMonth.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-time/src/utcMonth.js ***!
  \**********************************************/
/*! exports provided: default, utcMonths */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMonths\", function() { return utcMonths; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar utcMonth = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setUTCDate(1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n  return date.getUTCMonth();\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcMonth);\nvar utcMonths = utcMonth.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/utcMonth.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/utcWeek.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-time/src/utcWeek.js ***!
  \*********************************************/
/*! exports provided: utcSunday, utcMonday, utcTuesday, utcWednesday, utcThursday, utcFriday, utcSaturday, utcSundays, utcMondays, utcTuesdays, utcWednesdays, utcThursdays, utcFridays, utcSaturdays */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSunday\", function() { return utcSunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMonday\", function() { return utcMonday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcTuesday\", function() { return utcTuesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcWednesday\", function() { return utcWednesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcThursday\", function() { return utcThursday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFriday\", function() { return utcFriday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSaturday\", function() { return utcSaturday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSundays\", function() { return utcSundays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcMondays\", function() { return utcMondays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcTuesdays\", function() { return utcTuesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcWednesdays\", function() { return utcWednesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcThursdays\", function() { return utcThursdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFridays\", function() { return utcFridays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSaturdays\", function() { return utcSaturdays; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nfunction utcWeekday(i) {\n  return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, function(start, end) {\n    return (end - start) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationWeek\"];\n  });\n}\n\nvar utcSunday = utcWeekday(0);\nvar utcMonday = utcWeekday(1);\nvar utcTuesday = utcWeekday(2);\nvar utcWednesday = utcWeekday(3);\nvar utcThursday = utcWeekday(4);\nvar utcFriday = utcWeekday(5);\nvar utcSaturday = utcWeekday(6);\n\nvar utcSundays = utcSunday.range;\nvar utcMondays = utcMonday.range;\nvar utcTuesdays = utcTuesday.range;\nvar utcWednesdays = utcWednesday.range;\nvar utcThursdays = utcThursday.range;\nvar utcFridays = utcFriday.range;\nvar utcSaturdays = utcSaturday.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/utcWeek.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/utcYear.js":
/*!*********************************************!*\
  !*** ./node_modules/d3-time/src/utcYear.js ***!
  \*********************************************/
/*! exports provided: default, utcYears */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcYears\", function() { return utcYears; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar utcYear = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (utcYear);\nvar utcYears = utcYear.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/utcYear.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/week.js":
/*!******************************************!*\
  !*** ./node_modules/d3-time/src/week.js ***!
  \******************************************/
/*! exports provided: sunday, monday, tuesday, wednesday, thursday, friday, saturday, sundays, mondays, tuesdays, wednesdays, thursdays, fridays, saturdays */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sunday\", function() { return sunday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monday\", function() { return monday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuesday\", function() { return tuesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wednesday\", function() { return wednesday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thursday\", function() { return thursday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"friday\", function() { return friday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saturday\", function() { return saturday; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sundays\", function() { return sundays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mondays\", function() { return mondays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tuesdays\", function() { return tuesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wednesdays\", function() { return wednesdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"thursdays\", function() { return thursdays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fridays\", function() { return fridays; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saturdays\", function() { return saturdays; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n/* harmony import */ var _duration_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./duration.js */ \"./node_modules/d3-time/src/duration.js\");\n\n\n\nfunction weekday(i) {\n  return Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setDate(date.getDate() + step * 7);\n  }, function(start, end) {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationMinute\"]) / _duration_js__WEBPACK_IMPORTED_MODULE_1__[\"durationWeek\"];\n  });\n}\n\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nvar sundays = sunday.range;\nvar mondays = monday.range;\nvar tuesdays = tuesday.range;\nvar wednesdays = wednesday.range;\nvar thursdays = thursday.range;\nvar fridays = friday.range;\nvar saturdays = saturday.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/week.js?");

/***/ }),

/***/ "./node_modules/d3-time/src/year.js":
/*!******************************************!*\
  !*** ./node_modules/d3-time/src/year.js ***!
  \******************************************/
/*! exports provided: default, years */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"years\", function() { return years; });\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-time/src/interval.js\");\n\n\nvar year = Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n  return end.getFullYear() - start.getFullYear();\n}, function(date) {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : Object(_interval_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function(date) {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (year);\nvar years = year.range;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-time/src/year.js?");

/***/ }),

/***/ "./node_modules/d3-timer/src/index.js":
/*!********************************************!*\
  !*** ./node_modules/d3-timer/src/index.js ***!
  \********************************************/
/*! exports provided: now, timer, timerFlush, timeout, interval */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ \"./node_modules/d3-timer/src/timer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"now\", function() { return _timer_js__WEBPACK_IMPORTED_MODULE_0__[\"now\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return _timer_js__WEBPACK_IMPORTED_MODULE_0__[\"timer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timerFlush\", function() { return _timer_js__WEBPACK_IMPORTED_MODULE_0__[\"timerFlush\"]; });\n\n/* harmony import */ var _timeout_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./timeout.js */ \"./node_modules/d3-timer/src/timeout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeout\", function() { return _timeout_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _interval_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./interval.js */ \"./node_modules/d3-timer/src/interval.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interval\", function() { return _interval_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-timer/src/index.js?");

/***/ }),

/***/ "./node_modules/d3-timer/src/interval.js":
/*!***********************************************!*\
  !*** ./node_modules/d3-timer/src/interval.js ***!
  \***********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ \"./node_modules/d3-timer/src/timer.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback, delay, time) {\n  var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__[\"Timer\"], total = delay;\n  if (delay == null) return t.restart(callback, delay, time), t;\n  t._restart = t.restart;\n  t.restart = function(callback, delay, time) {\n    delay = +delay, time = time == null ? Object(_timer_js__WEBPACK_IMPORTED_MODULE_0__[\"now\"])() : +time;\n    t._restart(function tick(elapsed) {\n      elapsed += total;\n      t._restart(tick, total += delay, time);\n      callback(elapsed);\n    }, delay, time);\n  }\n  t.restart(callback, delay, time);\n  return t;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-timer/src/interval.js?");

/***/ }),

/***/ "./node_modules/d3-timer/src/timeout.js":
/*!**********************************************!*\
  !*** ./node_modules/d3-timer/src/timeout.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./timer.js */ \"./node_modules/d3-timer/src/timer.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(callback, delay, time) {\n  var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__[\"Timer\"];\n  delay = delay == null ? 0 : +delay;\n  t.restart(elapsed => {\n    t.stop();\n    callback(elapsed + delay);\n  }, delay, time);\n  return t;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-timer/src/timeout.js?");

/***/ }),

/***/ "./node_modules/d3-timer/src/timer.js":
/*!********************************************!*\
  !*** ./node_modules/d3-timer/src/timer.js ***!
  \********************************************/
/*! exports provided: now, Timer, timer, timerFlush */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"now\", function() { return now; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Timer\", function() { return Timer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timer\", function() { return timer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timerFlush\", function() { return timerFlush; });\nvar frame = 0, // is an animation frame pending?\n    timeout = 0, // is a timeout pending?\n    interval = 0, // are any timers active?\n    pokeDelay = 1000, // how frequently we check for clock skew\n    taskHead,\n    taskTail,\n    clockLast = 0,\n    clockNow = 0,\n    clockSkew = 0,\n    clock = typeof performance === \"object\" && performance.now ? performance : Date,\n    setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nfunction now() {\n  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n  clockNow = 0;\n}\n\nfunction Timer() {\n  this._call =\n  this._time =\n  this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n  constructor: Timer,\n  restart: function(callback, delay, time) {\n    if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n    if (!this._next && taskTail !== this) {\n      if (taskTail) taskTail._next = this;\n      else taskHead = this;\n      taskTail = this;\n    }\n    this._call = callback;\n    this._time = time;\n    sleep();\n  },\n  stop: function() {\n    if (this._call) {\n      this._call = null;\n      this._time = Infinity;\n      sleep();\n    }\n  }\n};\n\nfunction timer(callback, delay, time) {\n  var t = new Timer;\n  t.restart(callback, delay, time);\n  return t;\n}\n\nfunction timerFlush() {\n  now(); // Get the current time, if not already set.\n  ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n  var t = taskHead, e;\n  while (t) {\n    if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n    t = t._next;\n  }\n  --frame;\n}\n\nfunction wake() {\n  clockNow = (clockLast = clock.now()) + clockSkew;\n  frame = timeout = 0;\n  try {\n    timerFlush();\n  } finally {\n    frame = 0;\n    nap();\n    clockNow = 0;\n  }\n}\n\nfunction poke() {\n  var now = clock.now(), delay = now - clockLast;\n  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n  var t0, t1 = taskHead, t2, time = Infinity;\n  while (t1) {\n    if (t1._call) {\n      if (time > t1._time) time = t1._time;\n      t0 = t1, t1 = t1._next;\n    } else {\n      t2 = t1._next, t1._next = null;\n      t1 = t0 ? t0._next = t2 : taskHead = t2;\n    }\n  }\n  taskTail = t0;\n  sleep(time);\n}\n\nfunction sleep(time) {\n  if (frame) return; // Soonest alarm already set, or will be.\n  if (timeout) timeout = clearTimeout(timeout);\n  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n  if (delay > 24) {\n    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n    if (interval) interval = clearInterval(interval);\n  } else {\n    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n    frame = 1, setFrame(wake);\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/d3-timer/src/timer.js?");

/***/ }),

/***/ "./node_modules/delaunator/index.js":
/*!******************************************!*\
  !*** ./node_modules/delaunator/index.js ***!
  \******************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Delaunator; });\n\nconst EPSILON = Math.pow(2, -52);\nconst EDGE_STACK = new Uint32Array(512);\n\nclass Delaunator {\n\n    static from(points, getX = defaultGetX, getY = defaultGetY) {\n        const n = points.length;\n        const coords = new Float64Array(n * 2);\n\n        for (let i = 0; i < n; i++) {\n            const p = points[i];\n            coords[2 * i] = getX(p);\n            coords[2 * i + 1] = getY(p);\n        }\n\n        return new Delaunator(coords);\n    }\n\n    constructor(coords) {\n        const n = coords.length >> 1;\n        if (n > 0 && typeof coords[0] !== 'number') throw new Error('Expected coords to contain numbers.');\n\n        this.coords = coords;\n\n        // arrays that will store the triangulation graph\n        const maxTriangles = Math.max(2 * n - 5, 0);\n        this._triangles = new Uint32Array(maxTriangles * 3);\n        this._halfedges = new Int32Array(maxTriangles * 3);\n\n        // temporary arrays for tracking the edges of the advancing convex hull\n        this._hashSize = Math.ceil(Math.sqrt(n));\n        this._hullPrev = new Uint32Array(n); // edge to prev edge\n        this._hullNext = new Uint32Array(n); // edge to next edge\n        this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n        this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash\n\n        // temporary arrays for sorting points\n        this._ids = new Uint32Array(n);\n        this._dists = new Float64Array(n);\n\n        this.update();\n    }\n\n    update() {\n        const {coords, _hullPrev: hullPrev, _hullNext: hullNext, _hullTri: hullTri, _hullHash: hullHash} =  this;\n        const n = coords.length >> 1;\n\n        // populate an array of point indices; calculate input data bbox\n        let minX = Infinity;\n        let minY = Infinity;\n        let maxX = -Infinity;\n        let maxY = -Infinity;\n\n        for (let i = 0; i < n; i++) {\n            const x = coords[2 * i];\n            const y = coords[2 * i + 1];\n            if (x < minX) minX = x;\n            if (y < minY) minY = y;\n            if (x > maxX) maxX = x;\n            if (y > maxY) maxY = y;\n            this._ids[i] = i;\n        }\n        const cx = (minX + maxX) / 2;\n        const cy = (minY + maxY) / 2;\n\n        let minDist = Infinity;\n        let i0, i1, i2;\n\n        // pick a seed point close to the center\n        for (let i = 0; i < n; i++) {\n            const d = dist(cx, cy, coords[2 * i], coords[2 * i + 1]);\n            if (d < minDist) {\n                i0 = i;\n                minDist = d;\n            }\n        }\n        const i0x = coords[2 * i0];\n        const i0y = coords[2 * i0 + 1];\n\n        minDist = Infinity;\n\n        // find the point closest to the seed\n        for (let i = 0; i < n; i++) {\n            if (i === i0) continue;\n            const d = dist(i0x, i0y, coords[2 * i], coords[2 * i + 1]);\n            if (d < minDist && d > 0) {\n                i1 = i;\n                minDist = d;\n            }\n        }\n        let i1x = coords[2 * i1];\n        let i1y = coords[2 * i1 + 1];\n\n        let minRadius = Infinity;\n\n        // find the third point which forms the smallest circumcircle with the first two\n        for (let i = 0; i < n; i++) {\n            if (i === i0 || i === i1) continue;\n            const r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i], coords[2 * i + 1]);\n            if (r < minRadius) {\n                i2 = i;\n                minRadius = r;\n            }\n        }\n        let i2x = coords[2 * i2];\n        let i2y = coords[2 * i2 + 1];\n\n        if (minRadius === Infinity) {\n            // order collinear points by dx (or dy if all x are identical)\n            // and return the list as a hull\n            for (let i = 0; i < n; i++) {\n                this._dists[i] = (coords[2 * i] - coords[0]) || (coords[2 * i + 1] - coords[1]);\n            }\n            quicksort(this._ids, this._dists, 0, n - 1);\n            const hull = new Uint32Array(n);\n            let j = 0;\n            for (let i = 0, d0 = -Infinity; i < n; i++) {\n                const id = this._ids[i];\n                if (this._dists[id] > d0) {\n                    hull[j++] = id;\n                    d0 = this._dists[id];\n                }\n            }\n            this.hull = hull.subarray(0, j);\n            this.triangles = new Uint32Array(0);\n            this.halfedges = new Uint32Array(0);\n            return;\n        }\n\n        // swap the order of the seed points for counter-clockwise orientation\n        if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) {\n            const i = i1;\n            const x = i1x;\n            const y = i1y;\n            i1 = i2;\n            i1x = i2x;\n            i1y = i2y;\n            i2 = i;\n            i2x = x;\n            i2y = y;\n        }\n\n        const center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n        this._cx = center.x;\n        this._cy = center.y;\n\n        for (let i = 0; i < n; i++) {\n            this._dists[i] = dist(coords[2 * i], coords[2 * i + 1], center.x, center.y);\n        }\n\n        // sort the points by distance from the seed triangle circumcenter\n        quicksort(this._ids, this._dists, 0, n - 1);\n\n        // set up the seed triangle as the starting hull\n        this._hullStart = i0;\n        let hullSize = 3;\n\n        hullNext[i0] = hullPrev[i2] = i1;\n        hullNext[i1] = hullPrev[i0] = i2;\n        hullNext[i2] = hullPrev[i1] = i0;\n\n        hullTri[i0] = 0;\n        hullTri[i1] = 1;\n        hullTri[i2] = 2;\n\n        hullHash.fill(-1);\n        hullHash[this._hashKey(i0x, i0y)] = i0;\n        hullHash[this._hashKey(i1x, i1y)] = i1;\n        hullHash[this._hashKey(i2x, i2y)] = i2;\n\n        this.trianglesLen = 0;\n        this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n        for (let k = 0, xp, yp; k < this._ids.length; k++) {\n            const i = this._ids[k];\n            const x = coords[2 * i];\n            const y = coords[2 * i + 1];\n\n            // skip near-duplicate points\n            if (k > 0 && Math.abs(x - xp) <= EPSILON && Math.abs(y - yp) <= EPSILON) continue;\n            xp = x;\n            yp = y;\n\n            // skip seed triangle points\n            if (i === i0 || i === i1 || i === i2) continue;\n\n            // find a visible edge on the convex hull using edge hash\n            let start = 0;\n            for (let j = 0, key = this._hashKey(x, y); j < this._hashSize; j++) {\n                start = hullHash[(key + j) % this._hashSize];\n                if (start !== -1 && start !== hullNext[start]) break;\n            }\n\n            start = hullPrev[start];\n            let e = start, q;\n            while (q = hullNext[e], !orient(x, y, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) {\n                e = q;\n                if (e === start) {\n                    e = -1;\n                    break;\n                }\n            }\n            if (e === -1) continue; // likely a near-duplicate point; skip it\n\n            // add the first triangle from the point\n            let t = this._addTriangle(e, i, hullNext[e], -1, -1, hullTri[e]);\n\n            // recursively flip triangles from the point until they satisfy the Delaunay condition\n            hullTri[i] = this._legalize(t + 2);\n            hullTri[e] = t; // keep track of boundary triangles on the hull\n            hullSize++;\n\n            // walk forward through the hull, adding more triangles and flipping recursively\n            let n = hullNext[e];\n            while (q = hullNext[n], orient(x, y, coords[2 * n], coords[2 * n + 1], coords[2 * q], coords[2 * q + 1])) {\n                t = this._addTriangle(n, i, q, hullTri[i], -1, hullTri[n]);\n                hullTri[i] = this._legalize(t + 2);\n                hullNext[n] = n; // mark as removed\n                hullSize--;\n                n = q;\n            }\n\n            // walk backward from the other side, adding more triangles and flipping\n            if (e === start) {\n                while (q = hullPrev[e], orient(x, y, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) {\n                    t = this._addTriangle(q, i, e, -1, hullTri[e], hullTri[q]);\n                    this._legalize(t + 2);\n                    hullTri[q] = t;\n                    hullNext[e] = e; // mark as removed\n                    hullSize--;\n                    e = q;\n                }\n            }\n\n            // update the hull indices\n            this._hullStart = hullPrev[i] = e;\n            hullNext[e] = hullPrev[n] = i;\n            hullNext[i] = n;\n\n            // save the two new edges in the hash table\n            hullHash[this._hashKey(x, y)] = i;\n            hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n        }\n\n        this.hull = new Uint32Array(hullSize);\n        for (let i = 0, e = this._hullStart; i < hullSize; i++) {\n            this.hull[i] = e;\n            e = hullNext[e];\n        }\n\n        // trim typed triangle mesh arrays\n        this.triangles = this._triangles.subarray(0, this.trianglesLen);\n        this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n    }\n\n    _hashKey(x, y) {\n        return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n    }\n\n    _legalize(a) {\n        const {_triangles: triangles, _halfedges: halfedges, coords} = this;\n\n        let i = 0;\n        let ar = 0;\n\n        // recursion eliminated with a fixed-size stack\n        while (true) {\n            const b = halfedges[a];\n\n            /* if the pair of triangles doesn't satisfy the Delaunay condition\n             * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n             * then do the same check/flip recursively for the new pair of triangles\n             *\n             *           pl                    pl\n             *          /||\\                  /  \\\n             *       al/ || \\bl            al/    \\a\n             *        /  ||  \\              /      \\\n             *       /  a||b  \\    flip    /___ar___\\\n             *     p0\\   ||   /p1   =>   p0\\---bl---/p1\n             *        \\  ||  /              \\      /\n             *       ar\\ || /br             b\\    /br\n             *          \\||/                  \\  /\n             *           pr                    pr\n             */\n            const a0 = a - a % 3;\n            ar = a0 + (a + 2) % 3;\n\n            if (b === -1) { // convex hull edge\n                if (i === 0) break;\n                a = EDGE_STACK[--i];\n                continue;\n            }\n\n            const b0 = b - b % 3;\n            const al = a0 + (a + 1) % 3;\n            const bl = b0 + (b + 2) % 3;\n\n            const p0 = triangles[ar];\n            const pr = triangles[a];\n            const pl = triangles[al];\n            const p1 = triangles[bl];\n\n            const illegal = inCircle(\n                coords[2 * p0], coords[2 * p0 + 1],\n                coords[2 * pr], coords[2 * pr + 1],\n                coords[2 * pl], coords[2 * pl + 1],\n                coords[2 * p1], coords[2 * p1 + 1]);\n\n            if (illegal) {\n                triangles[a] = p1;\n                triangles[b] = p0;\n\n                const hbl = halfedges[bl];\n\n                // edge swapped on the other side of the hull (rare); fix the halfedge reference\n                if (hbl === -1) {\n                    let e = this._hullStart;\n                    do {\n                        if (this._hullTri[e] === bl) {\n                            this._hullTri[e] = a;\n                            break;\n                        }\n                        e = this._hullPrev[e];\n                    } while (e !== this._hullStart);\n                }\n                this._link(a, hbl);\n                this._link(b, halfedges[ar]);\n                this._link(ar, bl);\n\n                const br = b0 + (b + 1) % 3;\n\n                // don't worry about hitting the cap: it can only happen on extremely degenerate input\n                if (i < EDGE_STACK.length) {\n                    EDGE_STACK[i++] = br;\n                }\n            } else {\n                if (i === 0) break;\n                a = EDGE_STACK[--i];\n            }\n        }\n\n        return ar;\n    }\n\n    _link(a, b) {\n        this._halfedges[a] = b;\n        if (b !== -1) this._halfedges[b] = a;\n    }\n\n    // add a new triangle given vertex indices and adjacent half-edge ids\n    _addTriangle(i0, i1, i2, a, b, c) {\n        const t = this.trianglesLen;\n\n        this._triangles[t] = i0;\n        this._triangles[t + 1] = i1;\n        this._triangles[t + 2] = i2;\n\n        this._link(t, a);\n        this._link(t + 1, b);\n        this._link(t + 2, c);\n\n        this.trianglesLen += 3;\n\n        return t;\n    }\n}\n\n// monotonically increases with real angle, but doesn't need expensive trigonometry\nfunction pseudoAngle(dx, dy) {\n    const p = dx / (Math.abs(dx) + Math.abs(dy));\n    return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n}\n\nfunction dist(ax, ay, bx, by) {\n    const dx = ax - bx;\n    const dy = ay - by;\n    return dx * dx + dy * dy;\n}\n\n// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check\nfunction orientIfSure(px, py, rx, ry, qx, qy) {\n    const l = (ry - py) * (qx - px);\n    const r = (rx - px) * (qy - py);\n    return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0;\n}\n\n// a more robust orientation test that's stable in a given triangle (to fix robustness issues)\nfunction orient(rx, ry, qx, qy, px, py) {\n    const sign = orientIfSure(px, py, rx, ry, qx, qy) ||\n    orientIfSure(rx, ry, qx, qy, px, py) ||\n    orientIfSure(qx, qy, px, py, rx, ry);\n    return sign < 0;\n}\n\nfunction inCircle(ax, ay, bx, by, cx, cy, px, py) {\n    const dx = ax - px;\n    const dy = ay - py;\n    const ex = bx - px;\n    const ey = by - py;\n    const fx = cx - px;\n    const fy = cy - py;\n\n    const ap = dx * dx + dy * dy;\n    const bp = ex * ex + ey * ey;\n    const cp = fx * fx + fy * fy;\n\n    return dx * (ey * cp - bp * fy) -\n           dy * (ex * cp - bp * fx) +\n           ap * (ex * fy - ey * fx) < 0;\n}\n\nfunction circumradius(ax, ay, bx, by, cx, cy) {\n    const dx = bx - ax;\n    const dy = by - ay;\n    const ex = cx - ax;\n    const ey = cy - ay;\n\n    const bl = dx * dx + dy * dy;\n    const cl = ex * ex + ey * ey;\n    const d = 0.5 / (dx * ey - dy * ex);\n\n    const x = (ey * bl - dy * cl) * d;\n    const y = (dx * cl - ex * bl) * d;\n\n    return x * x + y * y;\n}\n\nfunction circumcenter(ax, ay, bx, by, cx, cy) {\n    const dx = bx - ax;\n    const dy = by - ay;\n    const ex = cx - ax;\n    const ey = cy - ay;\n\n    const bl = dx * dx + dy * dy;\n    const cl = ex * ex + ey * ey;\n    const d = 0.5 / (dx * ey - dy * ex);\n\n    const x = ax + (ey * bl - dy * cl) * d;\n    const y = ay + (dx * cl - ex * bl) * d;\n\n    return {x, y};\n}\n\nfunction quicksort(ids, dists, left, right) {\n    if (right - left <= 20) {\n        for (let i = left + 1; i <= right; i++) {\n            const temp = ids[i];\n            const tempDist = dists[temp];\n            let j = i - 1;\n            while (j >= left && dists[ids[j]] > tempDist) ids[j + 1] = ids[j--];\n            ids[j + 1] = temp;\n        }\n    } else {\n        const median = (left + right) >> 1;\n        let i = left + 1;\n        let j = right;\n        swap(ids, median, i);\n        if (dists[ids[left]] > dists[ids[right]]) swap(ids, left, right);\n        if (dists[ids[i]] > dists[ids[right]]) swap(ids, i, right);\n        if (dists[ids[left]] > dists[ids[i]]) swap(ids, left, i);\n\n        const temp = ids[i];\n        const tempDist = dists[temp];\n        while (true) {\n            do i++; while (dists[ids[i]] < tempDist);\n            do j--; while (dists[ids[j]] > tempDist);\n            if (j < i) break;\n            swap(ids, i, j);\n        }\n        ids[left + 1] = ids[j];\n        ids[j] = temp;\n\n        if (right - i + 1 >= j - left) {\n            quicksort(ids, dists, i, right);\n            quicksort(ids, dists, left, j - 1);\n        } else {\n            quicksort(ids, dists, left, j - 1);\n            quicksort(ids, dists, i, right);\n        }\n    }\n}\n\nfunction swap(arr, i, j) {\n    const tmp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = tmp;\n}\n\nfunction defaultGetX(p) {\n    return p[0];\n}\nfunction defaultGetY(p) {\n    return p[1];\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/delaunator/index.js?");

/***/ }),

/***/ "./node_modules/dom-helpers/esm/addClass.js":
/*!**************************************************!*\
  !*** ./node_modules/dom-helpers/esm/addClass.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return addClass; });\n/* harmony import */ var _hasClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hasClass */ \"./node_modules/dom-helpers/esm/hasClass.js\");\n\nfunction addClass(element, className) {\n  if (element.classList) element.classList.add(className);else if (!Object(_hasClass__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/dom-helpers/esm/addClass.js?");

/***/ }),

/***/ "./node_modules/dom-helpers/esm/hasClass.js":
/*!**************************************************!*\
  !*** ./node_modules/dom-helpers/esm/hasClass.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return hasClass; });\nfunction hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);\n  return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/dom-helpers/esm/hasClass.js?");

/***/ }),

/***/ "./node_modules/dom-helpers/esm/removeClass.js":
/*!*****************************************************!*\
  !*** ./node_modules/dom-helpers/esm/removeClass.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return removeClass; });\nfunction replaceClassName(origClass, classToRemove) {\n  return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nfunction removeClass(element, className) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else if (typeof element.className === 'string') {\n    ;\n    element.className = replaceClassName(element.className, className);\n  } else {\n    element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n  }\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/dom-helpers/esm/removeClass.js?");

/***/ }),

/***/ "./node_modules/fast-deep-equal/index.js":
/*!***********************************************!*\
  !*** ./node_modules/fast-deep-equal/index.js ***!
  \***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n\n      if (!equal(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a!==a && b!==b;\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/fast-deep-equal/index.js?");

/***/ }),

/***/ "./node_modules/fast-json-patch/index.mjs":
/*!************************************************!*\
  !*** ./node_modules/fast-json-patch/index.mjs ***!
  \************************************************/
/*! exports provided: getValueByPointer, applyOperation, applyPatch, applyReducer, validator, validate, _areEquals, unobserve, observe, generate, compare, JsonPatchError, deepClone, escapePathComponent, unescapePathComponent, default */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./module/core.mjs */ \"./node_modules/fast-json-patch/module/core.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getValueByPointer\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"getValueByPointer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyOperation\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"applyOperation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyPatch\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"applyPatch\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"applyReducer\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"applyReducer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"validator\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"validator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"validate\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"validate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"_areEquals\", function() { return _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_areEquals\"]; });\n\n/* harmony import */ var _module_duplex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./module/duplex.mjs */ \"./node_modules/fast-json-patch/module/duplex.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unobserve\", function() { return _module_duplex_mjs__WEBPACK_IMPORTED_MODULE_1__[\"unobserve\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return _module_duplex_mjs__WEBPACK_IMPORTED_MODULE_1__[\"observe\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return _module_duplex_mjs__WEBPACK_IMPORTED_MODULE_1__[\"generate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compare\", function() { return _module_duplex_mjs__WEBPACK_IMPORTED_MODULE_1__[\"compare\"]; });\n\n/* harmony import */ var _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./module/helpers.mjs */ \"./node_modules/fast-json-patch/module/helpers.mjs\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"JsonPatchError\", function() { return _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"PatchError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone\", function() { return _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"_deepClone\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"escapePathComponent\", function() { return _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"escapePathComponent\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unescapePathComponent\", function() { return _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"unescapePathComponent\"]; });\n\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Default export for backwards compat\r\n */\r\n\r\n\r\n\r\n\r\n\r\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object.assign({}, _module_core_mjs__WEBPACK_IMPORTED_MODULE_0__, _module_duplex_mjs__WEBPACK_IMPORTED_MODULE_1__, {\r\n    JsonPatchError: _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"PatchError\"],\r\n    deepClone: _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"_deepClone\"],\r\n    escapePathComponent: _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"escapePathComponent\"],\r\n    unescapePathComponent: _module_helpers_mjs__WEBPACK_IMPORTED_MODULE_2__[\"unescapePathComponent\"]\r\n}));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/fast-json-patch/index.mjs?");

/***/ }),

/***/ "./node_modules/fast-json-patch/module/core.mjs":
/*!******************************************************!*\
  !*** ./node_modules/fast-json-patch/module/core.mjs ***!
  \******************************************************/
/*! exports provided: JsonPatchError, deepClone, getValueByPointer, applyOperation, applyPatch, applyReducer, validator, validate, _areEquals */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JsonPatchError\", function() { return JsonPatchError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone\", function() { return deepClone; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getValueByPointer\", function() { return getValueByPointer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyOperation\", function() { return applyOperation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyPatch\", function() { return applyPatch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyReducer\", function() { return applyReducer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"validator\", function() { return validator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"validate\", function() { return validate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_areEquals\", function() { return _areEquals; });\n/* harmony import */ var _helpers_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers.mjs */ \"./node_modules/fast-json-patch/module/helpers.mjs\");\n\nvar JsonPatchError = _helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"PatchError\"];\nvar deepClone = _helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"];\n/* We use a Javascript hash to store each\n function. Each hash entry (property) uses\n the operation identifiers specified in rfc6902.\n In this way, we can map each patch operation\n to its dedicated function in efficient way.\n */\n/* The operations applicable to an object */\nvar objOps = {\n    add: function (obj, key, document) {\n        obj[key] = this.value;\n        return { newDocument: document };\n    },\n    remove: function (obj, key, document) {\n        var removed = obj[key];\n        delete obj[key];\n        return { newDocument: document, removed: removed };\n    },\n    replace: function (obj, key, document) {\n        var removed = obj[key];\n        obj[key] = this.value;\n        return { newDocument: document, removed: removed };\n    },\n    move: function (obj, key, document) {\n        /* in case move target overwrites an existing value,\n        return the removed value, this can be taxing performance-wise,\n        and is potentially unneeded */\n        var removed = getValueByPointer(document, this.path);\n        if (removed) {\n            removed = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(removed);\n        }\n        var originalValue = applyOperation(document, { op: \"remove\", path: this.from }).removed;\n        applyOperation(document, { op: \"add\", path: this.path, value: originalValue });\n        return { newDocument: document, removed: removed };\n    },\n    copy: function (obj, key, document) {\n        var valueToCopy = getValueByPointer(document, this.from);\n        // enforce copy by value so further operations don't affect source (see issue #177)\n        applyOperation(document, { op: \"add\", path: this.path, value: Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(valueToCopy) });\n        return { newDocument: document };\n    },\n    test: function (obj, key, document) {\n        return { newDocument: document, test: _areEquals(obj[key], this.value) };\n    },\n    _get: function (obj, key, document) {\n        this.value = obj[key];\n        return { newDocument: document };\n    }\n};\n/* The operations applicable to an array. Many are the same as for the object */\nvar arrOps = {\n    add: function (arr, i, document) {\n        if (Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isInteger\"])(i)) {\n            arr.splice(i, 0, this.value);\n        }\n        else { // array props\n            arr[i] = this.value;\n        }\n        // this may be needed when using '-' in an array\n        return { newDocument: document, index: i };\n    },\n    remove: function (arr, i, document) {\n        var removedList = arr.splice(i, 1);\n        return { newDocument: document, removed: removedList[0] };\n    },\n    replace: function (arr, i, document) {\n        var removed = arr[i];\n        arr[i] = this.value;\n        return { newDocument: document, removed: removed };\n    },\n    move: objOps.move,\n    copy: objOps.copy,\n    test: objOps.test,\n    _get: objOps._get\n};\n/**\n * Retrieves a value from a JSON document by a JSON pointer.\n * Returns the value.\n *\n * @param document The document to get the value from\n * @param pointer an escaped JSON pointer\n * @return The retrieved value\n */\nfunction getValueByPointer(document, pointer) {\n    if (pointer == '') {\n        return document;\n    }\n    var getOriginalDestination = { op: \"_get\", path: pointer };\n    applyOperation(document, getOriginalDestination);\n    return getOriginalDestination.value;\n}\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the {newDocument, result} of the operation.\n * It modifies the `document` and `operation` objects - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return `{newDocument, result}` after the operation\n */\nfunction applyOperation(document, operation, validateOperation, mutateDocument, banPrototypeModifications, index) {\n    if (validateOperation === void 0) { validateOperation = false; }\n    if (mutateDocument === void 0) { mutateDocument = true; }\n    if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }\n    if (index === void 0) { index = 0; }\n    if (validateOperation) {\n        if (typeof validateOperation == 'function') {\n            validateOperation(operation, 0, document, operation.path);\n        }\n        else {\n            validator(operation, 0);\n        }\n    }\n    /* ROOT OPERATIONS */\n    if (operation.path === \"\") {\n        var returnValue = { newDocument: document };\n        if (operation.op === 'add') {\n            returnValue.newDocument = operation.value;\n            return returnValue;\n        }\n        else if (operation.op === 'replace') {\n            returnValue.newDocument = operation.value;\n            returnValue.removed = document; //document we removed\n            return returnValue;\n        }\n        else if (operation.op === 'move' || operation.op === 'copy') { // it's a move or copy to root\n            returnValue.newDocument = getValueByPointer(document, operation.from); // get the value by json-pointer in `from` field\n            if (operation.op === 'move') { // report removed item\n                returnValue.removed = document;\n            }\n            return returnValue;\n        }\n        else if (operation.op === 'test') {\n            returnValue.test = _areEquals(document, operation.value);\n            if (returnValue.test === false) {\n                throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n            }\n            returnValue.newDocument = document;\n            return returnValue;\n        }\n        else if (operation.op === 'remove') { // a remove on root\n            returnValue.removed = document;\n            returnValue.newDocument = null;\n            return returnValue;\n        }\n        else if (operation.op === '_get') {\n            operation.value = document;\n            return returnValue;\n        }\n        else { /* bad operation */\n            if (validateOperation) {\n                throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n            }\n            else {\n                return returnValue;\n            }\n        }\n    } /* END ROOT OPERATIONS */\n    else {\n        if (!mutateDocument) {\n            document = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(document);\n        }\n        var path = operation.path || \"\";\n        var keys = path.split('/');\n        var obj = document;\n        var t = 1; //skip empty element - http://jsperf.com/to-shift-or-not-to-shift\n        var len = keys.length;\n        var existingPathFragment = undefined;\n        var key = void 0;\n        var validateFunction = void 0;\n        if (typeof validateOperation == 'function') {\n            validateFunction = validateOperation;\n        }\n        else {\n            validateFunction = validator;\n        }\n        while (true) {\n            key = keys[t];\n            if (banPrototypeModifications && key == '__proto__') {\n                throw new TypeError('JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');\n            }\n            if (validateOperation) {\n                if (existingPathFragment === undefined) {\n                    if (obj[key] === undefined) {\n                        existingPathFragment = keys.slice(0, t).join('/');\n                    }\n                    else if (t == len - 1) {\n                        existingPathFragment = operation.path;\n                    }\n                    if (existingPathFragment !== undefined) {\n                        validateFunction(operation, 0, document, existingPathFragment);\n                    }\n                }\n            }\n            t++;\n            if (Array.isArray(obj)) {\n                if (key === '-') {\n                    key = obj.length;\n                }\n                else {\n                    if (validateOperation && !Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isInteger\"])(key)) {\n                        throw new JsonPatchError(\"Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index\", \"OPERATION_PATH_ILLEGAL_ARRAY_INDEX\", index, operation, document);\n                    } // only parse key when it's an integer for `arr.prop` to work\n                    else if (Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"isInteger\"])(key)) {\n                        key = ~~key;\n                    }\n                }\n                if (t >= len) {\n                    if (validateOperation && operation.op === \"add\" && key > obj.length) {\n                        throw new JsonPatchError(\"The specified index MUST NOT be greater than the number of elements in the array\", \"OPERATION_VALUE_OUT_OF_BOUNDS\", index, operation, document);\n                    }\n                    var returnValue = arrOps[operation.op].call(operation, obj, key, document); // Apply patch\n                    if (returnValue.test === false) {\n                        throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n                    }\n                    return returnValue;\n                }\n            }\n            else {\n                if (key && key.indexOf('~') != -1) {\n                    key = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"unescapePathComponent\"])(key);\n                }\n                if (t >= len) {\n                    var returnValue = objOps[operation.op].call(operation, obj, key, document); // Apply patch\n                    if (returnValue.test === false) {\n                        throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n                    }\n                    return returnValue;\n                }\n            }\n            obj = obj[key];\n        }\n    }\n}\n/**\n * Apply a full JSON Patch array on a JSON document.\n * Returns the {newDocument, result} of the patch.\n * It modifies the `document` object and `patch` - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.\n *\n * @param document The document to patch\n * @param patch The patch to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return An array of `{newDocument, result}` after the patch\n */\nfunction applyPatch(document, patch, validateOperation, mutateDocument, banPrototypeModifications) {\n    if (mutateDocument === void 0) { mutateDocument = true; }\n    if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }\n    if (validateOperation) {\n        if (!Array.isArray(patch)) {\n            throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n        }\n    }\n    if (!mutateDocument) {\n        document = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(document);\n    }\n    var results = new Array(patch.length);\n    for (var i = 0, length_1 = patch.length; i < length_1; i++) {\n        // we don't need to pass mutateDocument argument because if it was true, we already deep cloned the object, we'll just pass `true`\n        results[i] = applyOperation(document, patch[i], validateOperation, true, banPrototypeModifications, i);\n        document = results[i].newDocument; // in case root was replaced\n    }\n    results.newDocument = document;\n    return results;\n}\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the updated document.\n * Suitable as a reducer.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @return The updated document\n */\nfunction applyReducer(document, operation, index) {\n    var operationResult = applyOperation(document, operation);\n    if (operationResult.test === false) { // failed test\n        throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n    }\n    return operationResult.newDocument;\n}\n/**\n * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.\n * @param {object} operation - operation object (patch)\n * @param {number} index - index of operation in the sequence\n * @param {object} [document] - object where the operation is supposed to be applied\n * @param {string} [existingPathFragment] - comes along with `document`\n */\nfunction validator(operation, index, document, existingPathFragment) {\n    if (typeof operation !== 'object' || operation === null || Array.isArray(operation)) {\n        throw new JsonPatchError('Operation is not an object', 'OPERATION_NOT_AN_OBJECT', index, operation, document);\n    }\n    else if (!objOps[operation.op]) {\n        throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n    }\n    else if (typeof operation.path !== 'string') {\n        throw new JsonPatchError('Operation `path` property is not a string', 'OPERATION_PATH_INVALID', index, operation, document);\n    }\n    else if (operation.path.indexOf('/') !== 0 && operation.path.length > 0) {\n        // paths that aren't empty string should start with \"/\"\n        throw new JsonPatchError('Operation `path` property must start with \"/\"', 'OPERATION_PATH_INVALID', index, operation, document);\n    }\n    else if ((operation.op === 'move' || operation.op === 'copy') && typeof operation.from !== 'string') {\n        throw new JsonPatchError('Operation `from` property is not present (applicable in `move` and `copy` operations)', 'OPERATION_FROM_REQUIRED', index, operation, document);\n    }\n    else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && operation.value === undefined) {\n        throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_REQUIRED', index, operation, document);\n    }\n    else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasUndefined\"])(operation.value)) {\n        throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED', index, operation, document);\n    }\n    else if (document) {\n        if (operation.op == \"add\") {\n            var pathLen = operation.path.split(\"/\").length;\n            var existingPathLen = existingPathFragment.split(\"/\").length;\n            if (pathLen !== existingPathLen + 1 && pathLen !== existingPathLen) {\n                throw new JsonPatchError('Cannot perform an `add` operation at the desired path', 'OPERATION_PATH_CANNOT_ADD', index, operation, document);\n            }\n        }\n        else if (operation.op === 'replace' || operation.op === 'remove' || operation.op === '_get') {\n            if (operation.path !== existingPathFragment) {\n                throw new JsonPatchError('Cannot perform the operation at a path that does not exist', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);\n            }\n        }\n        else if (operation.op === 'move' || operation.op === 'copy') {\n            var existingValue = { op: \"_get\", path: operation.from, value: undefined };\n            var error = validate([existingValue], document);\n            if (error && error.name === 'OPERATION_PATH_UNRESOLVABLE') {\n                throw new JsonPatchError('Cannot perform the operation from a path that does not exist', 'OPERATION_FROM_UNRESOLVABLE', index, operation, document);\n            }\n        }\n    }\n}\n/**\n * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.\n * If error is encountered, returns a JsonPatchError object\n * @param sequence\n * @param document\n * @returns {JsonPatchError|undefined}\n */\nfunction validate(sequence, document, externalValidator) {\n    try {\n        if (!Array.isArray(sequence)) {\n            throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n        }\n        if (document) {\n            //clone document and sequence so that we can safely try applying operations\n            applyPatch(Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(document), Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(sequence), externalValidator || true);\n        }\n        else {\n            externalValidator = externalValidator || validator;\n            for (var i = 0; i < sequence.length; i++) {\n                externalValidator(sequence[i], i, document, undefined);\n            }\n        }\n    }\n    catch (e) {\n        if (e instanceof JsonPatchError) {\n            return e;\n        }\n        else {\n            throw e;\n        }\n    }\n}\n// based on https://github.com/epoberezkin/fast-deep-equal\n// MIT License\n// Copyright (c) 2017 Evgeny Poberezkin\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\nfunction _areEquals(a, b) {\n    if (a === b)\n        return true;\n    if (a && b && typeof a == 'object' && typeof b == 'object') {\n        var arrA = Array.isArray(a), arrB = Array.isArray(b), i, length, key;\n        if (arrA && arrB) {\n            length = a.length;\n            if (length != b.length)\n                return false;\n            for (i = length; i-- !== 0;)\n                if (!_areEquals(a[i], b[i]))\n                    return false;\n            return true;\n        }\n        if (arrA != arrB)\n            return false;\n        var keys = Object.keys(a);\n        length = keys.length;\n        if (length !== Object.keys(b).length)\n            return false;\n        for (i = length; i-- !== 0;)\n            if (!b.hasOwnProperty(keys[i]))\n                return false;\n        for (i = length; i-- !== 0;) {\n            key = keys[i];\n            if (!_areEquals(a[key], b[key]))\n                return false;\n        }\n        return true;\n    }\n    return a !== a && b !== b;\n}\n;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/fast-json-patch/module/core.mjs?");

/***/ }),

/***/ "./node_modules/fast-json-patch/module/duplex.mjs":
/*!********************************************************!*\
  !*** ./node_modules/fast-json-patch/module/duplex.mjs ***!
  \********************************************************/
/*! exports provided: unobserve, observe, generate, compare */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unobserve\", function() { return unobserve; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"observe\", function() { return observe; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compare\", function() { return compare; });\n/* harmony import */ var _helpers_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers.mjs */ \"./node_modules/fast-json-patch/module/helpers.mjs\");\n/* harmony import */ var _core_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core.mjs */ \"./node_modules/fast-json-patch/module/core.mjs\");\n/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017 Joachim Wester\n * MIT license\n */\n\n\nvar beforeDict = new WeakMap();\nvar Mirror = /** @class */ (function () {\n    function Mirror(obj) {\n        this.observers = new Map();\n        this.obj = obj;\n    }\n    return Mirror;\n}());\nvar ObserverInfo = /** @class */ (function () {\n    function ObserverInfo(callback, observer) {\n        this.callback = callback;\n        this.observer = observer;\n    }\n    return ObserverInfo;\n}());\nfunction getMirror(obj) {\n    return beforeDict.get(obj);\n}\nfunction getObserverFromMirror(mirror, callback) {\n    return mirror.observers.get(callback);\n}\nfunction removeObserverFromMirror(mirror, observer) {\n    mirror.observers.delete(observer.callback);\n}\n/**\n * Detach an observer from an object\n */\nfunction unobserve(root, observer) {\n    observer.unobserve();\n}\n/**\n * Observes changes made to an object, which can then be retrieved using generate\n */\nfunction observe(obj, callback) {\n    var patches = [];\n    var observer;\n    var mirror = getMirror(obj);\n    if (!mirror) {\n        mirror = new Mirror(obj);\n        beforeDict.set(obj, mirror);\n    }\n    else {\n        var observerInfo = getObserverFromMirror(mirror, callback);\n        observer = observerInfo && observerInfo.observer;\n    }\n    if (observer) {\n        return observer;\n    }\n    observer = {};\n    mirror.value = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(obj);\n    if (callback) {\n        observer.callback = callback;\n        observer.next = null;\n        var dirtyCheck = function () {\n            generate(observer);\n        };\n        var fastCheck = function () {\n            clearTimeout(observer.next);\n            observer.next = setTimeout(dirtyCheck);\n        };\n        if (typeof window !== 'undefined') { //not Node\n            window.addEventListener('mouseup', fastCheck);\n            window.addEventListener('keyup', fastCheck);\n            window.addEventListener('mousedown', fastCheck);\n            window.addEventListener('keydown', fastCheck);\n            window.addEventListener('change', fastCheck);\n        }\n    }\n    observer.patches = patches;\n    observer.object = obj;\n    observer.unobserve = function () {\n        generate(observer);\n        clearTimeout(observer.next);\n        removeObserverFromMirror(mirror, observer);\n        if (typeof window !== 'undefined') {\n            window.removeEventListener('mouseup', fastCheck);\n            window.removeEventListener('keyup', fastCheck);\n            window.removeEventListener('mousedown', fastCheck);\n            window.removeEventListener('keydown', fastCheck);\n            window.removeEventListener('change', fastCheck);\n        }\n    };\n    mirror.observers.set(callback, new ObserverInfo(callback, observer));\n    return observer;\n}\n/**\n * Generate an array of patches from an observer\n */\nfunction generate(observer, invertible) {\n    if (invertible === void 0) { invertible = false; }\n    var mirror = beforeDict.get(observer.object);\n    _generate(mirror.value, observer.object, observer.patches, \"\", invertible);\n    if (observer.patches.length) {\n        Object(_core_mjs__WEBPACK_IMPORTED_MODULE_1__[\"applyPatch\"])(mirror.value, observer.patches);\n    }\n    var temp = observer.patches;\n    if (temp.length > 0) {\n        observer.patches = [];\n        if (observer.callback) {\n            observer.callback(temp);\n        }\n    }\n    return temp;\n}\n// Dirty check if obj is different from mirror, generate patches and update mirror\nfunction _generate(mirror, obj, patches, path, invertible) {\n    if (obj === mirror) {\n        return;\n    }\n    if (typeof obj.toJSON === \"function\") {\n        obj = obj.toJSON();\n    }\n    var newKeys = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_objectKeys\"])(obj);\n    var oldKeys = Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_objectKeys\"])(mirror);\n    var changed = false;\n    var deleted = false;\n    //if ever \"move\" operation is implemented here, make sure this test runs OK: \"should not generate the same patch twice (move)\"\n    for (var t = oldKeys.length - 1; t >= 0; t--) {\n        var key = oldKeys[t];\n        var oldVal = mirror[key];\n        if (Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(obj, key) && !(obj[key] === undefined && oldVal !== undefined && Array.isArray(obj) === false)) {\n            var newVal = obj[key];\n            if (typeof oldVal == \"object\" && oldVal != null && typeof newVal == \"object\" && newVal != null) {\n                _generate(oldVal, newVal, patches, path + \"/\" + Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"escapePathComponent\"])(key), invertible);\n            }\n            else {\n                if (oldVal !== newVal) {\n                    changed = true;\n                    if (invertible) {\n                        patches.push({ op: \"test\", path: path + \"/\" + Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"escapePathComponent\"])(key), value: Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(oldVal) });\n                    }\n                    patches.push({ op: \"replace\", path: path + \"/\" + Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"escapePathComponent\"])(key), value: Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(newVal) });\n                }\n            }\n        }\n        else if (Array.isArray(mirror) === Array.isArray(obj)) {\n            if (invertible) {\n                patches.push({ op: \"test\", path: path + \"/\" + Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"escapePathComponent\"])(key), value: Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(oldVal) });\n            }\n            patches.push({ op: \"remove\", path: path + \"/\" + Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"escapePathComponent\"])(key) });\n            deleted = true; // property has been deleted\n        }\n        else {\n            if (invertible) {\n                patches.push({ op: \"test\", path: path, value: mirror });\n            }\n            patches.push({ op: \"replace\", path: path, value: obj });\n            changed = true;\n        }\n    }\n    if (!deleted && newKeys.length == oldKeys.length) {\n        return;\n    }\n    for (var t = 0; t < newKeys.length; t++) {\n        var key = newKeys[t];\n        if (!Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(mirror, key) && obj[key] !== undefined) {\n            patches.push({ op: \"add\", path: path + \"/\" + Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"escapePathComponent\"])(key), value: Object(_helpers_mjs__WEBPACK_IMPORTED_MODULE_0__[\"_deepClone\"])(obj[key]) });\n        }\n    }\n}\n/**\n * Create an array of patches from the differences in two objects\n */\nfunction compare(tree1, tree2, invertible) {\n    if (invertible === void 0) { invertible = false; }\n    var patches = [];\n    _generate(tree1, tree2, patches, '', invertible);\n    return patches;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/fast-json-patch/module/duplex.mjs?");

/***/ }),

/***/ "./node_modules/fast-json-patch/module/helpers.mjs":
/*!*********************************************************!*\
  !*** ./node_modules/fast-json-patch/module/helpers.mjs ***!
  \*********************************************************/
/*! exports provided: hasOwnProperty, _objectKeys, _deepClone, isInteger, escapePathComponent, unescapePathComponent, _getPathRecursive, getPath, hasUndefined, PatchError */
/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return hasOwnProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_objectKeys\", function() { return _objectKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_deepClone\", function() { return _deepClone; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInteger\", function() { return isInteger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"escapePathComponent\", function() { return escapePathComponent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unescapePathComponent\", function() { return unescapePathComponent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_getPathRecursive\", function() { return _getPathRecursive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPath\", function() { return getPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasUndefined\", function() { return hasUndefined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PatchError\", function() { return PatchError; });\n/*!\r\n * https://github.com/Starcounter-Jack/JSON-Patch\r\n * (c) 2017 Joachim Wester\r\n * MIT license\r\n */\r\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n    var extendStatics = function (d, b) {\r\n        extendStatics = Object.setPrototypeOf ||\r\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n        return extendStatics(d, b);\r\n    };\r\n    return function (d, b) {\r\n        extendStatics(d, b);\r\n        function __() { this.constructor = d; }\r\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n    };\r\n})();\r\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwnProperty(obj, key) {\r\n    return _hasOwnProperty.call(obj, key);\r\n}\r\nfunction _objectKeys(obj) {\r\n    if (Array.isArray(obj)) {\r\n        var keys = new Array(obj.length);\r\n        for (var k = 0; k < keys.length; k++) {\r\n            keys[k] = \"\" + k;\r\n        }\r\n        return keys;\r\n    }\r\n    if (Object.keys) {\r\n        return Object.keys(obj);\r\n    }\r\n    var keys = [];\r\n    for (var i in obj) {\r\n        if (hasOwnProperty(obj, i)) {\r\n            keys.push(i);\r\n        }\r\n    }\r\n    return keys;\r\n}\r\n;\r\n/**\r\n* Deeply clone the object.\r\n* https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)\r\n* @param  {any} obj value to clone\r\n* @return {any} cloned obj\r\n*/\r\nfunction _deepClone(obj) {\r\n    switch (typeof obj) {\r\n        case \"object\":\r\n            return JSON.parse(JSON.stringify(obj)); //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5\r\n        case \"undefined\":\r\n            return null; //this is how JSON.stringify behaves for array items\r\n        default:\r\n            return obj; //no need to clone primitives\r\n    }\r\n}\r\n//3x faster than cached /^\\d+$/.test(str)\r\nfunction isInteger(str) {\r\n    var i = 0;\r\n    var len = str.length;\r\n    var charCode;\r\n    while (i < len) {\r\n        charCode = str.charCodeAt(i);\r\n        if (charCode >= 48 && charCode <= 57) {\r\n            i++;\r\n            continue;\r\n        }\r\n        return false;\r\n    }\r\n    return true;\r\n}\r\n/**\r\n* Escapes a json pointer path\r\n* @param path The raw pointer\r\n* @return the Escaped path\r\n*/\r\nfunction escapePathComponent(path) {\r\n    if (path.indexOf('/') === -1 && path.indexOf('~') === -1)\r\n        return path;\r\n    return path.replace(/~/g, '~0').replace(/\\//g, '~1');\r\n}\r\n/**\r\n * Unescapes a json pointer path\r\n * @param path The escaped pointer\r\n * @return The unescaped path\r\n */\r\nfunction unescapePathComponent(path) {\r\n    return path.replace(/~1/g, '/').replace(/~0/g, '~');\r\n}\r\nfunction _getPathRecursive(root, obj) {\r\n    var found;\r\n    for (var key in root) {\r\n        if (hasOwnProperty(root, key)) {\r\n            if (root[key] === obj) {\r\n                return escapePathComponent(key) + '/';\r\n            }\r\n            else if (typeof root[key] === 'object') {\r\n                found = _getPathRecursive(root[key], obj);\r\n                if (found != '') {\r\n                    return escapePathComponent(key) + '/' + found;\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return '';\r\n}\r\nfunction getPath(root, obj) {\r\n    if (root === obj) {\r\n        return '/';\r\n    }\r\n    var path = _getPathRecursive(root, obj);\r\n    if (path === '') {\r\n        throw new Error(\"Object not found in root\");\r\n    }\r\n    return '/' + path;\r\n}\r\n/**\r\n* Recursively checks whether an object has any undefined values inside.\r\n*/\r\nfunction hasUndefined(obj) {\r\n    if (obj === undefined) {\r\n        return true;\r\n    }\r\n    if (obj) {\r\n        if (Array.isArray(obj)) {\r\n            for (var i = 0, len = obj.length; i < len; i++) {\r\n                if (hasUndefined(obj[i])) {\r\n                    return true;\r\n                }\r\n            }\r\n        }\r\n        else if (typeof obj === \"object\") {\r\n            var objKeys = _objectKeys(obj);\r\n            var objKeysLength = objKeys.length;\r\n            for (var i = 0; i < objKeysLength; i++) {\r\n                if (hasUndefined(obj[objKeys[i]])) {\r\n                    return true;\r\n                }\r\n            }\r\n        }\r\n    }\r\n    return false;\r\n}\r\nfunction patchErrorMessageFormatter(message, args) {\r\n    var messageParts = [message];\r\n    for (var key in args) {\r\n        var value = typeof args[key] === 'object' ? JSON.stringify(args[key], null, 2) : args[key]; // pretty print\r\n        if (typeof value !== 'undefined') {\r\n            messageParts.push(key + \": \" + value);\r\n        }\r\n    }\r\n    return messageParts.join('\\n');\r\n}\r\nvar PatchError = /** @class */ (function (_super) {\r\n    __extends(PatchError, _super);\r\n    function PatchError(message, name, index, operation, tree) {\r\n        var _newTarget = this.constructor;\r\n        var _this = _super.call(this, patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree })) || this;\r\n        _this.name = name;\r\n        _this.index = index;\r\n        _this.operation = operation;\r\n        _this.tree = tree;\r\n        Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359\r\n        _this.message = patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree });\r\n        return _this;\r\n    }\r\n    return PatchError;\r\n}(Error));\r\n\r\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/fast-json-patch/module/helpers.mjs?");

/***/ }),

/***/ "./node_modules/fast-json-stable-stringify/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/fast-json-stable-stringify/index.js ***!
  \**********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function (data, opts) {\n    if (!opts) opts = {};\n    if (typeof opts === 'function') opts = { cmp: opts };\n    var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n    var cmp = opts.cmp && (function (f) {\n        return function (node) {\n            return function (a, b) {\n                var aobj = { key: a, value: node[a] };\n                var bobj = { key: b, value: node[b] };\n                return f(aobj, bobj);\n            };\n        };\n    })(opts.cmp);\n\n    var seen = [];\n    return (function stringify (node) {\n        if (node && node.toJSON && typeof node.toJSON === 'function') {\n            node = node.toJSON();\n        }\n\n        if (node === undefined) return;\n        if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n        if (typeof node !== 'object') return JSON.stringify(node);\n\n        var i, out;\n        if (Array.isArray(node)) {\n            out = '[';\n            for (i = 0; i < node.length; i++) {\n                if (i) out += ',';\n                out += stringify(node[i]) || 'null';\n            }\n            return out + ']';\n        }\n\n        if (node === null) return 'null';\n\n        if (seen.indexOf(node) !== -1) {\n            if (cycles) return JSON.stringify('__cycle__');\n            throw new TypeError('Converting circular structure to JSON');\n        }\n\n        var seenIndex = seen.push(node) - 1;\n        var keys = Object.keys(node).sort(cmp && cmp(node));\n        out = '';\n        for (i = 0; i < keys.length; i++) {\n            var key = keys[i];\n            var value = stringify(node[key]);\n\n            if (!value) continue;\n            if (out) out += ',';\n            out += JSON.stringify(key) + ':' + value;\n        }\n        seen.splice(seenIndex, 1);\n        return '{' + out + '}';\n    })(data);\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/fast-json-stable-stringify/index.js?");

/***/ }),

/***/ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar reactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js?");

/***/ }),

/***/ "./node_modules/hyphenate-style-name/index.js":
/*!****************************************************!*\
  !*** ./node_modules/hyphenate-style-name/index.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n  return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n  if (cache.hasOwnProperty(name)) {\n    return cache[name]\n  }\n\n  var hName = name.replace(uppercasePattern, toHyphenLower)\n  return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (hyphenateStyleName);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/hyphenate-style-name/index.js?");

/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/ieee754/index.js?");

/***/ }),

/***/ "./node_modules/is-in-browser/dist/module.js":
/*!***************************************************!*\
  !*** ./node_modules/is-in-browser/dist/module.js ***!
  \***************************************************/
/*! exports provided: isBrowser, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBrowser\", function() { return isBrowser; });\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isBrowser);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/is-in-browser/dist/module.js?");

/***/ }),

/***/ "./node_modules/isarray/index.js":
/*!***************************************!*\
  !*** ./node_modules/isarray/index.js ***!
  \***************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/isarray/index.js?");

/***/ }),

/***/ "./node_modules/json-stringify-pretty-compact/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/json-stringify-pretty-compact/index.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n// Note: This regex matches even invalid JSON strings, but since we’re\n// working on the output of `JSON.stringify` we know that only valid strings\n// are present (unless the user supplied a weird `options.indent` but in\n// that case we don’t care since the output would be invalid anyway).\nvar stringOrChar = /(\"(?:[^\\\\\"]|\\\\.)*\")|[:,]/g;\n\nmodule.exports = function stringify(passedObj, options) {\n  var indent, maxLength, replacer;\n\n  options = options || {};\n  indent = JSON.stringify(\n    [1],\n    undefined,\n    options.indent === undefined ? 2 : options.indent\n  ).slice(2, -3);\n  maxLength =\n    indent === \"\"\n      ? Infinity\n      : options.maxLength === undefined\n      ? 80\n      : options.maxLength;\n  replacer = options.replacer;\n\n  return (function _stringify(obj, currentIndent, reserved) {\n    // prettier-ignore\n    var end, index, items, key, keyPart, keys, length, nextIndent, prettified, start, string, value;\n\n    if (obj && typeof obj.toJSON === \"function\") {\n      obj = obj.toJSON();\n    }\n\n    string = JSON.stringify(obj, replacer);\n\n    if (string === undefined) {\n      return string;\n    }\n\n    length = maxLength - currentIndent.length - reserved;\n\n    if (string.length <= length) {\n      prettified = string.replace(stringOrChar, function(match, stringLiteral) {\n        return stringLiteral || match + \" \";\n      });\n      if (prettified.length <= length) {\n        return prettified;\n      }\n    }\n\n    if (replacer != null) {\n      obj = JSON.parse(string);\n      replacer = undefined;\n    }\n\n    if (typeof obj === \"object\" && obj !== null) {\n      nextIndent = currentIndent + indent;\n      items = [];\n      index = 0;\n\n      if (Array.isArray(obj)) {\n        start = \"[\";\n        end = \"]\";\n        length = obj.length;\n        for (; index < length; index++) {\n          items.push(\n            _stringify(obj[index], nextIndent, index === length - 1 ? 0 : 1) ||\n              \"null\"\n          );\n        }\n      } else {\n        start = \"{\";\n        end = \"}\";\n        keys = Object.keys(obj);\n        length = keys.length;\n        for (; index < length; index++) {\n          key = keys[index];\n          keyPart = JSON.stringify(key) + \": \";\n          value = _stringify(\n            obj[key],\n            nextIndent,\n            keyPart.length + (index === length - 1 ? 0 : 1)\n          );\n          if (value !== undefined) {\n            items.push(keyPart + value);\n          }\n        }\n      }\n\n      if (items.length > 0) {\n        return [start, indent + items.join(\",\\n\" + nextIndent), end].join(\n          \"\\n\" + currentIndent\n        );\n      }\n    }\n\n    return string;\n  })(passedObj, \"\", 0);\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/json-stringify-pretty-compact/index.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js":
/*!******************************************************************************!*\
  !*** ./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var hyphenate_style_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hyphenate-style-name */ \"./node_modules/hyphenate-style-name/index.js\");\n\n\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\n\nfunction convertCase(style) {\n  var converted = {};\n\n  for (var prop in style) {\n    var key = prop.indexOf('--') === 0 ? prop : Object(hyphenate_style_name__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(prop);\n    converted[key] = style[prop];\n  }\n\n  if (style.fallbacks) {\n    if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n  }\n\n  return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\n\n\nfunction camelCase() {\n  function onProcessStyle(style) {\n    if (Array.isArray(style)) {\n      // Handle rules like @font-face, which can have multiple styles in an array\n      for (var index = 0; index < style.length; index++) {\n        style[index] = convertCase(style[index]);\n      }\n\n      return style;\n    }\n\n    return convertCase(style);\n  }\n\n  function onChangeValue(value, prop, rule) {\n    if (prop.indexOf('--') === 0) {\n      return value;\n    }\n\n    var hyphenatedProp = Object(hyphenate_style_name__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(prop); // There was no camel case in place\n\n    if (prop === hyphenatedProp) return value;\n    rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n    return null;\n  }\n\n  return {\n    onProcessStyle: onProcessStyle,\n    onChangeValue: onChangeValue\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (camelCase);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n\n\nvar px = jss__WEBPACK_IMPORTED_MODULE_0__[\"hasCSSTOMSupport\"] && CSS ? CSS.px : 'px';\nvar ms = jss__WEBPACK_IMPORTED_MODULE_0__[\"hasCSSTOMSupport\"] && CSS ? CSS.ms : 'ms';\nvar percent = jss__WEBPACK_IMPORTED_MODULE_0__[\"hasCSSTOMSupport\"] && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n *\n * @type object\n */\n\nvar defaultUnits = {\n  // Animation properties\n  'animation-delay': ms,\n  'animation-duration': ms,\n  // Background properties\n  'background-position': px,\n  'background-position-x': px,\n  'background-position-y': px,\n  'background-size': px,\n  // Border Properties\n  border: px,\n  'border-bottom': px,\n  'border-bottom-left-radius': px,\n  'border-bottom-right-radius': px,\n  'border-bottom-width': px,\n  'border-left': px,\n  'border-left-width': px,\n  'border-radius': px,\n  'border-right': px,\n  'border-right-width': px,\n  'border-top': px,\n  'border-top-left-radius': px,\n  'border-top-right-radius': px,\n  'border-top-width': px,\n  'border-width': px,\n  'border-block': px,\n  'border-block-end': px,\n  'border-block-end-width': px,\n  'border-block-start': px,\n  'border-block-start-width': px,\n  'border-block-width': px,\n  'border-inline': px,\n  'border-inline-end': px,\n  'border-inline-end-width': px,\n  'border-inline-start': px,\n  'border-inline-start-width': px,\n  'border-inline-width': px,\n  'border-start-start-radius': px,\n  'border-start-end-radius': px,\n  'border-end-start-radius': px,\n  'border-end-end-radius': px,\n  // Margin properties\n  margin: px,\n  'margin-bottom': px,\n  'margin-left': px,\n  'margin-right': px,\n  'margin-top': px,\n  'margin-block': px,\n  'margin-block-end': px,\n  'margin-block-start': px,\n  'margin-inline': px,\n  'margin-inline-end': px,\n  'margin-inline-start': px,\n  // Padding properties\n  padding: px,\n  'padding-bottom': px,\n  'padding-left': px,\n  'padding-right': px,\n  'padding-top': px,\n  'padding-block': px,\n  'padding-block-end': px,\n  'padding-block-start': px,\n  'padding-inline': px,\n  'padding-inline-end': px,\n  'padding-inline-start': px,\n  // Mask properties\n  'mask-position-x': px,\n  'mask-position-y': px,\n  'mask-size': px,\n  // Width and height properties\n  height: px,\n  width: px,\n  'min-height': px,\n  'max-height': px,\n  'min-width': px,\n  'max-width': px,\n  // Position properties\n  bottom: px,\n  left: px,\n  top: px,\n  right: px,\n  inset: px,\n  'inset-block': px,\n  'inset-block-end': px,\n  'inset-block-start': px,\n  'inset-inline': px,\n  'inset-inline-end': px,\n  'inset-inline-start': px,\n  // Shadow properties\n  'box-shadow': px,\n  'text-shadow': px,\n  // Column properties\n  'column-gap': px,\n  'column-rule': px,\n  'column-rule-width': px,\n  'column-width': px,\n  // Font and text properties\n  'font-size': px,\n  'font-size-delta': px,\n  'letter-spacing': px,\n  'text-indent': px,\n  'text-stroke': px,\n  'text-stroke-width': px,\n  'word-spacing': px,\n  // Motion properties\n  motion: px,\n  'motion-offset': px,\n  // Outline properties\n  outline: px,\n  'outline-offset': px,\n  'outline-width': px,\n  // Perspective properties\n  perspective: px,\n  'perspective-origin-x': percent,\n  'perspective-origin-y': percent,\n  // Transform properties\n  'transform-origin': percent,\n  'transform-origin-x': percent,\n  'transform-origin-y': percent,\n  'transform-origin-z': percent,\n  // Transition properties\n  'transition-delay': ms,\n  'transition-duration': ms,\n  // Alignment properties\n  'vertical-align': px,\n  'flex-basis': px,\n  // Some random properties\n  'shape-margin': px,\n  size: px,\n  gap: px,\n  // Grid properties\n  grid: px,\n  'grid-gap': px,\n  'grid-row-gap': px,\n  'grid-column-gap': px,\n  'grid-template-rows': px,\n  'grid-template-columns': px,\n  'grid-auto-rows': px,\n  'grid-auto-columns': px,\n  // Not existing properties.\n  // Used to avoid issues with jss-plugin-expand integration.\n  'box-shadow-x': px,\n  'box-shadow-y': px,\n  'box-shadow-blur': px,\n  'box-shadow-spread': px,\n  'font-line-height': px,\n  'text-shadow-x': px,\n  'text-shadow-y': px,\n  'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\nfunction addCamelCasedVersion(obj) {\n  var regExp = /(-[a-z])/g;\n\n  var replace = function replace(str) {\n    return str[1].toUpperCase();\n  };\n\n  var newObj = {};\n\n  for (var _key in obj) {\n    newObj[_key] = obj[_key];\n    newObj[_key.replace(regExp, replace)] = obj[_key];\n  }\n\n  return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n  if (value == null) return value;\n\n  if (Array.isArray(value)) {\n    for (var i = 0; i < value.length; i++) {\n      value[i] = iterate(prop, value[i], options);\n    }\n  } else if (typeof value === 'object') {\n    if (prop === 'fallbacks') {\n      for (var innerProp in value) {\n        value[innerProp] = iterate(innerProp, value[innerProp], options);\n      }\n    } else {\n      for (var _innerProp in value) {\n        value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n      }\n    }\n  } else if (typeof value === 'number') {\n    var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n    if (unit && !(value === 0 && unit === px)) {\n      return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n    }\n\n    return value.toString();\n  }\n\n  return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var camelCasedOptions = addCamelCasedVersion(options);\n\n  function onProcessStyle(style, rule) {\n    if (rule.type !== 'style') return style;\n\n    for (var prop in style) {\n      style[prop] = iterate(prop, style[prop], camelCasedOptions);\n    }\n\n    return style;\n  }\n\n  function onChangeValue(value, prop) {\n    return iterate(prop, value, camelCasedOptions);\n  }\n\n  return {\n    onProcessStyle: onProcessStyle,\n    onChangeValue: onChangeValue\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (defaultUnit);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js":
/*!**********************************************************************!*\
  !*** ./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n\n\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n  function GlobalContainerRule(key, styles, options) {\n    this.type = 'global';\n    this.at = at;\n    this.rules = void 0;\n    this.options = void 0;\n    this.key = void 0;\n    this.isProcessed = false;\n    this.key = key;\n    this.options = options;\n    this.rules = new jss__WEBPACK_IMPORTED_MODULE_1__[\"RuleList\"](Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      parent: this\n    }));\n\n    for (var selector in styles) {\n      this.rules.add(selector, styles[selector]);\n    }\n\n    this.rules.process();\n  }\n  /**\n   * Get a rule.\n   */\n\n\n  var _proto = GlobalContainerRule.prototype;\n\n  _proto.getRule = function getRule(name) {\n    return this.rules.get(name);\n  }\n  /**\n   * Create and register rule, run plugins.\n   */\n  ;\n\n  _proto.addRule = function addRule(name, style, options) {\n    var rule = this.rules.add(name, style, options);\n    if (rule) this.options.jss.plugins.onProcessRule(rule);\n    return rule;\n  }\n  /**\n   * Get index of a rule.\n   */\n  ;\n\n  _proto.indexOf = function indexOf(rule) {\n    return this.rules.indexOf(rule);\n  }\n  /**\n   * Generates a CSS string.\n   */\n  ;\n\n  _proto.toString = function toString() {\n    return this.rules.toString();\n  };\n\n  return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n  function GlobalPrefixedRule(key, style, options) {\n    this.type = 'global';\n    this.at = at;\n    this.options = void 0;\n    this.rule = void 0;\n    this.isProcessed = false;\n    this.key = void 0;\n    this.key = key;\n    this.options = options;\n    var selector = key.substr(atPrefix.length);\n    this.rule = options.jss.createRule(selector, style, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      parent: this\n    }));\n  }\n\n  var _proto2 = GlobalPrefixedRule.prototype;\n\n  _proto2.toString = function toString(options) {\n    return this.rule ? this.rule.toString(options) : '';\n  };\n\n  return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n  var parts = selector.split(separatorRegExp);\n  var scoped = '';\n\n  for (var i = 0; i < parts.length; i++) {\n    scoped += scope + \" \" + parts[i].trim();\n    if (parts[i + 1]) scoped += ', ';\n  }\n\n  return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n  var options = rule.options,\n      style = rule.style;\n  var rules = style ? style[at] : null;\n  if (!rules) return;\n\n  for (var name in rules) {\n    sheet.addRule(name, rules[name], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      selector: addScope(name, rule.selector)\n    }));\n  }\n\n  delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n  var options = rule.options,\n      style = rule.style;\n\n  for (var prop in style) {\n    if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n    var selector = addScope(prop.substr(at.length), rule.selector);\n    sheet.addRule(selector, style[prop], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      selector: selector\n    }));\n    delete style[prop];\n  }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssGlobal() {\n  function onCreateRule(name, styles, options) {\n    if (!name) return null;\n\n    if (name === at) {\n      return new GlobalContainerRule(name, styles, options);\n    }\n\n    if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n      return new GlobalPrefixedRule(name, styles, options);\n    }\n\n    var parent = options.parent;\n\n    if (parent) {\n      if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n        options.scoped = false;\n      }\n    }\n\n    if (options.scoped === false) {\n      options.selector = name;\n    }\n\n    return null;\n  }\n\n  function onProcessRule(rule, sheet) {\n    if (rule.type !== 'style' || !sheet) return;\n    handleNestedGlobalContainerRule(rule, sheet);\n    handlePrefixedGlobalRule(rule, sheet);\n  }\n\n  return {\n    onCreateRule: onCreateRule,\n    onProcessRule: onProcessRule\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jssGlobal);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js":
/*!**********************************************************************!*\
  !*** ./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n\n\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n  // Get a function to be used for $ref replacement.\n  function getReplaceRef(container, sheet) {\n    return function (match, key) {\n      var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n      if (rule) {\n        rule = rule;\n        return rule.selector;\n      }\n\n       true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : undefined;\n      return key;\n    };\n  }\n\n  function replaceParentRefs(nestedProp, parentProp) {\n    var parentSelectors = parentProp.split(separatorRegExp);\n    var nestedSelectors = nestedProp.split(separatorRegExp);\n    var result = '';\n\n    for (var i = 0; i < parentSelectors.length; i++) {\n      var parent = parentSelectors[i];\n\n      for (var j = 0; j < nestedSelectors.length; j++) {\n        var nested = nestedSelectors[j];\n        if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n        result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n      }\n    }\n\n    return result;\n  }\n\n  function getOptions(rule, container, prevOptions) {\n    // Options has been already created, now we only increase index.\n    if (prevOptions) return Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, prevOptions, {\n      index: prevOptions.index + 1 // $FlowFixMe[prop-missing]\n\n    });\n    var nestingLevel = rule.options.nestingLevel;\n    nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n    var options = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rule.options, {\n      nestingLevel: nestingLevel,\n      index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n    });\n\n    delete options.name;\n    return options;\n  }\n\n  function onProcessStyle(style, rule, sheet) {\n    if (rule.type !== 'style') return style;\n    var styleRule = rule;\n    var container = styleRule.options.parent;\n    var options;\n    var replaceRef;\n\n    for (var prop in style) {\n      var isNested = prop.indexOf('&') !== -1;\n      var isNestedConditional = prop[0] === '@';\n      if (!isNested && !isNestedConditional) continue;\n      options = getOptions(styleRule, container, options);\n\n      if (isNested) {\n        var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n        // all nested rules within the sheet.\n\n        if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n        selector = selector.replace(refRegExp, replaceRef);\n        container.addRule(selector, style[prop], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n          selector: selector\n        }));\n      } else if (isNestedConditional) {\n        // Place conditional right after the parent rule to ensure right ordering.\n        container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n        // And flow doesn't know this will always be a StyleRule which has the addRule method\n        // $FlowFixMe[incompatible-use]\n        // $FlowFixMe[prop-missing]\n        .addRule(styleRule.key, style[prop], {\n          selector: styleRule.selector\n        });\n      }\n\n      delete style[prop];\n    }\n\n    return style;\n  }\n\n  return {\n    onProcessStyle: onProcessStyle\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jssNested);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js":
/*!******************************************************************************!*\
  !*** ./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js ***!
  \******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n  var sort = function sort(prop0, prop1) {\n    if (prop0.length === prop1.length) {\n      return prop0 > prop1 ? 1 : -1;\n    }\n\n    return prop0.length - prop1.length;\n  };\n\n  return {\n    onProcessStyle: function onProcessStyle(style, rule) {\n      if (rule.type !== 'style') return style;\n      var newStyle = {};\n      var props = Object.keys(style).sort(sort);\n\n      for (var i = 0; i < props.length; i++) {\n        newStyle[props[i]] = style[props[i]];\n      }\n\n      return newStyle;\n    }\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jssPropsSort);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js":
/*!************************************************************************************************!*\
  !*** ./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js ***!
  \************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n\n\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n  return {\n    onCreateRule: function onCreateRule(name, decl, options) {\n      if (typeof decl !== 'function') return null;\n      var rule = Object(jss__WEBPACK_IMPORTED_MODULE_1__[\"createRule\"])(name, {}, options);\n      rule[fnRuleNs] = decl;\n      return rule;\n    },\n    onProcessStyle: function onProcessStyle(style, rule) {\n      // We need to extract function values from the declaration, so that we can keep core unaware of them.\n      // We need to do that only once.\n      // We don't need to extract functions on each style update, since this can happen only once.\n      // We don't support function values inside of function rules.\n      if (fnValuesNs in rule || fnRuleNs in rule) return style;\n      var fnValues = {};\n\n      for (var prop in style) {\n        var value = style[prop];\n        if (typeof value !== 'function') continue;\n        delete style[prop];\n        fnValues[prop] = value;\n      } // $FlowFixMe[prop-missing]\n\n\n      rule[fnValuesNs] = fnValues;\n      return style;\n    },\n    onUpdate: function onUpdate(data, rule, sheet, options) {\n      var styleRule = rule; // $FlowFixMe[prop-missing]\n\n      var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n      // will be returned from that function.\n\n      if (fnRule) {\n        // Empty object will remove all currently defined props\n        // in case function rule returns a falsy value.\n        styleRule.style = fnRule(data) || {};\n\n        if (true) {\n          for (var prop in styleRule.style) {\n            if (typeof styleRule.style[prop] === 'function') {\n               true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(false, '[JSS] Function values inside function rules are not supported.') : undefined;\n              break;\n            }\n          }\n        }\n      } // $FlowFixMe[prop-missing]\n\n\n      var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n      if (fnValues) {\n        for (var _prop in fnValues) {\n          styleRule.prop(_prop, fnValues[_prop](data), options);\n        }\n      }\n    }\n  };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (functionPlugin);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js?");

/***/ }),

/***/ "./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js ***!
  \****************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var css_vendor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css-vendor */ \"./node_modules/css-vendor/dist/css-vendor.esm.js\");\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jss */ \"./node_modules/jss/dist/jss.esm.js\");\n\n\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\n\nfunction jssVendorPrefixer() {\n  function onProcessRule(rule) {\n    if (rule.type === 'keyframes') {\n      var atRule = rule;\n      atRule.at = Object(css_vendor__WEBPACK_IMPORTED_MODULE_0__[\"supportedKeyframes\"])(atRule.at);\n    }\n  }\n\n  function prefixStyle(style) {\n    for (var prop in style) {\n      var value = style[prop];\n\n      if (prop === 'fallbacks' && Array.isArray(value)) {\n        style[prop] = value.map(prefixStyle);\n        continue;\n      }\n\n      var changeProp = false;\n      var supportedProp = Object(css_vendor__WEBPACK_IMPORTED_MODULE_0__[\"supportedProperty\"])(prop);\n      if (supportedProp && supportedProp !== prop) changeProp = true;\n      var changeValue = false;\n      var supportedValue$1 = Object(css_vendor__WEBPACK_IMPORTED_MODULE_0__[\"supportedValue\"])(supportedProp, Object(jss__WEBPACK_IMPORTED_MODULE_1__[\"toCssValue\"])(value));\n      if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n      if (changeProp || changeValue) {\n        if (changeProp) delete style[prop];\n        style[supportedProp || prop] = supportedValue$1 || value;\n      }\n    }\n\n    return style;\n  }\n\n  function onProcessStyle(style, rule) {\n    if (rule.type !== 'style') return style;\n    return prefixStyle(style);\n  }\n\n  function onChangeValue(value, prop) {\n    return Object(css_vendor__WEBPACK_IMPORTED_MODULE_0__[\"supportedValue\"])(prop, Object(jss__WEBPACK_IMPORTED_MODULE_1__[\"toCssValue\"])(value)) || value;\n  }\n\n  return {\n    onProcessRule: onProcessRule,\n    onProcessStyle: onProcessStyle,\n    onChangeValue: onChangeValue\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jssVendorPrefixer);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js?");

/***/ }),

/***/ "./node_modules/jss/dist/jss.esm.js":
/*!******************************************!*\
  !*** ./node_modules/jss/dist/jss.esm.js ***!
  \******************************************/
/*! exports provided: default, RuleList, SheetsManager, SheetsRegistry, create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, sheets, toCssValue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RuleList\", function() { return RuleList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SheetsManager\", function() { return SheetsManager; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SheetsRegistry\", function() { return SheetsRegistry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"create\", function() { return create; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createGenerateId\", function() { return createGenerateId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createRule\", function() { return createRule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDynamicStyles\", function() { return getDynamicStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasCSSTOMSupport\", function() { return hasCSSTOMSupport; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sheets\", function() { return registry; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toCssValue\", function() { return toCssValue; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var is_in_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! is-in-browser */ \"./node_modules/is-in-browser/dist/module.js\");\n/* harmony import */ var tiny_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-warning */ \"./node_modules/tiny-warning/dist/tiny-warning.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"./node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n\n\n\n\n\n\n\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n  if (style == null || typeof style !== 'object') return style;\n  if (Array.isArray(style)) return style.map(cloneStyle);\n  if (style.constructor !== plainObjectConstrurctor) return style;\n  var newStyle = {};\n\n  for (var name in style) {\n    newStyle[name] = cloneStyle(style[name]);\n  }\n\n  return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n  if (name === void 0) {\n    name = 'unnamed';\n  }\n\n  var jss = options.jss;\n  var declCopy = cloneStyle(decl);\n  var rule = jss.plugins.onCreateRule(name, declCopy, options);\n  if (rule) return rule; // It is an at-rule and it has no instance.\n\n  if (name[0] === '@') {\n     true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] Unknown rule \" + name) : undefined;\n  }\n\n  return null;\n}\n\nvar join = function join(value, by) {\n  var result = '';\n\n  for (var i = 0; i < value.length; i++) {\n    // Remove !important from the value, it will be readded later.\n    if (value[i] === '!important') break;\n    if (result) result += by;\n    result += value[i];\n  }\n\n  return result;\n};\n\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n  if (ignoreImportant === void 0) {\n    ignoreImportant = false;\n  }\n\n  if (!Array.isArray(value)) return value;\n  var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n  if (Array.isArray(value[0])) {\n    for (var i = 0; i < value.length; i++) {\n      if (value[i] === '!important') break;\n      if (cssValue) cssValue += ', ';\n      cssValue += join(value[i], ' ');\n    }\n  } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n  if (!ignoreImportant && value[value.length - 1] === '!important') {\n    cssValue += ' !important';\n  }\n\n  return cssValue;\n};\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n  var result = '';\n\n  for (var index = 0; index < indent; index++) {\n    result += '  ';\n  }\n\n  return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var result = '';\n  if (!style) return result;\n  var _options = options,\n      _options$indent = _options.indent,\n      indent = _options$indent === void 0 ? 0 : _options$indent;\n  var fallbacks = style.fallbacks;\n  if (selector) indent++; // Apply fallbacks first.\n\n  if (fallbacks) {\n    // Array syntax {fallbacks: [{prop: value}]}\n    if (Array.isArray(fallbacks)) {\n      for (var index = 0; index < fallbacks.length; index++) {\n        var fallback = fallbacks[index];\n\n        for (var prop in fallback) {\n          var value = fallback[prop];\n\n          if (value != null) {\n            if (result) result += '\\n';\n            result += \"\" + indentStr(prop + \": \" + toCssValue(value) + \";\", indent);\n          }\n        }\n      }\n    } else {\n      // Object syntax {fallbacks: {prop: value}}\n      for (var _prop in fallbacks) {\n        var _value = fallbacks[_prop];\n\n        if (_value != null) {\n          if (result) result += '\\n';\n          result += \"\" + indentStr(_prop + \": \" + toCssValue(_value) + \";\", indent);\n        }\n      }\n    }\n  }\n\n  for (var _prop2 in style) {\n    var _value2 = style[_prop2];\n\n    if (_value2 != null && _prop2 !== 'fallbacks') {\n      if (result) result += '\\n';\n      result += \"\" + indentStr(_prop2 + \": \" + toCssValue(_value2) + \";\", indent);\n    }\n  } // Allow empty style in this case, because properties will be added dynamically.\n\n\n  if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n  if (!selector) return result;\n  indent--;\n  if (result) result = \"\\n\" + result + \"\\n\";\n  return indentStr(selector + \" {\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n  return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n  function BaseStyleRule(key, style, options) {\n    this.type = 'style';\n    this.key = void 0;\n    this.isProcessed = false;\n    this.style = void 0;\n    this.renderer = void 0;\n    this.renderable = void 0;\n    this.options = void 0;\n    var sheet = options.sheet,\n        Renderer = options.Renderer;\n    this.key = key;\n    this.options = options;\n    this.style = style;\n    if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n  }\n  /**\n   * Get or set a style property.\n   */\n\n\n  var _proto = BaseStyleRule.prototype;\n\n  _proto.prop = function prop(name, value, options) {\n    // It's a getter.\n    if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n    var force = options ? options.force : false;\n    if (!force && this.style[name] === value) return this;\n    var newValue = value;\n\n    if (!options || options.process !== false) {\n      newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n    }\n\n    var isEmpty = newValue == null || newValue === false;\n    var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n    if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n    var remove = isEmpty && isDefined;\n    if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n    if (this.renderable && this.renderer) {\n      if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n      return this;\n    }\n\n    var sheet = this.options.sheet;\n\n    if (sheet && sheet.attached) {\n       true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : undefined;\n    }\n\n    return this;\n  };\n\n  return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(StyleRule, _BaseStyleRule);\n\n  function StyleRule(key, style, options) {\n    var _this;\n\n    _this = _BaseStyleRule.call(this, key, style, options) || this;\n    _this.selectorText = void 0;\n    _this.id = void 0;\n    _this.renderable = void 0;\n    var selector = options.selector,\n        scoped = options.scoped,\n        sheet = options.sheet,\n        generateId = options.generateId;\n\n    if (selector) {\n      _this.selectorText = selector;\n    } else if (scoped !== false) {\n      _this.id = generateId(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_this)), sheet);\n      _this.selectorText = \".\" + escape(_this.id);\n    }\n\n    return _this;\n  }\n  /**\n   * Set selector string.\n   * Attention: use this with caution. Most browsers didn't implement\n   * selectorText setter, so this may result in rerendering of entire Style Sheet.\n   */\n\n\n  var _proto2 = StyleRule.prototype;\n\n  /**\n   * Apply rule to an element inline.\n   */\n  _proto2.applyTo = function applyTo(renderable) {\n    var renderer = this.renderer;\n\n    if (renderer) {\n      var json = this.toJSON();\n\n      for (var prop in json) {\n        renderer.setProperty(renderable, prop, json[prop]);\n      }\n    }\n\n    return this;\n  }\n  /**\n   * Returns JSON representation of the rule.\n   * Fallbacks are not supported.\n   * Useful for inline styles.\n   */\n  ;\n\n  _proto2.toJSON = function toJSON() {\n    var json = {};\n\n    for (var prop in this.style) {\n      var value = this.style[prop];\n      if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n    }\n\n    return json;\n  }\n  /**\n   * Generates a CSS string.\n   */\n  ;\n\n  _proto2.toString = function toString(options) {\n    var sheet = this.options.sheet;\n    var link = sheet ? sheet.options.link : false;\n    var opts = link ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      allowEmpty: true\n    }) : options;\n    return toCss(this.selectorText, this.style, opts);\n  };\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(StyleRule, [{\n    key: \"selector\",\n    set: function set(selector) {\n      if (selector === this.selectorText) return;\n      this.selectorText = selector;\n      var renderer = this.renderer,\n          renderable = this.renderable;\n      if (!renderable || !renderer) return;\n      var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n      if (!hasChanged) {\n        renderer.replaceRule(renderable, this);\n      }\n    }\n    /**\n     * Get selector string.\n     */\n    ,\n    get: function get() {\n      return this.selectorText;\n    }\n  }]);\n\n  return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n  onCreateRule: function onCreateRule(name, style, options) {\n    if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n      return null;\n    }\n\n    return new StyleRule(name, style, options);\n  }\n};\n\nvar defaultToStringOptions = {\n  indent: 1,\n  children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n  function ConditionalRule(key, styles, options) {\n    this.type = 'conditional';\n    this.at = void 0;\n    this.key = void 0;\n    this.query = void 0;\n    this.rules = void 0;\n    this.options = void 0;\n    this.isProcessed = false;\n    this.renderable = void 0;\n    this.key = key;\n    var atMatch = key.match(atRegExp);\n    this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n    this.query = options.name || \"@\" + this.at;\n    this.options = options;\n    this.rules = new RuleList(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      parent: this\n    }));\n\n    for (var name in styles) {\n      this.rules.add(name, styles[name]);\n    }\n\n    this.rules.process();\n  }\n  /**\n   * Get a rule.\n   */\n\n\n  var _proto = ConditionalRule.prototype;\n\n  _proto.getRule = function getRule(name) {\n    return this.rules.get(name);\n  }\n  /**\n   * Get index of a rule.\n   */\n  ;\n\n  _proto.indexOf = function indexOf(rule) {\n    return this.rules.indexOf(rule);\n  }\n  /**\n   * Create and register rule, run plugins.\n   */\n  ;\n\n  _proto.addRule = function addRule(name, style, options) {\n    var rule = this.rules.add(name, style, options);\n    if (!rule) return null;\n    this.options.jss.plugins.onProcessRule(rule);\n    return rule;\n  }\n  /**\n   * Generates a CSS string.\n   */\n  ;\n\n  _proto.toString = function toString(options) {\n    if (options === void 0) {\n      options = defaultToStringOptions;\n    }\n\n    if (options.indent == null) options.indent = defaultToStringOptions.indent;\n    if (options.children == null) options.children = defaultToStringOptions.children;\n\n    if (options.children === false) {\n      return this.query + \" {}\";\n    }\n\n    var children = this.rules.toString(options);\n    return children ? this.query + \" {\\n\" + children + \"\\n}\" : '';\n  };\n\n  return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n  onCreateRule: function onCreateRule(key, styles, options) {\n    return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n  }\n};\n\nvar defaultToStringOptions$1 = {\n  indent: 1,\n  children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n  function KeyframesRule(key, frames, options) {\n    this.type = 'keyframes';\n    this.at = '@keyframes';\n    this.key = void 0;\n    this.name = void 0;\n    this.id = void 0;\n    this.rules = void 0;\n    this.options = void 0;\n    this.isProcessed = false;\n    this.renderable = void 0;\n    var nameMatch = key.match(nameRegExp);\n\n    if (nameMatch && nameMatch[1]) {\n      this.name = nameMatch[1];\n    } else {\n      this.name = 'noname';\n       true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] Bad keyframes name \" + key) : undefined;\n    }\n\n    this.key = this.type + \"-\" + this.name;\n    this.options = options;\n    var scoped = options.scoped,\n        sheet = options.sheet,\n        generateId = options.generateId;\n    this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n    this.rules = new RuleList(Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      parent: this\n    }));\n\n    for (var name in frames) {\n      this.rules.add(name, frames[name], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n        parent: this\n      }));\n    }\n\n    this.rules.process();\n  }\n  /**\n   * Generates a CSS string.\n   */\n\n\n  var _proto = KeyframesRule.prototype;\n\n  _proto.toString = function toString(options) {\n    if (options === void 0) {\n      options = defaultToStringOptions$1;\n    }\n\n    if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n    if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n    if (options.children === false) {\n      return this.at + \" \" + this.id + \" {}\";\n    }\n\n    var children = this.rules.toString(options);\n    if (children) children = \"\\n\" + children + \"\\n\";\n    return this.at + \" \" + this.id + \" {\" + children + \"}\";\n  };\n\n  return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n  if (typeof val === 'string') {\n    return val.replace(refRegExp, function (match, name) {\n      if (name in keyframes) {\n        return keyframes[name];\n      }\n\n       true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : undefined;\n      return match;\n    });\n  }\n\n  return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n  var value = style[prop];\n  var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n  if (refKeyframe !== value) {\n    style[prop] = refKeyframe;\n  }\n};\n\nvar plugin = {\n  onCreateRule: function onCreateRule(key, frames, options) {\n    return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n  },\n  // Animation name ref replacer.\n  onProcessStyle: function onProcessStyle(style, rule, sheet) {\n    if (rule.type !== 'style' || !sheet) return style;\n    if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n    if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n    return style;\n  },\n  onChangeValue: function onChangeValue(val, prop, rule) {\n    var sheet = rule.options.sheet;\n\n    if (!sheet) {\n      return val;\n    }\n\n    switch (prop) {\n      case 'animation':\n        return findReferencedKeyframe(val, sheet.keyframes);\n\n      case 'animation-name':\n        return findReferencedKeyframe(val, sheet.keyframes);\n\n      default:\n        return val;\n    }\n  }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(KeyframeRule, _BaseStyleRule);\n\n  function KeyframeRule() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n    _this.renderable = void 0;\n    return _this;\n  }\n\n  var _proto = KeyframeRule.prototype;\n\n  /**\n   * Generates a CSS string.\n   */\n  _proto.toString = function toString(options) {\n    var sheet = this.options.sheet;\n    var link = sheet ? sheet.options.link : false;\n    var opts = link ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      allowEmpty: true\n    }) : options;\n    return toCss(this.key, this.style, opts);\n  };\n\n  return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n  onCreateRule: function onCreateRule(key, style, options) {\n    if (options.parent && options.parent.type === 'keyframes') {\n      return new KeyframeRule(key, style, options);\n    }\n\n    return null;\n  }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n  function FontFaceRule(key, style, options) {\n    this.type = 'font-face';\n    this.at = '@font-face';\n    this.key = void 0;\n    this.style = void 0;\n    this.options = void 0;\n    this.isProcessed = false;\n    this.renderable = void 0;\n    this.key = key;\n    this.style = style;\n    this.options = options;\n  }\n  /**\n   * Generates a CSS string.\n   */\n\n\n  var _proto = FontFaceRule.prototype;\n\n  _proto.toString = function toString(options) {\n    if (Array.isArray(this.style)) {\n      var str = '';\n\n      for (var index = 0; index < this.style.length; index++) {\n        str += toCss(this.at, this.style[index]);\n        if (this.style[index + 1]) str += '\\n';\n      }\n\n      return str;\n    }\n\n    return toCss(this.at, this.style, options);\n  };\n\n  return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n  onCreateRule: function onCreateRule(key, style, options) {\n    return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n  }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n  function ViewportRule(key, style, options) {\n    this.type = 'viewport';\n    this.at = '@viewport';\n    this.key = void 0;\n    this.style = void 0;\n    this.options = void 0;\n    this.isProcessed = false;\n    this.renderable = void 0;\n    this.key = key;\n    this.style = style;\n    this.options = options;\n  }\n  /**\n   * Generates a CSS string.\n   */\n\n\n  var _proto = ViewportRule.prototype;\n\n  _proto.toString = function toString(options) {\n    return toCss(this.key, this.style, options);\n  };\n\n  return ViewportRule;\n}();\nvar pluginViewportRule = {\n  onCreateRule: function onCreateRule(key, style, options) {\n    return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n  }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n  function SimpleRule(key, value, options) {\n    this.type = 'simple';\n    this.key = void 0;\n    this.value = void 0;\n    this.options = void 0;\n    this.isProcessed = false;\n    this.renderable = void 0;\n    this.key = key;\n    this.value = value;\n    this.options = options;\n  }\n  /**\n   * Generates a CSS string.\n   */\n  // eslint-disable-next-line no-unused-vars\n\n\n  var _proto = SimpleRule.prototype;\n\n  _proto.toString = function toString(options) {\n    if (Array.isArray(this.value)) {\n      var str = '';\n\n      for (var index = 0; index < this.value.length; index++) {\n        str += this.key + \" \" + this.value[index] + \";\";\n        if (this.value[index + 1]) str += '\\n';\n      }\n\n      return str;\n    }\n\n    return this.key + \" \" + this.value + \";\";\n  };\n\n  return SimpleRule;\n}();\nvar keysMap = {\n  '@charset': true,\n  '@import': true,\n  '@namespace': true\n};\nvar pluginSimpleRule = {\n  onCreateRule: function onCreateRule(key, value, options) {\n    return key in keysMap ? new SimpleRule(key, value, options) : null;\n  }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, plugin, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n  process: true\n};\nvar forceUpdateOptions = {\n  force: true,\n  process: true\n  /**\n   * Contains rules objects and allows adding/removing etc.\n   * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n   */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n  // Rules registry for access by .get() method.\n  // It contains the same rule registered by name and by selector.\n  // Original styles object.\n  // Used to ensure correct rules order.\n  function RuleList(options) {\n    this.map = {};\n    this.raw = {};\n    this.index = [];\n    this.counter = 0;\n    this.options = void 0;\n    this.classes = void 0;\n    this.keyframes = void 0;\n    this.options = options;\n    this.classes = options.classes;\n    this.keyframes = options.keyframes;\n  }\n  /**\n   * Create and register rule.\n   *\n   * Will not render after Style Sheet was rendered the first time.\n   */\n\n\n  var _proto = RuleList.prototype;\n\n  _proto.add = function add(name, decl, ruleOptions) {\n    var _this$options = this.options,\n        parent = _this$options.parent,\n        sheet = _this$options.sheet,\n        jss = _this$options.jss,\n        Renderer = _this$options.Renderer,\n        generateId = _this$options.generateId,\n        scoped = _this$options.scoped;\n\n    var options = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      classes: this.classes,\n      parent: parent,\n      sheet: sheet,\n      jss: jss,\n      Renderer: Renderer,\n      generateId: generateId,\n      scoped: scoped,\n      name: name,\n      keyframes: this.keyframes,\n      selector: undefined\n    }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n    // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n    // we need to make the key unique within this RuleList instance scope.\n\n\n    var key = name;\n\n    if (name in this.raw) {\n      key = name + \"-d\" + this.counter++;\n    } // We need to save the original decl before creating the rule\n    // because cache plugin needs to use it as a key to return a cached rule.\n\n\n    this.raw[key] = decl;\n\n    if (key in this.classes) {\n      // E.g. rules inside of @media container\n      options.selector = \".\" + escape(this.classes[key]);\n    }\n\n    var rule = createRule(key, decl, options);\n    if (!rule) return null;\n    this.register(rule);\n    var index = options.index === undefined ? this.index.length : options.index;\n    this.index.splice(index, 0, rule);\n    return rule;\n  }\n  /**\n   * Get a rule.\n   */\n  ;\n\n  _proto.get = function get(name) {\n    return this.map[name];\n  }\n  /**\n   * Delete a rule.\n   */\n  ;\n\n  _proto.remove = function remove(rule) {\n    this.unregister(rule);\n    delete this.raw[rule.key];\n    this.index.splice(this.index.indexOf(rule), 1);\n  }\n  /**\n   * Get index of a rule.\n   */\n  ;\n\n  _proto.indexOf = function indexOf(rule) {\n    return this.index.indexOf(rule);\n  }\n  /**\n   * Run `onProcessRule()` plugins on every rule.\n   */\n  ;\n\n  _proto.process = function process() {\n    var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n    // we end up with very hard-to-track-down side effects.\n\n    this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n  }\n  /**\n   * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n   */\n  ;\n\n  _proto.register = function register(rule) {\n    this.map[rule.key] = rule;\n\n    if (rule instanceof StyleRule) {\n      this.map[rule.selector] = rule;\n      if (rule.id) this.classes[rule.key] = rule.id;\n    } else if (rule instanceof KeyframesRule && this.keyframes) {\n      this.keyframes[rule.name] = rule.id;\n    }\n  }\n  /**\n   * Unregister a rule.\n   */\n  ;\n\n  _proto.unregister = function unregister(rule) {\n    delete this.map[rule.key];\n\n    if (rule instanceof StyleRule) {\n      delete this.map[rule.selector];\n      delete this.classes[rule.key];\n    } else if (rule instanceof KeyframesRule) {\n      delete this.keyframes[rule.name];\n    }\n  }\n  /**\n   * Update the function values with a new data.\n   */\n  ;\n\n  _proto.update = function update() {\n    var name;\n    var data;\n    var options;\n\n    if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n      name = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n      data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe[invalid-tuple-index]\n\n      options = arguments.length <= 2 ? undefined : arguments[2];\n    } else {\n      data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n      options = arguments.length <= 1 ? undefined : arguments[1];\n      name = null;\n    }\n\n    if (name) {\n      this.updateOne(this.map[name], data, options);\n    } else {\n      for (var index = 0; index < this.index.length; index++) {\n        this.updateOne(this.index[index], data, options);\n      }\n    }\n  }\n  /**\n   * Execute plugins, update rule props.\n   */\n  ;\n\n  _proto.updateOne = function updateOne(rule, data, options) {\n    if (options === void 0) {\n      options = defaultUpdateOptions;\n    }\n\n    var _this$options2 = this.options,\n        plugins = _this$options2.jss.plugins,\n        sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n    if (rule.rules instanceof RuleList) {\n      rule.rules.update(data, options);\n      return;\n    }\n\n    var styleRule = rule;\n    var style = styleRule.style;\n    plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n    if (options.process && style && style !== styleRule.style) {\n      // We need to run the plugins in case new `style` relies on syntax plugins.\n      plugins.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n      for (var prop in styleRule.style) {\n        var nextValue = styleRule.style[prop];\n        var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n        // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n        if (nextValue !== prevValue) {\n          styleRule.prop(prop, nextValue, forceUpdateOptions);\n        }\n      } // Remove props.\n\n\n      for (var _prop in style) {\n        var _nextValue = styleRule.style[_prop];\n        var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n        // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n        if (_nextValue == null && _nextValue !== _prevValue) {\n          styleRule.prop(_prop, null, forceUpdateOptions);\n        }\n      }\n    }\n  }\n  /**\n   * Convert rules to a CSS string.\n   */\n  ;\n\n  _proto.toString = function toString(options) {\n    var str = '';\n    var sheet = this.options.sheet;\n    var link = sheet ? sheet.options.link : false;\n\n    for (var index = 0; index < this.index.length; index++) {\n      var rule = this.index[index];\n      var css = rule.toString(options); // No need to render an empty rule.\n\n      if (!css && !link) continue;\n      if (str) str += '\\n';\n      str += css;\n    }\n\n    return str;\n  };\n\n  return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n  function StyleSheet(styles, options) {\n    this.options = void 0;\n    this.deployed = void 0;\n    this.attached = void 0;\n    this.rules = void 0;\n    this.renderer = void 0;\n    this.classes = void 0;\n    this.keyframes = void 0;\n    this.queue = void 0;\n    this.attached = false;\n    this.deployed = false;\n    this.classes = {};\n    this.keyframes = {};\n    this.options = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      sheet: this,\n      parent: this,\n      classes: this.classes,\n      keyframes: this.keyframes\n    });\n\n    if (options.Renderer) {\n      this.renderer = new options.Renderer(this);\n    }\n\n    this.rules = new RuleList(this.options);\n\n    for (var name in styles) {\n      this.rules.add(name, styles[name]);\n    }\n\n    this.rules.process();\n  }\n  /**\n   * Attach renderable to the render tree.\n   */\n\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.attach = function attach() {\n    if (this.attached) return this;\n    if (this.renderer) this.renderer.attach();\n    this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n    if (!this.deployed) this.deploy();\n    return this;\n  }\n  /**\n   * Remove renderable from render tree.\n   */\n  ;\n\n  _proto.detach = function detach() {\n    if (!this.attached) return this;\n    if (this.renderer) this.renderer.detach();\n    this.attached = false;\n    return this;\n  }\n  /**\n   * Add a rule to the current stylesheet.\n   * Will insert a rule also after the stylesheet has been rendered first time.\n   */\n  ;\n\n  _proto.addRule = function addRule(name, decl, options) {\n    var queue = this.queue; // Plugins can create rules.\n    // In order to preserve the right order, we need to queue all `.addRule` calls,\n    // which happen after the first `rules.add()` call.\n\n    if (this.attached && !queue) this.queue = [];\n    var rule = this.rules.add(name, decl, options);\n    if (!rule) return null;\n    this.options.jss.plugins.onProcessRule(rule);\n\n    if (this.attached) {\n      if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n      // It will be inserted all together when .attach is called.\n\n      if (queue) queue.push(rule);else {\n        this.insertRule(rule);\n\n        if (this.queue) {\n          this.queue.forEach(this.insertRule, this);\n          this.queue = undefined;\n        }\n      }\n      return rule;\n    } // We can't add rules to a detached style node.\n    // We will redeploy the sheet once user will attach it.\n\n\n    this.deployed = false;\n    return rule;\n  }\n  /**\n   * Insert rule into the StyleSheet\n   */\n  ;\n\n  _proto.insertRule = function insertRule(rule) {\n    if (this.renderer) {\n      this.renderer.insertRule(rule);\n    }\n  }\n  /**\n   * Create and add rules.\n   * Will render also after Style Sheet was rendered the first time.\n   */\n  ;\n\n  _proto.addRules = function addRules(styles, options) {\n    var added = [];\n\n    for (var name in styles) {\n      var rule = this.addRule(name, styles[name], options);\n      if (rule) added.push(rule);\n    }\n\n    return added;\n  }\n  /**\n   * Get a rule by name.\n   */\n  ;\n\n  _proto.getRule = function getRule(name) {\n    return this.rules.get(name);\n  }\n  /**\n   * Delete a rule by name.\n   * Returns `true`: if rule has been deleted from the DOM.\n   */\n  ;\n\n  _proto.deleteRule = function deleteRule(name) {\n    var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n    if (!rule || // Style sheet was created without link: true and attached, in this case we\n    // won't be able to remove the CSS rule from the DOM.\n    this.attached && !rule.renderable) {\n      return false;\n    }\n\n    this.rules.remove(rule);\n\n    if (this.attached && rule.renderable && this.renderer) {\n      return this.renderer.deleteRule(rule.renderable);\n    }\n\n    return true;\n  }\n  /**\n   * Get index of a rule.\n   */\n  ;\n\n  _proto.indexOf = function indexOf(rule) {\n    return this.rules.indexOf(rule);\n  }\n  /**\n   * Deploy pure CSS string to a renderable.\n   */\n  ;\n\n  _proto.deploy = function deploy() {\n    if (this.renderer) this.renderer.deploy();\n    this.deployed = true;\n    return this;\n  }\n  /**\n   * Update the function values with a new data.\n   */\n  ;\n\n  _proto.update = function update() {\n    var _this$rules;\n\n    (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n    return this;\n  }\n  /**\n   * Updates a single rule.\n   */\n  ;\n\n  _proto.updateOne = function updateOne(rule, data, options) {\n    this.rules.updateOne(rule, data, options);\n    return this;\n  }\n  /**\n   * Convert rules to a CSS string.\n   */\n  ;\n\n  _proto.toString = function toString(options) {\n    return this.rules.toString(options);\n  };\n\n  return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n  function PluginsRegistry() {\n    this.plugins = {\n      internal: [],\n      external: []\n    };\n    this.registry = void 0;\n  }\n\n  var _proto = PluginsRegistry.prototype;\n\n  /**\n   * Call `onCreateRule` hooks and return an object if returned by a hook.\n   */\n  _proto.onCreateRule = function onCreateRule(name, decl, options) {\n    for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n      var rule = this.registry.onCreateRule[i](name, decl, options);\n      if (rule) return rule;\n    }\n\n    return null;\n  }\n  /**\n   * Call `onProcessRule` hooks.\n   */\n  ;\n\n  _proto.onProcessRule = function onProcessRule(rule) {\n    if (rule.isProcessed) return;\n    var sheet = rule.options.sheet;\n\n    for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n      this.registry.onProcessRule[i](rule, sheet);\n    }\n\n    if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n    rule.isProcessed = true;\n  }\n  /**\n   * Call `onProcessStyle` hooks.\n   */\n  ;\n\n  _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n    for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n      // $FlowFixMe[prop-missing]\n      rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n    }\n  }\n  /**\n   * Call `onProcessSheet` hooks.\n   */\n  ;\n\n  _proto.onProcessSheet = function onProcessSheet(sheet) {\n    for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n      this.registry.onProcessSheet[i](sheet);\n    }\n  }\n  /**\n   * Call `onUpdate` hooks.\n   */\n  ;\n\n  _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n    for (var i = 0; i < this.registry.onUpdate.length; i++) {\n      this.registry.onUpdate[i](data, rule, sheet, options);\n    }\n  }\n  /**\n   * Call `onChangeValue` hooks.\n   */\n  ;\n\n  _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n    var processedValue = value;\n\n    for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n      processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n    }\n\n    return processedValue;\n  }\n  /**\n   * Register a plugin.\n   */\n  ;\n\n  _proto.use = function use(newPlugin, options) {\n    if (options === void 0) {\n      options = {\n        queue: 'external'\n      };\n    }\n\n    var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n    if (plugins.indexOf(newPlugin) !== -1) {\n      return;\n    }\n\n    plugins.push(newPlugin);\n    this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n      for (var name in plugin) {\n        if (name in registry) {\n          registry[name].push(plugin[name]);\n        } else {\n           true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : undefined;\n        }\n      }\n\n      return registry;\n    }, {\n      onCreateRule: [],\n      onProcessRule: [],\n      onProcessStyle: [],\n      onProcessSheet: [],\n      onChangeValue: [],\n      onUpdate: []\n    });\n  };\n\n  return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access them all at one place.\n */\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n  function SheetsRegistry() {\n    this.registry = [];\n  }\n\n  var _proto = SheetsRegistry.prototype;\n\n  /**\n   * Register a Style Sheet.\n   */\n  _proto.add = function add(sheet) {\n    var registry = this.registry;\n    var index = sheet.options.index;\n    if (registry.indexOf(sheet) !== -1) return;\n\n    if (registry.length === 0 || index >= this.index) {\n      registry.push(sheet);\n      return;\n    } // Find a position.\n\n\n    for (var i = 0; i < registry.length; i++) {\n      if (registry[i].options.index > index) {\n        registry.splice(i, 0, sheet);\n        return;\n      }\n    }\n  }\n  /**\n   * Reset the registry.\n   */\n  ;\n\n  _proto.reset = function reset() {\n    this.registry = [];\n  }\n  /**\n   * Remove a Style Sheet.\n   */\n  ;\n\n  _proto.remove = function remove(sheet) {\n    var index = this.registry.indexOf(sheet);\n    this.registry.splice(index, 1);\n  }\n  /**\n   * Convert all attached sheets to a CSS string.\n   */\n  ;\n\n  _proto.toString = function toString(_temp) {\n    var _ref = _temp === void 0 ? {} : _temp,\n        attached = _ref.attached,\n        options = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_ref, [\"attached\"]);\n\n    var css = '';\n\n    for (var i = 0; i < this.registry.length; i++) {\n      var sheet = this.registry[i];\n\n      if (attached != null && sheet.attached !== attached) {\n        continue;\n      }\n\n      if (css) css += '\\n';\n      css += sheet.toString(options);\n    }\n\n    return css;\n  };\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(SheetsRegistry, [{\n    key: \"index\",\n\n    /**\n     * Current highest index number.\n     */\n    get: function get() {\n      return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n    }\n  }]);\n\n  return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar registry = new SheetsRegistry();\n\n/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar globalThis = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis[ns] == null) globalThis[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis[ns]++;\n\nvar maxRules = 1e10;\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\nvar createGenerateId = function createGenerateId(options) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  var ruleCounter = 0;\n  return function (rule, sheet) {\n    ruleCounter += 1;\n\n    if (ruleCounter > maxRules) {\n       true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : undefined;\n    }\n\n    var jssId = '';\n    var prefix = '';\n\n    if (sheet) {\n      if (sheet.options.classNamePrefix) {\n        prefix = sheet.options.classNamePrefix;\n      }\n\n      if (sheet.options.jss.id != null) {\n        jssId = String(sheet.options.jss.id);\n      }\n    }\n\n    if (options.minify) {\n      // Using \"c\" because a number can't be the first char in a class name.\n      return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n    }\n\n    return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n  };\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\nvar memoize = function memoize(fn) {\n  var value;\n  return function () {\n    if (!value) value = fn();\n    return value;\n  };\n};\n\n/**\n * Get a style property value.\n */\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n  try {\n    // Support CSSTOM.\n    if (cssRule.attributeStyleMap) {\n      return cssRule.attributeStyleMap.get(prop);\n    }\n\n    return cssRule.style.getPropertyValue(prop);\n  } catch (err) {\n    // IE may throw if property is unknown.\n    return '';\n  }\n};\n\n/**\n * Set a style property.\n */\nvar setProperty = function setProperty(cssRule, prop, value) {\n  try {\n    var cssValue = value;\n\n    if (Array.isArray(value)) {\n      cssValue = toCssValue(value, true);\n\n      if (value[value.length - 1] === '!important') {\n        cssRule.style.setProperty(prop, cssValue, 'important');\n        return true;\n      }\n    } // Support CSSTOM.\n\n\n    if (cssRule.attributeStyleMap) {\n      cssRule.attributeStyleMap.set(prop, cssValue);\n    } else {\n      cssRule.style.setProperty(prop, cssValue);\n    }\n  } catch (err) {\n    // IE may throw if property is unknown.\n    return false;\n  }\n\n  return true;\n};\n\n/**\n * Remove a style property.\n */\nvar removeProperty = function removeProperty(cssRule, prop) {\n  try {\n    // Support CSSTOM.\n    if (cssRule.attributeStyleMap) {\n      cssRule.attributeStyleMap.delete(prop);\n    } else {\n      cssRule.style.removeProperty(prop);\n    }\n  } catch (err) {\n     true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : undefined;\n  }\n};\n\n/**\n * Set the selector.\n */\nvar setSelector = function setSelector(cssRule, selectorText) {\n  cssRule.selectorText = selectorText; // Return false if setter was not successful.\n  // Currently works in chrome only.\n\n  return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n  return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n  for (var i = 0; i < registry.length; i++) {\n    var sheet = registry[i];\n\n    if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n      return sheet;\n    }\n  }\n\n  return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n  for (var i = registry.length - 1; i >= 0; i--) {\n    var sheet = registry[i];\n\n    if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n      return sheet;\n    }\n  }\n\n  return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n  var head = getHead();\n\n  for (var i = 0; i < head.childNodes.length; i++) {\n    var node = head.childNodes[i];\n\n    if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n      return node;\n    }\n  }\n\n  return null;\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n  var registry$1 = registry.registry;\n\n  if (registry$1.length > 0) {\n    // Try to insert before the next higher sheet.\n    var sheet = findHigherSheet(registry$1, options);\n\n    if (sheet && sheet.renderer) {\n      return {\n        parent: sheet.renderer.element.parentNode,\n        node: sheet.renderer.element\n      };\n    } // Otherwise insert after the last attached.\n\n\n    sheet = findHighestSheet(registry$1, options);\n\n    if (sheet && sheet.renderer) {\n      return {\n        parent: sheet.renderer.element.parentNode,\n        node: sheet.renderer.element.nextSibling\n      };\n    }\n  } // Try to find a comment placeholder if registry is empty.\n\n\n  var insertionPoint = options.insertionPoint;\n\n  if (insertionPoint && typeof insertionPoint === 'string') {\n    var comment = findCommentNode(insertionPoint);\n\n    if (comment) {\n      return {\n        parent: comment.parentNode,\n        node: comment.nextSibling\n      };\n    } // If user specifies an insertion point and it can't be found in the document -\n    // bad specificity issues may appear.\n\n\n     true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : undefined;\n  }\n\n  return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n  var insertionPoint = options.insertionPoint;\n  var nextNode = findPrevNode(options);\n\n  if (nextNode !== false && nextNode.parent) {\n    nextNode.parent.insertBefore(style, nextNode.node);\n    return;\n  } // Works with iframes and any node types.\n\n\n  if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n    // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n    var insertionPointElement = insertionPoint;\n    var parentNode = insertionPointElement.parentNode;\n    if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else  true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, '[JSS] Insertion point is not in the DOM.') : undefined;\n    return;\n  }\n\n  getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n  var node = document.querySelector('meta[property=\"csp-nonce\"]');\n  return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n  try {\n    if ('insertRule' in container) {\n      var c = container;\n      c.insertRule(rule, index);\n    } // Keyframes rule.\n    else if ('appendRule' in container) {\n        var _c = container;\n\n        _c.appendRule(rule);\n      }\n  } catch (err) {\n     true ? Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] \" + err.message) : undefined;\n    return false;\n  }\n\n  return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n  var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n  if (index === undefined || index > maxIndex) {\n    // eslint-disable-next-line no-param-reassign\n    return maxIndex;\n  }\n\n  return index;\n};\n\nvar createStyle = function createStyle() {\n  var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n  // insert rules after we insert the style tag.\n  // It seems to kick-off the source order specificity algorithm.\n\n  el.textContent = '\\n';\n  return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n  // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n  // Will be empty if link: true option is not set, because\n  // it is only for use together with insertRule API.\n  function DomRenderer(sheet) {\n    this.getPropertyValue = getPropertyValue;\n    this.setProperty = setProperty;\n    this.removeProperty = removeProperty;\n    this.setSelector = setSelector;\n    this.element = void 0;\n    this.sheet = void 0;\n    this.hasInsertedRules = false;\n    this.cssRules = [];\n    // There is no sheet when the renderer is used from a standalone StyleRule.\n    if (sheet) registry.add(sheet);\n    this.sheet = sheet;\n\n    var _ref = this.sheet ? this.sheet.options : {},\n        media = _ref.media,\n        meta = _ref.meta,\n        element = _ref.element;\n\n    this.element = element || createStyle();\n    this.element.setAttribute('data-jss', '');\n    if (media) this.element.setAttribute('media', media);\n    if (meta) this.element.setAttribute('data-meta', meta);\n    var nonce = getNonce();\n    if (nonce) this.element.setAttribute('nonce', nonce);\n  }\n  /**\n   * Insert style element into render tree.\n   */\n\n\n  var _proto = DomRenderer.prototype;\n\n  _proto.attach = function attach() {\n    // In the case the element node is external and it is already in the DOM.\n    if (this.element.parentNode || !this.sheet) return;\n    insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n    // most browsers create a new CSSStyleSheet, except of all IEs.\n\n    var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n    if (this.hasInsertedRules && deployed) {\n      this.hasInsertedRules = false;\n      this.deploy();\n    }\n  }\n  /**\n   * Remove style element from render tree.\n   */\n  ;\n\n  _proto.detach = function detach() {\n    if (!this.sheet) return;\n    var parentNode = this.element.parentNode;\n    if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n    // Though IE will keep them and we need a consistent behavior.\n\n    if (this.sheet.options.link) {\n      this.cssRules = [];\n      this.element.textContent = '\\n';\n    }\n  }\n  /**\n   * Inject CSS string into element.\n   */\n  ;\n\n  _proto.deploy = function deploy() {\n    var sheet = this.sheet;\n    if (!sheet) return;\n\n    if (sheet.options.link) {\n      this.insertRules(sheet.rules);\n      return;\n    }\n\n    this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n  }\n  /**\n   * Insert RuleList into an element.\n   */\n  ;\n\n  _proto.insertRules = function insertRules(rules, nativeParent) {\n    for (var i = 0; i < rules.index.length; i++) {\n      this.insertRule(rules.index[i], i, nativeParent);\n    }\n  }\n  /**\n   * Insert a rule into element.\n   */\n  ;\n\n  _proto.insertRule = function insertRule(rule, index, nativeParent) {\n    if (nativeParent === void 0) {\n      nativeParent = this.element.sheet;\n    }\n\n    if (rule.rules) {\n      var parent = rule;\n      var latestNativeParent = nativeParent;\n\n      if (rule.type === 'conditional' || rule.type === 'keyframes') {\n        var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n        latestNativeParent = _insertRule(nativeParent, parent.toString({\n          children: false\n        }), _insertionIndex);\n\n        if (latestNativeParent === false) {\n          return false;\n        }\n\n        this.refCssRule(rule, _insertionIndex, latestNativeParent);\n      }\n\n      this.insertRules(parent.rules, latestNativeParent);\n      return latestNativeParent;\n    }\n\n    var ruleStr = rule.toString();\n    if (!ruleStr) return false;\n    var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n    var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n    if (nativeRule === false) {\n      return false;\n    }\n\n    this.hasInsertedRules = true;\n    this.refCssRule(rule, insertionIndex, nativeRule);\n    return nativeRule;\n  };\n\n  _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n    rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n    // like rules inside media queries or keyframes\n\n    if (rule.options.parent instanceof StyleSheet) {\n      this.cssRules[index] = cssRule;\n    }\n  }\n  /**\n   * Delete a rule.\n   */\n  ;\n\n  _proto.deleteRule = function deleteRule(cssRule) {\n    var sheet = this.element.sheet;\n    var index = this.indexOf(cssRule);\n    if (index === -1) return false;\n    sheet.deleteRule(index);\n    this.cssRules.splice(index, 1);\n    return true;\n  }\n  /**\n   * Get index of a CSS Rule.\n   */\n  ;\n\n  _proto.indexOf = function indexOf(cssRule) {\n    return this.cssRules.indexOf(cssRule);\n  }\n  /**\n   * Generate a new CSS rule and replace the existing one.\n   *\n   * Only used for some old browsers because they can't set a selector.\n   */\n  ;\n\n  _proto.replaceRule = function replaceRule(cssRule, rule) {\n    var index = this.indexOf(cssRule);\n    if (index === -1) return false;\n    this.element.sheet.deleteRule(index);\n    this.cssRules.splice(index, 1);\n    return this.insertRule(rule, index);\n  }\n  /**\n   * Get all rules elements.\n   */\n  ;\n\n  _proto.getRules = function getRules() {\n    return this.element.sheet.cssRules;\n  };\n\n  return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n  function Jss(options) {\n    this.id = instanceCounter++;\n    this.version = \"10.5.0\";\n    this.plugins = new PluginsRegistry();\n    this.options = {\n      id: {\n        minify: false\n      },\n      createGenerateId: createGenerateId,\n      Renderer: is_in_browser__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? DomRenderer : null,\n      plugins: []\n    };\n    this.generateId = createGenerateId({\n      minify: false\n    });\n\n    for (var i = 0; i < plugins.length; i++) {\n      this.plugins.use(plugins[i], {\n        queue: 'internal'\n      });\n    }\n\n    this.setup(options);\n  }\n  /**\n   * Prepares various options, applies plugins.\n   * Should not be used twice on the same instance, because there is no plugins\n   * deduplication logic.\n   */\n\n\n  var _proto = Jss.prototype;\n\n  _proto.setup = function setup(options) {\n    if (options === void 0) {\n      options = {};\n    }\n\n    if (options.createGenerateId) {\n      this.options.createGenerateId = options.createGenerateId;\n    }\n\n    if (options.id) {\n      this.options.id = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, this.options.id, options.id);\n    }\n\n    if (options.createGenerateId || options.id) {\n      this.generateId = this.options.createGenerateId(this.options.id);\n    }\n\n    if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n    if ('Renderer' in options) {\n      this.options.Renderer = options.Renderer;\n    } // eslint-disable-next-line prefer-spread\n\n\n    if (options.plugins) this.use.apply(this, options.plugins);\n    return this;\n  }\n  /**\n   * Create a Style Sheet.\n   */\n  ;\n\n  _proto.createStyleSheet = function createStyleSheet(styles, options) {\n    if (options === void 0) {\n      options = {};\n    }\n\n    var _options = options,\n        index = _options.index;\n\n    if (typeof index !== 'number') {\n      index = registry.index === 0 ? 0 : registry.index + 1;\n    }\n\n    var sheet = new StyleSheet(styles, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      jss: this,\n      generateId: options.generateId || this.generateId,\n      insertionPoint: this.options.insertionPoint,\n      Renderer: this.options.Renderer,\n      index: index\n    }));\n    this.plugins.onProcessSheet(sheet);\n    return sheet;\n  }\n  /**\n   * Detach the Style Sheet and remove it from the registry.\n   */\n  ;\n\n  _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n    sheet.detach();\n    registry.remove(sheet);\n    return this;\n  }\n  /**\n   * Create a rule without a Style Sheet.\n   * [Deprecated] will be removed in the next major version.\n   */\n  ;\n\n  _proto.createRule = function createRule$1(name, style, options) {\n    if (style === void 0) {\n      style = {};\n    }\n\n    if (options === void 0) {\n      options = {};\n    }\n\n    // Enable rule without name for inline styles.\n    if (typeof name === 'object') {\n      // $FlowFixMe[incompatible-call]\n      return this.createRule(undefined, name, style);\n    } // $FlowFixMe[incompatible-type]\n\n\n    var ruleOptions = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, options, {\n      name: name,\n      jss: this,\n      Renderer: this.options.Renderer\n    });\n\n    if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n    if (!ruleOptions.classes) ruleOptions.classes = {};\n    if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n    var rule = createRule(name, style, ruleOptions);\n\n    if (rule) this.plugins.onProcessRule(rule);\n    return rule;\n  }\n  /**\n   * Register plugin. Passed function will be invoked with a rule instance.\n   */\n  ;\n\n  _proto.use = function use() {\n    var _this = this;\n\n    for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n      plugins[_key] = arguments[_key];\n    }\n\n    plugins.forEach(function (plugin) {\n      _this.plugins.use(plugin);\n    });\n    return this;\n  };\n\n  return Jss;\n}();\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n  var to = null;\n\n  for (var key in styles) {\n    var value = styles[key];\n    var type = typeof value;\n\n    if (type === 'function') {\n      if (!to) to = {};\n      to[key] = value;\n    } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n      var extracted = getDynamicStyles(value);\n\n      if (extracted) {\n        if (!to) to = {};\n        to[key] = extracted;\n      }\n    }\n  }\n\n  return to;\n}\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n  function SheetsManager() {\n    this.length = 0;\n    this.sheets = new WeakMap();\n  }\n\n  var _proto = SheetsManager.prototype;\n\n  _proto.get = function get(key) {\n    var entry = this.sheets.get(key);\n    return entry && entry.sheet;\n  };\n\n  _proto.add = function add(key, sheet) {\n    if (this.sheets.has(key)) return;\n    this.length++;\n    this.sheets.set(key, {\n      sheet: sheet,\n      refs: 0\n    });\n  };\n\n  _proto.manage = function manage(key) {\n    var entry = this.sheets.get(key);\n\n    if (entry) {\n      if (entry.refs === 0) {\n        entry.sheet.attach();\n      }\n\n      entry.refs++;\n      return entry.sheet;\n    }\n\n    Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n    return undefined;\n  };\n\n  _proto.unmanage = function unmanage(key) {\n    var entry = this.sheets.get(key);\n\n    if (entry) {\n      if (entry.refs > 0) {\n        entry.refs--;\n        if (entry.refs === 0) entry.sheet.detach();\n      }\n    } else {\n      Object(tiny_warning__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(false, \"SheetsManager: can't find sheet to unmanage\");\n    }\n  };\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(SheetsManager, [{\n    key: \"size\",\n    get: function get() {\n      return this.length;\n    }\n  }]);\n\n  return SheetsManager;\n}();\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n/**\n * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n  return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\nvar jss = create();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jss);\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/jss/dist/jss.esm.js?");

/***/ }),

/***/ "./node_modules/object-assign/index.js":
/*!*********************************************!*\
  !*** ./node_modules/object-assign/index.js ***!
  \*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/object-assign/index.js?");

/***/ }),

/***/ "./node_modules/popper.js/dist/esm/popper.js":
/*!***************************************************!*\
  !*** ./node_modules/popper.js/dist/esm/popper.js ***!
  \***************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1-lts\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      return 1;\n    }\n  }\n  return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var window = element.ownerDocument.defaultView;\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n  return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  var noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  var offsetParent = element.offsetParent || null;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TH, TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } else {\n      rect = element.getBoundingClientRect();\n    }\n  } catch (e) {}\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  var width = sizes.width || element.clientWidth || result.width;\n  var height = sizes.height || element.clientHeight || result.height;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var isIE10 = isIE(10);\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if (fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop);\n    var marginLeft = parseFloat(styles.marginLeft);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = !excludeScroll ? getScroll(html) : 0;\n  var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  var parentNode = getParentNode(element);\n  if (!parentNode) {\n    return false;\n  }\n  return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  var el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // NOTE: 1 DOM access here\n\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  var isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n  boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var window = element.ownerDocument.defaultView;\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n  var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n  data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicitly asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n  var round = Math.round,\n      floor = Math.floor;\n\n  var noRound = function noRound(v) {\n    return v;\n  };\n\n  var referenceWidth = round(reference.width);\n  var popperWidth = round(popper.width);\n\n  var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n  var isVariation = data.placement.indexOf('-') !== -1;\n  var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n  var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n  var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n  var verticalToInteger = !shouldRound ? noRound : round;\n\n  return {\n    left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n    top: verticalToInteger(popper.top),\n    bottom: verticalToInteger(popper.bottom),\n    right: horizontalToInteger(popper.right)\n  };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n    // flips variation if reference element overflows boundaries\n    var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    // flips variation if popper content overflows boundaries\n    var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n    var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  var transformProp = getSupportedPropertyName('transform');\n  var popperStyles = data.instance.popper.style; // assignment to help minification\n  var top = popperStyles.top,\n      left = popperStyles.left,\n      transform = popperStyles[transformProp];\n\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n    /**\n     * @prop {Boolean} flipVariations=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the reference element overlaps its boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariations: false,\n    /**\n     * @prop {Boolean} flipVariationsByContent=false\n     * The popper will switch placement variation between `-start` and `-end` when\n     * the popper element overlaps its reference boundaries.\n     *\n     * The original placement should have a set variation.\n     */\n    flipVariationsByContent: false\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {Element|referenceObject} reference - The reference element used to position the popper\n   * @param {Element} popper - The HTML / XML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedules an update. It will run on the next UI update available.\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Popper);\n//# sourceMappingURL=popper.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack://opencleanVis/./node_modules/popper.js/dist/esm/popper.js?");

/***/ }),

/***/ "./node_modules/process/browser.js":
/*!*****************************************!*\
  !*** ./node_modules/process/browser.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/process/browser.js?");

/***/ }),

/***/ "./node_modules/prop-types/checkPropTypes.js":
/*!***************************************************!*\
  !*** ./node_modules/prop-types/checkPropTypes.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\nif (true) {\n  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n  var loggedTypeFailures = {};\n  var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  if (true) {\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error(\n              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n            );\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning(\n            (componentName || 'React class') + ': type specification of ' +\n            location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n            'You may have forgotten to pass an argument to the type checker ' +\n            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n            'shape all require an argument).'\n          );\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n\n          var stack = getStack ? getStack() : '';\n\n          printWarning(\n            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n          );\n        }\n      }\n    }\n  }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n  if (true) {\n    loggedTypeFailures = {};\n  }\n}\n\nmodule.exports = checkPropTypes;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/prop-types/checkPropTypes.js?");

/***/ }),

/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js":
/*!************************************************************!*\
  !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (true) {\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n  return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n  /* global Symbol */\n  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n  /**\n   * Returns the iterator method function contained on the iterable object.\n   *\n   * Be sure to invoke the function with the iterable as context:\n   *\n   *     var iteratorFn = getIteratorFn(myIterable);\n   *     if (iteratorFn) {\n   *       var iterator = iteratorFn.call(myIterable);\n   *       ...\n   *     }\n   *\n   * @param {?object} maybeIterable\n   * @return {?function}\n   */\n  function getIteratorFn(maybeIterable) {\n    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n    if (typeof iteratorFn === 'function') {\n      return iteratorFn;\n    }\n  }\n\n  /**\n   * Collection of methods that allow declaration and validation of props that are\n   * supplied to React components. Example usage:\n   *\n   *   var Props = require('ReactPropTypes');\n   *   var MyArticle = React.createClass({\n   *     propTypes: {\n   *       // An optional string prop named \"description\".\n   *       description: Props.string,\n   *\n   *       // A required enum prop named \"category\".\n   *       category: Props.oneOf(['News','Photos']).isRequired,\n   *\n   *       // A prop named \"dialog\" that requires an instance of Dialog.\n   *       dialog: Props.instanceOf(Dialog).isRequired\n   *     },\n   *     render: function() { ... }\n   *   });\n   *\n   * A more formal specification of how these methods are used:\n   *\n   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n   *   decl := ReactPropTypes.{type}(.isRequired)?\n   *\n   * Each and every declaration produces a function with the same signature. This\n   * allows the creation of custom validation functions. For example:\n   *\n   *  var MyLink = React.createClass({\n   *    propTypes: {\n   *      // An optional string or URI prop named \"href\".\n   *      href: function(props, propName, componentName) {\n   *        var propValue = props[propName];\n   *        if (propValue != null && typeof propValue !== 'string' &&\n   *            !(propValue instanceof URI)) {\n   *          return new Error(\n   *            'Expected a string or an URI for ' + propName + ' in ' +\n   *            componentName\n   *          );\n   *        }\n   *      }\n   *    },\n   *    render: function() {...}\n   *  });\n   *\n   * @internal\n   */\n\n  var ANONYMOUS = '<<anonymous>>';\n\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n  var ReactPropTypes = {\n    array: createPrimitiveTypeChecker('array'),\n    bool: createPrimitiveTypeChecker('boolean'),\n    func: createPrimitiveTypeChecker('function'),\n    number: createPrimitiveTypeChecker('number'),\n    object: createPrimitiveTypeChecker('object'),\n    string: createPrimitiveTypeChecker('string'),\n    symbol: createPrimitiveTypeChecker('symbol'),\n\n    any: createAnyTypeChecker(),\n    arrayOf: createArrayOfTypeChecker,\n    element: createElementTypeChecker(),\n    elementType: createElementTypeTypeChecker(),\n    instanceOf: createInstanceTypeChecker,\n    node: createNodeChecker(),\n    objectOf: createObjectOfTypeChecker,\n    oneOf: createEnumTypeChecker,\n    oneOfType: createUnionTypeChecker,\n    shape: createShapeTypeChecker,\n    exact: createStrictShapeTypeChecker,\n  };\n\n  /**\n   * inlined Object.is polyfill to avoid requiring consumers ship their own\n   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n   */\n  /*eslint-disable no-self-compare*/\n  function is(x, y) {\n    // SameValue algorithm\n    if (x === y) {\n      // Steps 1-5, 7-10\n      // Steps 6.b-6.e: +0 != -0\n      return x !== 0 || 1 / x === 1 / y;\n    } else {\n      // Step 6.a: NaN == NaN\n      return x !== x && y !== y;\n    }\n  }\n  /*eslint-enable no-self-compare*/\n\n  /**\n   * We use an Error-like object for backward compatibility as people may call\n   * PropTypes directly and inspect their output. However, we don't use real\n   * Errors anymore. We don't inspect their stack anyway, and creating them\n   * is prohibitively expensive if they are created too often, such as what\n   * happens in oneOfType() for any type before the one that matched.\n   */\n  function PropTypeError(message) {\n    this.message = message;\n    this.stack = '';\n  }\n  // Make `instanceof Error` still work for returned errors.\n  PropTypeError.prototype = Error.prototype;\n\n  function createChainableTypeChecker(validate) {\n    if (true) {\n      var manualPropTypeCallCache = {};\n      var manualPropTypeWarningCount = 0;\n    }\n    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n      componentName = componentName || ANONYMOUS;\n      propFullName = propFullName || propName;\n\n      if (secret !== ReactPropTypesSecret) {\n        if (throwOnDirectAccess) {\n          // New behavior only for users of `prop-types` package\n          var err = new Error(\n            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n            'Use `PropTypes.checkPropTypes()` to call them. ' +\n            'Read more at http://fb.me/use-check-prop-types'\n          );\n          err.name = 'Invariant Violation';\n          throw err;\n        } else if ( true && typeof console !== 'undefined') {\n          // Old behavior for people using React.PropTypes\n          var cacheKey = componentName + ':' + propName;\n          if (\n            !manualPropTypeCallCache[cacheKey] &&\n            // Avoid spamming the console because they are often not actionable except for lib authors\n            manualPropTypeWarningCount < 3\n          ) {\n            printWarning(\n              'You are manually calling a React.PropTypes validation ' +\n              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +\n              'and will throw in the standalone `prop-types` package. ' +\n              'You may be seeing this warning due to a third-party PropTypes ' +\n              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n            );\n            manualPropTypeCallCache[cacheKey] = true;\n            manualPropTypeWarningCount++;\n          }\n        }\n      }\n      if (props[propName] == null) {\n        if (isRequired) {\n          if (props[propName] === null) {\n            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n          }\n          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n        }\n        return null;\n      } else {\n        return validate(props, propName, componentName, location, propFullName);\n      }\n    }\n\n    var chainedCheckType = checkType.bind(null, false);\n    chainedCheckType.isRequired = checkType.bind(null, true);\n\n    return chainedCheckType;\n  }\n\n  function createPrimitiveTypeChecker(expectedType) {\n    function validate(props, propName, componentName, location, propFullName, secret) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== expectedType) {\n        // `propValue` being instance of, say, date/regexp, pass the 'object'\n        // check, but we can offer a more precise error message here rather than\n        // 'of type `object`'.\n        var preciseType = getPreciseType(propValue);\n\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createAnyTypeChecker() {\n    return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n  }\n\n  function createArrayOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n      }\n      var propValue = props[propName];\n      if (!Array.isArray(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n      }\n      for (var i = 0; i < propValue.length; i++) {\n        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createElementTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!isValidElement(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createElementTypeTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!ReactIs.isValidElementType(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createInstanceTypeChecker(expectedClass) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!(props[propName] instanceof expectedClass)) {\n        var expectedClassName = expectedClass.name || ANONYMOUS;\n        var actualClassName = getClassName(props[propName]);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createEnumTypeChecker(expectedValues) {\n    if (!Array.isArray(expectedValues)) {\n      if (true) {\n        if (arguments.length > 1) {\n          printWarning(\n            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n          );\n        } else {\n          printWarning('Invalid argument supplied to oneOf, expected an array.');\n        }\n      }\n      return emptyFunctionThatReturnsNull;\n    }\n\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      for (var i = 0; i < expectedValues.length; i++) {\n        if (is(propValue, expectedValues[i])) {\n          return null;\n        }\n      }\n\n      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n        var type = getPreciseType(value);\n        if (type === 'symbol') {\n          return String(value);\n        }\n        return value;\n      });\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createObjectOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n      }\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n      }\n      for (var key in propValue) {\n        if (has(propValue, key)) {\n          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n          if (error instanceof Error) {\n            return error;\n          }\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createUnionTypeChecker(arrayOfTypeCheckers) {\n    if (!Array.isArray(arrayOfTypeCheckers)) {\n       true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n      return emptyFunctionThatReturnsNull;\n    }\n\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (typeof checker !== 'function') {\n        printWarning(\n          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n        );\n        return emptyFunctionThatReturnsNull;\n      }\n    }\n\n    function validate(props, propName, componentName, location, propFullName) {\n      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n        var checker = arrayOfTypeCheckers[i];\n        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n          return null;\n        }\n      }\n\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createNodeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!isNode(props[propName])) {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      for (var key in shapeTypes) {\n        var checker = shapeTypes[key];\n        if (!checker) {\n          continue;\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createStrictShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      // We need to check all keys in case some are required but missing from\n      // props.\n      var allKeys = assign({}, props[propName], shapeTypes);\n      for (var key in allKeys) {\n        var checker = shapeTypes[key];\n        if (!checker) {\n          return new PropTypeError(\n            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n            '\\nBad object: ' + JSON.stringify(props[propName], null, '  ') +\n            '\\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')\n          );\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n\n    return createChainableTypeChecker(validate);\n  }\n\n  function isNode(propValue) {\n    switch (typeof propValue) {\n      case 'number':\n      case 'string':\n      case 'undefined':\n        return true;\n      case 'boolean':\n        return !propValue;\n      case 'object':\n        if (Array.isArray(propValue)) {\n          return propValue.every(isNode);\n        }\n        if (propValue === null || isValidElement(propValue)) {\n          return true;\n        }\n\n        var iteratorFn = getIteratorFn(propValue);\n        if (iteratorFn) {\n          var iterator = iteratorFn.call(propValue);\n          var step;\n          if (iteratorFn !== propValue.entries) {\n            while (!(step = iterator.next()).done) {\n              if (!isNode(step.value)) {\n                return false;\n              }\n            }\n          } else {\n            // Iterator will provide entry [k,v] tuples rather than values.\n            while (!(step = iterator.next()).done) {\n              var entry = step.value;\n              if (entry) {\n                if (!isNode(entry[1])) {\n                  return false;\n                }\n              }\n            }\n          }\n        } else {\n          return false;\n        }\n\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  function isSymbol(propType, propValue) {\n    // Native Symbol.\n    if (propType === 'symbol') {\n      return true;\n    }\n\n    // falsy value can't be a Symbol\n    if (!propValue) {\n      return false;\n    }\n\n    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n    if (propValue['@@toStringTag'] === 'Symbol') {\n      return true;\n    }\n\n    // Fallback for non-spec compliant Symbols which are polyfilled.\n    if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n      return true;\n    }\n\n    return false;\n  }\n\n  // Equivalent of `typeof` but with special handling for array and regexp.\n  function getPropType(propValue) {\n    var propType = typeof propValue;\n    if (Array.isArray(propValue)) {\n      return 'array';\n    }\n    if (propValue instanceof RegExp) {\n      // Old webkits (at least until Android 4.0) return 'function' rather than\n      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n      // passes PropTypes.object.\n      return 'object';\n    }\n    if (isSymbol(propType, propValue)) {\n      return 'symbol';\n    }\n    return propType;\n  }\n\n  // This handles more types than `getPropType`. Only used for error messages.\n  // See `createPrimitiveTypeChecker`.\n  function getPreciseType(propValue) {\n    if (typeof propValue === 'undefined' || propValue === null) {\n      return '' + propValue;\n    }\n    var propType = getPropType(propValue);\n    if (propType === 'object') {\n      if (propValue instanceof Date) {\n        return 'date';\n      } else if (propValue instanceof RegExp) {\n        return 'regexp';\n      }\n    }\n    return propType;\n  }\n\n  // Returns a string that is postfixed to a warning about an invalid type.\n  // For example, \"undefined\" or \"of type array\"\n  function getPostfixForTypeWarning(value) {\n    var type = getPreciseType(value);\n    switch (type) {\n      case 'array':\n      case 'object':\n        return 'an ' + type;\n      case 'boolean':\n      case 'date':\n      case 'regexp':\n        return 'a ' + type;\n      default:\n        return type;\n    }\n  }\n\n  // Returns class name of the object, if any.\n  function getClassName(propValue) {\n    if (!propValue.constructor || !propValue.constructor.name) {\n      return ANONYMOUS;\n    }\n    return propValue.constructor.name;\n  }\n\n  ReactPropTypes.checkPropTypes = checkPropTypes;\n  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/prop-types/factoryWithTypeCheckers.js?");

/***/ }),

/***/ "./node_modules/prop-types/index.js":
/*!******************************************!*\
  !*** ./node_modules/prop-types/index.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n  var ReactIs = __webpack_require__(/*! react-is */ \"./node_modules/react-is/index.js\");\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else {}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/prop-types/index.js?");

/***/ }),

/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!*************************************************************!*\
  !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/prop-types/lib/ReactPropTypesSecret.js?");

/***/ }),

/***/ "./node_modules/react-dom/cjs/react-dom.development.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-dom/cjs/react-dom.development.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/** @license React v16.13.1\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n  (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\nvar Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\");\nvar checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\nvar tracing = __webpack_require__(/*! scheduler/tracing */ \"./node_modules/scheduler/tracing.js\");\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; // Prevent newer renderers from RTE when used with older react package versions.\n// Current owner and dispatcher used to share the same ref,\n// but PR #14548 split them out to better support the react-debug-tools package.\n\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {\n  ReactSharedInternals.ReactCurrentDispatcher = {\n    current: null\n  };\n}\n\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentBatchConfig')) {\n  ReactSharedInternals.ReactCurrentBatchConfig = {\n    suspense: null\n  };\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n  {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    printWarning('warn', format, args);\n  }\n}\nfunction error(format) {\n  {\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    printWarning('error', format, args);\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var hasExistingStack = args.length > 0 && typeof args[args.length - 1] === 'string' && args[args.length - 1].indexOf('\\n    in') === 0;\n\n    if (!hasExistingStack) {\n      var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n      var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n      if (stack !== '') {\n        format += '%s';\n        args = args.concat([stack]);\n      }\n    }\n\n    var argsWithFormat = args.map(function (item) {\n      return '' + item;\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      throw new Error(message);\n    } catch (x) {}\n  }\n}\n\nif (!React) {\n  {\n    throw Error( \"ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.\" );\n  }\n}\n\nvar invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) {\n  var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n  try {\n    func.apply(context, funcArgs);\n  } catch (error) {\n    this.onError(error);\n  }\n};\n\n{\n  // In DEV mode, we swap out invokeGuardedCallback for a special version\n  // that plays more nicely with the browser's DevTools. The idea is to preserve\n  // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n  // functions in invokeGuardedCallback, and the production version of\n  // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n  // like caught exceptions, and the DevTools won't pause unless the developer\n  // takes the extra step of enabling pause on caught exceptions. This is\n  // unintuitive, though, because even though React has caught the error, from\n  // the developer's perspective, the error is uncaught.\n  //\n  // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n  // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n  // DOM node, and call the user-provided callback from inside an event handler\n  // for that fake event. If the callback throws, the error is \"captured\" using\n  // a global event handler. But because the error happens in a different\n  // event loop context, it does not interrupt the normal program flow.\n  // Effectively, this gives us try-catch behavior without actually using\n  // try-catch. Neat!\n  // Check that the browser supports the APIs we need to implement our special\n  // DEV version of invokeGuardedCallback\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n\n    var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {\n      // If document doesn't exist we know for sure we will crash in this method\n      // when we call document.createEvent(). However this can cause confusing\n      // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n      // So we preemptively throw with a better message instead.\n      if (!(typeof document !== 'undefined')) {\n        {\n          throw Error( \"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.\" );\n        }\n      }\n\n      var evt = document.createEvent('Event'); // Keeps track of whether the user-provided callback threw an error. We\n      // set this to true at the beginning, then set it to false right after\n      // calling the function. If the function errors, `didError` will never be\n      // set to false. This strategy works even if the browser is flaky and\n      // fails to call our global error handler, because it doesn't rely on\n      // the error event at all.\n\n      var didError = true; // Keeps track of the value of window.event so that we can reset it\n      // during the callback to let user code access window.event in the\n      // browsers that support it.\n\n      var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n      // dispatching: https://github.com/facebook/react/issues/13688\n\n      var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event'); // Create an event handler for our fake event. We will synchronously\n      // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n      // call the user-provided callback.\n\n      var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n      function callCallback() {\n        // We immediately remove the callback from event listeners so that\n        // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n        // nested call would trigger the fake event handlers of any call higher\n        // in the stack.\n        fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n        // window.event assignment in both IE <= 10 as they throw an error\n        // \"Member not found\" in strict mode, and in Firefox which does not\n        // support window.event.\n\n        if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n          window.event = windowEvent;\n        }\n\n        func.apply(context, funcArgs);\n        didError = false;\n      } // Create a global error event handler. We use this to capture the value\n      // that was thrown. It's possible that this error handler will fire more\n      // than once; for example, if non-React code also calls `dispatchEvent`\n      // and a handler for that event throws. We should be resilient to most of\n      // those cases. Even if our error event handler fires more than once, the\n      // last error event is always used. If the callback actually does error,\n      // we know that the last error event is the correct one, because it's not\n      // possible for anything else to have happened in between our callback\n      // erroring and the code that follows the `dispatchEvent` call below. If\n      // the callback doesn't error, but the error event was fired, we know to\n      // ignore it because `didError` will be false, as described above.\n\n\n      var error; // Use this to track whether the error event is ever called.\n\n      var didSetError = false;\n      var isCrossOriginError = false;\n\n      function handleWindowError(event) {\n        error = event.error;\n        didSetError = true;\n\n        if (error === null && event.colno === 0 && event.lineno === 0) {\n          isCrossOriginError = true;\n        }\n\n        if (event.defaultPrevented) {\n          // Some other error handler has prevented default.\n          // Browsers silence the error report if this happens.\n          // We'll remember this to later decide whether to log it or not.\n          if (error != null && typeof error === 'object') {\n            try {\n              error._suppressLogging = true;\n            } catch (inner) {// Ignore.\n            }\n          }\n        }\n      } // Create a fake event type.\n\n\n      var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n      window.addEventListener('error', handleWindowError);\n      fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n      // errors, it will trigger our global error handler.\n\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n\n      if (windowEventDescriptor) {\n        Object.defineProperty(window, 'event', windowEventDescriptor);\n      }\n\n      if (didError) {\n        if (!didSetError) {\n          // The callback errored, but the error event never fired.\n          error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n        } else if (isCrossOriginError) {\n          error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');\n        }\n\n        this.onError(error);\n      } // Remove our event listeners\n\n\n      window.removeEventListener('error', handleWindowError);\n    };\n\n    invokeGuardedCallbackImpl = invokeGuardedCallbackDev;\n  }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n  onError: function (error) {\n    hasError = true;\n    caughtError = error;\n  }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n  hasError = false;\n  caughtError = null;\n  invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n  invokeGuardedCallback.apply(this, arguments);\n\n  if (hasError) {\n    var error = clearCaughtError();\n\n    if (!hasRethrowError) {\n      hasRethrowError = true;\n      rethrowError = error;\n    }\n  }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n  if (hasRethrowError) {\n    var error = rethrowError;\n    hasRethrowError = false;\n    rethrowError = null;\n    throw error;\n  }\n}\nfunction hasCaughtError() {\n  return hasError;\n}\nfunction clearCaughtError() {\n  if (hasError) {\n    var error = caughtError;\n    hasError = false;\n    caughtError = null;\n    return error;\n  } else {\n    {\n      {\n        throw Error( \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n  }\n}\n\nvar getFiberCurrentPropsFromNode = null;\nvar getInstanceFromNode = null;\nvar getNodeFromInstance = null;\nfunction setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) {\n  getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl;\n  getInstanceFromNode = getInstanceFromNodeImpl;\n  getNodeFromInstance = getNodeFromInstanceImpl;\n\n  {\n    if (!getNodeFromInstance || !getInstanceFromNode) {\n      error('EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.');\n    }\n  }\n}\nvar validateEventDispatches;\n\n{\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchInstances = event._dispatchInstances;\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n    var instancesIsArr = Array.isArray(dispatchInstances);\n    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n    if (instancesIsArr !== listenersIsArr || instancesLen !== listenersLen) {\n      error('EventPluginUtils: Invalid `event`.');\n    }\n  };\n}\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\n\n\nfunction executeDispatch(event, listener, inst) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = getNodeFromInstance(inst);\n  invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n  event.currentTarget = null;\n}\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\n\nfunction executeDispatchesInOrder(event) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchInstances = event._dispatchInstances;\n\n  {\n    validateEventDispatches(event);\n  }\n\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      } // Listeners and Instances are two parallel arrays that are always in sync.\n\n\n      executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, dispatchListeners, dispatchInstances);\n  }\n\n  event._dispatchListeners = null;\n  event._dispatchInstances = null;\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\nvar ScopeComponent = 21;\nvar Block = 22;\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n/**\n * Injectable mapping from names to event plugin modules.\n */\n\nvar namesToPlugins = {};\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\n\nfunction recomputePluginOrdering() {\n  if (!eventPluginOrder) {\n    // Wait until an `eventPluginOrder` is injected.\n    return;\n  }\n\n  for (var pluginName in namesToPlugins) {\n    var pluginModule = namesToPlugins[pluginName];\n    var pluginIndex = eventPluginOrder.indexOf(pluginName);\n\n    if (!(pluginIndex > -1)) {\n      {\n        throw Error( \"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `\" + pluginName + \"`.\" );\n      }\n    }\n\n    if (plugins[pluginIndex]) {\n      continue;\n    }\n\n    if (!pluginModule.extractEvents) {\n      {\n        throw Error( \"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `\" + pluginName + \"` does not.\" );\n      }\n    }\n\n    plugins[pluginIndex] = pluginModule;\n    var publishedEvents = pluginModule.eventTypes;\n\n    for (var eventName in publishedEvents) {\n      if (!publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName)) {\n        {\n          throw Error( \"EventPluginRegistry: Failed to publish event `\" + eventName + \"` for plugin `\" + pluginName + \"`.\" );\n        }\n      }\n    }\n  }\n}\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\n\n\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n  if (!!eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n    {\n      throw Error( \"EventPluginRegistry: More than one plugin attempted to publish the same event name, `\" + eventName + \"`.\" );\n    }\n  }\n\n  eventNameDispatchConfigs[eventName] = dispatchConfig;\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n      }\n    }\n\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n    return true;\n  }\n\n  return false;\n}\n/**\n * Publishes a registration name that is used to identify dispatched events.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\n\n\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n  if (!!registrationNameModules[registrationName]) {\n    {\n      throw Error( \"EventPluginRegistry: More than one plugin attempted to publish the same registration name, `\" + registrationName + \"`.\" );\n    }\n  }\n\n  registrationNameModules[registrationName] = pluginModule;\n  registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n  {\n    var lowerCasedName = registrationName.toLowerCase();\n    possibleRegistrationNames[lowerCasedName] = registrationName;\n\n    if (registrationName === 'onDoubleClick') {\n      possibleRegistrationNames.ondblclick = registrationName;\n    }\n  }\n}\n/**\n * Registers plugins so that they can extract and dispatch events.\n */\n\n/**\n * Ordered list of injected plugins.\n */\n\n\nvar plugins = [];\n/**\n * Mapping from event name to dispatch config\n */\n\nvar eventNameDispatchConfigs = {};\n/**\n * Mapping from registration name to plugin module\n */\n\nvar registrationNameModules = {};\n/**\n * Mapping from registration name to event name\n */\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames =  {} ; // Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n */\n\nfunction injectEventPluginOrder(injectedEventPluginOrder) {\n  if (!!eventPluginOrder) {\n    {\n      throw Error( \"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.\" );\n    }\n  } // Clone the ordering so it cannot be dynamically mutated.\n\n\n  eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n  recomputePluginOrdering();\n}\n/**\n * Injects plugins to be used by plugin event system. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n */\n\nfunction injectEventPluginsByName(injectedNamesToPlugins) {\n  var isOrderingDirty = false;\n\n  for (var pluginName in injectedNamesToPlugins) {\n    if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n      continue;\n    }\n\n    var pluginModule = injectedNamesToPlugins[pluginName];\n\n    if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n      if (!!namesToPlugins[pluginName]) {\n        {\n          throw Error( \"EventPluginRegistry: Cannot inject two different event plugins using the same name, `\" + pluginName + \"`.\" );\n        }\n      }\n\n      namesToPlugins[pluginName] = pluginModule;\n      isOrderingDirty = true;\n    }\n  }\n\n  if (isOrderingDirty) {\n    recomputePluginOrdering();\n  }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar PLUGIN_EVENT_SYSTEM = 1;\nvar IS_REPLAYED = 1 << 5;\nvar IS_FIRST_ANCESTOR = 1 << 6;\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n  // We perform this translation at the end of the event loop so that we\n  // always receive the correct fiber here\n  var internalInstance = getInstanceFromNode(target);\n\n  if (!internalInstance) {\n    // Unmounted\n    return;\n  }\n\n  if (!(typeof restoreImpl === 'function')) {\n    {\n      throw Error( \"setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n\n  var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted.\n\n  if (stateNode) {\n    var _props = getFiberCurrentPropsFromNode(stateNode);\n\n    restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n  }\n}\n\nfunction setRestoreImplementation(impl) {\n  restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n  if (restoreTarget) {\n    if (restoreQueue) {\n      restoreQueue.push(target);\n    } else {\n      restoreQueue = [target];\n    }\n  } else {\n    restoreTarget = target;\n  }\n}\nfunction needsStateRestore() {\n  return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n  if (!restoreTarget) {\n    return;\n  }\n\n  var target = restoreTarget;\n  var queuedTargets = restoreQueue;\n  restoreTarget = null;\n  restoreQueue = null;\n  restoreStateOfTarget(target);\n\n  if (queuedTargets) {\n    for (var i = 0; i < queuedTargets.length; i++) {\n      restoreStateOfTarget(queuedTargets[i]);\n    }\n  }\n}\n\nvar enableProfilerTimer = true; // Trace which interactions trigger each commit.\n\nvar enableDeprecatedFlareAPI = false; // Experimental Host Component support.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\nvar warnAboutStringRefs = false;\n\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n  return fn(bookkeeping);\n};\n\nvar discreteUpdatesImpl = function (fn, a, b, c, d) {\n  return fn(a, b, c, d);\n};\n\nvar flushDiscreteUpdatesImpl = function () {};\n\nvar batchedEventUpdatesImpl = batchedUpdatesImpl;\nvar isInsideEventHandler = false;\nvar isBatchingEventUpdates = false;\n\nfunction finishEventHandler() {\n  // Here we wait until all updates have propagated, which is important\n  // when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  // Then we restore state of any controlled component.\n  var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n  if (controlledComponentsHavePendingUpdates) {\n    // If a controlled event was fired, we may need to restore the state of\n    // the DOM node back to the controlled value. This is necessary when React\n    // bails out of the update without touching the DOM.\n    flushDiscreteUpdatesImpl();\n    restoreStateIfNeeded();\n  }\n}\n\nfunction batchedUpdates(fn, bookkeeping) {\n  if (isInsideEventHandler) {\n    // If we are currently inside another batch, we need to wait until it\n    // fully completes before restoring state.\n    return fn(bookkeeping);\n  }\n\n  isInsideEventHandler = true;\n\n  try {\n    return batchedUpdatesImpl(fn, bookkeeping);\n  } finally {\n    isInsideEventHandler = false;\n    finishEventHandler();\n  }\n}\nfunction batchedEventUpdates(fn, a, b) {\n  if (isBatchingEventUpdates) {\n    // If we are currently inside another batch, we need to wait until it\n    // fully completes before restoring state.\n    return fn(a, b);\n  }\n\n  isBatchingEventUpdates = true;\n\n  try {\n    return batchedEventUpdatesImpl(fn, a, b);\n  } finally {\n    isBatchingEventUpdates = false;\n    finishEventHandler();\n  }\n} // This is for the React Flare event system\nfunction discreteUpdates(fn, a, b, c, d) {\n  var prevIsInsideEventHandler = isInsideEventHandler;\n  isInsideEventHandler = true;\n\n  try {\n    return discreteUpdatesImpl(fn, a, b, c, d);\n  } finally {\n    isInsideEventHandler = prevIsInsideEventHandler;\n\n    if (!isInsideEventHandler) {\n      finishEventHandler();\n    }\n  }\n}\nfunction flushDiscreteUpdatesIfNeeded(timeStamp) {\n  // event.timeStamp isn't overly reliable due to inconsistencies in\n  // how different browsers have historically provided the time stamp.\n  // Some browsers provide high-resolution time stamps for all events,\n  // some provide low-resolution time stamps for all events. FF < 52\n  // even mixes both time stamps together. Some browsers even report\n  // negative time stamps or time stamps that are 0 (iOS9) in some cases.\n  // Given we are only comparing two time stamps with equality (!==),\n  // we are safe from the resolution differences. If the time stamp is 0\n  // we bail-out of preventing the flush, which can affect semantics,\n  // such as if an earlier flush removes or adds event listeners that\n  // are fired in the subsequent flush. However, this is the same\n  // behaviour as we had before this change, so the risks are low.\n  if (!isInsideEventHandler && (!enableDeprecatedFlareAPI  )) {\n    flushDiscreteUpdatesImpl();\n  }\n}\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) {\n  batchedUpdatesImpl = _batchedUpdatesImpl;\n  discreteUpdatesImpl = _discreteUpdatesImpl;\n  flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl;\n  batchedEventUpdatesImpl = _batchedEventUpdatesImpl;\n}\n\nvar DiscreteEvent = 0;\nvar UserBlockingEvent = 1;\nvar ContinuousEvent = 2;\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the whitelist are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n    return true;\n  }\n\n  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n    return false;\n  }\n\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n\n  illegalAttributeNameCache[attributeName] = true;\n\n  {\n    error('Invalid attribute name: `%s`', attributeName);\n  }\n\n  return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null) {\n    return propertyInfo.type === RESERVED;\n  }\n\n  if (isCustomComponentTag) {\n    return false;\n  }\n\n  if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n    return true;\n  }\n\n  return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n    return false;\n  }\n\n  switch (typeof value) {\n    case 'function': // $FlowIssue symbol is perfectly valid here\n\n    case 'symbol':\n      // eslint-disable-line\n      return true;\n\n    case 'boolean':\n      {\n        if (isCustomComponentTag) {\n          return false;\n        }\n\n        if (propertyInfo !== null) {\n          return !propertyInfo.acceptsBooleans;\n        } else {\n          var prefix = name.toLowerCase().slice(0, 5);\n          return prefix !== 'data-' && prefix !== 'aria-';\n        }\n      }\n\n    default:\n      return false;\n  }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n  if (value === null || typeof value === 'undefined') {\n    return true;\n  }\n\n  if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n    return true;\n  }\n\n  if (isCustomComponentTag) {\n    return false;\n  }\n\n  if (propertyInfo !== null) {\n    switch (propertyInfo.type) {\n      case BOOLEAN:\n        return !value;\n\n      case OVERLOADED_BOOLEAN:\n        return value === false;\n\n      case NUMERIC:\n        return isNaN(value);\n\n      case POSITIVE_NUMERIC:\n        return isNaN(value) || value < 1;\n    }\n  }\n\n  return false;\n}\nfunction getPropertyInfo(name) {\n  return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL) {\n  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n  this.attributeName = attributeName;\n  this.attributeNamespace = attributeNamespace;\n  this.mustUseProperty = mustUseProperty;\n  this.propertyName = name;\n  this.type = type;\n  this.sanitizeURL = sanitizeURL;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\n\nreservedProps.forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n  var name = _ref[0],\n      attributeName = _ref[1];\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n  name, // attributeName\n  null, // attributeNamespace\n  false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n  return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML whitelist.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, null, // attributeNamespace\n  false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/1999/xlink', false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/XML/1998/namespace', false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  true);\n});\n\nvar ReactDebugCurrentFrame = null;\n\n{\n  ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n} // A javascript: URL can contain leading C0 control or \\u0020 SPACE,\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\n\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n  {\n    if (!didWarn && isJavaScriptProtocol.test(url)) {\n      didWarn = true;\n\n      error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n    }\n  }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n  {\n    if (propertyInfo.mustUseProperty) {\n      var propertyName = propertyInfo.propertyName;\n      return node[propertyName];\n    } else {\n      if ( propertyInfo.sanitizeURL) {\n        // If we haven't fully disabled javascript: URLs, and if\n        // the hydration is successful of a javascript: URL, we\n        // still want to warn on the client.\n        sanitizeURL('' + expected);\n      }\n\n      var attributeName = propertyInfo.attributeName;\n      var stringValue = null;\n\n      if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n        if (node.hasAttribute(attributeName)) {\n          var value = node.getAttribute(attributeName);\n\n          if (value === '') {\n            return true;\n          }\n\n          if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n            return value;\n          }\n\n          if (value === '' + expected) {\n            return expected;\n          }\n\n          return value;\n        }\n      } else if (node.hasAttribute(attributeName)) {\n        if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n          // We had an attribute but shouldn't have had one, so read it\n          // for the error message.\n          return node.getAttribute(attributeName);\n        }\n\n        if (propertyInfo.type === BOOLEAN) {\n          // If this was a boolean, it doesn't matter what the value is\n          // the fact that we have it is the same as the expected.\n          return expected;\n        } // Even if this property uses a namespace we use getAttribute\n        // because we assume its namespaced name is the same as our config.\n        // To use getAttributeNS we need the local name which we don't have\n        // in our config atm.\n\n\n        stringValue = node.getAttribute(attributeName);\n      }\n\n      if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n        return stringValue === null ? expected : stringValue;\n      } else if (stringValue === '' + expected) {\n        return expected;\n      } else {\n        return stringValue;\n      }\n    }\n  }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected) {\n  {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n\n    if (!node.hasAttribute(name)) {\n      return expected === undefined ? undefined : null;\n    }\n\n    var value = node.getAttribute(name);\n\n    if (value === '' + expected) {\n      return expected;\n    }\n\n    return value;\n  }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n  var propertyInfo = getPropertyInfo(name);\n\n  if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n    return;\n  }\n\n  if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n    value = null;\n  } // If the prop isn't in the special list, treat it as a simple attribute.\n\n\n  if (isCustomComponentTag || propertyInfo === null) {\n    if (isAttributeNameSafe(name)) {\n      var _attributeName = name;\n\n      if (value === null) {\n        node.removeAttribute(_attributeName);\n      } else {\n        node.setAttribute(_attributeName,  '' + value);\n      }\n    }\n\n    return;\n  }\n\n  var mustUseProperty = propertyInfo.mustUseProperty;\n\n  if (mustUseProperty) {\n    var propertyName = propertyInfo.propertyName;\n\n    if (value === null) {\n      var type = propertyInfo.type;\n      node[propertyName] = type === BOOLEAN ? false : '';\n    } else {\n      // Contrary to `setAttribute`, object properties are properly\n      // `toString`ed by IE8/9.\n      node[propertyName] = value;\n    }\n\n    return;\n  } // The rest are treated as attributes with special cases.\n\n\n  var attributeName = propertyInfo.attributeName,\n      attributeNamespace = propertyInfo.attributeNamespace;\n\n  if (value === null) {\n    node.removeAttribute(attributeName);\n  } else {\n    var _type = propertyInfo.type;\n    var attributeValue;\n\n    if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n      // If attribute type is boolean, we know for sure it won't be an execution sink\n      // and we won't require Trusted Type here.\n      attributeValue = '';\n    } else {\n      // `setAttribute` with objects becomes only `[object]` in IE8/9,\n      // ('' + value) makes it output the correct toString()-value.\n      {\n        attributeValue = '' + value;\n      }\n\n      if (propertyInfo.sanitizeURL) {\n        sanitizeURL(attributeValue.toString());\n      }\n    }\n\n    if (attributeNamespace) {\n      node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n    } else {\n      node.setAttribute(attributeName, attributeValue);\n    }\n  }\n}\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\nfunction describeComponentFrame (name, source, ownerName) {\n  var sourceInfo = '';\n\n  if (source) {\n    var path = source.fileName;\n    var fileName = path.replace(BEFORE_SLASH_RE, '');\n\n    {\n      // In DEV, include code for a common special case:\n      // prefer \"folder/index.js\" instead of just \"index.js\".\n      if (/^index\\./.test(fileName)) {\n        var match = path.match(BEFORE_SLASH_RE);\n\n        if (match) {\n          var pathBeforeSlash = match[1];\n\n          if (pathBeforeSlash) {\n            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n            fileName = folderName + '/' + fileName;\n          }\n        }\n      }\n    }\n\n    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n  } else if (ownerName) {\n    sourceInfo = ' (created by ' + ownerName + ')';\n  }\n\n  return '\\n    in ' + (name || 'Unknown') + sourceInfo;\n}\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\nfunction refineResolvedLazyComponent(lazyComponent) {\n  return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\nfunction initializeLazyComponentType(lazyComponent) {\n  if (lazyComponent._status === Uninitialized) {\n    lazyComponent._status = Pending;\n    var ctor = lazyComponent._ctor;\n    var thenable = ctor();\n    lazyComponent._result = thenable;\n    thenable.then(function (moduleObject) {\n      if (lazyComponent._status === Pending) {\n        var defaultExport = moduleObject.default;\n\n        {\n          if (defaultExport === undefined) {\n            error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' + \"const MyComponent = lazy(() => import('./MyComponent'))\", moduleObject);\n          }\n        }\n\n        lazyComponent._status = Resolved;\n        lazyComponent._result = defaultExport;\n      }\n    }, function (error) {\n      if (lazyComponent._status === Pending) {\n        lazyComponent._status = Rejected;\n        lazyComponent._result = error;\n      }\n    });\n  }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var functionName = innerType.displayName || innerType.name || '';\n  return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getComponentName(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return \"Profiler\";\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        return 'Context.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        return 'Context.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        return getComponentName(type.type);\n\n      case REACT_BLOCK_TYPE:\n        return getComponentName(type.render);\n\n      case REACT_LAZY_TYPE:\n        {\n          var thenable = type;\n          var resolvedThenable = refineResolvedLazyComponent(thenable);\n\n          if (resolvedThenable) {\n            return getComponentName(resolvedThenable);\n          }\n\n          break;\n        }\n    }\n  }\n\n  return null;\n}\n\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction describeFiber(fiber) {\n  switch (fiber.tag) {\n    case HostRoot:\n    case HostPortal:\n    case HostText:\n    case Fragment:\n    case ContextProvider:\n    case ContextConsumer:\n      return '';\n\n    default:\n      var owner = fiber._debugOwner;\n      var source = fiber._debugSource;\n      var name = getComponentName(fiber.type);\n      var ownerName = null;\n\n      if (owner) {\n        ownerName = getComponentName(owner.type);\n      }\n\n      return describeComponentFrame(name, source, ownerName);\n  }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n  var info = '';\n  var node = workInProgress;\n\n  do {\n    info += describeFiber(node);\n    node = node.return;\n  } while (node);\n\n  return info;\n}\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n  {\n    if (current === null) {\n      return null;\n    }\n\n    var owner = current._debugOwner;\n\n    if (owner !== null && typeof owner !== 'undefined') {\n      return getComponentName(owner.type);\n    }\n  }\n\n  return null;\n}\nfunction getCurrentFiberStackInDev() {\n  {\n    if (current === null) {\n      return '';\n    } // Safe because if current fiber exists, we are reconciling,\n    // and it is guaranteed to be the work-in-progress version.\n\n\n    return getStackByFiberInDevAndProd(current);\n  }\n}\nfunction resetCurrentFiber() {\n  {\n    ReactDebugCurrentFrame$1.getCurrentStack = null;\n    current = null;\n    isRendering = false;\n  }\n}\nfunction setCurrentFiber(fiber) {\n  {\n    ReactDebugCurrentFrame$1.getCurrentStack = getCurrentFiberStackInDev;\n    current = fiber;\n    isRendering = false;\n  }\n}\nfunction setIsRendering(rendering) {\n  {\n    isRendering = rendering;\n  }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n  return '' + value;\n}\nfunction getToStringValue(value) {\n  switch (typeof value) {\n    case 'boolean':\n    case 'number':\n    case 'object':\n    case 'string':\n    case 'undefined':\n      return value;\n\n    default:\n      // function, symbol are assigned as empty strings\n      return '';\n  }\n}\n\nvar ReactDebugCurrentFrame$2 = null;\nvar ReactControlledValuePropTypes = {\n  checkPropTypes: null\n};\n\n{\n  ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;\n  var hasReadOnlyValue = {\n    button: true,\n    checkbox: true,\n    image: true,\n    hidden: true,\n    radio: true,\n    reset: true,\n    submit: true\n  };\n  var propTypes = {\n    value: function (props, propName, componentName) {\n      if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null || enableDeprecatedFlareAPI ) {\n        return null;\n      }\n\n      return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    },\n    checked: function (props, propName, componentName) {\n      if (props.onChange || props.readOnly || props.disabled || props[propName] == null || enableDeprecatedFlareAPI ) {\n        return null;\n      }\n\n      return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    }\n  };\n  /**\n   * Provide a linked `value` attribute for controlled forms. You should not use\n   * this outside of the ReactDOM controlled form components.\n   */\n\n  ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {\n    checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum);\n  };\n}\n\nfunction isCheckable(elem) {\n  var type = elem.type;\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n  return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n  node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n  var value = '';\n\n  if (!node) {\n    return value;\n  }\n\n  if (isCheckable(node)) {\n    value = node.checked ? 'true' : 'false';\n  } else {\n    value = node.value;\n  }\n\n  return value;\n}\n\nfunction trackValueOnNode(node) {\n  var valueField = isCheckable(node) ? 'checked' : 'value';\n  var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n  var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n  // and don't track value will cause over reporting of changes,\n  // but it's better then a hard failure\n  // (needed for certain tests that spyOn input values and Safari)\n\n  if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n    return;\n  }\n\n  var get = descriptor.get,\n      set = descriptor.set;\n  Object.defineProperty(node, valueField, {\n    configurable: true,\n    get: function () {\n      return get.call(this);\n    },\n    set: function (value) {\n      currentValue = '' + value;\n      set.call(this, value);\n    }\n  }); // We could've passed this the first time\n  // but it triggers a bug in IE11 and Edge 14/15.\n  // Calling defineProperty() again should be equivalent.\n  // https://github.com/facebook/react/issues/11768\n\n  Object.defineProperty(node, valueField, {\n    enumerable: descriptor.enumerable\n  });\n  var tracker = {\n    getValue: function () {\n      return currentValue;\n    },\n    setValue: function (value) {\n      currentValue = '' + value;\n    },\n    stopTracking: function () {\n      detachTracker(node);\n      delete node[valueField];\n    }\n  };\n  return tracker;\n}\n\nfunction track(node) {\n  if (getTracker(node)) {\n    return;\n  } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n  node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n  if (!node) {\n    return false;\n  }\n\n  var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n  // that trying again will succeed\n\n  if (!tracker) {\n    return true;\n  }\n\n  var lastValue = tracker.getValue();\n  var nextValue = getValueFromNode(node);\n\n  if (nextValue !== lastValue) {\n    tracker.setValue(nextValue);\n    return true;\n  }\n\n  return false;\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n  var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n  return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n  var node = element;\n  var checked = props.checked;\n\n  var hostProps = _assign({}, props, {\n    defaultChecked: undefined,\n    defaultValue: undefined,\n    value: undefined,\n    checked: checked != null ? checked : node._wrapperState.initialChecked\n  });\n\n  return hostProps;\n}\nfunction initWrapperState(element, props) {\n  {\n    ReactControlledValuePropTypes.checkPropTypes('input', props);\n\n    if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n      error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n      didWarnCheckedDefaultChecked = true;\n    }\n\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n      error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n      didWarnValueDefaultValue = true;\n    }\n  }\n\n  var node = element;\n  var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n  node._wrapperState = {\n    initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n    initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n    controlled: isControlled(props)\n  };\n}\nfunction updateChecked(element, props) {\n  var node = element;\n  var checked = props.checked;\n\n  if (checked != null) {\n    setValueForProperty(node, 'checked', checked, false);\n  }\n}\nfunction updateWrapper(element, props) {\n  var node = element;\n\n  {\n    var controlled = isControlled(props);\n\n    if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n      error('A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n\n      didWarnUncontrolledToControlled = true;\n    }\n\n    if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n      error('A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n\n      didWarnControlledToUncontrolled = true;\n    }\n  }\n\n  updateChecked(element, props);\n  var value = getToStringValue(props.value);\n  var type = props.type;\n\n  if (value != null) {\n    if (type === 'number') {\n      if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n      // eslint-disable-next-line\n      node.value != value) {\n        node.value = toString(value);\n      }\n    } else if (node.value !== toString(value)) {\n      node.value = toString(value);\n    }\n  } else if (type === 'submit' || type === 'reset') {\n    // Submit/reset inputs need the attribute removed completely to avoid\n    // blank-text buttons.\n    node.removeAttribute('value');\n    return;\n  }\n\n  {\n    // When syncing the value attribute, the value comes from a cascade of\n    // properties:\n    //  1. The value React property\n    //  2. The defaultValue React property\n    //  3. Otherwise there should be no change\n    if (props.hasOwnProperty('value')) {\n      setDefaultValue(node, props.type, value);\n    } else if (props.hasOwnProperty('defaultValue')) {\n      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n    }\n  }\n\n  {\n    // When syncing the checked attribute, it only changes when it needs\n    // to be removed, such as transitioning from a checkbox into a text input\n    if (props.checked == null && props.defaultChecked != null) {\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n  var node = element; // Do not assign value if it is already set. This prevents user text input\n  // from being lost during SSR hydration.\n\n  if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n    var type = props.type;\n    var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n    // default value provided by the browser. See: #12872\n\n    if (isButton && (props.value === undefined || props.value === null)) {\n      return;\n    }\n\n    var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n    // from being lost during SSR hydration.\n\n    if (!isHydrating) {\n      {\n        // When syncing the value attribute, the value property should use\n        // the wrapperState._initialValue property. This uses:\n        //\n        //   1. The value React property when present\n        //   2. The defaultValue React property when present\n        //   3. An empty string\n        if (initialValue !== node.value) {\n          node.value = initialValue;\n        }\n      }\n    }\n\n    {\n      // Otherwise, the value attribute is synchronized to the property,\n      // so we assign defaultValue to the same thing as the value property\n      // assignment step above.\n      node.defaultValue = initialValue;\n    }\n  } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n  // this is needed to work around a chrome bug where setting defaultChecked\n  // will sometimes influence the value of checked (even after detachment).\n  // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n  // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n  var name = node.name;\n\n  if (name !== '') {\n    node.name = '';\n  }\n\n  {\n    // When syncing the checked attribute, both the checked property and\n    // attribute are assigned at the same time using defaultChecked. This uses:\n    //\n    //   1. The checked React property when present\n    //   2. The defaultChecked React property when present\n    //   3. Otherwise, false\n    node.defaultChecked = !node.defaultChecked;\n    node.defaultChecked = !!node._wrapperState.initialChecked;\n  }\n\n  if (name !== '') {\n    node.name = name;\n  }\n}\nfunction restoreControlledState(element, props) {\n  var node = element;\n  updateWrapper(node, props);\n  updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n  var name = props.name;\n\n  if (props.type === 'radio' && name != null) {\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    } // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form. It might not even be in the\n    // document. Let's just use the local `querySelectorAll` to ensure we don't\n    // miss anything.\n\n\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      } // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React radio buttons with non-React ones.\n\n\n      var otherProps = getFiberCurrentPropsFromNode$1(otherNode);\n\n      if (!otherProps) {\n        {\n          throw Error( \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\" );\n        }\n      } // We need update the tracked value on the named cousin since the value\n      // was changed but the input saw no event or value set\n\n\n      updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n\n      updateWrapper(otherNode, otherProps);\n    }\n  }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n  if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n  type !== 'number' || node.ownerDocument.activeElement !== node) {\n    if (value == null) {\n      node.defaultValue = toString(node._wrapperState.initialValue);\n    } else if (node.defaultValue !== toString(value)) {\n      node.defaultValue = toString(value);\n    }\n  }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n  var content = ''; // Flatten children. We'll warn if they are invalid\n  // during validateProps() which runs for hydration too.\n  // Note that this would throw on non-element objects.\n  // Elements are stringified (which is normally irrelevant\n  // but matters for <fbt>).\n\n  React.Children.forEach(children, function (child) {\n    if (child == null) {\n      return;\n    }\n\n    content += child; // Note: we don't warn about invalid children here.\n    // Instead, this is done separately below so that\n    // it happens during the hydration codepath too.\n  });\n  return content;\n}\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\n\nfunction validateProps(element, props) {\n  {\n    // This mirrors the codepath above, but runs for hydration too.\n    // Warn about invalid children here so that client and hydration are consistent.\n    // TODO: this seems like it could cause a DEV-only throw for hydration\n    // if children contains a non-element object. We should try to avoid that.\n    if (typeof props.children === 'object' && props.children !== null) {\n      React.Children.forEach(props.children, function (child) {\n        if (child == null) {\n          return;\n        }\n\n        if (typeof child === 'string' || typeof child === 'number') {\n          return;\n        }\n\n        if (typeof child.type !== 'string') {\n          return;\n        }\n\n        if (!didWarnInvalidChild) {\n          didWarnInvalidChild = true;\n\n          error('Only strings and numbers are supported as <option> children.');\n        }\n      });\n    } // TODO: Remove support for `selected` in <option>.\n\n\n    if (props.selected != null && !didWarnSelectedSetOnOption) {\n      error('Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n\n      didWarnSelectedSetOnOption = true;\n    }\n  }\n}\nfunction postMountWrapper$1(element, props) {\n  // value=\"\" should make a value attribute (#6219)\n  if (props.value != null) {\n    element.setAttribute('value', toString(getToStringValue(props.value)));\n  }\n}\nfunction getHostProps$1(element, props) {\n  var hostProps = _assign({\n    children: undefined\n  }, props);\n\n  var content = flattenChildren(props.children);\n\n  if (content) {\n    hostProps.children = content;\n  }\n\n  return hostProps;\n}\n\nvar didWarnValueDefaultValue$1;\n\n{\n  didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n  if (ownerName) {\n    return '\\n\\nCheck the render method of `' + ownerName + '`.';\n  }\n\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n/**\n * Validation function for `value` and `defaultValue`.\n */\n\nfunction checkSelectPropTypes(props) {\n  {\n    ReactControlledValuePropTypes.checkPropTypes('select', props);\n\n    for (var i = 0; i < valuePropNames.length; i++) {\n      var propName = valuePropNames[i];\n\n      if (props[propName] == null) {\n        continue;\n      }\n\n      var isArray = Array.isArray(props[propName]);\n\n      if (props.multiple && !isArray) {\n        error('The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n      } else if (!props.multiple && isArray) {\n        error('The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n      }\n    }\n  }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n  var options = node.options;\n\n  if (multiple) {\n    var selectedValues = propValue;\n    var selectedValue = {};\n\n    for (var i = 0; i < selectedValues.length; i++) {\n      // Prefix to avoid chaos with special keys.\n      selectedValue['$' + selectedValues[i]] = true;\n    }\n\n    for (var _i = 0; _i < options.length; _i++) {\n      var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n\n      if (options[_i].selected !== selected) {\n        options[_i].selected = selected;\n      }\n\n      if (selected && setDefaultSelected) {\n        options[_i].defaultSelected = true;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    var _selectedValue = toString(getToStringValue(propValue));\n\n    var defaultSelected = null;\n\n    for (var _i2 = 0; _i2 < options.length; _i2++) {\n      if (options[_i2].value === _selectedValue) {\n        options[_i2].selected = true;\n\n        if (setDefaultSelected) {\n          options[_i2].defaultSelected = true;\n        }\n\n        return;\n      }\n\n      if (defaultSelected === null && !options[_i2].disabled) {\n        defaultSelected = options[_i2];\n      }\n    }\n\n    if (defaultSelected !== null) {\n      defaultSelected.selected = true;\n    }\n  }\n}\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\n\nfunction getHostProps$2(element, props) {\n  return _assign({}, props, {\n    value: undefined\n  });\n}\nfunction initWrapperState$1(element, props) {\n  var node = element;\n\n  {\n    checkSelectPropTypes(props);\n  }\n\n  node._wrapperState = {\n    wasMultiple: !!props.multiple\n  };\n\n  {\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n      error('Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n\n      didWarnValueDefaultValue$1 = true;\n    }\n  }\n}\nfunction postMountWrapper$2(element, props) {\n  var node = element;\n  node.multiple = !!props.multiple;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (props.defaultValue != null) {\n    updateOptions(node, !!props.multiple, props.defaultValue, true);\n  }\n}\nfunction postUpdateWrapper(element, props) {\n  var node = element;\n  var wasMultiple = node._wrapperState.wasMultiple;\n  node._wrapperState.wasMultiple = !!props.multiple;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (wasMultiple !== !!props.multiple) {\n    // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n    if (props.defaultValue != null) {\n      updateOptions(node, !!props.multiple, props.defaultValue, true);\n    } else {\n      // Revert the select back to its default unselected state.\n      updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n    }\n  }\n}\nfunction restoreControlledState$1(element, props) {\n  var node = element;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nfunction getHostProps$3(element, props) {\n  var node = element;\n\n  if (!(props.dangerouslySetInnerHTML == null)) {\n    {\n      throw Error( \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\" );\n    }\n  } // Always set children to the same thing. In IE9, the selection range will\n  // get reset if `textContent` is mutated.  We could add a check in setTextContent\n  // to only set the value if/when the value differs from the node value (which would\n  // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n  // solution. The value can be a boolean or object so that's why it's forced\n  // to be a string.\n\n\n  var hostProps = _assign({}, props, {\n    value: undefined,\n    defaultValue: undefined,\n    children: toString(node._wrapperState.initialValue)\n  });\n\n  return hostProps;\n}\nfunction initWrapperState$2(element, props) {\n  var node = element;\n\n  {\n    ReactControlledValuePropTypes.checkPropTypes('textarea', props);\n\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n      error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n\n      didWarnValDefaultVal = true;\n    }\n  }\n\n  var initialValue = props.value; // Only bother fetching default value if we're going to use it\n\n  if (initialValue == null) {\n    var children = props.children,\n        defaultValue = props.defaultValue;\n\n    if (children != null) {\n      {\n        error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n      }\n\n      {\n        if (!(defaultValue == null)) {\n          {\n            throw Error( \"If you supply `defaultValue` on a <textarea>, do not pass children.\" );\n          }\n        }\n\n        if (Array.isArray(children)) {\n          if (!(children.length <= 1)) {\n            {\n              throw Error( \"<textarea> can only have at most one child.\" );\n            }\n          }\n\n          children = children[0];\n        }\n\n        defaultValue = children;\n      }\n    }\n\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n\n    initialValue = defaultValue;\n  }\n\n  node._wrapperState = {\n    initialValue: getToStringValue(initialValue)\n  };\n}\nfunction updateWrapper$1(element, props) {\n  var node = element;\n  var value = getToStringValue(props.value);\n  var defaultValue = getToStringValue(props.defaultValue);\n\n  if (value != null) {\n    // Cast `value` to a string to ensure the value is set correctly. While\n    // browsers typically do this as necessary, jsdom doesn't.\n    var newValue = toString(value); // To avoid side effects (such as losing text selection), only set value if changed\n\n    if (newValue !== node.value) {\n      node.value = newValue;\n    }\n\n    if (props.defaultValue == null && node.defaultValue !== newValue) {\n      node.defaultValue = newValue;\n    }\n  }\n\n  if (defaultValue != null) {\n    node.defaultValue = toString(defaultValue);\n  }\n}\nfunction postMountWrapper$3(element, props) {\n  var node = element; // This is in postMount because we need access to the DOM node, which is not\n  // available until after the component has mounted.\n\n  var textContent = node.textContent; // Only set node.value if textContent is equal to the expected\n  // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n  // will populate textContent as well.\n  // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n\n  if (textContent === node._wrapperState.initialValue) {\n    if (textContent !== '' && textContent !== null) {\n      node.value = textContent;\n    }\n  }\n}\nfunction restoreControlledState$2(element, props) {\n  // DOM component is still mounted; update\n  updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nvar Namespaces = {\n  html: HTML_NAMESPACE,\n  mathml: MATH_NAMESPACE,\n  svg: SVG_NAMESPACE\n}; // Assumes there is no parent namespace.\n\nfunction getIntrinsicNamespace(type) {\n  switch (type) {\n    case 'svg':\n      return SVG_NAMESPACE;\n\n    case 'math':\n      return MATH_NAMESPACE;\n\n    default:\n      return HTML_NAMESPACE;\n  }\n}\nfunction getChildNamespace(parentNamespace, type) {\n  if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n    // No (or default) parent namespace: potential entry point.\n    return getIntrinsicNamespace(type);\n  }\n\n  if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n    // We're leaving SVG.\n    return HTML_NAMESPACE;\n  } // By default, pass namespace below.\n\n\n  return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n    return function (arg0, arg1, arg2, arg3) {\n      MSApp.execUnsafeLocalFunction(function () {\n        return func(arg0, arg1, arg2, arg3);\n      });\n    };\n  } else {\n    return func;\n  }\n};\n\nvar reusableSVGContainer;\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\n\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n  if (node.namespaceURI === Namespaces.svg) {\n\n    if (!('innerHTML' in node)) {\n      // IE does not have innerHTML for SVG nodes, so instead we inject the\n      // new markup in a temp node and then move the child nodes across into\n      // the target node\n      reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n      reusableSVGContainer.innerHTML = '<svg>' + html.valueOf().toString() + '</svg>';\n      var svgNode = reusableSVGContainer.firstChild;\n\n      while (node.firstChild) {\n        node.removeChild(node.firstChild);\n      }\n\n      while (svgNode.firstChild) {\n        node.appendChild(svgNode.firstChild);\n      }\n\n      return;\n    }\n  }\n\n  node.innerHTML = html;\n});\n\n/**\n * HTML nodeType values that represent the type of the node\n */\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\n\nvar setTextContent = function (node, text) {\n  if (text) {\n    var firstChild = node.firstChild;\n\n    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n      firstChild.nodeValue = text;\n      return;\n    }\n  }\n\n  node.textContent = text;\n};\n\n// Do not use the below two methods directly!\n// Instead use constants exported from DOMTopLevelEventTypes in ReactDOM.\n// (It is the only module that is allowed to access these methods.)\nfunction unsafeCastStringToDOMTopLevelType(topLevelType) {\n  return topLevelType;\n}\nfunction unsafeCastDOMTopLevelTypeToString(topLevelType) {\n  return topLevelType;\n}\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\n\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n  prefixes['Moz' + styleProp] = 'moz' + eventName;\n  return prefixes;\n}\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\n\n\nvar vendorPrefixes = {\n  animationend: makePrefixMap('Animation', 'AnimationEnd'),\n  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n  animationstart: makePrefixMap('Animation', 'AnimationStart'),\n  transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\n\nvar prefixedEventNames = {};\n/**\n * Element to check for prefixes on.\n */\n\nvar style = {};\n/**\n * Bootstrap if a DOM exists.\n */\n\nif (canUseDOM) {\n  style = document.createElement('div').style; // On some platforms, in particular some releases of Android 4.x,\n  // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n  // style object but the events that fire will still be prefixed, so we need\n  // to check if the un-prefixed events are usable, and if not remove them from the map.\n\n  if (!('AnimationEvent' in window)) {\n    delete vendorPrefixes.animationend.animation;\n    delete vendorPrefixes.animationiteration.animation;\n    delete vendorPrefixes.animationstart.animation;\n  } // Same as above\n\n\n  if (!('TransitionEvent' in window)) {\n    delete vendorPrefixes.transitionend.transition;\n  }\n}\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\n\n\nfunction getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  } else if (!vendorPrefixes[eventName]) {\n    return eventName;\n  }\n\n  var prefixMap = vendorPrefixes[eventName];\n\n  for (var styleProp in prefixMap) {\n    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n      return prefixedEventNames[eventName] = prefixMap[styleProp];\n    }\n  }\n\n  return eventName;\n}\n\n/**\n * To identify top level events in ReactDOM, we use constants defined by this\n * module. This is the only module that uses the unsafe* methods to express\n * that the constants actually correspond to the browser event names. This lets\n * us save some bundle size by avoiding a top level type -> event name map.\n * The rest of ReactDOM code should import top level types from this file.\n */\n\nvar TOP_ABORT = unsafeCastStringToDOMTopLevelType('abort');\nvar TOP_ANIMATION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationend'));\nvar TOP_ANIMATION_ITERATION = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationiteration'));\nvar TOP_ANIMATION_START = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationstart'));\nvar TOP_BLUR = unsafeCastStringToDOMTopLevelType('blur');\nvar TOP_CAN_PLAY = unsafeCastStringToDOMTopLevelType('canplay');\nvar TOP_CAN_PLAY_THROUGH = unsafeCastStringToDOMTopLevelType('canplaythrough');\nvar TOP_CANCEL = unsafeCastStringToDOMTopLevelType('cancel');\nvar TOP_CHANGE = unsafeCastStringToDOMTopLevelType('change');\nvar TOP_CLICK = unsafeCastStringToDOMTopLevelType('click');\nvar TOP_CLOSE = unsafeCastStringToDOMTopLevelType('close');\nvar TOP_COMPOSITION_END = unsafeCastStringToDOMTopLevelType('compositionend');\nvar TOP_COMPOSITION_START = unsafeCastStringToDOMTopLevelType('compositionstart');\nvar TOP_COMPOSITION_UPDATE = unsafeCastStringToDOMTopLevelType('compositionupdate');\nvar TOP_CONTEXT_MENU = unsafeCastStringToDOMTopLevelType('contextmenu');\nvar TOP_COPY = unsafeCastStringToDOMTopLevelType('copy');\nvar TOP_CUT = unsafeCastStringToDOMTopLevelType('cut');\nvar TOP_DOUBLE_CLICK = unsafeCastStringToDOMTopLevelType('dblclick');\nvar TOP_AUX_CLICK = unsafeCastStringToDOMTopLevelType('auxclick');\nvar TOP_DRAG = unsafeCastStringToDOMTopLevelType('drag');\nvar TOP_DRAG_END = unsafeCastStringToDOMTopLevelType('dragend');\nvar TOP_DRAG_ENTER = unsafeCastStringToDOMTopLevelType('dragenter');\nvar TOP_DRAG_EXIT = unsafeCastStringToDOMTopLevelType('dragexit');\nvar TOP_DRAG_LEAVE = unsafeCastStringToDOMTopLevelType('dragleave');\nvar TOP_DRAG_OVER = unsafeCastStringToDOMTopLevelType('dragover');\nvar TOP_DRAG_START = unsafeCastStringToDOMTopLevelType('dragstart');\nvar TOP_DROP = unsafeCastStringToDOMTopLevelType('drop');\nvar TOP_DURATION_CHANGE = unsafeCastStringToDOMTopLevelType('durationchange');\nvar TOP_EMPTIED = unsafeCastStringToDOMTopLevelType('emptied');\nvar TOP_ENCRYPTED = unsafeCastStringToDOMTopLevelType('encrypted');\nvar TOP_ENDED = unsafeCastStringToDOMTopLevelType('ended');\nvar TOP_ERROR = unsafeCastStringToDOMTopLevelType('error');\nvar TOP_FOCUS = unsafeCastStringToDOMTopLevelType('focus');\nvar TOP_GOT_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('gotpointercapture');\nvar TOP_INPUT = unsafeCastStringToDOMTopLevelType('input');\nvar TOP_INVALID = unsafeCastStringToDOMTopLevelType('invalid');\nvar TOP_KEY_DOWN = unsafeCastStringToDOMTopLevelType('keydown');\nvar TOP_KEY_PRESS = unsafeCastStringToDOMTopLevelType('keypress');\nvar TOP_KEY_UP = unsafeCastStringToDOMTopLevelType('keyup');\nvar TOP_LOAD = unsafeCastStringToDOMTopLevelType('load');\nvar TOP_LOAD_START = unsafeCastStringToDOMTopLevelType('loadstart');\nvar TOP_LOADED_DATA = unsafeCastStringToDOMTopLevelType('loadeddata');\nvar TOP_LOADED_METADATA = unsafeCastStringToDOMTopLevelType('loadedmetadata');\nvar TOP_LOST_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('lostpointercapture');\nvar TOP_MOUSE_DOWN = unsafeCastStringToDOMTopLevelType('mousedown');\nvar TOP_MOUSE_MOVE = unsafeCastStringToDOMTopLevelType('mousemove');\nvar TOP_MOUSE_OUT = unsafeCastStringToDOMTopLevelType('mouseout');\nvar TOP_MOUSE_OVER = unsafeCastStringToDOMTopLevelType('mouseover');\nvar TOP_MOUSE_UP = unsafeCastStringToDOMTopLevelType('mouseup');\nvar TOP_PASTE = unsafeCastStringToDOMTopLevelType('paste');\nvar TOP_PAUSE = unsafeCastStringToDOMTopLevelType('pause');\nvar TOP_PLAY = unsafeCastStringToDOMTopLevelType('play');\nvar TOP_PLAYING = unsafeCastStringToDOMTopLevelType('playing');\nvar TOP_POINTER_CANCEL = unsafeCastStringToDOMTopLevelType('pointercancel');\nvar TOP_POINTER_DOWN = unsafeCastStringToDOMTopLevelType('pointerdown');\nvar TOP_POINTER_MOVE = unsafeCastStringToDOMTopLevelType('pointermove');\nvar TOP_POINTER_OUT = unsafeCastStringToDOMTopLevelType('pointerout');\nvar TOP_POINTER_OVER = unsafeCastStringToDOMTopLevelType('pointerover');\nvar TOP_POINTER_UP = unsafeCastStringToDOMTopLevelType('pointerup');\nvar TOP_PROGRESS = unsafeCastStringToDOMTopLevelType('progress');\nvar TOP_RATE_CHANGE = unsafeCastStringToDOMTopLevelType('ratechange');\nvar TOP_RESET = unsafeCastStringToDOMTopLevelType('reset');\nvar TOP_SCROLL = unsafeCastStringToDOMTopLevelType('scroll');\nvar TOP_SEEKED = unsafeCastStringToDOMTopLevelType('seeked');\nvar TOP_SEEKING = unsafeCastStringToDOMTopLevelType('seeking');\nvar TOP_SELECTION_CHANGE = unsafeCastStringToDOMTopLevelType('selectionchange');\nvar TOP_STALLED = unsafeCastStringToDOMTopLevelType('stalled');\nvar TOP_SUBMIT = unsafeCastStringToDOMTopLevelType('submit');\nvar TOP_SUSPEND = unsafeCastStringToDOMTopLevelType('suspend');\nvar TOP_TEXT_INPUT = unsafeCastStringToDOMTopLevelType('textInput');\nvar TOP_TIME_UPDATE = unsafeCastStringToDOMTopLevelType('timeupdate');\nvar TOP_TOGGLE = unsafeCastStringToDOMTopLevelType('toggle');\nvar TOP_TOUCH_CANCEL = unsafeCastStringToDOMTopLevelType('touchcancel');\nvar TOP_TOUCH_END = unsafeCastStringToDOMTopLevelType('touchend');\nvar TOP_TOUCH_MOVE = unsafeCastStringToDOMTopLevelType('touchmove');\nvar TOP_TOUCH_START = unsafeCastStringToDOMTopLevelType('touchstart');\nvar TOP_TRANSITION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('transitionend'));\nvar TOP_VOLUME_CHANGE = unsafeCastStringToDOMTopLevelType('volumechange');\nvar TOP_WAITING = unsafeCastStringToDOMTopLevelType('waiting');\nvar TOP_WHEEL = unsafeCastStringToDOMTopLevelType('wheel'); // List of events that need to be individually attached to media elements.\n// Note that events in this list will *not* be listened to at the top level\n// unless they're explicitly whitelisted in `ReactBrowserEventEmitter.listenTo`.\n\nvar mediaEventTypes = [TOP_ABORT, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_VOLUME_CHANGE, TOP_WAITING];\nfunction getRawEventName(topLevelType) {\n  return unsafeCastDOMTopLevelTypeToString(topLevelType);\n}\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // prettier-ignore\n\nvar elementListenerMap = new PossiblyWeakMap();\nfunction getListenerMapForElement(element) {\n  var listenerMap = elementListenerMap.get(element);\n\n  if (listenerMap === undefined) {\n    listenerMap = new Map();\n    elementListenerMap.set(element, listenerMap);\n  }\n\n  return listenerMap;\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\nfunction get(key) {\n  return key._reactInternalFiber;\n}\nfunction has(key) {\n  return key._reactInternalFiber !== undefined;\n}\nfunction set(key, value) {\n  key._reactInternalFiber = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoEffect =\n/*              */\n0;\nvar PerformedWork =\n/*         */\n1; // You can change the rest (and add more).\n\nvar Placement =\n/*             */\n2;\nvar Update =\n/*                */\n4;\nvar PlacementAndUpdate =\n/*    */\n6;\nvar Deletion =\n/*              */\n8;\nvar ContentReset =\n/*          */\n16;\nvar Callback =\n/*              */\n32;\nvar DidCapture =\n/*            */\n64;\nvar Ref =\n/*                   */\n128;\nvar Snapshot =\n/*              */\n256;\nvar Passive =\n/*               */\n512;\nvar Hydrating =\n/*             */\n1024;\nvar HydratingAndUpdate =\n/*    */\n1028; // Passive & Update & Callback & Ref & Snapshot\n\nvar LifecycleEffectMask =\n/*   */\n932; // Union of all host effects\n\nvar HostEffectMask =\n/*        */\n2047;\nvar Incomplete =\n/*            */\n2048;\nvar ShouldCapture =\n/*         */\n4096;\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n  var node = fiber;\n  var nearestMounted = fiber;\n\n  if (!fiber.alternate) {\n    // If there is no alternate, this might be a new tree that isn't inserted\n    // yet. If it is, then it will have a pending insertion effect on it.\n    var nextNode = node;\n\n    do {\n      node = nextNode;\n\n      if ((node.effectTag & (Placement | Hydrating)) !== NoEffect) {\n        // This is an insertion or in-progress hydration. The nearest possible\n        // mounted fiber is the parent but we need to continue to figure out\n        // if that one is still mounted.\n        nearestMounted = node.return;\n      }\n\n      nextNode = node.return;\n    } while (nextNode);\n  } else {\n    while (node.return) {\n      node = node.return;\n    }\n  }\n\n  if (node.tag === HostRoot) {\n    // TODO: Check if this was a nested HostRoot when used with\n    // renderContainerIntoSubtree.\n    return nearestMounted;\n  } // If we didn't hit the root, that means that we're in an disconnected tree\n  // that has been unmounted.\n\n\n  return null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n  if (fiber.tag === SuspenseComponent) {\n    var suspenseState = fiber.memoizedState;\n\n    if (suspenseState === null) {\n      var current = fiber.alternate;\n\n      if (current !== null) {\n        suspenseState = current.memoizedState;\n      }\n    }\n\n    if (suspenseState !== null) {\n      return suspenseState.dehydrated;\n    }\n  }\n\n  return null;\n}\nfunction getContainerFromFiber(fiber) {\n  return fiber.tag === HostRoot ? fiber.stateNode.containerInfo : null;\n}\nfunction isFiberMounted(fiber) {\n  return getNearestMountedFiber(fiber) === fiber;\n}\nfunction isMounted(component) {\n  {\n    var owner = ReactCurrentOwner.current;\n\n    if (owner !== null && owner.tag === ClassComponent) {\n      var ownerFiber = owner;\n      var instance = ownerFiber.stateNode;\n\n      if (!instance._warnedAboutRefsInRender) {\n        error('%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component');\n      }\n\n      instance._warnedAboutRefsInRender = true;\n    }\n  }\n\n  var fiber = get(component);\n\n  if (!fiber) {\n    return false;\n  }\n\n  return getNearestMountedFiber(fiber) === fiber;\n}\n\nfunction assertIsMounted(fiber) {\n  if (!(getNearestMountedFiber(fiber) === fiber)) {\n    {\n      throw Error( \"Unable to find node on an unmounted component.\" );\n    }\n  }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n  var alternate = fiber.alternate;\n\n  if (!alternate) {\n    // If there is no alternate, then we only need to check if it is mounted.\n    var nearestMounted = getNearestMountedFiber(fiber);\n\n    if (!(nearestMounted !== null)) {\n      {\n        throw Error( \"Unable to find node on an unmounted component.\" );\n      }\n    }\n\n    if (nearestMounted !== fiber) {\n      return null;\n    }\n\n    return fiber;\n  } // If we have two possible branches, we'll walk backwards up to the root\n  // to see what path the root points to. On the way we may hit one of the\n  // special cases and we'll deal with them.\n\n\n  var a = fiber;\n  var b = alternate;\n\n  while (true) {\n    var parentA = a.return;\n\n    if (parentA === null) {\n      // We're at the root.\n      break;\n    }\n\n    var parentB = parentA.alternate;\n\n    if (parentB === null) {\n      // There is no alternate. This is an unusual case. Currently, it only\n      // happens when a Suspense component is hidden. An extra fragment fiber\n      // is inserted in between the Suspense fiber and its children. Skip\n      // over this extra fragment fiber and proceed to the next parent.\n      var nextParent = parentA.return;\n\n      if (nextParent !== null) {\n        a = b = nextParent;\n        continue;\n      } // If there's no parent, we're at the root.\n\n\n      break;\n    } // If both copies of the parent fiber point to the same child, we can\n    // assume that the child is current. This happens when we bailout on low\n    // priority: the bailed out fiber's child reuses the current child.\n\n\n    if (parentA.child === parentB.child) {\n      var child = parentA.child;\n\n      while (child) {\n        if (child === a) {\n          // We've determined that A is the current branch.\n          assertIsMounted(parentA);\n          return fiber;\n        }\n\n        if (child === b) {\n          // We've determined that B is the current branch.\n          assertIsMounted(parentA);\n          return alternate;\n        }\n\n        child = child.sibling;\n      } // We should never have an alternate for any mounting node. So the only\n      // way this could possibly happen is if this was unmounted, if at all.\n\n\n      {\n        {\n          throw Error( \"Unable to find node on an unmounted component.\" );\n        }\n      }\n    }\n\n    if (a.return !== b.return) {\n      // The return pointer of A and the return pointer of B point to different\n      // fibers. We assume that return pointers never criss-cross, so A must\n      // belong to the child set of A.return, and B must belong to the child\n      // set of B.return.\n      a = parentA;\n      b = parentB;\n    } else {\n      // The return pointers point to the same fiber. We'll have to use the\n      // default, slow path: scan the child sets of each parent alternate to see\n      // which child belongs to which set.\n      //\n      // Search parent A's child set\n      var didFindChild = false;\n      var _child = parentA.child;\n\n      while (_child) {\n        if (_child === a) {\n          didFindChild = true;\n          a = parentA;\n          b = parentB;\n          break;\n        }\n\n        if (_child === b) {\n          didFindChild = true;\n          b = parentA;\n          a = parentB;\n          break;\n        }\n\n        _child = _child.sibling;\n      }\n\n      if (!didFindChild) {\n        // Search parent B's child set\n        _child = parentB.child;\n\n        while (_child) {\n          if (_child === a) {\n            didFindChild = true;\n            a = parentB;\n            b = parentA;\n            break;\n          }\n\n          if (_child === b) {\n            didFindChild = true;\n            b = parentB;\n            a = parentA;\n            break;\n          }\n\n          _child = _child.sibling;\n        }\n\n        if (!didFindChild) {\n          {\n            throw Error( \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\" );\n          }\n        }\n      }\n    }\n\n    if (!(a.alternate === b)) {\n      {\n        throw Error( \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n  } // If the root is not a host container, we're in a disconnected tree. I.e.\n  // unmounted.\n\n\n  if (!(a.tag === HostRoot)) {\n    {\n      throw Error( \"Unable to find node on an unmounted component.\" );\n    }\n  }\n\n  if (a.stateNode.current === a) {\n    // We've determined that A is the current branch.\n    return fiber;\n  } // Otherwise B has to be current branch.\n\n\n  return alternate;\n}\nfunction findCurrentHostFiber(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n  if (!currentParent) {\n    return null;\n  } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n  var node = currentParent;\n\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText) {\n      return node;\n    } else if (node.child) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === currentParent) {\n      return null;\n    }\n\n    while (!node.sibling) {\n      if (!node.return || node.return === currentParent) {\n        return null;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  } // Flow needs the return null here, but ESLint complains about it.\n  // eslint-disable-next-line no-unreachable\n\n\n  return null;\n}\nfunction findCurrentHostFiberWithNoPortals(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n  if (!currentParent) {\n    return null;\n  } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n  var node = currentParent;\n\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText || enableFundamentalAPI ) {\n      return node;\n    } else if (node.child && node.tag !== HostPortal) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === currentParent) {\n      return null;\n    }\n\n    while (!node.sibling) {\n      if (!node.return || node.return === currentParent) {\n        return null;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  } // Flow needs the return null here, but ESLint complains about it.\n  // eslint-disable-next-line no-unreachable\n\n\n  return null;\n}\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  if (!(next != null)) {\n    {\n      throw Error( \"accumulateInto(...): Accumulated items must not be null or undefined.\" );\n    }\n  }\n\n  if (current == null) {\n    return next;\n  } // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n\n\n  if (Array.isArray(current)) {\n    if (Array.isArray(next)) {\n      current.push.apply(current, next);\n      return current;\n    }\n\n    current.push(next);\n    return current;\n  }\n\n  if (Array.isArray(next)) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n * @param {function} cb Callback invoked with each element or a collection.\n * @param {?} [scope] Scope used as `this` in a callback.\n */\nfunction forEachAccumulated(arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n}\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\n\nvar eventQueue = null;\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @private\n */\n\nvar executeDispatchesAndRelease = function (event) {\n  if (event) {\n    executeDispatchesInOrder(event);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\n\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e);\n};\n\nfunction runEventsInBatch(events) {\n  if (events !== null) {\n    eventQueue = accumulateInto(eventQueue, events);\n  } // Set `eventQueue` to null before processing it so that we can tell if more\n  // events get enqueued while processing.\n\n\n  var processingEventQueue = eventQueue;\n  eventQueue = null;\n\n  if (!processingEventQueue) {\n    return;\n  }\n\n  forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n\n  if (!!eventQueue) {\n    {\n      throw Error( \"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.\" );\n    }\n  } // This would be a good time to rethrow if any of the event handlers threw.\n\n\n  rethrowCaughtError();\n}\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n  // Fallback to nativeEvent.srcElement for IE9\n  // https://github.com/facebook/react/issues/12506\n  var target = nativeEvent.target || nativeEvent.srcElement || window; // Normalize SVG <use> element events #4963\n\n  if (target.correspondingUseElement) {\n    target = target.correspondingUseElement;\n  } // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n\n\n  return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\n\nfunction isEventSupported(eventNameSuffix) {\n  if (!canUseDOM) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = eventName in document;\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  return isSupported;\n}\n\n/**\n * Summary of `DOMEventPluginSystem` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactDOMEventListener, which is injected and can therefore support\n *    pluggable event sources. This is the only work that occurs in the main\n *    thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginRegistry`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginRegistry` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginRegistry` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|PluginRegistry|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar CALLBACK_BOOKKEEPING_POOL_SIZE = 10;\nvar callbackBookkeepingPool = [];\n\nfunction releaseTopLevelCallbackBookKeeping(instance) {\n  instance.topLevelType = null;\n  instance.nativeEvent = null;\n  instance.targetInst = null;\n  instance.ancestors.length = 0;\n\n  if (callbackBookkeepingPool.length < CALLBACK_BOOKKEEPING_POOL_SIZE) {\n    callbackBookkeepingPool.push(instance);\n  }\n} // Used to store ancestor hierarchy in top level callback\n\n\nfunction getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst, eventSystemFlags) {\n  if (callbackBookkeepingPool.length) {\n    var instance = callbackBookkeepingPool.pop();\n    instance.topLevelType = topLevelType;\n    instance.eventSystemFlags = eventSystemFlags;\n    instance.nativeEvent = nativeEvent;\n    instance.targetInst = targetInst;\n    return instance;\n  }\n\n  return {\n    topLevelType: topLevelType,\n    eventSystemFlags: eventSystemFlags,\n    nativeEvent: nativeEvent,\n    targetInst: targetInst,\n    ancestors: []\n  };\n}\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\n\n\nfunction findRootContainerNode(inst) {\n  if (inst.tag === HostRoot) {\n    return inst.stateNode.containerInfo;\n  } // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n\n\n  while (inst.return) {\n    inst = inst.return;\n  }\n\n  if (inst.tag !== HostRoot) {\n    // This can happen if we're in a detached tree.\n    return null;\n  }\n\n  return inst.stateNode.containerInfo;\n}\n/**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n\n\nfunction extractPluginEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags) {\n  var events = null;\n\n  for (var i = 0; i < plugins.length; i++) {\n    // Not every plugin in the ordering may be loaded at runtime.\n    var possiblePlugin = plugins[i];\n\n    if (possiblePlugin) {\n      var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n\n      if (extractedEvents) {\n        events = accumulateInto(events, extractedEvents);\n      }\n    }\n  }\n\n  return events;\n}\n\nfunction runExtractedPluginEventsInBatch(topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags) {\n  var events = extractPluginEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n  runEventsInBatch(events);\n}\n\nfunction handleTopLevel(bookKeeping) {\n  var targetInst = bookKeeping.targetInst; // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n\n  var ancestor = targetInst;\n\n  do {\n    if (!ancestor) {\n      var ancestors = bookKeeping.ancestors;\n      ancestors.push(ancestor);\n      break;\n    }\n\n    var root = findRootContainerNode(ancestor);\n\n    if (!root) {\n      break;\n    }\n\n    var tag = ancestor.tag;\n\n    if (tag === HostComponent || tag === HostText) {\n      bookKeeping.ancestors.push(ancestor);\n    }\n\n    ancestor = getClosestInstanceFromNode(root);\n  } while (ancestor);\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    targetInst = bookKeeping.ancestors[i];\n    var eventTarget = getEventTarget(bookKeeping.nativeEvent);\n    var topLevelType = bookKeeping.topLevelType;\n    var nativeEvent = bookKeeping.nativeEvent;\n    var eventSystemFlags = bookKeeping.eventSystemFlags; // If this is the first ancestor, we mark it on the system flags\n\n    if (i === 0) {\n      eventSystemFlags |= IS_FIRST_ANCESTOR;\n    }\n\n    runExtractedPluginEventsInBatch(topLevelType, targetInst, nativeEvent, eventTarget, eventSystemFlags);\n  }\n}\n\nfunction dispatchEventForLegacyPluginEventSystem(topLevelType, eventSystemFlags, nativeEvent, targetInst) {\n  var bookKeeping = getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst, eventSystemFlags);\n\n  try {\n    // Event queue being processed in the same cycle allows\n    // `preventDefault`.\n    batchedEventUpdates(handleTopLevel, bookKeeping);\n  } finally {\n    releaseTopLevelCallbackBookKeeping(bookKeeping);\n  }\n}\n/**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} mountAt Container where to mount the listener\n */\n\nfunction legacyListenToEvent(registrationName, mountAt) {\n  var listenerMap = getListenerMapForElement(mountAt);\n  var dependencies = registrationNameDependencies[registrationName];\n\n  for (var i = 0; i < dependencies.length; i++) {\n    var dependency = dependencies[i];\n    legacyListenToTopLevelEvent(dependency, mountAt, listenerMap);\n  }\n}\nfunction legacyListenToTopLevelEvent(topLevelType, mountAt, listenerMap) {\n  if (!listenerMap.has(topLevelType)) {\n    switch (topLevelType) {\n      case TOP_SCROLL:\n        trapCapturedEvent(TOP_SCROLL, mountAt);\n        break;\n\n      case TOP_FOCUS:\n      case TOP_BLUR:\n        trapCapturedEvent(TOP_FOCUS, mountAt);\n        trapCapturedEvent(TOP_BLUR, mountAt); // We set the flag for a single dependency later in this function,\n        // but this ensures we mark both as attached rather than just one.\n\n        listenerMap.set(TOP_BLUR, null);\n        listenerMap.set(TOP_FOCUS, null);\n        break;\n\n      case TOP_CANCEL:\n      case TOP_CLOSE:\n        if (isEventSupported(getRawEventName(topLevelType))) {\n          trapCapturedEvent(topLevelType, mountAt);\n        }\n\n        break;\n\n      case TOP_INVALID:\n      case TOP_SUBMIT:\n      case TOP_RESET:\n        // We listen to them on the target DOM elements.\n        // Some of them bubble so we don't want them to fire twice.\n        break;\n\n      default:\n        // By default, listen on the top level to all non-media events.\n        // Media events don't bubble so adding the listener wouldn't do anything.\n        var isMediaEvent = mediaEventTypes.indexOf(topLevelType) !== -1;\n\n        if (!isMediaEvent) {\n          trapBubbledEvent(topLevelType, mountAt);\n        }\n\n        break;\n    }\n\n    listenerMap.set(topLevelType, null);\n  }\n}\nfunction isListeningToAllDependencies(registrationName, mountAt) {\n  var listenerMap = getListenerMapForElement(mountAt);\n  var dependencies = registrationNameDependencies[registrationName];\n\n  for (var i = 0; i < dependencies.length; i++) {\n    var dependency = dependencies[i];\n\n    if (!listenerMap.has(dependency)) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nvar attemptUserBlockingHydration;\nfunction setAttemptUserBlockingHydration(fn) {\n  attemptUserBlockingHydration = fn;\n}\nvar attemptContinuousHydration;\nfunction setAttemptContinuousHydration(fn) {\n  attemptContinuousHydration = fn;\n}\nvar attemptHydrationAtCurrentPriority;\nfunction setAttemptHydrationAtCurrentPriority(fn) {\n  attemptHydrationAtCurrentPriority = fn;\n} // TODO: Upgrade this definition once we're on a newer version of Flow that\nvar hasScheduledReplayAttempt = false; // The queue of discrete events to be replayed.\n\nvar queuedDiscreteEvents = []; // Indicates if any continuous event targets are non-null for early bailout.\n// if the last target was dehydrated.\n\nvar queuedFocus = null;\nvar queuedDrag = null;\nvar queuedMouse = null; // For pointer events there can be one latest event per pointerId.\n\nvar queuedPointers = new Map();\nvar queuedPointerCaptures = new Map(); // We could consider replaying selectionchange and touchmoves too.\n\nvar queuedExplicitHydrationTargets = [];\nfunction hasQueuedDiscreteEvents() {\n  return queuedDiscreteEvents.length > 0;\n}\nvar discreteReplayableEvents = [TOP_MOUSE_DOWN, TOP_MOUSE_UP, TOP_TOUCH_CANCEL, TOP_TOUCH_END, TOP_TOUCH_START, TOP_AUX_CLICK, TOP_DOUBLE_CLICK, TOP_POINTER_CANCEL, TOP_POINTER_DOWN, TOP_POINTER_UP, TOP_DRAG_END, TOP_DRAG_START, TOP_DROP, TOP_COMPOSITION_END, TOP_COMPOSITION_START, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_INPUT, TOP_TEXT_INPUT, TOP_CLOSE, TOP_CANCEL, TOP_COPY, TOP_CUT, TOP_PASTE, TOP_CLICK, TOP_CHANGE, TOP_CONTEXT_MENU, TOP_RESET, TOP_SUBMIT];\nvar continuousReplayableEvents = [TOP_FOCUS, TOP_BLUR, TOP_DRAG_ENTER, TOP_DRAG_LEAVE, TOP_MOUSE_OVER, TOP_MOUSE_OUT, TOP_POINTER_OVER, TOP_POINTER_OUT, TOP_GOT_POINTER_CAPTURE, TOP_LOST_POINTER_CAPTURE];\nfunction isReplayableDiscreteEvent(eventType) {\n  return discreteReplayableEvents.indexOf(eventType) > -1;\n}\n\nfunction trapReplayableEventForDocument(topLevelType, document, listenerMap) {\n  legacyListenToTopLevelEvent(topLevelType, document, listenerMap);\n}\n\nfunction eagerlyTrapReplayableEvents(container, document) {\n  var listenerMapForDoc = getListenerMapForElement(document); // Discrete\n\n  discreteReplayableEvents.forEach(function (topLevelType) {\n    trapReplayableEventForDocument(topLevelType, document, listenerMapForDoc);\n  }); // Continuous\n\n  continuousReplayableEvents.forEach(function (topLevelType) {\n    trapReplayableEventForDocument(topLevelType, document, listenerMapForDoc);\n  });\n}\n\nfunction createQueuedReplayableEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent) {\n  return {\n    blockedOn: blockedOn,\n    topLevelType: topLevelType,\n    eventSystemFlags: eventSystemFlags | IS_REPLAYED,\n    nativeEvent: nativeEvent,\n    container: container\n  };\n}\n\nfunction queueDiscreteEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent) {\n  var queuedEvent = createQueuedReplayableEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent);\n  queuedDiscreteEvents.push(queuedEvent);\n} // Resets the replaying for this type of continuous event to no event.\n\nfunction clearIfContinuousEvent(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_FOCUS:\n    case TOP_BLUR:\n      queuedFocus = null;\n      break;\n\n    case TOP_DRAG_ENTER:\n    case TOP_DRAG_LEAVE:\n      queuedDrag = null;\n      break;\n\n    case TOP_MOUSE_OVER:\n    case TOP_MOUSE_OUT:\n      queuedMouse = null;\n      break;\n\n    case TOP_POINTER_OVER:\n    case TOP_POINTER_OUT:\n      {\n        var pointerId = nativeEvent.pointerId;\n        queuedPointers.delete(pointerId);\n        break;\n      }\n\n    case TOP_GOT_POINTER_CAPTURE:\n    case TOP_LOST_POINTER_CAPTURE:\n      {\n        var _pointerId = nativeEvent.pointerId;\n        queuedPointerCaptures.delete(_pointerId);\n        break;\n      }\n  }\n}\n\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent, blockedOn, topLevelType, eventSystemFlags, container, nativeEvent) {\n  if (existingQueuedEvent === null || existingQueuedEvent.nativeEvent !== nativeEvent) {\n    var queuedEvent = createQueuedReplayableEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent);\n\n    if (blockedOn !== null) {\n      var _fiber2 = getInstanceFromNode$1(blockedOn);\n\n      if (_fiber2 !== null) {\n        // Attempt to increase the priority of this target.\n        attemptContinuousHydration(_fiber2);\n      }\n    }\n\n    return queuedEvent;\n  } // If we have already queued this exact event, then it's because\n  // the different event systems have different DOM event listeners.\n  // We can accumulate the flags and store a single event to be\n  // replayed.\n\n\n  existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n  return existingQueuedEvent;\n}\n\nfunction queueIfContinuousEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent) {\n  // These set relatedTarget to null because the replayed event will be treated as if we\n  // moved from outside the window (no target) onto the target once it hydrates.\n  // Instead of mutating we could clone the event.\n  switch (topLevelType) {\n    case TOP_FOCUS:\n      {\n        var focusEvent = nativeEvent;\n        queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus, blockedOn, topLevelType, eventSystemFlags, container, focusEvent);\n        return true;\n      }\n\n    case TOP_DRAG_ENTER:\n      {\n        var dragEvent = nativeEvent;\n        queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag, blockedOn, topLevelType, eventSystemFlags, container, dragEvent);\n        return true;\n      }\n\n    case TOP_MOUSE_OVER:\n      {\n        var mouseEvent = nativeEvent;\n        queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse, blockedOn, topLevelType, eventSystemFlags, container, mouseEvent);\n        return true;\n      }\n\n    case TOP_POINTER_OVER:\n      {\n        var pointerEvent = nativeEvent;\n        var pointerId = pointerEvent.pointerId;\n        queuedPointers.set(pointerId, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId) || null, blockedOn, topLevelType, eventSystemFlags, container, pointerEvent));\n        return true;\n      }\n\n    case TOP_GOT_POINTER_CAPTURE:\n      {\n        var _pointerEvent = nativeEvent;\n        var _pointerId2 = _pointerEvent.pointerId;\n        queuedPointerCaptures.set(_pointerId2, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2) || null, blockedOn, topLevelType, eventSystemFlags, container, _pointerEvent));\n        return true;\n      }\n  }\n\n  return false;\n} // Check if this target is unblocked. Returns true if it's unblocked.\n\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n  // TODO: This function shares a lot of logic with attemptToDispatchEvent.\n  // Try to unify them. It's a bit tricky since it would require two return\n  // values.\n  var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n\n  if (targetInst !== null) {\n    var nearestMounted = getNearestMountedFiber(targetInst);\n\n    if (nearestMounted !== null) {\n      var tag = nearestMounted.tag;\n\n      if (tag === SuspenseComponent) {\n        var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n        if (instance !== null) {\n          // We're blocked on hydrating this boundary.\n          // Increase its priority.\n          queuedTarget.blockedOn = instance;\n          Scheduler.unstable_runWithPriority(queuedTarget.priority, function () {\n            attemptHydrationAtCurrentPriority(nearestMounted);\n          });\n          return;\n        }\n      } else if (tag === HostRoot) {\n        var root = nearestMounted.stateNode;\n\n        if (root.hydrate) {\n          queuedTarget.blockedOn = getContainerFromFiber(nearestMounted); // We don't currently have a way to increase the priority of\n          // a root other than sync.\n\n          return;\n        }\n      }\n    }\n  }\n\n  queuedTarget.blockedOn = null;\n}\n\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n  if (queuedEvent.blockedOn !== null) {\n    return false;\n  }\n\n  var nextBlockedOn = attemptToDispatchEvent(queuedEvent.topLevelType, queuedEvent.eventSystemFlags, queuedEvent.container, queuedEvent.nativeEvent);\n\n  if (nextBlockedOn !== null) {\n    // We're still blocked. Try again later.\n    var _fiber3 = getInstanceFromNode$1(nextBlockedOn);\n\n    if (_fiber3 !== null) {\n      attemptContinuousHydration(_fiber3);\n    }\n\n    queuedEvent.blockedOn = nextBlockedOn;\n    return false;\n  }\n\n  return true;\n}\n\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n  if (attemptReplayContinuousQueuedEvent(queuedEvent)) {\n    map.delete(key);\n  }\n}\n\nfunction replayUnblockedEvents() {\n  hasScheduledReplayAttempt = false; // First replay discrete events.\n\n  while (queuedDiscreteEvents.length > 0) {\n    var nextDiscreteEvent = queuedDiscreteEvents[0];\n\n    if (nextDiscreteEvent.blockedOn !== null) {\n      // We're still blocked.\n      // Increase the priority of this boundary to unblock\n      // the next discrete event.\n      var _fiber4 = getInstanceFromNode$1(nextDiscreteEvent.blockedOn);\n\n      if (_fiber4 !== null) {\n        attemptUserBlockingHydration(_fiber4);\n      }\n\n      break;\n    }\n\n    var nextBlockedOn = attemptToDispatchEvent(nextDiscreteEvent.topLevelType, nextDiscreteEvent.eventSystemFlags, nextDiscreteEvent.container, nextDiscreteEvent.nativeEvent);\n\n    if (nextBlockedOn !== null) {\n      // We're still blocked. Try again later.\n      nextDiscreteEvent.blockedOn = nextBlockedOn;\n    } else {\n      // We've successfully replayed the first event. Let's try the next one.\n      queuedDiscreteEvents.shift();\n    }\n  } // Next replay any continuous events.\n\n\n  if (queuedFocus !== null && attemptReplayContinuousQueuedEvent(queuedFocus)) {\n    queuedFocus = null;\n  }\n\n  if (queuedDrag !== null && attemptReplayContinuousQueuedEvent(queuedDrag)) {\n    queuedDrag = null;\n  }\n\n  if (queuedMouse !== null && attemptReplayContinuousQueuedEvent(queuedMouse)) {\n    queuedMouse = null;\n  }\n\n  queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n  queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\n\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n  if (queuedEvent.blockedOn === unblocked) {\n    queuedEvent.blockedOn = null;\n\n    if (!hasScheduledReplayAttempt) {\n      hasScheduledReplayAttempt = true; // Schedule a callback to attempt replaying as many events as are\n      // now unblocked. This first might not actually be unblocked yet.\n      // We could check it early to avoid scheduling an unnecessary callback.\n\n      Scheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority, replayUnblockedEvents);\n    }\n  }\n}\n\nfunction retryIfBlockedOn(unblocked) {\n  // Mark anything that was blocked on this as no longer blocked\n  // and eligible for a replay.\n  if (queuedDiscreteEvents.length > 0) {\n    scheduleCallbackIfUnblocked(queuedDiscreteEvents[0], unblocked); // This is a exponential search for each boundary that commits. I think it's\n    // worth it because we expect very few discrete events to queue up and once\n    // we are actually fully unblocked it will be fast to replay them.\n\n    for (var i = 1; i < queuedDiscreteEvents.length; i++) {\n      var queuedEvent = queuedDiscreteEvents[i];\n\n      if (queuedEvent.blockedOn === unblocked) {\n        queuedEvent.blockedOn = null;\n      }\n    }\n  }\n\n  if (queuedFocus !== null) {\n    scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n  }\n\n  if (queuedDrag !== null) {\n    scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n  }\n\n  if (queuedMouse !== null) {\n    scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n  }\n\n  var unblock = function (queuedEvent) {\n    return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n  };\n\n  queuedPointers.forEach(unblock);\n  queuedPointerCaptures.forEach(unblock);\n\n  for (var _i = 0; _i < queuedExplicitHydrationTargets.length; _i++) {\n    var queuedTarget = queuedExplicitHydrationTargets[_i];\n\n    if (queuedTarget.blockedOn === unblocked) {\n      queuedTarget.blockedOn = null;\n    }\n  }\n\n  while (queuedExplicitHydrationTargets.length > 0) {\n    var nextExplicitTarget = queuedExplicitHydrationTargets[0];\n\n    if (nextExplicitTarget.blockedOn !== null) {\n      // We're still blocked.\n      break;\n    } else {\n      attemptExplicitHydrationTarget(nextExplicitTarget);\n\n      if (nextExplicitTarget.blockedOn === null) {\n        // We're unblocked.\n        queuedExplicitHydrationTargets.shift();\n      }\n    }\n  }\n}\n\nfunction addEventBubbleListener(element, eventType, listener) {\n  element.addEventListener(eventType, listener, false);\n}\nfunction addEventCaptureListener(element, eventType, listener) {\n  element.addEventListener(eventType, listener, true);\n}\n\n// do it in two places, which duplicates logic\n// and increases the bundle size, we do it all\n// here once. If we remove or refactor the\n// SimpleEventPlugin, we should also remove or\n// update the below line.\n\nvar simpleEventPluginEventTypes = {};\nvar topLevelEventsToDispatchConfig = new Map();\nvar eventPriorities = new Map(); // We store most of the events in this module in pairs of two strings so we can re-use\n// the code required to apply the same logic for event prioritization and that of the\n// SimpleEventPlugin. This complicates things slightly, but the aim is to reduce code\n// duplication (for which there would be quite a bit). For the events that are not needed\n// for the SimpleEventPlugin (otherDiscreteEvents) we process them separately as an\n// array of top level events.\n// Lastly, we ignore prettier so we can keep the formatting sane.\n// prettier-ignore\n\nvar discreteEventPairsForSimpleEventPlugin = [TOP_BLUR, 'blur', TOP_CANCEL, 'cancel', TOP_CLICK, 'click', TOP_CLOSE, 'close', TOP_CONTEXT_MENU, 'contextMenu', TOP_COPY, 'copy', TOP_CUT, 'cut', TOP_AUX_CLICK, 'auxClick', TOP_DOUBLE_CLICK, 'doubleClick', TOP_DRAG_END, 'dragEnd', TOP_DRAG_START, 'dragStart', TOP_DROP, 'drop', TOP_FOCUS, 'focus', TOP_INPUT, 'input', TOP_INVALID, 'invalid', TOP_KEY_DOWN, 'keyDown', TOP_KEY_PRESS, 'keyPress', TOP_KEY_UP, 'keyUp', TOP_MOUSE_DOWN, 'mouseDown', TOP_MOUSE_UP, 'mouseUp', TOP_PASTE, 'paste', TOP_PAUSE, 'pause', TOP_PLAY, 'play', TOP_POINTER_CANCEL, 'pointerCancel', TOP_POINTER_DOWN, 'pointerDown', TOP_POINTER_UP, 'pointerUp', TOP_RATE_CHANGE, 'rateChange', TOP_RESET, 'reset', TOP_SEEKED, 'seeked', TOP_SUBMIT, 'submit', TOP_TOUCH_CANCEL, 'touchCancel', TOP_TOUCH_END, 'touchEnd', TOP_TOUCH_START, 'touchStart', TOP_VOLUME_CHANGE, 'volumeChange'];\nvar otherDiscreteEvents = [TOP_CHANGE, TOP_SELECTION_CHANGE, TOP_TEXT_INPUT, TOP_COMPOSITION_START, TOP_COMPOSITION_END, TOP_COMPOSITION_UPDATE]; // prettier-ignore\n\nvar userBlockingPairsForSimpleEventPlugin = [TOP_DRAG, 'drag', TOP_DRAG_ENTER, 'dragEnter', TOP_DRAG_EXIT, 'dragExit', TOP_DRAG_LEAVE, 'dragLeave', TOP_DRAG_OVER, 'dragOver', TOP_MOUSE_MOVE, 'mouseMove', TOP_MOUSE_OUT, 'mouseOut', TOP_MOUSE_OVER, 'mouseOver', TOP_POINTER_MOVE, 'pointerMove', TOP_POINTER_OUT, 'pointerOut', TOP_POINTER_OVER, 'pointerOver', TOP_SCROLL, 'scroll', TOP_TOGGLE, 'toggle', TOP_TOUCH_MOVE, 'touchMove', TOP_WHEEL, 'wheel']; // prettier-ignore\n\nvar continuousPairsForSimpleEventPlugin = [TOP_ABORT, 'abort', TOP_ANIMATION_END, 'animationEnd', TOP_ANIMATION_ITERATION, 'animationIteration', TOP_ANIMATION_START, 'animationStart', TOP_CAN_PLAY, 'canPlay', TOP_CAN_PLAY_THROUGH, 'canPlayThrough', TOP_DURATION_CHANGE, 'durationChange', TOP_EMPTIED, 'emptied', TOP_ENCRYPTED, 'encrypted', TOP_ENDED, 'ended', TOP_ERROR, 'error', TOP_GOT_POINTER_CAPTURE, 'gotPointerCapture', TOP_LOAD, 'load', TOP_LOADED_DATA, 'loadedData', TOP_LOADED_METADATA, 'loadedMetadata', TOP_LOAD_START, 'loadStart', TOP_LOST_POINTER_CAPTURE, 'lostPointerCapture', TOP_PLAYING, 'playing', TOP_PROGRESS, 'progress', TOP_SEEKING, 'seeking', TOP_STALLED, 'stalled', TOP_SUSPEND, 'suspend', TOP_TIME_UPDATE, 'timeUpdate', TOP_TRANSITION_END, 'transitionEnd', TOP_WAITING, 'waiting'];\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n *   'abort': {\n *     phasedRegistrationNames: {\n *       bubbled: 'onAbort',\n *       captured: 'onAbortCapture',\n *     },\n *     dependencies: [TOP_ABORT],\n *   },\n *   ...\n * };\n * topLevelEventsToDispatchConfig = new Map([\n *   [TOP_ABORT, { sameConfig }],\n * ]);\n */\n\nfunction processSimpleEventPluginPairsByPriority(eventTypes, priority) {\n  // As the event types are in pairs of two, we need to iterate\n  // through in twos. The events are in pairs of two to save code\n  // and improve init perf of processing this array, as it will\n  // result in far fewer object allocations and property accesses\n  // if we only use three arrays to process all the categories of\n  // instead of tuples.\n  for (var i = 0; i < eventTypes.length; i += 2) {\n    var topEvent = eventTypes[i];\n    var event = eventTypes[i + 1];\n    var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n    var onEvent = 'on' + capitalizedEvent;\n    var config = {\n      phasedRegistrationNames: {\n        bubbled: onEvent,\n        captured: onEvent + 'Capture'\n      },\n      dependencies: [topEvent],\n      eventPriority: priority\n    };\n    eventPriorities.set(topEvent, priority);\n    topLevelEventsToDispatchConfig.set(topEvent, config);\n    simpleEventPluginEventTypes[event] = config;\n  }\n}\n\nfunction processTopEventPairsByPriority(eventTypes, priority) {\n  for (var i = 0; i < eventTypes.length; i++) {\n    eventPriorities.set(eventTypes[i], priority);\n  }\n} // SimpleEventPlugin\n\n\nprocessSimpleEventPluginPairsByPriority(discreteEventPairsForSimpleEventPlugin, DiscreteEvent);\nprocessSimpleEventPluginPairsByPriority(userBlockingPairsForSimpleEventPlugin, UserBlockingEvent);\nprocessSimpleEventPluginPairsByPriority(continuousPairsForSimpleEventPlugin, ContinuousEvent); // Not used by SimpleEventPlugin\n\nprocessTopEventPairsByPriority(otherDiscreteEvents, DiscreteEvent);\nfunction getEventPriorityForPluginSystem(topLevelType) {\n  var priority = eventPriorities.get(topLevelType); // Default to a ContinuousEvent. Note: we might\n  // want to warn if we can't detect the priority\n  // for the event.\n\n  return priority === undefined ? ContinuousEvent : priority;\n}\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\nvar UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n    runWithPriority = Scheduler.unstable_runWithPriority; // TODO: can we stop exporting these?\n\nvar _enabled = true;\nfunction setEnabled(enabled) {\n  _enabled = !!enabled;\n}\nfunction isEnabled() {\n  return _enabled;\n}\nfunction trapBubbledEvent(topLevelType, element) {\n  trapEventForPluginEventSystem(element, topLevelType, false);\n}\nfunction trapCapturedEvent(topLevelType, element) {\n  trapEventForPluginEventSystem(element, topLevelType, true);\n}\n\nfunction trapEventForPluginEventSystem(container, topLevelType, capture) {\n  var listener;\n\n  switch (getEventPriorityForPluginSystem(topLevelType)) {\n    case DiscreteEvent:\n      listener = dispatchDiscreteEvent.bind(null, topLevelType, PLUGIN_EVENT_SYSTEM, container);\n      break;\n\n    case UserBlockingEvent:\n      listener = dispatchUserBlockingUpdate.bind(null, topLevelType, PLUGIN_EVENT_SYSTEM, container);\n      break;\n\n    case ContinuousEvent:\n    default:\n      listener = dispatchEvent.bind(null, topLevelType, PLUGIN_EVENT_SYSTEM, container);\n      break;\n  }\n\n  var rawEventName = getRawEventName(topLevelType);\n\n  if (capture) {\n    addEventCaptureListener(container, rawEventName, listener);\n  } else {\n    addEventBubbleListener(container, rawEventName, listener);\n  }\n}\n\nfunction dispatchDiscreteEvent(topLevelType, eventSystemFlags, container, nativeEvent) {\n  flushDiscreteUpdatesIfNeeded(nativeEvent.timeStamp);\n  discreteUpdates(dispatchEvent, topLevelType, eventSystemFlags, container, nativeEvent);\n}\n\nfunction dispatchUserBlockingUpdate(topLevelType, eventSystemFlags, container, nativeEvent) {\n  runWithPriority(UserBlockingPriority, dispatchEvent.bind(null, topLevelType, eventSystemFlags, container, nativeEvent));\n}\n\nfunction dispatchEvent(topLevelType, eventSystemFlags, container, nativeEvent) {\n  if (!_enabled) {\n    return;\n  }\n\n  if (hasQueuedDiscreteEvents() && isReplayableDiscreteEvent(topLevelType)) {\n    // If we already have a queue of discrete events, and this is another discrete\n    // event, then we can't dispatch it regardless of its target, since they\n    // need to dispatch in order.\n    queueDiscreteEvent(null, // Flags that we're not actually blocked on anything as far as we know.\n    topLevelType, eventSystemFlags, container, nativeEvent);\n    return;\n  }\n\n  var blockedOn = attemptToDispatchEvent(topLevelType, eventSystemFlags, container, nativeEvent);\n\n  if (blockedOn === null) {\n    // We successfully dispatched this event.\n    clearIfContinuousEvent(topLevelType, nativeEvent);\n    return;\n  }\n\n  if (isReplayableDiscreteEvent(topLevelType)) {\n    // This this to be replayed later once the target is available.\n    queueDiscreteEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent);\n    return;\n  }\n\n  if (queueIfContinuousEvent(blockedOn, topLevelType, eventSystemFlags, container, nativeEvent)) {\n    return;\n  } // We need to clear only if we didn't queue because\n  // queueing is accummulative.\n\n\n  clearIfContinuousEvent(topLevelType, nativeEvent); // This is not replayable so we'll invoke it but without a target,\n  // in case the event system needs to trace it.\n\n  {\n    dispatchEventForLegacyPluginEventSystem(topLevelType, eventSystemFlags, nativeEvent, null);\n  }\n} // Attempt dispatching an event. Returns a SuspenseInstance or Container if it's blocked.\n\nfunction attemptToDispatchEvent(topLevelType, eventSystemFlags, container, nativeEvent) {\n  // TODO: Warn if _enabled is false.\n  var nativeEventTarget = getEventTarget(nativeEvent);\n  var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n  if (targetInst !== null) {\n    var nearestMounted = getNearestMountedFiber(targetInst);\n\n    if (nearestMounted === null) {\n      // This tree has been unmounted already. Dispatch without a target.\n      targetInst = null;\n    } else {\n      var tag = nearestMounted.tag;\n\n      if (tag === SuspenseComponent) {\n        var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n        if (instance !== null) {\n          // Queue the event to be replayed later. Abort dispatching since we\n          // don't want this event dispatched twice through the event system.\n          // TODO: If this is the first discrete event in the queue. Schedule an increased\n          // priority for this boundary.\n          return instance;\n        } // This shouldn't happen, something went wrong but to avoid blocking\n        // the whole system, dispatch the event without a target.\n        // TODO: Warn.\n\n\n        targetInst = null;\n      } else if (tag === HostRoot) {\n        var root = nearestMounted.stateNode;\n\n        if (root.hydrate) {\n          // If this happens during a replay something went wrong and it might block\n          // the whole system.\n          return getContainerFromFiber(nearestMounted);\n        }\n\n        targetInst = null;\n      } else if (nearestMounted !== targetInst) {\n        // If we get an event (ex: img onload) before committing that\n        // component's mount, ignore it for now (that is, treat it as if it was an\n        // event on a non-React tree). We might also consider queueing events and\n        // dispatching them after the mount.\n        targetInst = null;\n      }\n    }\n  }\n\n  {\n    dispatchEventForLegacyPluginEventSystem(topLevelType, eventSystemFlags, nativeEvent, targetInst);\n  } // We're not blocked on anything.\n\n\n  return null;\n}\n\n// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand = {\n  animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n  background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n  backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n  border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n  borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n  borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n  borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n  borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n  borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n  borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n  borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n  borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n  borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n  borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n  borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n  borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n  borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n  columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n  columns: ['columnCount', 'columnWidth'],\n  flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n  flexFlow: ['flexDirection', 'flexWrap'],\n  font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n  fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n  gap: ['columnGap', 'rowGap'],\n  grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n  gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n  gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n  gridColumnGap: ['columnGap'],\n  gridGap: ['columnGap', 'rowGap'],\n  gridRow: ['gridRowEnd', 'gridRowStart'],\n  gridRowGap: ['rowGap'],\n  gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n  listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n  margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n  marker: ['markerEnd', 'markerMid', 'markerStart'],\n  mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n  maskPosition: ['maskPositionX', 'maskPositionY'],\n  outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n  overflow: ['overflowX', 'overflowY'],\n  padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n  placeContent: ['alignContent', 'justifyContent'],\n  placeItems: ['alignItems', 'justifyItems'],\n  placeSelf: ['alignSelf', 'justifySelf'],\n  textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n  textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n  transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n  wordWrap: ['overflowWrap']\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  columns: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridArea: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n  if (isEmpty) {\n    return '';\n  }\n\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n  }\n\n  return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\n\nfunction hyphenateStyleName(name) {\n  return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n  var msPattern$1 = /^-ms-/;\n  var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon\n\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n  var warnedForNaNValue = false;\n  var warnedForInfinityValue = false;\n\n  var camelize = function (string) {\n    return string.replace(hyphenPattern, function (_, character) {\n      return character.toUpperCase();\n    });\n  };\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n\n    error('Unsupported style property %s. Did you mean %s?', name, // As Andi Smith suggests\n    // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n    // is converted to lowercase `ms`.\n    camelize(name.replace(msPattern$1, 'ms-')));\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n\n    error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n\n    error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n  };\n\n  var warnStyleValueIsNaN = function (name, value) {\n    if (warnedForNaNValue) {\n      return;\n    }\n\n    warnedForNaNValue = true;\n\n    error('`NaN` is an invalid value for the `%s` css style property.', name);\n  };\n\n  var warnStyleValueIsInfinity = function (name, value) {\n    if (warnedForInfinityValue) {\n      return;\n    }\n\n    warnedForInfinityValue = true;\n\n    error('`Infinity` is an invalid value for the `%s` css style property.', name);\n  };\n\n  warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n\n    if (typeof value === 'number') {\n      if (isNaN(value)) {\n        warnStyleValueIsNaN(name, value);\n      } else if (!isFinite(value)) {\n        warnStyleValueIsInfinity(name, value);\n      }\n    }\n  };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\n\nfunction createDangerousStringForStyles(styles) {\n  {\n    var serialized = '';\n    var delimiter = '';\n\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n\n      var styleValue = styles[styleName];\n\n      if (styleValue != null) {\n        var isCustomProperty = styleName.indexOf('--') === 0;\n        serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n        delimiter = ';';\n      }\n    }\n\n    return serialized || null;\n  }\n}\n/**\n * Sets the value for multiple styles on a node.  If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n  var style = node.style;\n\n  for (var styleName in styles) {\n    if (!styles.hasOwnProperty(styleName)) {\n      continue;\n    }\n\n    var isCustomProperty = styleName.indexOf('--') === 0;\n\n    {\n      if (!isCustomProperty) {\n        warnValidStyle$1(styleName, styles[styleName]);\n      }\n    }\n\n    var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n    if (styleName === 'float') {\n      styleName = 'cssFloat';\n    }\n\n    if (isCustomProperty) {\n      style.setProperty(styleName, styleValue);\n    } else {\n      style[styleName] = styleValue;\n    }\n  }\n}\n\nfunction isValueEmpty(value) {\n  return value == null || typeof value === 'boolean' || value === '';\n}\n/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n *   color: 'color',\n *   overflowX: 'overflow',\n *   overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */\n\n\nfunction expandShorthandMap(styles) {\n  var expanded = {};\n\n  for (var key in styles) {\n    var longhands = shorthandToLonghand[key] || [key];\n\n    for (var i = 0; i < longhands.length; i++) {\n      expanded[longhands[i]] = key;\n    }\n  }\n\n  return expanded;\n}\n/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n *   becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n *   {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n *   becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n *   becomes .style.fontVariant = ''\n */\n\n\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n  {\n\n    if (!nextStyles) {\n      return;\n    }\n\n    var expandedUpdates = expandShorthandMap(styleUpdates);\n    var expandedStyles = expandShorthandMap(nextStyles);\n    var warnedAbout = {};\n\n    for (var key in expandedUpdates) {\n      var originalKey = expandedUpdates[key];\n      var correctOriginalKey = expandedStyles[key];\n\n      if (correctOriginalKey && originalKey !== correctOriginalKey) {\n        var warningKey = originalKey + ',' + correctOriginalKey;\n\n        if (warnedAbout[warningKey]) {\n          continue;\n        }\n\n        warnedAbout[warningKey] = true;\n\n        error('%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n      }\n    }\n  }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\nvar omittedCloseTags = {\n  area: true,\n  base: true,\n  br: true,\n  col: true,\n  embed: true,\n  hr: true,\n  img: true,\n  input: true,\n  keygen: true,\n  link: true,\n  meta: true,\n  param: true,\n  source: true,\n  track: true,\n  wbr: true // NOTE: menuitem's close tag should be omitted, but that causes problems.\n\n};\n\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n  menuitem: true\n}, omittedCloseTags);\n\nvar HTML = '__html';\nvar ReactDebugCurrentFrame$3 = null;\n\n{\n  ReactDebugCurrentFrame$3 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nfunction assertValidProps(tag, props) {\n  if (!props) {\n    return;\n  } // Note the use of `==` which checks for null or undefined.\n\n\n  if (voidElementTags[tag]) {\n    if (!(props.children == null && props.dangerouslySetInnerHTML == null)) {\n      {\n        throw Error( tag + \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\" + ( ReactDebugCurrentFrame$3.getStackAddendum() ) );\n      }\n    }\n  }\n\n  if (props.dangerouslySetInnerHTML != null) {\n    if (!(props.children == null)) {\n      {\n        throw Error( \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\" );\n      }\n    }\n\n    if (!(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML)) {\n      {\n        throw Error( \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.\" );\n      }\n    }\n  }\n\n  {\n    if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n      error('A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');\n    }\n  }\n\n  if (!(props.style == null || typeof props.style === 'object')) {\n    {\n      throw Error( \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\" + ( ReactDebugCurrentFrame$3.getStackAddendum() ) );\n    }\n  }\n}\n\nfunction isCustomComponent(tagName, props) {\n  if (tagName.indexOf('-') === -1) {\n    return typeof props.is === 'string';\n  }\n\n  switch (tagName) {\n    // These are reserved SVG and MathML elements.\n    // We don't mind this whitelist too much because we expect it to never grow.\n    // The alternative is to track the namespace in a few places which is convoluted.\n    // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n    case 'annotation-xml':\n    case 'color-profile':\n    case 'font-face':\n    case 'font-face-src':\n    case 'font-face-uri':\n    case 'font-face-format':\n    case 'font-face-name':\n    case 'missing-glyph':\n      return false;\n\n    default:\n      return true;\n  }\n}\n\n// When adding attributes to the HTML or SVG whitelist, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n  // HTML\n  accept: 'accept',\n  acceptcharset: 'acceptCharset',\n  'accept-charset': 'acceptCharset',\n  accesskey: 'accessKey',\n  action: 'action',\n  allowfullscreen: 'allowFullScreen',\n  alt: 'alt',\n  as: 'as',\n  async: 'async',\n  autocapitalize: 'autoCapitalize',\n  autocomplete: 'autoComplete',\n  autocorrect: 'autoCorrect',\n  autofocus: 'autoFocus',\n  autoplay: 'autoPlay',\n  autosave: 'autoSave',\n  capture: 'capture',\n  cellpadding: 'cellPadding',\n  cellspacing: 'cellSpacing',\n  challenge: 'challenge',\n  charset: 'charSet',\n  checked: 'checked',\n  children: 'children',\n  cite: 'cite',\n  class: 'className',\n  classid: 'classID',\n  classname: 'className',\n  cols: 'cols',\n  colspan: 'colSpan',\n  content: 'content',\n  contenteditable: 'contentEditable',\n  contextmenu: 'contextMenu',\n  controls: 'controls',\n  controlslist: 'controlsList',\n  coords: 'coords',\n  crossorigin: 'crossOrigin',\n  dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n  data: 'data',\n  datetime: 'dateTime',\n  default: 'default',\n  defaultchecked: 'defaultChecked',\n  defaultvalue: 'defaultValue',\n  defer: 'defer',\n  dir: 'dir',\n  disabled: 'disabled',\n  disablepictureinpicture: 'disablePictureInPicture',\n  download: 'download',\n  draggable: 'draggable',\n  enctype: 'encType',\n  for: 'htmlFor',\n  form: 'form',\n  formmethod: 'formMethod',\n  formaction: 'formAction',\n  formenctype: 'formEncType',\n  formnovalidate: 'formNoValidate',\n  formtarget: 'formTarget',\n  frameborder: 'frameBorder',\n  headers: 'headers',\n  height: 'height',\n  hidden: 'hidden',\n  high: 'high',\n  href: 'href',\n  hreflang: 'hrefLang',\n  htmlfor: 'htmlFor',\n  httpequiv: 'httpEquiv',\n  'http-equiv': 'httpEquiv',\n  icon: 'icon',\n  id: 'id',\n  innerhtml: 'innerHTML',\n  inputmode: 'inputMode',\n  integrity: 'integrity',\n  is: 'is',\n  itemid: 'itemID',\n  itemprop: 'itemProp',\n  itemref: 'itemRef',\n  itemscope: 'itemScope',\n  itemtype: 'itemType',\n  keyparams: 'keyParams',\n  keytype: 'keyType',\n  kind: 'kind',\n  label: 'label',\n  lang: 'lang',\n  list: 'list',\n  loop: 'loop',\n  low: 'low',\n  manifest: 'manifest',\n  marginwidth: 'marginWidth',\n  marginheight: 'marginHeight',\n  max: 'max',\n  maxlength: 'maxLength',\n  media: 'media',\n  mediagroup: 'mediaGroup',\n  method: 'method',\n  min: 'min',\n  minlength: 'minLength',\n  multiple: 'multiple',\n  muted: 'muted',\n  name: 'name',\n  nomodule: 'noModule',\n  nonce: 'nonce',\n  novalidate: 'noValidate',\n  open: 'open',\n  optimum: 'optimum',\n  pattern: 'pattern',\n  placeholder: 'placeholder',\n  playsinline: 'playsInline',\n  poster: 'poster',\n  preload: 'preload',\n  profile: 'profile',\n  radiogroup: 'radioGroup',\n  readonly: 'readOnly',\n  referrerpolicy: 'referrerPolicy',\n  rel: 'rel',\n  required: 'required',\n  reversed: 'reversed',\n  role: 'role',\n  rows: 'rows',\n  rowspan: 'rowSpan',\n  sandbox: 'sandbox',\n  scope: 'scope',\n  scoped: 'scoped',\n  scrolling: 'scrolling',\n  seamless: 'seamless',\n  selected: 'selected',\n  shape: 'shape',\n  size: 'size',\n  sizes: 'sizes',\n  span: 'span',\n  spellcheck: 'spellCheck',\n  src: 'src',\n  srcdoc: 'srcDoc',\n  srclang: 'srcLang',\n  srcset: 'srcSet',\n  start: 'start',\n  step: 'step',\n  style: 'style',\n  summary: 'summary',\n  tabindex: 'tabIndex',\n  target: 'target',\n  title: 'title',\n  type: 'type',\n  usemap: 'useMap',\n  value: 'value',\n  width: 'width',\n  wmode: 'wmode',\n  wrap: 'wrap',\n  // SVG\n  about: 'about',\n  accentheight: 'accentHeight',\n  'accent-height': 'accentHeight',\n  accumulate: 'accumulate',\n  additive: 'additive',\n  alignmentbaseline: 'alignmentBaseline',\n  'alignment-baseline': 'alignmentBaseline',\n  allowreorder: 'allowReorder',\n  alphabetic: 'alphabetic',\n  amplitude: 'amplitude',\n  arabicform: 'arabicForm',\n  'arabic-form': 'arabicForm',\n  ascent: 'ascent',\n  attributename: 'attributeName',\n  attributetype: 'attributeType',\n  autoreverse: 'autoReverse',\n  azimuth: 'azimuth',\n  basefrequency: 'baseFrequency',\n  baselineshift: 'baselineShift',\n  'baseline-shift': 'baselineShift',\n  baseprofile: 'baseProfile',\n  bbox: 'bbox',\n  begin: 'begin',\n  bias: 'bias',\n  by: 'by',\n  calcmode: 'calcMode',\n  capheight: 'capHeight',\n  'cap-height': 'capHeight',\n  clip: 'clip',\n  clippath: 'clipPath',\n  'clip-path': 'clipPath',\n  clippathunits: 'clipPathUnits',\n  cliprule: 'clipRule',\n  'clip-rule': 'clipRule',\n  color: 'color',\n  colorinterpolation: 'colorInterpolation',\n  'color-interpolation': 'colorInterpolation',\n  colorinterpolationfilters: 'colorInterpolationFilters',\n  'color-interpolation-filters': 'colorInterpolationFilters',\n  colorprofile: 'colorProfile',\n  'color-profile': 'colorProfile',\n  colorrendering: 'colorRendering',\n  'color-rendering': 'colorRendering',\n  contentscripttype: 'contentScriptType',\n  contentstyletype: 'contentStyleType',\n  cursor: 'cursor',\n  cx: 'cx',\n  cy: 'cy',\n  d: 'd',\n  datatype: 'datatype',\n  decelerate: 'decelerate',\n  descent: 'descent',\n  diffuseconstant: 'diffuseConstant',\n  direction: 'direction',\n  display: 'display',\n  divisor: 'divisor',\n  dominantbaseline: 'dominantBaseline',\n  'dominant-baseline': 'dominantBaseline',\n  dur: 'dur',\n  dx: 'dx',\n  dy: 'dy',\n  edgemode: 'edgeMode',\n  elevation: 'elevation',\n  enablebackground: 'enableBackground',\n  'enable-background': 'enableBackground',\n  end: 'end',\n  exponent: 'exponent',\n  externalresourcesrequired: 'externalResourcesRequired',\n  fill: 'fill',\n  fillopacity: 'fillOpacity',\n  'fill-opacity': 'fillOpacity',\n  fillrule: 'fillRule',\n  'fill-rule': 'fillRule',\n  filter: 'filter',\n  filterres: 'filterRes',\n  filterunits: 'filterUnits',\n  floodopacity: 'floodOpacity',\n  'flood-opacity': 'floodOpacity',\n  floodcolor: 'floodColor',\n  'flood-color': 'floodColor',\n  focusable: 'focusable',\n  fontfamily: 'fontFamily',\n  'font-family': 'fontFamily',\n  fontsize: 'fontSize',\n  'font-size': 'fontSize',\n  fontsizeadjust: 'fontSizeAdjust',\n  'font-size-adjust': 'fontSizeAdjust',\n  fontstretch: 'fontStretch',\n  'font-stretch': 'fontStretch',\n  fontstyle: 'fontStyle',\n  'font-style': 'fontStyle',\n  fontvariant: 'fontVariant',\n  'font-variant': 'fontVariant',\n  fontweight: 'fontWeight',\n  'font-weight': 'fontWeight',\n  format: 'format',\n  from: 'from',\n  fx: 'fx',\n  fy: 'fy',\n  g1: 'g1',\n  g2: 'g2',\n  glyphname: 'glyphName',\n  'glyph-name': 'glyphName',\n  glyphorientationhorizontal: 'glyphOrientationHorizontal',\n  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n  glyphorientationvertical: 'glyphOrientationVertical',\n  'glyph-orientation-vertical': 'glyphOrientationVertical',\n  glyphref: 'glyphRef',\n  gradienttransform: 'gradientTransform',\n  gradientunits: 'gradientUnits',\n  hanging: 'hanging',\n  horizadvx: 'horizAdvX',\n  'horiz-adv-x': 'horizAdvX',\n  horizoriginx: 'horizOriginX',\n  'horiz-origin-x': 'horizOriginX',\n  ideographic: 'ideographic',\n  imagerendering: 'imageRendering',\n  'image-rendering': 'imageRendering',\n  in2: 'in2',\n  in: 'in',\n  inlist: 'inlist',\n  intercept: 'intercept',\n  k1: 'k1',\n  k2: 'k2',\n  k3: 'k3',\n  k4: 'k4',\n  k: 'k',\n  kernelmatrix: 'kernelMatrix',\n  kernelunitlength: 'kernelUnitLength',\n  kerning: 'kerning',\n  keypoints: 'keyPoints',\n  keysplines: 'keySplines',\n  keytimes: 'keyTimes',\n  lengthadjust: 'lengthAdjust',\n  letterspacing: 'letterSpacing',\n  'letter-spacing': 'letterSpacing',\n  lightingcolor: 'lightingColor',\n  'lighting-color': 'lightingColor',\n  limitingconeangle: 'limitingConeAngle',\n  local: 'local',\n  markerend: 'markerEnd',\n  'marker-end': 'markerEnd',\n  markerheight: 'markerHeight',\n  markermid: 'markerMid',\n  'marker-mid': 'markerMid',\n  markerstart: 'markerStart',\n  'marker-start': 'markerStart',\n  markerunits: 'markerUnits',\n  markerwidth: 'markerWidth',\n  mask: 'mask',\n  maskcontentunits: 'maskContentUnits',\n  maskunits: 'maskUnits',\n  mathematical: 'mathematical',\n  mode: 'mode',\n  numoctaves: 'numOctaves',\n  offset: 'offset',\n  opacity: 'opacity',\n  operator: 'operator',\n  order: 'order',\n  orient: 'orient',\n  orientation: 'orientation',\n  origin: 'origin',\n  overflow: 'overflow',\n  overlineposition: 'overlinePosition',\n  'overline-position': 'overlinePosition',\n  overlinethickness: 'overlineThickness',\n  'overline-thickness': 'overlineThickness',\n  paintorder: 'paintOrder',\n  'paint-order': 'paintOrder',\n  panose1: 'panose1',\n  'panose-1': 'panose1',\n  pathlength: 'pathLength',\n  patterncontentunits: 'patternContentUnits',\n  patterntransform: 'patternTransform',\n  patternunits: 'patternUnits',\n  pointerevents: 'pointerEvents',\n  'pointer-events': 'pointerEvents',\n  points: 'points',\n  pointsatx: 'pointsAtX',\n  pointsaty: 'pointsAtY',\n  pointsatz: 'pointsAtZ',\n  prefix: 'prefix',\n  preservealpha: 'preserveAlpha',\n  preserveaspectratio: 'preserveAspectRatio',\n  primitiveunits: 'primitiveUnits',\n  property: 'property',\n  r: 'r',\n  radius: 'radius',\n  refx: 'refX',\n  refy: 'refY',\n  renderingintent: 'renderingIntent',\n  'rendering-intent': 'renderingIntent',\n  repeatcount: 'repeatCount',\n  repeatdur: 'repeatDur',\n  requiredextensions: 'requiredExtensions',\n  requiredfeatures: 'requiredFeatures',\n  resource: 'resource',\n  restart: 'restart',\n  result: 'result',\n  results: 'results',\n  rotate: 'rotate',\n  rx: 'rx',\n  ry: 'ry',\n  scale: 'scale',\n  security: 'security',\n  seed: 'seed',\n  shaperendering: 'shapeRendering',\n  'shape-rendering': 'shapeRendering',\n  slope: 'slope',\n  spacing: 'spacing',\n  specularconstant: 'specularConstant',\n  specularexponent: 'specularExponent',\n  speed: 'speed',\n  spreadmethod: 'spreadMethod',\n  startoffset: 'startOffset',\n  stddeviation: 'stdDeviation',\n  stemh: 'stemh',\n  stemv: 'stemv',\n  stitchtiles: 'stitchTiles',\n  stopcolor: 'stopColor',\n  'stop-color': 'stopColor',\n  stopopacity: 'stopOpacity',\n  'stop-opacity': 'stopOpacity',\n  strikethroughposition: 'strikethroughPosition',\n  'strikethrough-position': 'strikethroughPosition',\n  strikethroughthickness: 'strikethroughThickness',\n  'strikethrough-thickness': 'strikethroughThickness',\n  string: 'string',\n  stroke: 'stroke',\n  strokedasharray: 'strokeDasharray',\n  'stroke-dasharray': 'strokeDasharray',\n  strokedashoffset: 'strokeDashoffset',\n  'stroke-dashoffset': 'strokeDashoffset',\n  strokelinecap: 'strokeLinecap',\n  'stroke-linecap': 'strokeLinecap',\n  strokelinejoin: 'strokeLinejoin',\n  'stroke-linejoin': 'strokeLinejoin',\n  strokemiterlimit: 'strokeMiterlimit',\n  'stroke-miterlimit': 'strokeMiterlimit',\n  strokewidth: 'strokeWidth',\n  'stroke-width': 'strokeWidth',\n  strokeopacity: 'strokeOpacity',\n  'stroke-opacity': 'strokeOpacity',\n  suppresscontenteditablewarning: 'suppressContentEditableWarning',\n  suppresshydrationwarning: 'suppressHydrationWarning',\n  surfacescale: 'surfaceScale',\n  systemlanguage: 'systemLanguage',\n  tablevalues: 'tableValues',\n  targetx: 'targetX',\n  targety: 'targetY',\n  textanchor: 'textAnchor',\n  'text-anchor': 'textAnchor',\n  textdecoration: 'textDecoration',\n  'text-decoration': 'textDecoration',\n  textlength: 'textLength',\n  textrendering: 'textRendering',\n  'text-rendering': 'textRendering',\n  to: 'to',\n  transform: 'transform',\n  typeof: 'typeof',\n  u1: 'u1',\n  u2: 'u2',\n  underlineposition: 'underlinePosition',\n  'underline-position': 'underlinePosition',\n  underlinethickness: 'underlineThickness',\n  'underline-thickness': 'underlineThickness',\n  unicode: 'unicode',\n  unicodebidi: 'unicodeBidi',\n  'unicode-bidi': 'unicodeBidi',\n  unicoderange: 'unicodeRange',\n  'unicode-range': 'unicodeRange',\n  unitsperem: 'unitsPerEm',\n  'units-per-em': 'unitsPerEm',\n  unselectable: 'unselectable',\n  valphabetic: 'vAlphabetic',\n  'v-alphabetic': 'vAlphabetic',\n  values: 'values',\n  vectoreffect: 'vectorEffect',\n  'vector-effect': 'vectorEffect',\n  version: 'version',\n  vertadvy: 'vertAdvY',\n  'vert-adv-y': 'vertAdvY',\n  vertoriginx: 'vertOriginX',\n  'vert-origin-x': 'vertOriginX',\n  vertoriginy: 'vertOriginY',\n  'vert-origin-y': 'vertOriginY',\n  vhanging: 'vHanging',\n  'v-hanging': 'vHanging',\n  videographic: 'vIdeographic',\n  'v-ideographic': 'vIdeographic',\n  viewbox: 'viewBox',\n  viewtarget: 'viewTarget',\n  visibility: 'visibility',\n  vmathematical: 'vMathematical',\n  'v-mathematical': 'vMathematical',\n  vocab: 'vocab',\n  widths: 'widths',\n  wordspacing: 'wordSpacing',\n  'word-spacing': 'wordSpacing',\n  writingmode: 'writingMode',\n  'writing-mode': 'writingMode',\n  x1: 'x1',\n  x2: 'x2',\n  x: 'x',\n  xchannelselector: 'xChannelSelector',\n  xheight: 'xHeight',\n  'x-height': 'xHeight',\n  xlinkactuate: 'xlinkActuate',\n  'xlink:actuate': 'xlinkActuate',\n  xlinkarcrole: 'xlinkArcrole',\n  'xlink:arcrole': 'xlinkArcrole',\n  xlinkhref: 'xlinkHref',\n  'xlink:href': 'xlinkHref',\n  xlinkrole: 'xlinkRole',\n  'xlink:role': 'xlinkRole',\n  xlinkshow: 'xlinkShow',\n  'xlink:show': 'xlinkShow',\n  xlinktitle: 'xlinkTitle',\n  'xlink:title': 'xlinkTitle',\n  xlinktype: 'xlinkType',\n  'xlink:type': 'xlinkType',\n  xmlbase: 'xmlBase',\n  'xml:base': 'xmlBase',\n  xmllang: 'xmlLang',\n  'xml:lang': 'xmlLang',\n  xmlns: 'xmlns',\n  'xml:space': 'xmlSpace',\n  xmlnsxlink: 'xmlnsXlink',\n  'xmlns:xlink': 'xmlnsXlink',\n  xmlspace: 'xmlSpace',\n  y1: 'y1',\n  y2: 'y2',\n  y: 'y',\n  ychannelselector: 'yChannelSelector',\n  z: 'z',\n  zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n  'aria-current': 0,\n  // state\n  'aria-details': 0,\n  'aria-disabled': 0,\n  // state\n  'aria-hidden': 0,\n  // state\n  'aria-invalid': 0,\n  // state\n  'aria-keyshortcuts': 0,\n  'aria-label': 0,\n  'aria-roledescription': 0,\n  // Widget Attributes\n  'aria-autocomplete': 0,\n  'aria-checked': 0,\n  'aria-expanded': 0,\n  'aria-haspopup': 0,\n  'aria-level': 0,\n  'aria-modal': 0,\n  'aria-multiline': 0,\n  'aria-multiselectable': 0,\n  'aria-orientation': 0,\n  'aria-placeholder': 0,\n  'aria-pressed': 0,\n  'aria-readonly': 0,\n  'aria-required': 0,\n  'aria-selected': 0,\n  'aria-sort': 0,\n  'aria-valuemax': 0,\n  'aria-valuemin': 0,\n  'aria-valuenow': 0,\n  'aria-valuetext': 0,\n  // Live Region Attributes\n  'aria-atomic': 0,\n  'aria-busy': 0,\n  'aria-live': 0,\n  'aria-relevant': 0,\n  // Drag-and-Drop Attributes\n  'aria-dropeffect': 0,\n  'aria-grabbed': 0,\n  // Relationship Attributes\n  'aria-activedescendant': 0,\n  'aria-colcount': 0,\n  'aria-colindex': 0,\n  'aria-colspan': 0,\n  'aria-controls': 0,\n  'aria-describedby': 0,\n  'aria-errormessage': 0,\n  'aria-flowto': 0,\n  'aria-labelledby': 0,\n  'aria-owns': 0,\n  'aria-posinset': 0,\n  'aria-rowcount': 0,\n  'aria-rowindex': 0,\n  'aria-rowspan': 0,\n  'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n  {\n    if (hasOwnProperty$1.call(warnedProperties, name) && warnedProperties[name]) {\n      return true;\n    }\n\n    if (rARIACamel.test(name)) {\n      var ariaName = 'aria-' + name.slice(4).toLowerCase();\n      var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n      // DOM properties, then it is an invalid aria-* attribute.\n\n      if (correctName == null) {\n        error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n\n        warnedProperties[name] = true;\n        return true;\n      } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n      if (name !== correctName) {\n        error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n\n        warnedProperties[name] = true;\n        return true;\n      }\n    }\n\n    if (rARIA.test(name)) {\n      var lowerCasedName = name.toLowerCase();\n      var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n      // DOM properties, then it is an invalid aria-* attribute.\n\n      if (standardName == null) {\n        warnedProperties[name] = true;\n        return false;\n      } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n      if (name !== standardName) {\n        error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n\n        warnedProperties[name] = true;\n        return true;\n      }\n    }\n  }\n\n  return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n  {\n    var invalidProps = [];\n\n    for (var key in props) {\n      var isValid = validateProperty(type, key);\n\n      if (!isValid) {\n        invalidProps.push(key);\n      }\n    }\n\n    var unknownPropString = invalidProps.map(function (prop) {\n      return '`' + prop + '`';\n    }).join(', ');\n\n    if (invalidProps.length === 1) {\n      error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n    } else if (invalidProps.length > 1) {\n      error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n    }\n  }\n}\n\nfunction validateProperties(type, props) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n\n  warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\nfunction validateProperties$1(type, props) {\n  {\n    if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n      return;\n    }\n\n    if (props != null && props.value === null && !didWarnValueNull) {\n      didWarnValueNull = true;\n\n      if (type === 'select' && props.multiple) {\n        error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n      } else {\n        error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n      }\n    }\n  }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n  var warnedProperties$1 = {};\n  var _hasOwnProperty = Object.prototype.hasOwnProperty;\n  var EVENT_NAME_REGEX = /^on./;\n  var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n  var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n  var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n  validateProperty$1 = function (tagName, name, value, canUseEventSystem) {\n    if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n      return true;\n    }\n\n    var lowerCasedName = name.toLowerCase();\n\n    if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n      error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n\n      warnedProperties$1[name] = true;\n      return true;\n    } // We can't rely on the event system being injected on the server.\n\n\n    if (canUseEventSystem) {\n      if (registrationNameModules.hasOwnProperty(name)) {\n        return true;\n      }\n\n      var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n      if (registrationName != null) {\n        error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n\n        warnedProperties$1[name] = true;\n        return true;\n      }\n\n      if (EVENT_NAME_REGEX.test(name)) {\n        error('Unknown event handler property `%s`. It will be ignored.', name);\n\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (EVENT_NAME_REGEX.test(name)) {\n      // If no event plugins have been injected, we are in a server environment.\n      // So we can't tell if the event name is correct for sure, but we can filter\n      // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n      if (INVALID_EVENT_NAME_REGEX.test(name)) {\n        error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n      }\n\n      warnedProperties$1[name] = true;\n      return true;\n    } // Let the ARIA attribute hook validate ARIA attributes\n\n\n    if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n      return true;\n    }\n\n    if (lowerCasedName === 'innerhtml') {\n      error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'aria') {\n      error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n      error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'number' && isNaN(value)) {\n      error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    var propertyInfo = getPropertyInfo(name);\n    var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; // Known attributes should match the casing specified in the property config.\n\n    if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      var standardName = possibleStandardNames[lowerCasedName];\n\n      if (standardName !== name) {\n        error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (!isReserved && name !== lowerCasedName) {\n      // Unknown attributes should have lowercase casing since that's how they\n      // will be cased anyway with server rendering.\n      error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      if (value) {\n        error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n      } else {\n        error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n      }\n\n      warnedProperties$1[name] = true;\n      return true;\n    } // Now that we've validated casing, do not validate\n    // data types for reserved props\n\n\n    if (isReserved) {\n      return true;\n    } // Warn when a known attribute is a bad type\n\n\n    if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      warnedProperties$1[name] = true;\n      return false;\n    } // Warn when passing the strings 'false' or 'true' into a boolean prop\n\n\n    if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n      error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    return true;\n  };\n}\n\nvar warnUnknownProperties = function (type, props, canUseEventSystem) {\n  {\n    var unknownProps = [];\n\n    for (var key in props) {\n      var isValid = validateProperty$1(type, key, props[key], canUseEventSystem);\n\n      if (!isValid) {\n        unknownProps.push(key);\n      }\n    }\n\n    var unknownPropString = unknownProps.map(function (prop) {\n      return '`' + prop + '`';\n    }).join(', ');\n\n    if (unknownProps.length === 1) {\n      error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n    } else if (unknownProps.length > 1) {\n      error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n    }\n  }\n};\n\nfunction validateProperties$2(type, props, canUseEventSystem) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n\n  warnUnknownProperties(type, props, canUseEventSystem);\n}\n\nvar didWarnInvalidHydration = false;\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML$1 = '__html';\nvar HTML_NAMESPACE$1 = Namespaces.html;\nvar warnedUnknownTags;\nvar suppressHydrationWarning;\nvar validatePropertiesInDevelopment;\nvar warnForTextDifference;\nvar warnForPropDifference;\nvar warnForExtraAttributes;\nvar warnForInvalidEventListener;\nvar canDiffStyleForHydrationWarning;\nvar normalizeMarkupForTextOrAttribute;\nvar normalizeHTML;\n\n{\n  warnedUnknownTags = {\n    // Chrome is the only major browser not shipping <time>. But as of July\n    // 2017 it intends to ship it due to widespread usage. We intentionally\n    // *don't* warn for <time> even if it's unrecognized by Chrome because\n    // it soon will be, and many apps have been using it anyway.\n    time: true,\n    // There are working polyfills for <dialog>. Let people use it.\n    dialog: true,\n    // Electron ships a custom <webview> tag to display external web content in\n    // an isolated frame and process.\n    // This tag is not present in non Electron environments such as JSDom which\n    // is often used for testing purposes.\n    // @see https://electronjs.org/docs/api/webview-tag\n    webview: true\n  };\n\n  validatePropertiesInDevelopment = function (type, props) {\n    validateProperties(type, props);\n    validateProperties$1(type, props);\n    validateProperties$2(type, props,\n    /* canUseEventSystem */\n    true);\n  }; // IE 11 parses & normalizes the style attribute as opposed to other\n  // browsers. It adds spaces and sorts the properties in some\n  // non-alphabetical order. Handling that would require sorting CSS\n  // properties in the client & server versions or applying\n  // `expectedStyle` to a temporary DOM node to read its `style` attribute\n  // normalized. Since it only affects IE, we're skipping style warnings\n  // in that browser completely in favor of doing all that work.\n  // See https://github.com/facebook/react/issues/11807\n\n\n  canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode; // HTML parsing normalizes CR and CRLF to LF.\n  // It also can turn \\u0000 into \\uFFFD inside attributes.\n  // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n  // If we have a mismatch, it might be caused by that.\n  // We will still patch up in this case but not fire the warning.\n\n  var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n  var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n  normalizeMarkupForTextOrAttribute = function (markup) {\n    var markupString = typeof markup === 'string' ? markup : '' + markup;\n    return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n  };\n\n  warnForTextDifference = function (serverText, clientText) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n    var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n\n    if (normalizedServerText === normalizedClientText) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n  };\n\n  warnForPropDifference = function (propName, serverValue, clientValue) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n    var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n\n    if (normalizedServerValue === normalizedClientValue) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n  };\n\n  warnForExtraAttributes = function (attributeNames) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n    var names = [];\n    attributeNames.forEach(function (name) {\n      names.push(name);\n    });\n\n    error('Extra attributes from the server: %s', names);\n  };\n\n  warnForInvalidEventListener = function (registrationName, listener) {\n    if (listener === false) {\n      error('Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n    } else {\n      error('Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n    }\n  }; // Parse the HTML and read it back to normalize the HTML string so that it\n  // can be used for comparison.\n\n\n  normalizeHTML = function (parent, html) {\n    // We could have created a separate document here to avoid\n    // re-initializing custom elements if they exist. But this breaks\n    // how <noscript> is being handled. So we use the same document.\n    // See the discussion in https://github.com/facebook/react/pull/11157.\n    var testElement = parent.namespaceURI === HTML_NAMESPACE$1 ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n    testElement.innerHTML = html;\n    return testElement.innerHTML;\n  };\n}\n\nfunction ensureListeningTo(rootContainerElement, registrationName) {\n  var isDocumentOrFragment = rootContainerElement.nodeType === DOCUMENT_NODE || rootContainerElement.nodeType === DOCUMENT_FRAGMENT_NODE;\n  var doc = isDocumentOrFragment ? rootContainerElement : rootContainerElement.ownerDocument;\n  legacyListenToEvent(registrationName, doc);\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n  return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n  // Mobile Safari does not fire properly bubble click events on\n  // non-interactive elements, which means delegated click listeners do not\n  // fire. The workaround for this bug involves attaching an empty click\n  // listener on the target node.\n  // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n  // Just set it using the onclick property so that we don't have to manage any\n  // bookkeeping for it. Not sure if we need to clear it when the listener is\n  // removed.\n  // TODO: Only do this for the relevant Safaris maybe?\n  node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n  for (var propKey in nextProps) {\n    if (!nextProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n\n    var nextProp = nextProps[propKey];\n\n    if (propKey === STYLE) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      } // Relies on `updateStylesByID` not mutating `styleUpdates`.\n\n\n      setValueForStyles(domElement, nextProp);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n      if (nextHtml != null) {\n        setInnerHTML(domElement, nextHtml);\n      }\n    } else if (propKey === CHILDREN) {\n      if (typeof nextProp === 'string') {\n        // Avoid setting initial textContent when the text is empty. In IE11 setting\n        // textContent on a <textarea> will cause the placeholder to not\n        // show within the <textarea> until it has been focused and blurred again.\n        // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n        var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n\n        if (canSetTextContent) {\n          setTextContent(domElement, nextProp);\n        }\n      } else if (typeof nextProp === 'number') {\n        setTextContent(domElement, '' + nextProp);\n      }\n    } else if ( propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if ( typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n    } else if (nextProp != null) {\n      setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n    }\n  }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n  // TODO: Handle wasCustomComponentTag\n  for (var i = 0; i < updatePayload.length; i += 2) {\n    var propKey = updatePayload[i];\n    var propValue = updatePayload[i + 1];\n\n    if (propKey === STYLE) {\n      setValueForStyles(domElement, propValue);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      setInnerHTML(domElement, propValue);\n    } else if (propKey === CHILDREN) {\n      setTextContent(domElement, propValue);\n    } else {\n      setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n    }\n  }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n  var isCustomComponentTag; // We create tags in the namespace of their parent container, except HTML\n  // tags get no namespace.\n\n  var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n  var domElement;\n  var namespaceURI = parentNamespace;\n\n  if (namespaceURI === HTML_NAMESPACE$1) {\n    namespaceURI = getIntrinsicNamespace(type);\n  }\n\n  if (namespaceURI === HTML_NAMESPACE$1) {\n    {\n      isCustomComponentTag = isCustomComponent(type, props); // Should this check be gated by parent namespace? Not sure we want to\n      // allow <SVG> or <mATH>.\n\n      if (!isCustomComponentTag && type !== type.toLowerCase()) {\n        error('<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type);\n      }\n    }\n\n    if (type === 'script') {\n      // Create the script via .innerHTML so its \"parser-inserted\" flag is\n      // set to true and it does not execute\n      var div = ownerDocument.createElement('div');\n\n      div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n      // This is guaranteed to yield a script element.\n\n      var firstChild = div.firstChild;\n      domElement = div.removeChild(firstChild);\n    } else if (typeof props.is === 'string') {\n      // $FlowIssue `createElement` should be updated for Web Components\n      domElement = ownerDocument.createElement(type, {\n        is: props.is\n      });\n    } else {\n      // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n      // See discussion in https://github.com/facebook/react/pull/6896\n      // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n      domElement = ownerDocument.createElement(type); // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n      // attributes on `select`s needs to be added before `option`s are inserted.\n      // This prevents:\n      // - a bug where the `select` does not scroll to the correct option because singular\n      //  `select` elements automatically pick the first item #13222\n      // - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n      // See https://github.com/facebook/react/issues/13222\n      // and https://github.com/facebook/react/issues/14239\n\n      if (type === 'select') {\n        var node = domElement;\n\n        if (props.multiple) {\n          node.multiple = true;\n        } else if (props.size) {\n          // Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n          // it is possible that no option is selected.\n          //\n          // This is only necessary when a select in \"single selection mode\".\n          node.size = props.size;\n        }\n      }\n    }\n  } else {\n    domElement = ownerDocument.createElementNS(namespaceURI, type);\n  }\n\n  {\n    if (namespaceURI === HTML_NAMESPACE$1) {\n      if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n        warnedUnknownTags[type] = true;\n\n        error('The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n      }\n    }\n  }\n\n  return domElement;\n}\nfunction createTextNode(text, rootContainerElement) {\n  return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n  var isCustomComponentTag = isCustomComponent(tag, rawProps);\n\n  {\n    validatePropertiesInDevelopment(tag, rawProps);\n  } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n  var props;\n\n  switch (tag) {\n    case 'iframe':\n    case 'object':\n    case 'embed':\n      trapBubbledEvent(TOP_LOAD, domElement);\n      props = rawProps;\n      break;\n\n    case 'video':\n    case 'audio':\n      // Create listener for each media event\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        trapBubbledEvent(mediaEventTypes[i], domElement);\n      }\n\n      props = rawProps;\n      break;\n\n    case 'source':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      props = rawProps;\n      break;\n\n    case 'img':\n    case 'image':\n    case 'link':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      trapBubbledEvent(TOP_LOAD, domElement);\n      props = rawProps;\n      break;\n\n    case 'form':\n      trapBubbledEvent(TOP_RESET, domElement);\n      trapBubbledEvent(TOP_SUBMIT, domElement);\n      props = rawProps;\n      break;\n\n    case 'details':\n      trapBubbledEvent(TOP_TOGGLE, domElement);\n      props = rawProps;\n      break;\n\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      props = getHostProps(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement); // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n\n    case 'option':\n      validateProps(domElement, rawProps);\n      props = getHostProps$1(domElement, rawProps);\n      break;\n\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      props = getHostProps$2(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement); // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      props = getHostProps$3(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement); // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n\n    default:\n      props = rawProps;\n  }\n\n  assertValidProps(tag, props);\n  setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, false);\n      break;\n\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement);\n      break;\n\n    case 'option':\n      postMountWrapper$1(domElement, rawProps);\n      break;\n\n    case 'select':\n      postMountWrapper$2(domElement, rawProps);\n      break;\n\n    default:\n      if (typeof props.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n\n      break;\n  }\n} // Calculate the diff between the two objects.\n\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n  {\n    validatePropertiesInDevelopment(tag, nextRawProps);\n  }\n\n  var updatePayload = null;\n  var lastProps;\n  var nextProps;\n\n  switch (tag) {\n    case 'input':\n      lastProps = getHostProps(domElement, lastRawProps);\n      nextProps = getHostProps(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    case 'option':\n      lastProps = getHostProps$1(domElement, lastRawProps);\n      nextProps = getHostProps$1(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    case 'select':\n      lastProps = getHostProps$2(domElement, lastRawProps);\n      nextProps = getHostProps$2(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    case 'textarea':\n      lastProps = getHostProps$3(domElement, lastRawProps);\n      nextProps = getHostProps$3(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n\n    default:\n      lastProps = lastRawProps;\n      nextProps = nextRawProps;\n\n      if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n\n      break;\n  }\n\n  assertValidProps(tag, nextProps);\n  var propKey;\n  var styleName;\n  var styleUpdates = null;\n\n  for (propKey in lastProps) {\n    if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n      continue;\n    }\n\n    if (propKey === STYLE) {\n      var lastStyle = lastProps[propKey];\n\n      for (styleName in lastStyle) {\n        if (lastStyle.hasOwnProperty(styleName)) {\n          if (!styleUpdates) {\n            styleUpdates = {};\n          }\n\n          styleUpdates[styleName] = '';\n        }\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) ; else if ( propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameModules.hasOwnProperty(propKey)) {\n      // This is a special case. If any listener updates we need to ensure\n      // that the \"current\" fiber pointer gets updated so we need a commit\n      // to update this element.\n      if (!updatePayload) {\n        updatePayload = [];\n      }\n    } else {\n      // For all other deleted properties we add it to the queue. We use\n      // the whitelist in the commit phase instead.\n      (updatePayload = updatePayload || []).push(propKey, null);\n    }\n  }\n\n  for (propKey in nextProps) {\n    var nextProp = nextProps[propKey];\n    var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n\n    if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n      continue;\n    }\n\n    if (propKey === STYLE) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      }\n\n      if (lastProp) {\n        // Unset styles on `lastProp` but not on `nextProp`.\n        for (styleName in lastProp) {\n          if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n\n            styleUpdates[styleName] = '';\n          }\n        } // Update styles that changed since `lastProp`.\n\n\n        for (styleName in nextProp) {\n          if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n\n            styleUpdates[styleName] = nextProp[styleName];\n          }\n        }\n      } else {\n        // Relies on `updateStylesByID` not mutating `styleUpdates`.\n        if (!styleUpdates) {\n          if (!updatePayload) {\n            updatePayload = [];\n          }\n\n          updatePayload.push(propKey, styleUpdates);\n        }\n\n        styleUpdates = nextProp;\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n      var lastHtml = lastProp ? lastProp[HTML$1] : undefined;\n\n      if (nextHtml != null) {\n        if (lastHtml !== nextHtml) {\n          (updatePayload = updatePayload || []).push(propKey, nextHtml);\n        }\n      }\n    } else if (propKey === CHILDREN) {\n      if (lastProp !== nextProp && (typeof nextProp === 'string' || typeof nextProp === 'number')) {\n        (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n      }\n    } else if ( propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        // We eagerly listen to this even though we haven't committed yet.\n        if ( typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n\n      if (!updatePayload && lastProp !== nextProp) {\n        // This is a special case. If any listener updates we need to ensure\n        // that the \"current\" props pointer gets updated so we need a commit\n        // to update this element.\n        updatePayload = [];\n      }\n    } else {\n      // For any other property we always add it to the queue and then we\n      // filter it out using the whitelist during the commit.\n      (updatePayload = updatePayload || []).push(propKey, nextProp);\n    }\n  }\n\n  if (styleUpdates) {\n    {\n      validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);\n    }\n\n    (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n  }\n\n  return updatePayload;\n} // Apply the diff.\n\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n  // Update checked *before* name.\n  // In the middle of an update, it is possible to have multiple checked.\n  // When a checked radio tries to change name, browser makes another radio's checked false.\n  if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n    updateChecked(domElement, nextRawProps);\n  }\n\n  var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n  var isCustomComponentTag = isCustomComponent(tag, nextRawProps); // Apply the diff.\n\n  updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag); // TODO: Ensure that an update gets scheduled if any of the special props\n  // changed.\n\n  switch (tag) {\n    case 'input':\n      // Update the wrapper around inputs *after* updating props. This has to\n      // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n      // raise warnings and prevent the new value from being assigned.\n      updateWrapper(domElement, nextRawProps);\n      break;\n\n    case 'textarea':\n      updateWrapper$1(domElement, nextRawProps);\n      break;\n\n    case 'select':\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      postUpdateWrapper(domElement, nextRawProps);\n      break;\n  }\n}\n\nfunction getPossibleStandardName(propName) {\n  {\n    var lowerCasedName = propName.toLowerCase();\n\n    if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      return null;\n    }\n\n    return possibleStandardNames[lowerCasedName] || null;\n  }\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n  var isCustomComponentTag;\n  var extraAttributeNames;\n\n  {\n    suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING] === true;\n    isCustomComponentTag = isCustomComponent(tag, rawProps);\n    validatePropertiesInDevelopment(tag, rawProps);\n  } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n  switch (tag) {\n    case 'iframe':\n    case 'object':\n    case 'embed':\n      trapBubbledEvent(TOP_LOAD, domElement);\n      break;\n\n    case 'video':\n    case 'audio':\n      // Create listener for each media event\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        trapBubbledEvent(mediaEventTypes[i], domElement);\n      }\n\n      break;\n\n    case 'source':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      break;\n\n    case 'img':\n    case 'image':\n    case 'link':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      trapBubbledEvent(TOP_LOAD, domElement);\n      break;\n\n    case 'form':\n      trapBubbledEvent(TOP_RESET, domElement);\n      trapBubbledEvent(TOP_SUBMIT, domElement);\n      break;\n\n    case 'details':\n      trapBubbledEvent(TOP_TOGGLE, domElement);\n      break;\n\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement); // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n\n    case 'option':\n      validateProps(domElement, rawProps);\n      break;\n\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement); // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement); // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n  }\n\n  assertValidProps(tag, rawProps);\n\n  {\n    extraAttributeNames = new Set();\n    var attributes = domElement.attributes;\n\n    for (var _i = 0; _i < attributes.length; _i++) {\n      var name = attributes[_i].name.toLowerCase();\n\n      switch (name) {\n        // Built-in SSR attribute is whitelisted\n        case 'data-reactroot':\n          break;\n        // Controlled attributes are not validated\n        // TODO: Only ignore them on controlled tags.\n\n        case 'value':\n          break;\n\n        case 'checked':\n          break;\n\n        case 'selected':\n          break;\n\n        default:\n          // Intentionally use the original name.\n          // See discussion in https://github.com/facebook/react/pull/10676.\n          extraAttributeNames.add(attributes[_i].name);\n      }\n    }\n  }\n\n  var updatePayload = null;\n\n  for (var propKey in rawProps) {\n    if (!rawProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n\n    var nextProp = rawProps[propKey];\n\n    if (propKey === CHILDREN) {\n      // For text content children we compare against textContent. This\n      // might match additional HTML that is hidden when we read it using\n      // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n      // satisfies our requirement. Our requirement is not to produce perfect\n      // HTML and attributes. Ideally we should preserve structure but it's\n      // ok not to if the visible content is still enough to indicate what\n      // even listeners these nodes might be wired up to.\n      // TODO: Warn if there is more than a single textNode as a child.\n      // TODO: Should we use domElement.firstChild.nodeValue to compare?\n      if (typeof nextProp === 'string') {\n        if (domElement.textContent !== nextProp) {\n          if ( !suppressHydrationWarning) {\n            warnForTextDifference(domElement.textContent, nextProp);\n          }\n\n          updatePayload = [CHILDREN, nextProp];\n        }\n      } else if (typeof nextProp === 'number') {\n        if (domElement.textContent !== '' + nextProp) {\n          if ( !suppressHydrationWarning) {\n            warnForTextDifference(domElement.textContent, nextProp);\n          }\n\n          updatePayload = [CHILDREN, '' + nextProp];\n        }\n      }\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if ( typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n    } else if ( // Convince Flow we've calculated it (it's DEV-only in this method.)\n    typeof isCustomComponentTag === 'boolean') {\n      // Validate that the properties correspond to their expected values.\n      var serverValue = void 0;\n      var propertyInfo = getPropertyInfo(propKey);\n\n      if (suppressHydrationWarning) ; else if ( propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING || // Controlled attributes are not validated\n      // TODO: Only ignore them on controlled tags.\n      propKey === 'value' || propKey === 'checked' || propKey === 'selected') ; else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n        var serverHTML = domElement.innerHTML;\n        var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n        var expectedHTML = normalizeHTML(domElement, nextHtml != null ? nextHtml : '');\n\n        if (expectedHTML !== serverHTML) {\n          warnForPropDifference(propKey, serverHTML, expectedHTML);\n        }\n      } else if (propKey === STYLE) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey);\n\n        if (canDiffStyleForHydrationWarning) {\n          var expectedStyle = createDangerousStringForStyles(nextProp);\n          serverValue = domElement.getAttribute('style');\n\n          if (expectedStyle !== serverValue) {\n            warnForPropDifference(propKey, serverValue, expectedStyle);\n          }\n        }\n      } else if (isCustomComponentTag) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey.toLowerCase());\n        serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n        if (nextProp !== serverValue) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n        var isMismatchDueToBadCasing = false;\n\n        if (propertyInfo !== null) {\n          // $FlowFixMe - Should be inferred as not undefined.\n          extraAttributeNames.delete(propertyInfo.attributeName);\n          serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n        } else {\n          var ownNamespace = parentNamespace;\n\n          if (ownNamespace === HTML_NAMESPACE$1) {\n            ownNamespace = getIntrinsicNamespace(tag);\n          }\n\n          if (ownNamespace === HTML_NAMESPACE$1) {\n            // $FlowFixMe - Should be inferred as not undefined.\n            extraAttributeNames.delete(propKey.toLowerCase());\n          } else {\n            var standardName = getPossibleStandardName(propKey);\n\n            if (standardName !== null && standardName !== propKey) {\n              // If an SVG prop is supplied with bad casing, it will\n              // be successfully parsed from HTML, but will produce a mismatch\n              // (and would be incorrectly rendered on the client).\n              // However, we already warn about bad casing elsewhere.\n              // So we'll skip the misleading extra mismatch warning in this case.\n              isMismatchDueToBadCasing = true; // $FlowFixMe - Should be inferred as not undefined.\n\n              extraAttributeNames.delete(standardName);\n            } // $FlowFixMe - Should be inferred as not undefined.\n\n\n            extraAttributeNames.delete(propKey);\n          }\n\n          serverValue = getValueForAttribute(domElement, propKey, nextProp);\n        }\n\n        if (nextProp !== serverValue && !isMismatchDueToBadCasing) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      }\n    }\n  }\n\n  {\n    // $FlowFixMe - Should be inferred as not undefined.\n    if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n      // $FlowFixMe - Should be inferred as not undefined.\n      warnForExtraAttributes(extraAttributeNames);\n    }\n  }\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, true);\n      break;\n\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement);\n      break;\n\n    case 'select':\n    case 'option':\n      // For input and textarea we current always set the value property at\n      // post mount to force it to diverge from attributes. However, for\n      // option and select we don't quite do the same thing and select\n      // is not resilient to the DOM state changing so we don't do that here.\n      // TODO: Consider not doing this for input and textarea.\n      break;\n\n    default:\n      if (typeof rawProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n\n      break;\n  }\n\n  return updatePayload;\n}\nfunction diffHydratedText(textNode, text) {\n  var isDifferent = textNode.nodeValue !== text;\n  return isDifferent;\n}\nfunction warnForUnmatchedText(textNode, text) {\n  {\n    warnForTextDifference(textNode.nodeValue, text);\n  }\n}\nfunction warnForDeletedHydratableElement(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n  }\n}\nfunction warnForDeletedHydratableText(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n  }\n}\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n  }\n}\nfunction warnForInsertedHydratedText(parentNode, text) {\n  {\n    if (text === '') {\n      // We expect to insert empty text nodes since they're not represented in\n      // the HTML.\n      // TODO: Remove this special case if we can just avoid inserting empty\n      // text nodes.\n      return;\n    }\n\n    if (didWarnInvalidHydration) {\n      return;\n    }\n\n    didWarnInvalidHydration = true;\n\n    error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n  }\n}\nfunction restoreControlledState$3(domElement, tag, props) {\n  switch (tag) {\n    case 'input':\n      restoreControlledState(domElement, props);\n      return;\n\n    case 'textarea':\n      restoreControlledState$2(domElement, props);\n      return;\n\n    case 'select':\n      restoreControlledState$1(domElement, props);\n      return;\n  }\n}\n\nfunction getActiveElement(doc) {\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n\n  return node;\n}\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\n\n\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n\n    node = node.parentNode;\n  }\n}\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\n\n\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === TEXT_NODE) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\n\nfunction getOffsets(outerNode) {\n  var ownerDocument = outerNode.ownerDocument;\n  var win = ownerDocument && ownerDocument.defaultView || window;\n  var selection = win.getSelection && win.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode,\n      anchorOffset = selection.anchorOffset,\n      focusNode = selection.focusNode,\n      focusOffset = selection.focusOffset; // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n  // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n  // expose properties, triggering a \"Permission denied error\" if any of its\n  // properties are accessed. The only seemingly possible way to avoid erroring\n  // is to access a property that typically works for non-anonymous divs and\n  // catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n  try {\n    /* eslint-disable no-unused-expressions */\n    anchorNode.nodeType;\n    focusNode.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\n\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n  var length = 0;\n  var start = -1;\n  var end = -1;\n  var indexWithinAnchor = 0;\n  var indexWithinFocus = 0;\n  var node = outerNode;\n  var parentNode = null;\n\n  outer: while (true) {\n    var next = null;\n\n    while (true) {\n      if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n        start = length + anchorOffset;\n      }\n\n      if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n        end = length + focusOffset;\n      }\n\n      if (node.nodeType === TEXT_NODE) {\n        length += node.nodeValue.length;\n      }\n\n      if ((next = node.firstChild) === null) {\n        break;\n      } // Moving from `node` to its first child `next`.\n\n\n      parentNode = node;\n      node = next;\n    }\n\n    while (true) {\n      if (node === outerNode) {\n        // If `outerNode` has children, this is always the second time visiting\n        // it. If it has no children, this is still the first loop, and the only\n        // valid selection is anchorNode and focusNode both equal to this node\n        // and both offsets 0, in which case we will have handled above.\n        break outer;\n      }\n\n      if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n        start = length;\n      }\n\n      if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n        end = length;\n      }\n\n      if ((next = node.nextSibling) !== null) {\n        break;\n      }\n\n      node = parentNode;\n      parentNode = node.parentNode;\n    } // Moving from `node` to its next sibling `next`.\n\n\n    node = next;\n  }\n\n  if (start === -1 || end === -1) {\n    // This should never happen. (Would happen if the anchor/focus nodes aren't\n    // actually inside the passed-in node.)\n    return null;\n  }\n\n  return {\n    start: start,\n    end: end\n  };\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n\nfunction setOffsets(node, offsets) {\n  var doc = node.ownerDocument || document;\n  var win = doc && doc.defaultView || window; // Edge fails with \"Object expected\" in some scenarios.\n  // (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n  // fails when pasting 100+ items)\n\n  if (!win.getSelection) {\n    return;\n  }\n\n  var selection = win.getSelection();\n  var length = node.textContent.length;\n  var start = Math.min(offsets.start, length);\n  var end = offsets.end === undefined ? start : Math.min(offsets.end, length); // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n      return;\n    }\n\n    var range = doc.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nfunction isTextNode(node) {\n  return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nfunction isInDocument(node) {\n  return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n  try {\n    // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n    // to throw, e.g. if it has a cross-origin src attribute.\n    // Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n    // iframe.contentDocument.defaultView;\n    // A safety way is to access one of the cross origin properties: Window or Location\n    // Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n    // https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\n    return typeof iframe.contentWindow.location.href === 'string';\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction getActiveElementDeep() {\n  var win = window;\n  var element = getActiveElement();\n\n  while (element instanceof win.HTMLIFrameElement) {\n    if (isSameOriginFrame(element)) {\n      win = element.contentWindow;\n    } else {\n      return element;\n    }\n\n    element = getActiveElement(win.document);\n  }\n\n  return element;\n}\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\n\n\nfunction hasSelectionCapabilities(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\nfunction getSelectionInformation() {\n  var focusedElem = getActiveElementDeep();\n  return {\n    // Used by Flare\n    activeElementDetached: null,\n    focusedElem: focusedElem,\n    selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection(focusedElem) : null\n  };\n}\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n\nfunction restoreSelection(priorSelectionInformation) {\n  var curFocusedElem = getActiveElementDeep();\n  var priorFocusedElem = priorSelectionInformation.focusedElem;\n  var priorSelectionRange = priorSelectionInformation.selectionRange;\n\n  if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n    if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n      setSelection(priorFocusedElem, priorSelectionRange);\n    } // Focusing a node can change the scroll position, which is undesirable\n\n\n    var ancestors = [];\n    var ancestor = priorFocusedElem;\n\n    while (ancestor = ancestor.parentNode) {\n      if (ancestor.nodeType === ELEMENT_NODE) {\n        ancestors.push({\n          element: ancestor,\n          left: ancestor.scrollLeft,\n          top: ancestor.scrollTop\n        });\n      }\n    }\n\n    if (typeof priorFocusedElem.focus === 'function') {\n      priorFocusedElem.focus();\n    }\n\n    for (var i = 0; i < ancestors.length; i++) {\n      var info = ancestors[i];\n      info.element.scrollLeft = info.left;\n      info.element.scrollTop = info.top;\n    }\n  }\n}\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n\nfunction getSelection(input) {\n  var selection;\n\n  if ('selectionStart' in input) {\n    // Modern browser with input or textarea.\n    selection = {\n      start: input.selectionStart,\n      end: input.selectionEnd\n    };\n  } else {\n    // Content editable or old IE textarea.\n    selection = getOffsets(input);\n  }\n\n  return selection || {\n    start: 0,\n    end: 0\n  };\n}\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input     Set selection bounds of this input or textarea\n * -@offsets   Object of same form that is returned from get*\n */\n\nfunction setSelection(input, offsets) {\n  var start = offsets.start,\n      end = offsets.end;\n\n  if (end === undefined) {\n    end = start;\n  }\n\n  if ('selectionStart' in input) {\n    input.selectionStart = start;\n    input.selectionEnd = Math.min(end, input.value.length);\n  } else {\n    setOffsets(input, offsets);\n  }\n}\n\nvar validateDOMNesting = function () {};\n\nvar updatedAncestorInfo = function () {};\n\n{\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n\n  var buttonScopeTags = inScopeTags.concat(['button']); // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n  var emptyAncestorInfo = {\n    current: null,\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  updatedAncestorInfo = function (oldInfo, tag) {\n    var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n\n    var info = {\n      tag: tag\n    };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    } // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.current = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n  /**\n   * Returns whether\n   */\n\n\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n\n      case 'option':\n        return tag === '#text';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n\n      case 'html':\n        return tag === 'head' || tag === 'body' || tag === 'frameset';\n\n      case 'frameset':\n        return tag === 'frame';\n\n      case '#document':\n        return tag === 'html';\n    } // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'body':\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frameset':\n      case 'frame':\n      case 'head':\n      case 'html':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n  /**\n   * Returns whether\n   */\n\n\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n      case 'pre':\n      case 'listing':\n      case 'table':\n      case 'hr':\n      case 'xmp':\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  var didWarn$1 = {};\n\n  validateDOMNesting = function (childTag, childText, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    if (childText != null) {\n      if (childTag != null) {\n        error('validateDOMNesting: when childText is passed, childTag should be null');\n      }\n\n      childTag = '#text';\n    }\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var invalidParentOrAncestor = invalidParent || invalidAncestor;\n\n    if (!invalidParentOrAncestor) {\n      return;\n    }\n\n    var ancestorTag = invalidParentOrAncestor.tag;\n    var addendum = getCurrentFiberStackInDev();\n    var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + addendum;\n\n    if (didWarn$1[warnKey]) {\n      return;\n    }\n\n    didWarn$1[warnKey] = true;\n    var tagDisplayName = childTag;\n    var whitespaceInfo = '';\n\n    if (childTag === '#text') {\n      if (/\\S/.test(childText)) {\n        tagDisplayName = 'Text nodes';\n      } else {\n        tagDisplayName = 'Whitespace text nodes';\n        whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n      }\n    } else {\n      tagDisplayName = '<' + childTag + '>';\n    }\n\n    if (invalidParent) {\n      var info = '';\n\n      if (ancestorTag === 'table' && childTag === 'tr') {\n        info += ' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by ' + 'the browser.';\n      }\n\n      error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info);\n    } else {\n      error('validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.', tagDisplayName, ancestorTag);\n    }\n  };\n}\n\nvar SUPPRESS_HYDRATION_WARNING$1;\n\n{\n  SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\n}\n\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\nvar STYLE$1 = 'style';\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\nfunction shouldAutoFocusHostComponent(type, props) {\n  switch (type) {\n    case 'button':\n    case 'input':\n    case 'select':\n    case 'textarea':\n      return !!props.autoFocus;\n  }\n\n  return false;\n}\nfunction getRootHostContext(rootContainerInstance) {\n  var type;\n  var namespace;\n  var nodeType = rootContainerInstance.nodeType;\n\n  switch (nodeType) {\n    case DOCUMENT_NODE:\n    case DOCUMENT_FRAGMENT_NODE:\n      {\n        type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n        var root = rootContainerInstance.documentElement;\n        namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n        break;\n      }\n\n    default:\n      {\n        var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n        var ownNamespace = container.namespaceURI || null;\n        type = container.tagName;\n        namespace = getChildNamespace(ownNamespace, type);\n        break;\n      }\n  }\n\n  {\n    var validatedTag = type.toLowerCase();\n    var ancestorInfo = updatedAncestorInfo(null, validatedTag);\n    return {\n      namespace: namespace,\n      ancestorInfo: ancestorInfo\n    };\n  }\n}\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n  {\n    var parentHostContextDev = parentHostContext;\n    var namespace = getChildNamespace(parentHostContextDev.namespace, type);\n    var ancestorInfo = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n    return {\n      namespace: namespace,\n      ancestorInfo: ancestorInfo\n    };\n  }\n}\nfunction getPublicInstance(instance) {\n  return instance;\n}\nfunction prepareForCommit(containerInfo) {\n  eventsEnabled = isEnabled();\n  selectionInformation = getSelectionInformation();\n  setEnabled(false);\n}\nfunction resetAfterCommit(containerInfo) {\n  restoreSelection(selectionInformation);\n  setEnabled(eventsEnabled);\n  eventsEnabled = null;\n\n  selectionInformation = null;\n}\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  var parentNamespace;\n\n  {\n    // TODO: take namespace into account when validating.\n    var hostContextDev = hostContext;\n    validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n\n    if (typeof props.children === 'string' || typeof props.children === 'number') {\n      var string = '' + props.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n\n    parentNamespace = hostContextDev.namespace;\n  }\n\n  var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n  precacheFiberNode(internalInstanceHandle, domElement);\n  updateFiberProps(domElement, props);\n  return domElement;\n}\nfunction appendInitialChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n  setInitialProperties(domElement, type, props, rootContainerInstance);\n  return shouldAutoFocusHostComponent(type, props);\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n  {\n    var hostContextDev = hostContext;\n\n    if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n      var string = '' + newProps.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n  }\n\n  return diffProperties(domElement, type, oldProps, newProps, rootContainerInstance);\n}\nfunction shouldSetTextContent(type, props) {\n  return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\nfunction shouldDeprioritizeSubtree(type, props) {\n  return !!props.hidden;\n}\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n  {\n    var hostContextDev = hostContext;\n    validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n  }\n\n  var textNode = createTextNode(text, rootContainerInstance);\n  precacheFiberNode(internalInstanceHandle, textNode);\n  return textNode;\n}\n// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\n\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1; // -------------------\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n  // Despite the naming that might imply otherwise, this method only\n  // fires if there is an `Update` effect scheduled during mounting.\n  // This happens if `finalizeInitialChildren` returns `true` (which it\n  // does to implement the `autoFocus` attribute on the client). But\n  // there are also other cases when this might happen (such as patching\n  // up text content during hydration mismatch). So we'll check this again.\n  if (shouldAutoFocusHostComponent(type, newProps)) {\n    domElement.focus();\n  }\n}\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n  // Update the props handle so that we know which props are the ones with\n  // with current event handlers.\n  updateFiberProps(domElement, newProps); // Apply the diff to the DOM node.\n\n  updateProperties(domElement, updatePayload, type, oldProps, newProps);\n}\nfunction resetTextContent(domElement) {\n  setTextContent(domElement, '');\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n  textInstance.nodeValue = newText;\n}\nfunction appendChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\nfunction appendChildToContainer(container, child) {\n  var parentNode;\n\n  if (container.nodeType === COMMENT_NODE) {\n    parentNode = container.parentNode;\n    parentNode.insertBefore(child, container);\n  } else {\n    parentNode = container;\n    parentNode.appendChild(child);\n  } // This container might be used for a portal.\n  // If something inside a portal is clicked, that click should bubble\n  // through the React tree. However, on Mobile Safari the click would\n  // never bubble through the *DOM* tree unless an ancestor with onclick\n  // event exists. So we wouldn't see it and dispatch it.\n  // This is why we ensure that non React root containers have inline onclick\n  // defined.\n  // https://github.com/facebook/react/issues/11918\n\n\n  var reactRootContainer = container._reactRootContainer;\n\n  if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n    // TODO: This cast may not be sound for SVG, MathML or custom elements.\n    trapClickOnNonInteractiveElement(parentNode);\n  }\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n  parentInstance.insertBefore(child, beforeChild);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.insertBefore(child, beforeChild);\n  } else {\n    container.insertBefore(child, beforeChild);\n  }\n}\nfunction removeChild(parentInstance, child) {\n  parentInstance.removeChild(child);\n}\nfunction removeChildFromContainer(container, child) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.removeChild(child);\n  } else {\n    container.removeChild(child);\n  }\n}\n\nfunction hideInstance(instance) {\n  // pass host context to this method?\n\n\n  instance = instance;\n  var style = instance.style;\n\n  if (typeof style.setProperty === 'function') {\n    style.setProperty('display', 'none', 'important');\n  } else {\n    style.display = 'none';\n  }\n}\nfunction hideTextInstance(textInstance) {\n  textInstance.nodeValue = '';\n}\nfunction unhideInstance(instance, props) {\n  instance = instance;\n  var styleProp = props[STYLE$1];\n  var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n  instance.style.display = dangerousStyleValue('display', display);\n}\nfunction unhideTextInstance(textInstance, text) {\n  textInstance.nodeValue = text;\n} // -------------------\nfunction canHydrateInstance(instance, type, props) {\n  if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n    return null;\n  } // This has now been refined to an element node.\n\n\n  return instance;\n}\nfunction canHydrateTextInstance(instance, text) {\n  if (text === '' || instance.nodeType !== TEXT_NODE) {\n    // Empty strings are not parsed by HTML so there won't be a correct match here.\n    return null;\n  } // This has now been refined to a text node.\n\n\n  return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n  return instance.data === SUSPENSE_PENDING_START_DATA;\n}\nfunction isSuspenseInstanceFallback(instance) {\n  return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\n\nfunction getNextHydratable(node) {\n  // Skip non-hydratable nodes.\n  for (; node != null; node = node.nextSibling) {\n    var nodeType = node.nodeType;\n\n    if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n      break;\n    }\n  }\n\n  return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n  return getNextHydratable(instance.nextSibling);\n}\nfunction getFirstHydratableChild(parentInstance) {\n  return getNextHydratable(parentInstance.firstChild);\n}\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, instance); // TODO: Possibly defer this until the commit phase where all the events\n  // get attached.\n\n  updateFiberProps(instance, props);\n  var parentNamespace;\n\n  {\n    var hostContextDev = hostContext;\n    parentNamespace = hostContextDev.namespace;\n  }\n\n  return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance);\n}\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, textInstance);\n  return diffHydratedText(textInstance, text);\n}\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n  var node = suspenseInstance.nextSibling; // Skip past all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n\n  var depth = 0;\n\n  while (node) {\n    if (node.nodeType === COMMENT_NODE) {\n      var data = node.data;\n\n      if (data === SUSPENSE_END_DATA) {\n        if (depth === 0) {\n          return getNextHydratableSibling(node);\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n        depth++;\n      }\n    }\n\n    node = node.nextSibling;\n  } // TODO: Warn, we didn't find the end comment boundary.\n\n\n  return null;\n} // Returns the SuspenseInstance if this node is a direct child of a\n// SuspenseInstance. I.e. if its previous sibling is a Comment with\n// SUSPENSE_x_START_DATA. Otherwise, null.\n\nfunction getParentSuspenseInstance(targetInstance) {\n  var node = targetInstance.previousSibling; // Skip past all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n\n  var depth = 0;\n\n  while (node) {\n    if (node.nodeType === COMMENT_NODE) {\n      var data = node.data;\n\n      if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n        if (depth === 0) {\n          return node;\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_END_DATA) {\n        depth++;\n      }\n    }\n\n    node = node.previousSibling;\n  }\n\n  return null;\n}\nfunction commitHydratedContainer(container) {\n  // Retry if any event replaying was blocked on this.\n  retryIfBlockedOn(container);\n}\nfunction commitHydratedSuspenseInstance(suspenseInstance) {\n  // Retry if any event replaying was blocked on this.\n  retryIfBlockedOn(suspenseInstance);\n}\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {\n  {\n    warnForUnmatchedText(textInstance, text);\n  }\n}\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {\n  if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n    warnForUnmatchedText(textInstance, text);\n  }\n}\nfunction didNotHydrateContainerInstance(parentContainer, instance) {\n  {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentContainer, instance);\n    } else if (instance.nodeType === COMMENT_NODE) ; else {\n      warnForDeletedHydratableText(parentContainer, instance);\n    }\n  }\n}\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {\n  if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentInstance, instance);\n    } else if (instance.nodeType === COMMENT_NODE) ; else {\n      warnForDeletedHydratableText(parentInstance, instance);\n    }\n  }\n}\nfunction didNotFindHydratableContainerInstance(parentContainer, type, props) {\n  {\n    warnForInsertedHydratedElement(parentContainer, type);\n  }\n}\nfunction didNotFindHydratableContainerTextInstance(parentContainer, text) {\n  {\n    warnForInsertedHydratedText(parentContainer, text);\n  }\n}\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {\n  if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n    warnForInsertedHydratedElement(parentInstance, type);\n  }\n}\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {\n  if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n    warnForInsertedHydratedText(parentInstance, text);\n  }\n}\nfunction didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance) {\n  if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) ;\n}\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactInternalInstance$' + randomKey;\nvar internalEventHandlersKey = '__reactEventHandlers$' + randomKey;\nvar internalContainerInstanceKey = '__reactContainere$' + randomKey;\nfunction precacheFiberNode(hostInst, node) {\n  node[internalInstanceKey] = hostInst;\n}\nfunction markContainerAsRoot(hostRoot, node) {\n  node[internalContainerInstanceKey] = hostRoot;\n}\nfunction unmarkContainerAsRoot(node) {\n  node[internalContainerInstanceKey] = null;\n}\nfunction isContainerMarkedAsRoot(node) {\n  return !!node[internalContainerInstanceKey];\n} // Given a DOM node, return the closest HostComponent or HostText fiber ancestor.\n// If the target node is part of a hydrated or not yet rendered subtree, then\n// this may also return a SuspenseComponent or HostRoot to indicate that.\n// Conceptually the HostRoot fiber is a child of the Container node. So if you\n// pass the Container node as the targetNode, you will not actually get the\n// HostRoot back. To get to the HostRoot, you need to pass a child of it.\n// The same thing applies to Suspense boundaries.\n\nfunction getClosestInstanceFromNode(targetNode) {\n  var targetInst = targetNode[internalInstanceKey];\n\n  if (targetInst) {\n    // Don't return HostRoot or SuspenseComponent here.\n    return targetInst;\n  } // If the direct event target isn't a React owned DOM node, we need to look\n  // to see if one of its parents is a React owned DOM node.\n\n\n  var parentNode = targetNode.parentNode;\n\n  while (parentNode) {\n    // We'll check if this is a container root that could include\n    // React nodes in the future. We need to check this first because\n    // if we're a child of a dehydrated container, we need to first\n    // find that inner container before moving on to finding the parent\n    // instance. Note that we don't check this field on  the targetNode\n    // itself because the fibers are conceptually between the container\n    // node and the first child. It isn't surrounding the container node.\n    // If it's not a container, we check if it's an instance.\n    targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey];\n\n    if (targetInst) {\n      // Since this wasn't the direct target of the event, we might have\n      // stepped past dehydrated DOM nodes to get here. However they could\n      // also have been non-React nodes. We need to answer which one.\n      // If we the instance doesn't have any children, then there can't be\n      // a nested suspense boundary within it. So we can use this as a fast\n      // bailout. Most of the time, when people add non-React children to\n      // the tree, it is using a ref to a child-less DOM node.\n      // Normally we'd only need to check one of the fibers because if it\n      // has ever gone from having children to deleting them or vice versa\n      // it would have deleted the dehydrated boundary nested inside already.\n      // However, since the HostRoot starts out with an alternate it might\n      // have one on the alternate so we need to check in case this was a\n      // root.\n      var alternate = targetInst.alternate;\n\n      if (targetInst.child !== null || alternate !== null && alternate.child !== null) {\n        // Next we need to figure out if the node that skipped past is\n        // nested within a dehydrated boundary and if so, which one.\n        var suspenseInstance = getParentSuspenseInstance(targetNode);\n\n        while (suspenseInstance !== null) {\n          // We found a suspense instance. That means that we haven't\n          // hydrated it yet. Even though we leave the comments in the\n          // DOM after hydrating, and there are boundaries in the DOM\n          // that could already be hydrated, we wouldn't have found them\n          // through this pass since if the target is hydrated it would\n          // have had an internalInstanceKey on it.\n          // Let's get the fiber associated with the SuspenseComponent\n          // as the deepest instance.\n          var targetSuspenseInst = suspenseInstance[internalInstanceKey];\n\n          if (targetSuspenseInst) {\n            return targetSuspenseInst;\n          } // If we don't find a Fiber on the comment, it might be because\n          // we haven't gotten to hydrate it yet. There might still be a\n          // parent boundary that hasn't above this one so we need to find\n          // the outer most that is known.\n\n\n          suspenseInstance = getParentSuspenseInstance(suspenseInstance); // If we don't find one, then that should mean that the parent\n          // host component also hasn't hydrated yet. We can return it\n          // below since it will bail out on the isMounted check later.\n        }\n      }\n\n      return targetInst;\n    }\n\n    targetNode = parentNode;\n    parentNode = targetNode.parentNode;\n  }\n\n  return null;\n}\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\n\nfunction getInstanceFromNode$1(node) {\n  var inst = node[internalInstanceKey] || node[internalContainerInstanceKey];\n\n  if (inst) {\n    if (inst.tag === HostComponent || inst.tag === HostText || inst.tag === SuspenseComponent || inst.tag === HostRoot) {\n      return inst;\n    } else {\n      return null;\n    }\n  }\n\n  return null;\n}\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\n\nfunction getNodeFromInstance$1(inst) {\n  if (inst.tag === HostComponent || inst.tag === HostText) {\n    // In Fiber this, is just the state node right now. We assume it will be\n    // a host component or host text.\n    return inst.stateNode;\n  } // Without this first invariant, passing a non-DOM-component triggers the next\n  // invariant for a missing parent, which is super confusing.\n\n\n  {\n    {\n      throw Error( \"getNodeFromInstance: Invalid argument.\" );\n    }\n  }\n}\nfunction getFiberCurrentPropsFromNode$1(node) {\n  return node[internalEventHandlersKey] || null;\n}\nfunction updateFiberProps(node, props) {\n  node[internalEventHandlersKey] = props;\n}\n\nfunction getParent(inst) {\n  do {\n    inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n    // That is depending on if we want nested subtrees (layers) to bubble\n    // events to their parent. We could also go through parentNode on the\n    // host node but that wouldn't work for React Native and doesn't let us\n    // do the portal feature.\n  } while (inst && inst.tag !== HostComponent);\n\n  if (inst) {\n    return inst;\n  }\n\n  return null;\n}\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\n\n\nfunction getLowestCommonAncestor(instA, instB) {\n  var depthA = 0;\n\n  for (var tempA = instA; tempA; tempA = getParent(tempA)) {\n    depthA++;\n  }\n\n  var depthB = 0;\n\n  for (var tempB = instB; tempB; tempB = getParent(tempB)) {\n    depthB++;\n  } // If A is deeper, crawl up.\n\n\n  while (depthA - depthB > 0) {\n    instA = getParent(instA);\n    depthA--;\n  } // If B is deeper, crawl up.\n\n\n  while (depthB - depthA > 0) {\n    instB = getParent(instB);\n    depthB--;\n  } // Walk in lockstep until we find a match.\n\n\n  var depth = depthA;\n\n  while (depth--) {\n    if (instA === instB || instA === instB.alternate) {\n      return instA;\n    }\n\n    instA = getParent(instA);\n    instB = getParent(instB);\n  }\n\n  return null;\n}\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\n\nfunction traverseTwoPhase(inst, fn, arg) {\n  var path = [];\n\n  while (inst) {\n    path.push(inst);\n    inst = getParent(inst);\n  }\n\n  var i;\n\n  for (i = path.length; i-- > 0;) {\n    fn(path[i], 'captured', arg);\n  }\n\n  for (i = 0; i < path.length; i++) {\n    fn(path[i], 'bubbled', arg);\n  }\n}\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\n\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n  var common = from && to ? getLowestCommonAncestor(from, to) : null;\n  var pathFrom = [];\n\n  while (true) {\n    if (!from) {\n      break;\n    }\n\n    if (from === common) {\n      break;\n    }\n\n    var alternate = from.alternate;\n\n    if (alternate !== null && alternate === common) {\n      break;\n    }\n\n    pathFrom.push(from);\n    from = getParent(from);\n  }\n\n  var pathTo = [];\n\n  while (true) {\n    if (!to) {\n      break;\n    }\n\n    if (to === common) {\n      break;\n    }\n\n    var _alternate = to.alternate;\n\n    if (_alternate !== null && _alternate === common) {\n      break;\n    }\n\n    pathTo.push(to);\n    to = getParent(to);\n  }\n\n  for (var i = 0; i < pathFrom.length; i++) {\n    fn(pathFrom[i], 'bubbled', argFrom);\n  }\n\n  for (var _i = pathTo.length; _i-- > 0;) {\n    fn(pathTo[_i], 'captured', argTo);\n  }\n}\n\nfunction isInteractive(tag) {\n  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n  switch (name) {\n    case 'onClick':\n    case 'onClickCapture':\n    case 'onDoubleClick':\n    case 'onDoubleClickCapture':\n    case 'onMouseDown':\n    case 'onMouseDownCapture':\n    case 'onMouseMove':\n    case 'onMouseMoveCapture':\n    case 'onMouseUp':\n    case 'onMouseUpCapture':\n    case 'onMouseEnter':\n      return !!(props.disabled && isInteractive(type));\n\n    default:\n      return false;\n  }\n}\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n\nfunction getListener(inst, registrationName) {\n  var listener; // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n  // live here; needs to be moved to a better place soon\n\n  var stateNode = inst.stateNode;\n\n  if (!stateNode) {\n    // Work in progress (ex: onload events in incremental mode).\n    return null;\n  }\n\n  var props = getFiberCurrentPropsFromNode(stateNode);\n\n  if (!props) {\n    // Work in progress.\n    return null;\n  }\n\n  listener = props[registrationName];\n\n  if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n    return null;\n  }\n\n  if (!(!listener || typeof listener === 'function')) {\n    {\n      throw Error( \"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\" );\n    }\n  }\n\n  return listener;\n}\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(inst, registrationName);\n}\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing even a\n * single one.\n */\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\n\n\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n  {\n    if (!inst) {\n      error('Dispatching inst must not be null');\n    }\n  }\n\n  var listener = listenerAtPhase(inst, event, phase);\n\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n  }\n}\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\n\n\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n  }\n}\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\n\n\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n  if (inst && event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(inst, registrationName);\n\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n    }\n  }\n}\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\n\n\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event._targetInst, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n  traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\nfunction initialize(nativeEventTarget) {\n  root = nativeEventTarget;\n  startText = getText();\n  return true;\n}\nfunction reset() {\n  root = null;\n  startText = null;\n  fallbackText = null;\n}\nfunction getData() {\n  if (fallbackText) {\n    return fallbackText;\n  }\n\n  var start;\n  var startValue = startText;\n  var startLength = startValue.length;\n  var end;\n  var endValue = getText();\n  var endLength = endValue.length;\n\n  for (start = 0; start < startLength; start++) {\n    if (startValue[start] !== endValue[start]) {\n      break;\n    }\n  }\n\n  var minEnd = startLength - start;\n\n  for (end = 1; end <= minEnd; end++) {\n    if (startValue[startLength - end] !== endValue[endLength - end]) {\n      break;\n    }\n  }\n\n  var sliceTail = end > 1 ? 1 - end : undefined;\n  fallbackText = endValue.slice(start, sliceTail);\n  return fallbackText;\n}\nfunction getText() {\n  if ('value' in root) {\n    return root.value;\n  }\n\n  return root.textContent;\n}\n\nvar EVENT_POOL_SIZE = 10;\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar EventInterface = {\n  type: null,\n  target: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: function () {\n    return null;\n  },\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\nfunction functionThatReturnsTrue() {\n  return true;\n}\n\nfunction functionThatReturnsFalse() {\n  return false;\n}\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\n\n\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n  {\n    // these have a getter/setter for warnings\n    delete this.nativeEvent;\n    delete this.preventDefault;\n    delete this.stopPropagation;\n    delete this.isDefaultPrevented;\n    delete this.isPropagationStopped;\n  }\n\n  this.dispatchConfig = dispatchConfig;\n  this._targetInst = targetInst;\n  this.nativeEvent = nativeEvent;\n  var Interface = this.constructor.Interface;\n\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n\n    {\n      delete this[propName]; // this has a getter/setter for warnings\n    }\n\n    var normalize = Interface[propName];\n\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      if (propName === 'target') {\n        this.target = nativeEventTarget;\n      } else {\n        this[propName] = nativeEvent[propName];\n      }\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n  if (defaultPrevented) {\n    this.isDefaultPrevented = functionThatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = functionThatReturnsFalse;\n  }\n\n  this.isPropagationStopped = functionThatReturnsFalse;\n  return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else if (typeof event.returnValue !== 'unknown') {\n      event.returnValue = false;\n    }\n\n    this.isDefaultPrevented = functionThatReturnsTrue;\n  },\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else if (typeof event.cancelBubble !== 'unknown') {\n      // The ChangeEventPlugin registers a \"propertychange\" event for\n      // IE. This event does not support bubbling or cancelling, and\n      // any references to cancelBubble throw \"Member not found\".  A\n      // typeof check of \"unknown\" circumvents this issue (and is also\n      // IE specific).\n      event.cancelBubble = true;\n    }\n\n    this.isPropagationStopped = functionThatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = functionThatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: functionThatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n\n    for (var propName in Interface) {\n      {\n        Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n      }\n    }\n\n    this.dispatchConfig = null;\n    this._targetInst = null;\n    this.nativeEvent = null;\n    this.isDefaultPrevented = functionThatReturnsFalse;\n    this.isPropagationStopped = functionThatReturnsFalse;\n    this._dispatchListeners = null;\n    this._dispatchInstances = null;\n\n    {\n      Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n      Object.defineProperty(this, 'isDefaultPrevented', getPooledWarningPropertyDefinition('isDefaultPrevented', functionThatReturnsFalse));\n      Object.defineProperty(this, 'isPropagationStopped', getPooledWarningPropertyDefinition('isPropagationStopped', functionThatReturnsFalse));\n      Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', function () {}));\n      Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', function () {}));\n    }\n  }\n});\n\nSyntheticEvent.Interface = EventInterface;\n/**\n * Helper to reduce boilerplate when creating subclasses.\n */\n\nSyntheticEvent.extend = function (Interface) {\n  var Super = this;\n\n  var E = function () {};\n\n  E.prototype = Super.prototype;\n  var prototype = new E();\n\n  function Class() {\n    return Super.apply(this, arguments);\n  }\n\n  _assign(prototype, Class.prototype);\n\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n  Class.Interface = _assign({}, Super.Interface, Interface);\n  Class.extend = Super.extend;\n  addEventPoolingTo(Class);\n  return Class;\n};\n\naddEventPoolingTo(SyntheticEvent);\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {String} propName\n * @param {?object} getVal\n * @return {object} defineProperty object\n */\n\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n  var isFunction = typeof getVal === 'function';\n  return {\n    configurable: true,\n    set: set,\n    get: get\n  };\n\n  function set(val) {\n    var action = isFunction ? 'setting the method' : 'setting the property';\n    warn(action, 'This is effectively a no-op');\n    return val;\n  }\n\n  function get() {\n    var action = isFunction ? 'accessing the method' : 'accessing the property';\n    var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n    warn(action, result);\n    return getVal;\n  }\n\n  function warn(action, result) {\n    {\n      error(\"This synthetic event is reused for performance reasons. If you're seeing this, \" + \"you're %s `%s` on a released/nullified synthetic event. %s. \" + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result);\n    }\n  }\n}\n\nfunction getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) {\n  var EventConstructor = this;\n\n  if (EventConstructor.eventPool.length) {\n    var instance = EventConstructor.eventPool.pop();\n    EventConstructor.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n    return instance;\n  }\n\n  return new EventConstructor(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\n\nfunction releasePooledEvent(event) {\n  var EventConstructor = this;\n\n  if (!(event instanceof EventConstructor)) {\n    {\n      throw Error( \"Trying to release an event instance into a pool of a different type.\" );\n    }\n  }\n\n  event.destructor();\n\n  if (EventConstructor.eventPool.length < EVENT_POOL_SIZE) {\n    EventConstructor.eventPool.push(event);\n  }\n}\n\nfunction addEventPoolingTo(EventConstructor) {\n  EventConstructor.eventPool = [];\n  EventConstructor.getPooled = getPooledEvent;\n  EventConstructor.release = releasePooledEvent;\n}\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\nvar SyntheticCompositionEvent = SyntheticEvent.extend({\n  data: null\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\n\nvar SyntheticInputEvent = SyntheticEvent.extend({\n  data: null\n});\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\n\nvar START_KEYCODE = 229;\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\nvar documentMode = null;\n\nif (canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n} // Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\n\n\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode; // In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\n\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); // Events and their corresponding property names.\n\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: 'onBeforeInput',\n      captured: 'onBeforeInputCapture'\n    },\n    dependencies: [TOP_COMPOSITION_END, TOP_KEY_PRESS, TOP_TEXT_INPUT, TOP_PASTE]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionEnd',\n      captured: 'onCompositionEndCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_END, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionStart',\n      captured: 'onCompositionStartCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_START, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionUpdate',\n      captured: 'onCompositionUpdateCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_UPDATE, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  }\n}; // Track whether we've ever handled a keypress on the space key.\n\nvar hasSpaceKeypress = false;\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\n\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\n\n\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case TOP_COMPOSITION_START:\n      return eventTypes.compositionStart;\n\n    case TOP_COMPOSITION_END:\n      return eventTypes.compositionEnd;\n\n    case TOP_COMPOSITION_UPDATE:\n      return eventTypes.compositionUpdate;\n  }\n}\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === TOP_KEY_DOWN && nativeEvent.keyCode === START_KEYCODE;\n}\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_KEY_UP:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n\n    case TOP_KEY_DOWN:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n\n    case TOP_KEY_PRESS:\n    case TOP_MOUSE_DOWN:\n    case TOP_BLUR:\n      // Events are not possible without cancelling IME.\n      return true;\n\n    default:\n      return false;\n  }\n}\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\n\n\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n\n  return null;\n}\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isUsingKoreanIME(nativeEvent) {\n  return nativeEvent.locale === 'ko';\n} // Track the current IME composition status, if any.\n\n\nvar isComposing = false;\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\n\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var eventType;\n  var fallbackData;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!isComposing) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!isComposing && eventType === eventTypes.compositionStart) {\n      isComposing = initialize(nativeEventTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (isComposing) {\n        fallbackData = getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n/**\n * @param {TopLevelType} topLevelType Number from `TopLevelType`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\n\n\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_COMPOSITION_END:\n      return getDataFromCustomEvent(nativeEvent);\n\n    case TOP_KEY_PRESS:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case TOP_TEXT_INPUT:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to ignore it.\n\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {number} topLevelType Number from `TopLevelEventTypes`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\n\n\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  // If composition event is available, we extract a string only at\n  // compositionevent, otherwise extract it at fallback events.\n  if (isComposing) {\n    if (topLevelType === TOP_COMPOSITION_END || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = getData();\n      reset();\n      isComposing = false;\n      return chars;\n    }\n\n    return null;\n  }\n\n  switch (topLevelType) {\n    case TOP_PASTE:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n\n    case TOP_KEY_PRESS:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (!isKeypressCommand(nativeEvent)) {\n        // IE fires the `keypress` event when a user types an emoji via\n        // Touch keyboard of Windows.  In such a case, the `char` property\n        // holds an emoji character like `\\uD83D\\uDE0A`.  Because its length\n        // is 2, the property `which` does not represent an emoji correctly.\n        // In such a case, we directly return the `char` property instead of\n        // using `which`.\n        if (nativeEvent.char && nativeEvent.char.length > 1) {\n          return nativeEvent.char;\n        } else if (nativeEvent.which) {\n          return String.fromCharCode(nativeEvent.which);\n        }\n      }\n\n      return null;\n\n    case TOP_COMPOSITION_END:\n      return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n\n    default:\n      return null;\n  }\n}\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\n\n\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var chars;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  } // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n\n\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n  event.data = chars;\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\n\n\nvar BeforeInputEventPlugin = {\n  eventTypes: eventTypes,\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags) {\n    var composition = extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n    var beforeInput = extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n\n    if (composition === null) {\n      return beforeInput;\n    }\n\n    if (beforeInput === null) {\n      return composition;\n    }\n\n    return [composition, beforeInput];\n  }\n};\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  color: true,\n  date: true,\n  datetime: true,\n  'datetime-local': true,\n  email: true,\n  month: true,\n  number: true,\n  password: true,\n  range: true,\n  search: true,\n  tel: true,\n  text: true,\n  time: true,\n  url: true,\n  week: true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n  if (nodeName === 'input') {\n    return !!supportedInputTypes[elem.type];\n  }\n\n  if (nodeName === 'textarea') {\n    return true;\n  }\n\n  return false;\n}\n\nvar eventTypes$1 = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: 'onChange',\n      captured: 'onChangeCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_CHANGE, TOP_CLICK, TOP_FOCUS, TOP_INPUT, TOP_KEY_DOWN, TOP_KEY_UP, TOP_SELECTION_CHANGE]\n  }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n  var event = SyntheticEvent.getPooled(eventTypes$1.change, inst, nativeEvent, target);\n  event.type = 'change'; // Flag this event loop as needing state restore.\n\n  enqueueStateRestore(target);\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n/**\n * For IE shims\n */\n\n\nvar activeElement = null;\nvar activeElementInst = null;\n/**\n * SECTION: handle `change` event\n */\n\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent)); // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n\n  batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  runEventsInBatch(event);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n  var targetNode = getNodeFromInstance$1(targetInst);\n\n  if (updateValueIfChanged(targetNode)) {\n    return targetInst;\n  }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_CHANGE) {\n    return targetInst;\n  }\n}\n/**\n * SECTION: handle `input` event\n */\n\n\nvar isInputEventSupported = false;\n\nif (canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events.\n  isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\n\n\nfunction startWatchingForValueChange(target, targetInst) {\n  activeElement = target;\n  activeElementInst = targetInst;\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\n\n\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n  activeElement = null;\n  activeElementInst = null;\n}\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\n\n\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n\n  if (getInstIfValueChanged(activeElementInst)) {\n    manualDispatchChangeEvent(nativeEvent);\n  }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n  if (topLevelType === TOP_FOCUS) {\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(target, targetInst);\n  } else if (topLevelType === TOP_BLUR) {\n    stopWatchingForValueChange();\n  }\n} // For IE8 and IE9.\n\n\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst) {\n  if (topLevelType === TOP_SELECTION_CHANGE || topLevelType === TOP_KEY_UP || topLevelType === TOP_KEY_DOWN) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    return getInstIfValueChanged(activeElementInst);\n  }\n}\n/**\n * SECTION: handle `click` event\n */\n\n\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_CLICK) {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_INPUT || topLevelType === TOP_CHANGE) {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction handleControlledInputBlur(node) {\n  var state = node._wrapperState;\n\n  if (!state || !state.controlled || node.type !== 'number') {\n    return;\n  }\n\n  {\n    // If controlled, assign the value attribute to the current value on blur\n    setDefaultValue(node, 'number', node.value);\n  }\n}\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\n\n\nvar ChangeEventPlugin = {\n  eventTypes: eventTypes$1,\n  _isInputEventSupported: isInputEventSupported,\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags) {\n    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n    var getTargetInstFunc, handleEventFunc;\n\n    if (shouldUseChangeEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForChangeEvent;\n    } else if (isTextInputElement(targetNode)) {\n      if (isInputEventSupported) {\n        getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n      } else {\n        getTargetInstFunc = getTargetInstForInputEventPolyfill;\n        handleEventFunc = handleEventsForInputEventPolyfill;\n      }\n    } else if (shouldUseClickEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForClickEvent;\n    }\n\n    if (getTargetInstFunc) {\n      var inst = getTargetInstFunc(topLevelType, targetInst);\n\n      if (inst) {\n        var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, targetNode, targetInst);\n    } // When blurring, set the value attribute for number inputs\n\n\n    if (topLevelType === TOP_BLUR) {\n      handleControlledInputBlur(targetNode);\n    }\n  }\n};\n\nvar SyntheticUIEvent = SyntheticEvent.extend({\n  view: null,\n  detail: null\n});\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\nvar modifierKeyToProp = {\n  Alt: 'altKey',\n  Control: 'ctrlKey',\n  Meta: 'metaKey',\n  Shift: 'shiftKey'\n}; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nvar previousScreenX = 0;\nvar previousScreenY = 0; // Use flags to signal movementX/Y has already been set\n\nvar isMovementXSet = false;\nvar isMovementYSet = false;\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar SyntheticMouseEvent = SyntheticUIEvent.extend({\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  pageX: null,\n  pageY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: null,\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  movementX: function (event) {\n    if ('movementX' in event) {\n      return event.movementX;\n    }\n\n    var screenX = previousScreenX;\n    previousScreenX = event.screenX;\n\n    if (!isMovementXSet) {\n      isMovementXSet = true;\n      return 0;\n    }\n\n    return event.type === 'mousemove' ? event.screenX - screenX : 0;\n  },\n  movementY: function (event) {\n    if ('movementY' in event) {\n      return event.movementY;\n    }\n\n    var screenY = previousScreenY;\n    previousScreenY = event.screenY;\n\n    if (!isMovementYSet) {\n      isMovementYSet = true;\n      return 0;\n    }\n\n    return event.type === 'mousemove' ? event.screenY - screenY : 0;\n  }\n});\n\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\nvar SyntheticPointerEvent = SyntheticMouseEvent.extend({\n  pointerId: null,\n  width: null,\n  height: null,\n  pressure: null,\n  tangentialPressure: null,\n  tiltX: null,\n  tiltY: null,\n  twist: null,\n  pointerType: null,\n  isPrimary: null\n});\n\nvar eventTypes$2 = {\n  mouseEnter: {\n    registrationName: 'onMouseEnter',\n    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]\n  },\n  mouseLeave: {\n    registrationName: 'onMouseLeave',\n    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]\n  },\n  pointerEnter: {\n    registrationName: 'onPointerEnter',\n    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]\n  },\n  pointerLeave: {\n    registrationName: 'onPointerLeave',\n    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]\n  }\n};\nvar EnterLeaveEventPlugin = {\n  eventTypes: eventTypes$2,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   */\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags) {\n    var isOverEvent = topLevelType === TOP_MOUSE_OVER || topLevelType === TOP_POINTER_OVER;\n    var isOutEvent = topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_POINTER_OUT;\n\n    if (isOverEvent && (eventSystemFlags & IS_REPLAYED) === 0 && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      // If this is an over event with a target, then we've already dispatched\n      // the event in the out event of the other target. If this is replayed,\n      // then it's because we couldn't dispatch against this target previously\n      // so we have to do it now instead.\n      return null;\n    }\n\n    if (!isOutEvent && !isOverEvent) {\n      // Must not be a mouse or pointer in or out - ignoring.\n      return null;\n    }\n\n    var win;\n\n    if (nativeEventTarget.window === nativeEventTarget) {\n      // `nativeEventTarget` is probably a window object.\n      win = nativeEventTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = nativeEventTarget.ownerDocument;\n\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from;\n    var to;\n\n    if (isOutEvent) {\n      from = targetInst;\n      var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n      to = related ? getClosestInstanceFromNode(related) : null;\n\n      if (to !== null) {\n        var nearestMounted = getNearestMountedFiber(to);\n\n        if (to !== nearestMounted || to.tag !== HostComponent && to.tag !== HostText) {\n          to = null;\n        }\n      }\n    } else {\n      // Moving to a node from outside the window.\n      from = null;\n      to = targetInst;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var eventInterface, leaveEventType, enterEventType, eventTypePrefix;\n\n    if (topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_MOUSE_OVER) {\n      eventInterface = SyntheticMouseEvent;\n      leaveEventType = eventTypes$2.mouseLeave;\n      enterEventType = eventTypes$2.mouseEnter;\n      eventTypePrefix = 'mouse';\n    } else if (topLevelType === TOP_POINTER_OUT || topLevelType === TOP_POINTER_OVER) {\n      eventInterface = SyntheticPointerEvent;\n      leaveEventType = eventTypes$2.pointerLeave;\n      enterEventType = eventTypes$2.pointerEnter;\n      eventTypePrefix = 'pointer';\n    }\n\n    var fromNode = from == null ? win : getNodeFromInstance$1(from);\n    var toNode = to == null ? win : getNodeFromInstance$1(to);\n    var leave = eventInterface.getPooled(leaveEventType, from, nativeEvent, nativeEventTarget);\n    leave.type = eventTypePrefix + 'leave';\n    leave.target = fromNode;\n    leave.relatedTarget = toNode;\n    var enter = eventInterface.getPooled(enterEventType, to, nativeEvent, nativeEventTarget);\n    enter.type = eventTypePrefix + 'enter';\n    enter.target = toNode;\n    enter.relatedTarget = fromNode;\n    accumulateEnterLeaveDispatches(leave, enter, from, to); // If we are not processing the first ancestor, then we\n    // should not process the same nativeEvent again, as we\n    // will have already processed it in the first ancestor.\n\n    if ((eventSystemFlags & IS_FIRST_ANCESTOR) === 0) {\n      return [leave];\n    }\n\n    return [leave, enter];\n  }\n};\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n  ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\nfunction shallowEqual(objA, objB) {\n  if (objectIs(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  } // Test for A's keys different from B.\n\n\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty$2.call(objB, keysA[i]) || !objectIs(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\nvar eventTypes$3 = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: 'onSelect',\n      captured: 'onSelectCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_CONTEXT_MENU, TOP_DRAG_END, TOP_FOCUS, TOP_KEY_DOWN, TOP_KEY_UP, TOP_MOUSE_DOWN, TOP_MOUSE_UP, TOP_SELECTION_CHANGE]\n  }\n};\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\n\nfunction getSelection$1(node) {\n  if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else {\n    var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n    var selection = win.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  }\n}\n/**\n * Get document associated with the event target.\n *\n * @param {object} nativeEventTarget\n * @return {Document}\n */\n\n\nfunction getEventTargetDocument(eventTarget) {\n  return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\n\n\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  var doc = getEventTargetDocument(nativeEventTarget);\n\n  if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n    return null;\n  } // Only fire when selection has actually changed.\n\n\n  var currentSelection = getSelection$1(activeElement$1);\n\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes$3.select, activeElementInst$1, nativeEvent, nativeEventTarget);\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement$1;\n    accumulateTwoPhaseDispatches(syntheticEvent);\n    return syntheticEvent;\n  }\n\n  return null;\n}\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\n\n\nvar SelectEventPlugin = {\n  eventTypes: eventTypes$3,\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, container) {\n    var containerOrDoc = container || getEventTargetDocument(nativeEventTarget); // Track whether all listeners exists for this plugin. If none exist, we do\n    // not extract events. See #3639.\n\n    if (!containerOrDoc || !isListeningToAllDependencies('onSelect', containerOrDoc)) {\n      return null;\n    }\n\n    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case TOP_FOCUS:\n        if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n          activeElement$1 = targetNode;\n          activeElementInst$1 = targetInst;\n          lastSelection = null;\n        }\n\n        break;\n\n      case TOP_BLUR:\n        activeElement$1 = null;\n        activeElementInst$1 = null;\n        lastSelection = null;\n        break;\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n\n      case TOP_MOUSE_DOWN:\n        mouseDown = true;\n        break;\n\n      case TOP_CONTEXT_MENU:\n      case TOP_MOUSE_UP:\n      case TOP_DRAG_END:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n\n      case TOP_SELECTION_CHANGE:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n\n      // falls through\n\n      case TOP_KEY_DOWN:\n      case TOP_KEY_UP:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  }\n};\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\nvar SyntheticAnimationEvent = SyntheticEvent.extend({\n  animationName: null,\n  elapsedTime: null,\n  pseudoElement: null\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\nvar SyntheticClipboardEvent = SyntheticEvent.extend({\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n});\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar SyntheticFocusEvent = SyntheticUIEvent.extend({\n  relatedTarget: null\n});\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n  // report Enter as charCode 10 when ctrl is pressed.\n\n\n  if (charCode === 10) {\n    charCode = 13;\n  } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n\n\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar normalizeKey = {\n  Esc: 'Escape',\n  Spacebar: ' ',\n  Left: 'ArrowLeft',\n  Up: 'ArrowUp',\n  Right: 'ArrowRight',\n  Down: 'ArrowDown',\n  Del: 'Delete',\n  Win: 'OS',\n  Menu: 'ContextMenu',\n  Apps: 'ContextMenu',\n  Scroll: 'ScrollLock',\n  MozPrintableKey: 'Unidentified'\n};\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar translateToKey = {\n  '8': 'Backspace',\n  '9': 'Tab',\n  '12': 'Clear',\n  '13': 'Enter',\n  '16': 'Shift',\n  '17': 'Control',\n  '18': 'Alt',\n  '19': 'Pause',\n  '20': 'CapsLock',\n  '27': 'Escape',\n  '32': ' ',\n  '33': 'PageUp',\n  '34': 'PageDown',\n  '35': 'End',\n  '36': 'Home',\n  '37': 'ArrowLeft',\n  '38': 'ArrowUp',\n  '39': 'ArrowRight',\n  '40': 'ArrowDown',\n  '45': 'Insert',\n  '46': 'Delete',\n  '112': 'F1',\n  '113': 'F2',\n  '114': 'F3',\n  '115': 'F4',\n  '116': 'F5',\n  '117': 'F6',\n  '118': 'F7',\n  '119': 'F8',\n  '120': 'F9',\n  '121': 'F10',\n  '122': 'F11',\n  '123': 'F12',\n  '144': 'NumLock',\n  '145': 'ScrollLock',\n  '224': 'Meta'\n};\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  } // Browser does not implement `key`, polyfill as much of it as we can.\n\n\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n\n  return '';\n}\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar SyntheticKeyboardEvent = SyntheticUIEvent.extend({\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n\n    return 0;\n  }\n});\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar SyntheticDragEvent = SyntheticMouseEvent.extend({\n  dataTransfer: null\n});\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\nvar SyntheticTouchEvent = SyntheticUIEvent.extend({\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\nvar SyntheticTransitionEvent = SyntheticEvent.extend({\n  propertyName: null,\n  elapsedTime: null,\n  pseudoElement: null\n});\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar SyntheticWheelEvent = SyntheticMouseEvent.extend({\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n  deltaZ: null,\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n});\n\nvar knownHTMLTopLevelTypes = [TOP_ABORT, TOP_CANCEL, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_CLOSE, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_INPUT, TOP_INVALID, TOP_LOAD, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_RESET, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUBMIT, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_TOGGLE, TOP_VOLUME_CHANGE, TOP_WAITING];\nvar SimpleEventPlugin = {\n  // simpleEventPluginEventTypes gets populated from\n  // the DOMEventProperties module.\n  eventTypes: simpleEventPluginEventTypes,\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags) {\n    var dispatchConfig = topLevelEventsToDispatchConfig.get(topLevelType);\n\n    if (!dispatchConfig) {\n      return null;\n    }\n\n    var EventConstructor;\n\n    switch (topLevelType) {\n      case TOP_KEY_PRESS:\n        // Firefox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n\n      /* falls through */\n\n      case TOP_KEY_DOWN:\n      case TOP_KEY_UP:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n\n      case TOP_BLUR:\n      case TOP_FOCUS:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n\n      case TOP_CLICK:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n\n      /* falls through */\n\n      case TOP_AUX_CLICK:\n      case TOP_DOUBLE_CLICK:\n      case TOP_MOUSE_DOWN:\n      case TOP_MOUSE_MOVE:\n      case TOP_MOUSE_UP: // TODO: Disabled elements should not respond to mouse events\n\n      /* falls through */\n\n      case TOP_MOUSE_OUT:\n      case TOP_MOUSE_OVER:\n      case TOP_CONTEXT_MENU:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n\n      case TOP_DRAG:\n      case TOP_DRAG_END:\n      case TOP_DRAG_ENTER:\n      case TOP_DRAG_EXIT:\n      case TOP_DRAG_LEAVE:\n      case TOP_DRAG_OVER:\n      case TOP_DRAG_START:\n      case TOP_DROP:\n        EventConstructor = SyntheticDragEvent;\n        break;\n\n      case TOP_TOUCH_CANCEL:\n      case TOP_TOUCH_END:\n      case TOP_TOUCH_MOVE:\n      case TOP_TOUCH_START:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n\n      case TOP_ANIMATION_END:\n      case TOP_ANIMATION_ITERATION:\n      case TOP_ANIMATION_START:\n        EventConstructor = SyntheticAnimationEvent;\n        break;\n\n      case TOP_TRANSITION_END:\n        EventConstructor = SyntheticTransitionEvent;\n        break;\n\n      case TOP_SCROLL:\n        EventConstructor = SyntheticUIEvent;\n        break;\n\n      case TOP_WHEEL:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n\n      case TOP_COPY:\n      case TOP_CUT:\n      case TOP_PASTE:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n\n      case TOP_GOT_POINTER_CAPTURE:\n      case TOP_LOST_POINTER_CAPTURE:\n      case TOP_POINTER_CANCEL:\n      case TOP_POINTER_DOWN:\n      case TOP_POINTER_MOVE:\n      case TOP_POINTER_OUT:\n      case TOP_POINTER_OVER:\n      case TOP_POINTER_UP:\n        EventConstructor = SyntheticPointerEvent;\n        break;\n\n      default:\n        {\n          if (knownHTMLTopLevelTypes.indexOf(topLevelType) === -1) {\n            error('SimpleEventPlugin: Unhandled event type, `%s`. This warning ' + 'is likely caused by a bug in React. Please file an issue.', topLevelType);\n          }\n        } // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n\n\n        EventConstructor = SyntheticEvent;\n        break;\n    }\n\n    var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n    accumulateTwoPhaseDispatches(event);\n    return event;\n  }\n};\n\n/**\n * Specifies a deterministic ordering of `EventPlugin`s. A convenient way to\n * reason about plugins, without having to package every one of them. This\n * is better than having plugins be ordered in the same order that they\n * are injected because that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\n\nvar DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n/**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n\ninjectEventPluginOrder(DOMEventPluginOrder);\nsetComponentTree(getFiberCurrentPropsFromNode$1, getInstanceFromNode$1, getNodeFromInstance$1);\n/**\n * Some important event plugins included by default (without having to require\n * them).\n */\n\ninjectEventPluginsByName({\n  SimpleEventPlugin: SimpleEventPlugin,\n  EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n  ChangeEventPlugin: ChangeEventPlugin,\n  SelectEventPlugin: SelectEventPlugin,\n  BeforeInputEventPlugin: BeforeInputEventPlugin\n});\n\n// Prefix measurements so that it's possible to filter them.\n// Longer prefixes are hard to read in DevTools.\nvar reactEmoji = \"\\u269B\";\nvar warningEmoji = \"\\u26D4\";\nvar supportsUserTiming = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function'; // Keep track of current fiber so that we know the path to unwind on pause.\n// TODO: this looks the same as nextUnitOfWork in scheduler. Can we unify them?\n\nvar currentFiber = null; // If we're in the middle of user code, which fiber and method is it?\n// Reusing `currentFiber` would be confusing for this because user code fiber\n// can change during commit phase too, but we don't need to unwind it (since\n// lifecycles in the commit phase don't resemble a tree).\n\nvar currentPhase = null;\nvar currentPhaseFiber = null; // Did lifecycle hook schedule an update? This is often a performance problem,\n// so we will keep track of it, and include it in the report.\n// Track commits caused by cascading updates.\n\nvar isCommitting = false;\nvar hasScheduledUpdateInCurrentCommit = false;\nvar hasScheduledUpdateInCurrentPhase = false;\nvar commitCountInCurrentWorkLoop = 0;\nvar effectCountInCurrentCommit = 0;\n// to avoid stretch the commit phase with measurement overhead.\n\nvar labelsInCurrentCommit = new Set();\n\nvar formatMarkName = function (markName) {\n  return reactEmoji + \" \" + markName;\n};\n\nvar formatLabel = function (label, warning) {\n  var prefix = warning ? warningEmoji + \" \" : reactEmoji + \" \";\n  var suffix = warning ? \" Warning: \" + warning : '';\n  return \"\" + prefix + label + suffix;\n};\n\nvar beginMark = function (markName) {\n  performance.mark(formatMarkName(markName));\n};\n\nvar clearMark = function (markName) {\n  performance.clearMarks(formatMarkName(markName));\n};\n\nvar endMark = function (label, markName, warning) {\n  var formattedMarkName = formatMarkName(markName);\n  var formattedLabel = formatLabel(label, warning);\n\n  try {\n    performance.measure(formattedLabel, formattedMarkName);\n  } catch (err) {} // If previous mark was missing for some reason, this will throw.\n  // This could only happen if React crashed in an unexpected place earlier.\n  // Don't pile on with more errors.\n  // Clear marks immediately to avoid growing buffer.\n\n\n  performance.clearMarks(formattedMarkName);\n  performance.clearMeasures(formattedLabel);\n};\n\nvar getFiberMarkName = function (label, debugID) {\n  return label + \" (#\" + debugID + \")\";\n};\n\nvar getFiberLabel = function (componentName, isMounted, phase) {\n  if (phase === null) {\n    // These are composite component total time measurements.\n    return componentName + \" [\" + (isMounted ? 'update' : 'mount') + \"]\";\n  } else {\n    // Composite component methods.\n    return componentName + \".\" + phase;\n  }\n};\n\nvar beginFiberMark = function (fiber, phase) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n\n  if (isCommitting && labelsInCurrentCommit.has(label)) {\n    // During the commit phase, we don't show duplicate labels because\n    // there is a fixed overhead for every measurement, and we don't\n    // want to stretch the commit phase beyond necessary.\n    return false;\n  }\n\n  labelsInCurrentCommit.add(label);\n  var markName = getFiberMarkName(label, debugID);\n  beginMark(markName);\n  return true;\n};\n\nvar clearFiberMark = function (fiber, phase) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n  var markName = getFiberMarkName(label, debugID);\n  clearMark(markName);\n};\n\nvar endFiberMark = function (fiber, phase, warning) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n  var markName = getFiberMarkName(label, debugID);\n  endMark(label, markName, warning);\n};\n\nvar shouldIgnoreFiber = function (fiber) {\n  // Host components should be skipped in the timeline.\n  // We could check typeof fiber.type, but does this work with RN?\n  switch (fiber.tag) {\n    case HostRoot:\n    case HostComponent:\n    case HostText:\n    case HostPortal:\n    case Fragment:\n    case ContextProvider:\n    case ContextConsumer:\n    case Mode:\n      return true;\n\n    default:\n      return false;\n  }\n};\n\nvar clearPendingPhaseMeasurement = function () {\n  if (currentPhase !== null && currentPhaseFiber !== null) {\n    clearFiberMark(currentPhaseFiber, currentPhase);\n  }\n\n  currentPhaseFiber = null;\n  currentPhase = null;\n  hasScheduledUpdateInCurrentPhase = false;\n};\n\nvar pauseTimers = function () {\n  // Stops all currently active measurements so that they can be resumed\n  // if we continue in a later deferred loop from the same unit of work.\n  var fiber = currentFiber;\n\n  while (fiber) {\n    if (fiber._debugIsCurrentlyTiming) {\n      endFiberMark(fiber, null, null);\n    }\n\n    fiber = fiber.return;\n  }\n};\n\nvar resumeTimersRecursively = function (fiber) {\n  if (fiber.return !== null) {\n    resumeTimersRecursively(fiber.return);\n  }\n\n  if (fiber._debugIsCurrentlyTiming) {\n    beginFiberMark(fiber, null);\n  }\n};\n\nvar resumeTimers = function () {\n  // Resumes all measurements that were active during the last deferred loop.\n  if (currentFiber !== null) {\n    resumeTimersRecursively(currentFiber);\n  }\n};\n\nfunction recordEffect() {\n  {\n    effectCountInCurrentCommit++;\n  }\n}\nfunction recordScheduleUpdate() {\n  {\n    if (isCommitting) {\n      hasScheduledUpdateInCurrentCommit = true;\n    }\n\n    if (currentPhase !== null && currentPhase !== 'componentWillMount' && currentPhase !== 'componentWillReceiveProps') {\n      hasScheduledUpdateInCurrentPhase = true;\n    }\n  }\n}\nfunction startWorkTimer(fiber) {\n  {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    } // If we pause, this is the fiber to unwind from.\n\n\n    currentFiber = fiber;\n\n    if (!beginFiberMark(fiber, null)) {\n      return;\n    }\n\n    fiber._debugIsCurrentlyTiming = true;\n  }\n}\nfunction cancelWorkTimer(fiber) {\n  {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    } // Remember we shouldn't complete measurement for this fiber.\n    // Otherwise flamechart will be deep even for small updates.\n\n\n    fiber._debugIsCurrentlyTiming = false;\n    clearFiberMark(fiber, null);\n  }\n}\nfunction stopWorkTimer(fiber) {\n  {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    } // If we pause, its parent is the fiber to unwind from.\n\n\n    currentFiber = fiber.return;\n\n    if (!fiber._debugIsCurrentlyTiming) {\n      return;\n    }\n\n    fiber._debugIsCurrentlyTiming = false;\n    endFiberMark(fiber, null, null);\n  }\n}\nfunction stopFailedWorkTimer(fiber) {\n  {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    } // If we pause, its parent is the fiber to unwind from.\n\n\n    currentFiber = fiber.return;\n\n    if (!fiber._debugIsCurrentlyTiming) {\n      return;\n    }\n\n    fiber._debugIsCurrentlyTiming = false;\n    var warning = fiber.tag === SuspenseComponent ? 'Rendering was suspended' : 'An error was thrown inside this error boundary';\n    endFiberMark(fiber, null, warning);\n  }\n}\nfunction startPhaseTimer(fiber, phase) {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    clearPendingPhaseMeasurement();\n\n    if (!beginFiberMark(fiber, phase)) {\n      return;\n    }\n\n    currentPhaseFiber = fiber;\n    currentPhase = phase;\n  }\n}\nfunction stopPhaseTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    if (currentPhase !== null && currentPhaseFiber !== null) {\n      var warning = hasScheduledUpdateInCurrentPhase ? 'Scheduled a cascading update' : null;\n      endFiberMark(currentPhaseFiber, currentPhase, warning);\n    }\n\n    currentPhase = null;\n    currentPhaseFiber = null;\n  }\n}\nfunction startWorkLoopTimer(nextUnitOfWork) {\n  {\n    currentFiber = nextUnitOfWork;\n\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    commitCountInCurrentWorkLoop = 0; // This is top level call.\n    // Any other measurements are performed within.\n\n    beginMark('(React Tree Reconciliation)'); // Resume any measurements that were in progress during the last loop.\n\n    resumeTimers();\n  }\n}\nfunction stopWorkLoopTimer(interruptedBy, didCompleteRoot) {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var warning = null;\n\n    if (interruptedBy !== null) {\n      if (interruptedBy.tag === HostRoot) {\n        warning = 'A top-level update interrupted the previous render';\n      } else {\n        var componentName = getComponentName(interruptedBy.type) || 'Unknown';\n        warning = \"An update to \" + componentName + \" interrupted the previous render\";\n      }\n    } else if (commitCountInCurrentWorkLoop > 1) {\n      warning = 'There were cascading updates';\n    }\n\n    commitCountInCurrentWorkLoop = 0;\n    var label = didCompleteRoot ? '(React Tree Reconciliation: Completed Root)' : '(React Tree Reconciliation: Yielded)'; // Pause any measurements until the next loop.\n\n    pauseTimers();\n    endMark(label, '(React Tree Reconciliation)', warning);\n  }\n}\nfunction startCommitTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    isCommitting = true;\n    hasScheduledUpdateInCurrentCommit = false;\n    labelsInCurrentCommit.clear();\n    beginMark('(Committing Changes)');\n  }\n}\nfunction stopCommitTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var warning = null;\n\n    if (hasScheduledUpdateInCurrentCommit) {\n      warning = 'Lifecycle hook scheduled a cascading update';\n    } else if (commitCountInCurrentWorkLoop > 0) {\n      warning = 'Caused by a cascading update in earlier commit';\n    }\n\n    hasScheduledUpdateInCurrentCommit = false;\n    commitCountInCurrentWorkLoop++;\n    isCommitting = false;\n    labelsInCurrentCommit.clear();\n    endMark('(Committing Changes)', '(Committing Changes)', warning);\n  }\n}\nfunction startCommitSnapshotEffectsTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    effectCountInCurrentCommit = 0;\n    beginMark('(Committing Snapshot Effects)');\n  }\n}\nfunction stopCommitSnapshotEffectsTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark(\"(Committing Snapshot Effects: \" + count + \" Total)\", '(Committing Snapshot Effects)', null);\n  }\n}\nfunction startCommitHostEffectsTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    effectCountInCurrentCommit = 0;\n    beginMark('(Committing Host Effects)');\n  }\n}\nfunction stopCommitHostEffectsTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark(\"(Committing Host Effects: \" + count + \" Total)\", '(Committing Host Effects)', null);\n  }\n}\nfunction startCommitLifeCyclesTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    effectCountInCurrentCommit = 0;\n    beginMark('(Calling Lifecycle Methods)');\n  }\n}\nfunction stopCommitLifeCyclesTimer() {\n  {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark(\"(Calling Lifecycle Methods: \" + count + \" Total)\", '(Calling Lifecycle Methods)', null);\n  }\n}\n\nvar valueStack = [];\nvar fiberStack;\n\n{\n  fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n  return {\n    current: defaultValue\n  };\n}\n\nfunction pop(cursor, fiber) {\n  if (index < 0) {\n    {\n      error('Unexpected pop.');\n    }\n\n    return;\n  }\n\n  {\n    if (fiber !== fiberStack[index]) {\n      error('Unexpected Fiber popped.');\n    }\n  }\n\n  cursor.current = valueStack[index];\n  valueStack[index] = null;\n\n  {\n    fiberStack[index] = null;\n  }\n\n  index--;\n}\n\nfunction push(cursor, value, fiber) {\n  index++;\n  valueStack[index] = cursor.current;\n\n  {\n    fiberStack[index] = fiber;\n  }\n\n  cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext;\n\n{\n  warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n\n{\n  Object.freeze(emptyContextObject);\n} // A cursor to the current merged context object on the stack.\n\n\nvar contextStackCursor = createCursor(emptyContextObject); // A cursor to a boolean indicating whether the context has changed.\n\nvar didPerformWorkStackCursor = createCursor(false); // Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\n\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n  {\n    if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n      // If the fiber is a context provider itself, when we read its context\n      // we may have already pushed its own child context on the stack. A context\n      // provider should not \"see\" its own child context. Therefore we read the\n      // previous (parent) context instead for a context provider.\n      return previousContext;\n    }\n\n    return contextStackCursor.current;\n  }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n  {\n    var instance = workInProgress.stateNode;\n    instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n    instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n  }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n  {\n    var type = workInProgress.type;\n    var contextTypes = type.contextTypes;\n\n    if (!contextTypes) {\n      return emptyContextObject;\n    } // Avoid recreating masked context unless unmasked context has changed.\n    // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n    // This may trigger infinite loops if componentWillReceiveProps calls setState.\n\n\n    var instance = workInProgress.stateNode;\n\n    if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n      return instance.__reactInternalMemoizedMaskedChildContext;\n    }\n\n    var context = {};\n\n    for (var key in contextTypes) {\n      context[key] = unmaskedContext[key];\n    }\n\n    {\n      var name = getComponentName(type) || 'Unknown';\n      checkPropTypes(contextTypes, context, 'context', name, getCurrentFiberStackInDev);\n    } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n    // Context is created before the class component is instantiated so check for instance.\n\n\n    if (instance) {\n      cacheContext(workInProgress, unmaskedContext, context);\n    }\n\n    return context;\n  }\n}\n\nfunction hasContextChanged() {\n  {\n    return didPerformWorkStackCursor.current;\n  }\n}\n\nfunction isContextProvider(type) {\n  {\n    var childContextTypes = type.childContextTypes;\n    return childContextTypes !== null && childContextTypes !== undefined;\n  }\n}\n\nfunction popContext(fiber) {\n  {\n    pop(didPerformWorkStackCursor, fiber);\n    pop(contextStackCursor, fiber);\n  }\n}\n\nfunction popTopLevelContextObject(fiber) {\n  {\n    pop(didPerformWorkStackCursor, fiber);\n    pop(contextStackCursor, fiber);\n  }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n  {\n    if (!(contextStackCursor.current === emptyContextObject)) {\n      {\n        throw Error( \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n\n    push(contextStackCursor, context, fiber);\n    push(didPerformWorkStackCursor, didChange, fiber);\n  }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n  {\n    var instance = fiber.stateNode;\n    var childContextTypes = type.childContextTypes; // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n    // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n\n    if (typeof instance.getChildContext !== 'function') {\n      {\n        var componentName = getComponentName(type) || 'Unknown';\n\n        if (!warnedAboutMissingGetChildContext[componentName]) {\n          warnedAboutMissingGetChildContext[componentName] = true;\n\n          error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n        }\n      }\n\n      return parentContext;\n    }\n\n    var childContext;\n    startPhaseTimer(fiber, 'getChildContext');\n    childContext = instance.getChildContext();\n    stopPhaseTimer();\n\n    for (var contextKey in childContext) {\n      if (!(contextKey in childContextTypes)) {\n        {\n          throw Error( (getComponentName(type) || 'Unknown') + \".getChildContext(): key \\\"\" + contextKey + \"\\\" is not defined in childContextTypes.\" );\n        }\n      }\n    }\n\n    {\n      var name = getComponentName(type) || 'Unknown';\n      checkPropTypes(childContextTypes, childContext, 'child context', name, // In practice, there is one case in which we won't get a stack. It's when\n      // somebody calls unstable_renderSubtreeIntoContainer() and we process\n      // context from the parent component instance. The stack will be missing\n      // because it's outside of the reconciliation, and so the pointer has not\n      // been set. This is rare and doesn't matter. We'll also remove that API.\n      getCurrentFiberStackInDev);\n    }\n\n    return _assign({}, parentContext, {}, childContext);\n  }\n}\n\nfunction pushContextProvider(workInProgress) {\n  {\n    var instance = workInProgress.stateNode; // We push the context as early as possible to ensure stack integrity.\n    // If the instance does not exist yet, we will push null at first,\n    // and replace it on the stack later when invalidating the context.\n\n    var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject; // Remember the parent context so we can merge with it later.\n    // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n\n    previousContext = contextStackCursor.current;\n    push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n    push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n    return true;\n  }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n  {\n    var instance = workInProgress.stateNode;\n\n    if (!instance) {\n      {\n        throw Error( \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n\n    if (didChange) {\n      // Merge parent and own context.\n      // Skip this if we're not updating due to sCU.\n      // This avoids unnecessarily recomputing memoized values.\n      var mergedContext = processChildContext(workInProgress, type, previousContext);\n      instance.__reactInternalMemoizedMergedChildContext = mergedContext; // Replace the old (or empty) context with the new one.\n      // It is important to unwind the context in the reverse order.\n\n      pop(didPerformWorkStackCursor, workInProgress);\n      pop(contextStackCursor, workInProgress); // Now push the new context and mark that it has changed.\n\n      push(contextStackCursor, mergedContext, workInProgress);\n      push(didPerformWorkStackCursor, didChange, workInProgress);\n    } else {\n      pop(didPerformWorkStackCursor, workInProgress);\n      push(didPerformWorkStackCursor, didChange, workInProgress);\n    }\n  }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n  {\n    // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n    // makes sense elsewhere\n    if (!(isFiberMounted(fiber) && fiber.tag === ClassComponent)) {\n      {\n        throw Error( \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n\n    var node = fiber;\n\n    do {\n      switch (node.tag) {\n        case HostRoot:\n          return node.stateNode.context;\n\n        case ClassComponent:\n          {\n            var Component = node.type;\n\n            if (isContextProvider(Component)) {\n              return node.stateNode.__reactInternalMemoizedMergedChildContext;\n            }\n\n            break;\n          }\n      }\n\n      node = node.return;\n    } while (node !== null);\n\n    {\n      {\n        throw Error( \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n  }\n}\n\nvar LegacyRoot = 0;\nvar BlockingRoot = 1;\nvar ConcurrentRoot = 2;\n\nvar Scheduler_runWithPriority = Scheduler.unstable_runWithPriority,\n    Scheduler_scheduleCallback = Scheduler.unstable_scheduleCallback,\n    Scheduler_cancelCallback = Scheduler.unstable_cancelCallback,\n    Scheduler_shouldYield = Scheduler.unstable_shouldYield,\n    Scheduler_requestPaint = Scheduler.unstable_requestPaint,\n    Scheduler_now = Scheduler.unstable_now,\n    Scheduler_getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n    Scheduler_ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n    Scheduler_UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n    Scheduler_NormalPriority = Scheduler.unstable_NormalPriority,\n    Scheduler_LowPriority = Scheduler.unstable_LowPriority,\n    Scheduler_IdlePriority = Scheduler.unstable_IdlePriority;\n\n{\n  // Provide explicit error message when production+profiling bundle of e.g.\n  // react-dom is used with production (non-profiling) bundle of\n  // scheduler/tracing\n  if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n    {\n      throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling\" );\n    }\n  }\n}\n\nvar fakeCallbackNode = {}; // Except for NoPriority, these correspond to Scheduler priorities. We use\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority = 99;\nvar UserBlockingPriority$1 = 98;\nvar NormalPriority = 97;\nvar LowPriority = 96;\nvar IdlePriority = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority = 90;\nvar shouldYield = Scheduler_shouldYield;\nvar requestPaint = // Fall back gracefully if we're running an older version of Scheduler.\nScheduler_requestPaint !== undefined ? Scheduler_requestPaint : function () {};\nvar syncQueue = null;\nvar immediateQueueCallbackNode = null;\nvar isFlushingSyncQueue = false;\nvar initialTimeMs = Scheduler_now(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n// This will be the case for modern browsers that support `performance.now`. In\n// older browsers, Scheduler falls back to `Date.now`, which returns a Unix\n// timestamp. In that case, subtract the module initialization time to simulate\n// the behavior of performance.now and keep our times small enough to fit\n// within 32 bits.\n// TODO: Consider lifting this into Scheduler.\n\nvar now = initialTimeMs < 10000 ? Scheduler_now : function () {\n  return Scheduler_now() - initialTimeMs;\n};\nfunction getCurrentPriorityLevel() {\n  switch (Scheduler_getCurrentPriorityLevel()) {\n    case Scheduler_ImmediatePriority:\n      return ImmediatePriority;\n\n    case Scheduler_UserBlockingPriority:\n      return UserBlockingPriority$1;\n\n    case Scheduler_NormalPriority:\n      return NormalPriority;\n\n    case Scheduler_LowPriority:\n      return LowPriority;\n\n    case Scheduler_IdlePriority:\n      return IdlePriority;\n\n    default:\n      {\n        {\n          throw Error( \"Unknown priority level.\" );\n        }\n      }\n\n  }\n}\n\nfunction reactPriorityToSchedulerPriority(reactPriorityLevel) {\n  switch (reactPriorityLevel) {\n    case ImmediatePriority:\n      return Scheduler_ImmediatePriority;\n\n    case UserBlockingPriority$1:\n      return Scheduler_UserBlockingPriority;\n\n    case NormalPriority:\n      return Scheduler_NormalPriority;\n\n    case LowPriority:\n      return Scheduler_LowPriority;\n\n    case IdlePriority:\n      return Scheduler_IdlePriority;\n\n    default:\n      {\n        {\n          throw Error( \"Unknown priority level.\" );\n        }\n      }\n\n  }\n}\n\nfunction runWithPriority$1(reactPriorityLevel, fn) {\n  var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n  return Scheduler_runWithPriority(priorityLevel, fn);\n}\nfunction scheduleCallback(reactPriorityLevel, callback, options) {\n  var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n  return Scheduler_scheduleCallback(priorityLevel, callback, options);\n}\nfunction scheduleSyncCallback(callback) {\n  // Push this callback into an internal queue. We'll flush these either in\n  // the next tick, or earlier if something calls `flushSyncCallbackQueue`.\n  if (syncQueue === null) {\n    syncQueue = [callback]; // Flush the queue in the next tick, at the earliest.\n\n    immediateQueueCallbackNode = Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueueImpl);\n  } else {\n    // Push onto existing queue. Don't need to schedule a callback because\n    // we already scheduled one when we created the queue.\n    syncQueue.push(callback);\n  }\n\n  return fakeCallbackNode;\n}\nfunction cancelCallback(callbackNode) {\n  if (callbackNode !== fakeCallbackNode) {\n    Scheduler_cancelCallback(callbackNode);\n  }\n}\nfunction flushSyncCallbackQueue() {\n  if (immediateQueueCallbackNode !== null) {\n    var node = immediateQueueCallbackNode;\n    immediateQueueCallbackNode = null;\n    Scheduler_cancelCallback(node);\n  }\n\n  flushSyncCallbackQueueImpl();\n}\n\nfunction flushSyncCallbackQueueImpl() {\n  if (!isFlushingSyncQueue && syncQueue !== null) {\n    // Prevent re-entrancy.\n    isFlushingSyncQueue = true;\n    var i = 0;\n\n    try {\n      var _isSync = true;\n      var queue = syncQueue;\n      runWithPriority$1(ImmediatePriority, function () {\n        for (; i < queue.length; i++) {\n          var callback = queue[i];\n\n          do {\n            callback = callback(_isSync);\n          } while (callback !== null);\n        }\n      });\n      syncQueue = null;\n    } catch (error) {\n      // If something throws, leave the remaining callbacks on the queue.\n      if (syncQueue !== null) {\n        syncQueue = syncQueue.slice(i + 1);\n      } // Resume flushing in the next tick\n\n\n      Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueue);\n      throw error;\n    } finally {\n      isFlushingSyncQueue = false;\n    }\n  }\n}\n\nvar NoMode = 0;\nvar StrictMode = 1; // TODO: Remove BlockingMode and ConcurrentMode by reading from the root\n// tag instead\n\nvar BlockingMode = 2;\nvar ConcurrentMode = 4;\nvar ProfileMode = 8;\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nvar NoWork = 0; // TODO: Think of a better name for Never. The key difference with Idle is that\n// Never work can be committed in an inconsistent state without tearing the UI.\n// The main example is offscreen content, like a hidden subtree. So one possible\n// name is Offscreen. However, it also includes dehydrated Suspense boundaries,\n// which are inconsistent in the sense that they haven't finished yet, but\n// aren't visibly inconsistent because the server rendered HTML matches what the\n// hydrated tree would look like.\n\nvar Never = 1; // Idle is slightly higher priority than Never. It must completely finish in\n// order to be consistent.\n\nvar Idle = 2; // Continuous Hydration is slightly higher than Idle and is used to increase\n// priority of hover targets.\n\nvar ContinuousHydration = 3;\nvar Sync = MAX_SIGNED_31_BIT_INT;\nvar Batched = Sync - 1;\nvar UNIT_SIZE = 10;\nvar MAGIC_NUMBER_OFFSET = Batched - 1; // 1 unit of expiration time represents 10ms.\n\nfunction msToExpirationTime(ms) {\n  // Always subtract from the offset so that we don't clash with the magic number for NoWork.\n  return MAGIC_NUMBER_OFFSET - (ms / UNIT_SIZE | 0);\n}\nfunction expirationTimeToMs(expirationTime) {\n  return (MAGIC_NUMBER_OFFSET - expirationTime) * UNIT_SIZE;\n}\n\nfunction ceiling(num, precision) {\n  return ((num / precision | 0) + 1) * precision;\n}\n\nfunction computeExpirationBucket(currentTime, expirationInMs, bucketSizeMs) {\n  return MAGIC_NUMBER_OFFSET - ceiling(MAGIC_NUMBER_OFFSET - currentTime + expirationInMs / UNIT_SIZE, bucketSizeMs / UNIT_SIZE);\n} // TODO: This corresponds to Scheduler's NormalPriority, not LowPriority. Update\n// the names to reflect.\n\n\nvar LOW_PRIORITY_EXPIRATION = 5000;\nvar LOW_PRIORITY_BATCH_SIZE = 250;\nfunction computeAsyncExpiration(currentTime) {\n  return computeExpirationBucket(currentTime, LOW_PRIORITY_EXPIRATION, LOW_PRIORITY_BATCH_SIZE);\n}\nfunction computeSuspenseExpiration(currentTime, timeoutMs) {\n  // TODO: Should we warn if timeoutMs is lower than the normal pri expiration time?\n  return computeExpirationBucket(currentTime, timeoutMs, LOW_PRIORITY_BATCH_SIZE);\n} // We intentionally set a higher expiration time for interactive updates in\n// dev than in production.\n//\n// If the main thread is being blocked so long that you hit the expiration,\n// it's a problem that could be solved with better scheduling.\n//\n// People will be more likely to notice this and fix it with the long\n// expiration time in development.\n//\n// In production we opt for better UX at the risk of masking scheduling\n// problems, by expiring fast.\n\nvar HIGH_PRIORITY_EXPIRATION =  500 ;\nvar HIGH_PRIORITY_BATCH_SIZE = 100;\nfunction computeInteractiveExpiration(currentTime) {\n  return computeExpirationBucket(currentTime, HIGH_PRIORITY_EXPIRATION, HIGH_PRIORITY_BATCH_SIZE);\n}\nfunction inferPriorityFromExpirationTime(currentTime, expirationTime) {\n  if (expirationTime === Sync) {\n    return ImmediatePriority;\n  }\n\n  if (expirationTime === Never || expirationTime === Idle) {\n    return IdlePriority;\n  }\n\n  var msUntil = expirationTimeToMs(expirationTime) - expirationTimeToMs(currentTime);\n\n  if (msUntil <= 0) {\n    return ImmediatePriority;\n  }\n\n  if (msUntil <= HIGH_PRIORITY_EXPIRATION + HIGH_PRIORITY_BATCH_SIZE) {\n    return UserBlockingPriority$1;\n  }\n\n  if (msUntil <= LOW_PRIORITY_EXPIRATION + LOW_PRIORITY_BATCH_SIZE) {\n    return NormalPriority;\n  } // TODO: Handle LowPriority\n  // Assume anything lower has idle priority\n\n\n  return IdlePriority;\n}\n\nvar ReactStrictModeWarnings = {\n  recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n  flushPendingUnsafeLifecycleWarnings: function () {},\n  recordLegacyContextWarning: function (fiber, instance) {},\n  flushLegacyContextWarning: function () {},\n  discardPendingWarnings: function () {}\n};\n\n{\n  var findStrictRoot = function (fiber) {\n    var maybeStrictRoot = null;\n    var node = fiber;\n\n    while (node !== null) {\n      if (node.mode & StrictMode) {\n        maybeStrictRoot = node;\n      }\n\n      node = node.return;\n    }\n\n    return maybeStrictRoot;\n  };\n\n  var setToSortedString = function (set) {\n    var array = [];\n    set.forEach(function (value) {\n      array.push(value);\n    });\n    return array.sort().join(', ');\n  };\n\n  var pendingComponentWillMountWarnings = [];\n  var pendingUNSAFE_ComponentWillMountWarnings = [];\n  var pendingComponentWillReceivePropsWarnings = [];\n  var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n  var pendingComponentWillUpdateWarnings = [];\n  var pendingUNSAFE_ComponentWillUpdateWarnings = []; // Tracks components we have already warned about.\n\n  var didWarnAboutUnsafeLifecycles = new Set();\n\n  ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n    // Dedup strategy: Warn once per component.\n    if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n      return;\n    }\n\n    if (typeof instance.componentWillMount === 'function' && // Don't warn about react-lifecycles-compat polyfilled components.\n    instance.componentWillMount.__suppressDeprecationWarning !== true) {\n      pendingComponentWillMountWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n      pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n    }\n\n    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n      pendingComponentWillReceivePropsWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n      pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n    }\n\n    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n      pendingComponentWillUpdateWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n      pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n    // We do an initial pass to gather component names\n    var componentWillMountUniqueNames = new Set();\n\n    if (pendingComponentWillMountWarnings.length > 0) {\n      pendingComponentWillMountWarnings.forEach(function (fiber) {\n        componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillMountWarnings = [];\n    }\n\n    var UNSAFE_componentWillMountUniqueNames = new Set();\n\n    if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillMountWarnings = [];\n    }\n\n    var componentWillReceivePropsUniqueNames = new Set();\n\n    if (pendingComponentWillReceivePropsWarnings.length > 0) {\n      pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillReceivePropsWarnings = [];\n    }\n\n    var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n\n    if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n    }\n\n    var componentWillUpdateUniqueNames = new Set();\n\n    if (pendingComponentWillUpdateWarnings.length > 0) {\n      pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n        componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillUpdateWarnings = [];\n    }\n\n    var UNSAFE_componentWillUpdateUniqueNames = new Set();\n\n    if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillUpdateWarnings = [];\n    } // Finally, we flush all the warnings\n    // UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\n\n\n    if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n      var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n\n      error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://fb.me/react-unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n    }\n\n    if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n      var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n\n      error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://fb.me/react-unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n    }\n\n    if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n      var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n\n      error('Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://fb.me/react-unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n    }\n\n    if (componentWillMountUniqueNames.size > 0) {\n      var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n      warn('componentWillMount has been renamed, and is not recommended for use. ' + 'See https://fb.me/react-unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n    }\n\n    if (componentWillReceivePropsUniqueNames.size > 0) {\n      var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n      warn('componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://fb.me/react-unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n    }\n\n    if (componentWillUpdateUniqueNames.size > 0) {\n      var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n      warn('componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://fb.me/react-unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n    }\n  };\n\n  var pendingLegacyContextWarning = new Map(); // Tracks components we have already warned about.\n\n  var didWarnAboutLegacyContext = new Set();\n\n  ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n    var strictRoot = findStrictRoot(fiber);\n\n    if (strictRoot === null) {\n      error('Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n\n      return;\n    } // Dedup strategy: Warn once per component.\n\n\n    if (didWarnAboutLegacyContext.has(fiber.type)) {\n      return;\n    }\n\n    var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n    if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n      if (warningsForRoot === undefined) {\n        warningsForRoot = [];\n        pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n      }\n\n      warningsForRoot.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n    pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n      if (fiberArray.length === 0) {\n        return;\n      }\n\n      var firstFiber = fiberArray[0];\n      var uniqueNames = new Set();\n      fiberArray.forEach(function (fiber) {\n        uniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutLegacyContext.add(fiber.type);\n      });\n      var sortedNames = setToSortedString(uniqueNames);\n      var firstComponentStack = getStackByFiberInDevAndProd(firstFiber);\n\n      error('Legacy context API has been detected within a strict-mode tree.' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here: https://fb.me/react-legacy-context' + '%s', sortedNames, firstComponentStack);\n    });\n  };\n\n  ReactStrictModeWarnings.discardPendingWarnings = function () {\n    pendingComponentWillMountWarnings = [];\n    pendingUNSAFE_ComponentWillMountWarnings = [];\n    pendingComponentWillReceivePropsWarnings = [];\n    pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n    pendingComponentWillUpdateWarnings = [];\n    pendingUNSAFE_ComponentWillUpdateWarnings = [];\n    pendingLegacyContextWarning = new Map();\n  };\n}\n\nvar resolveFamily = null; // $FlowFixMe Flow gets confused by a WeakSet feature check below.\n\nvar failedBoundaries = null;\nvar setRefreshHandler = function (handler) {\n  {\n    resolveFamily = handler;\n  }\n};\nfunction resolveFunctionForHotReloading(type) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return type;\n    }\n\n    var family = resolveFamily(type);\n\n    if (family === undefined) {\n      return type;\n    } // Use the latest known implementation.\n\n\n    return family.current;\n  }\n}\nfunction resolveClassForHotReloading(type) {\n  // No implementation differences.\n  return resolveFunctionForHotReloading(type);\n}\nfunction resolveForwardRefForHotReloading(type) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return type;\n    }\n\n    var family = resolveFamily(type);\n\n    if (family === undefined) {\n      // Check if we're dealing with a real forwardRef. Don't want to crash early.\n      if (type !== null && type !== undefined && typeof type.render === 'function') {\n        // ForwardRef is special because its resolved .type is an object,\n        // but it's possible that we only have its inner render function in the map.\n        // If that inner render function is different, we'll build a new forwardRef type.\n        var currentRender = resolveFunctionForHotReloading(type.render);\n\n        if (type.render !== currentRender) {\n          var syntheticType = {\n            $$typeof: REACT_FORWARD_REF_TYPE,\n            render: currentRender\n          };\n\n          if (type.displayName !== undefined) {\n            syntheticType.displayName = type.displayName;\n          }\n\n          return syntheticType;\n        }\n      }\n\n      return type;\n    } // Use the latest known implementation.\n\n\n    return family.current;\n  }\n}\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return false;\n    }\n\n    var prevType = fiber.elementType;\n    var nextType = element.type; // If we got here, we know types aren't === equal.\n\n    var needsCompareFamilies = false;\n    var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n    switch (fiber.tag) {\n      case ClassComponent:\n        {\n          if (typeof nextType === 'function') {\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      case FunctionComponent:\n        {\n          if (typeof nextType === 'function') {\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            // We don't know the inner type yet.\n            // We're going to assume that the lazy inner type is stable,\n            // and so it is sufficient to avoid reconciling it away.\n            // We're not going to unwrap or actually use the new lazy type.\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      case ForwardRef:\n        {\n          if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      case MemoComponent:\n      case SimpleMemoComponent:\n        {\n          if ($$typeofNextType === REACT_MEMO_TYPE) {\n            // TODO: if it was but can no longer be simple,\n            // we shouldn't set this.\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            needsCompareFamilies = true;\n          }\n\n          break;\n        }\n\n      default:\n        return false;\n    } // Check if both types have a family and it's the same one.\n\n\n    if (needsCompareFamilies) {\n      // Note: memo() and forwardRef() we'll compare outer rather than inner type.\n      // This means both of them need to be registered to preserve state.\n      // If we unwrapped and compared the inner types for wrappers instead,\n      // then we would risk falsely saying two separate memo(Foo)\n      // calls are equivalent because they wrap the same Foo function.\n      var prevFamily = resolveFamily(prevType);\n\n      if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n}\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return;\n    }\n\n    if (typeof WeakSet !== 'function') {\n      return;\n    }\n\n    if (failedBoundaries === null) {\n      failedBoundaries = new WeakSet();\n    }\n\n    failedBoundaries.add(fiber);\n  }\n}\nvar scheduleRefresh = function (root, update) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return;\n    }\n\n    var staleFamilies = update.staleFamilies,\n        updatedFamilies = update.updatedFamilies;\n    flushPassiveEffects();\n    flushSync(function () {\n      scheduleFibersWithFamiliesRecursively(root.current, updatedFamilies, staleFamilies);\n    });\n  }\n};\nvar scheduleRoot = function (root, element) {\n  {\n    if (root.context !== emptyContextObject) {\n      // Super edge case: root has a legacy _renderSubtree context\n      // but we don't know the parentComponent so we can't pass it.\n      // Just ignore. We'll delete this with _renderSubtree code path later.\n      return;\n    }\n\n    flushPassiveEffects();\n    syncUpdates(function () {\n      updateContainer(element, root, null, null);\n    });\n  }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n  {\n    var alternate = fiber.alternate,\n        child = fiber.child,\n        sibling = fiber.sibling,\n        tag = fiber.tag,\n        type = fiber.type;\n    var candidateType = null;\n\n    switch (tag) {\n      case FunctionComponent:\n      case SimpleMemoComponent:\n      case ClassComponent:\n        candidateType = type;\n        break;\n\n      case ForwardRef:\n        candidateType = type.render;\n        break;\n    }\n\n    if (resolveFamily === null) {\n      throw new Error('Expected resolveFamily to be set during hot reload.');\n    }\n\n    var needsRender = false;\n    var needsRemount = false;\n\n    if (candidateType !== null) {\n      var family = resolveFamily(candidateType);\n\n      if (family !== undefined) {\n        if (staleFamilies.has(family)) {\n          needsRemount = true;\n        } else if (updatedFamilies.has(family)) {\n          if (tag === ClassComponent) {\n            needsRemount = true;\n          } else {\n            needsRender = true;\n          }\n        }\n      }\n    }\n\n    if (failedBoundaries !== null) {\n      if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n        needsRemount = true;\n      }\n    }\n\n    if (needsRemount) {\n      fiber._debugNeedsRemount = true;\n    }\n\n    if (needsRemount || needsRender) {\n      scheduleWork(fiber, Sync);\n    }\n\n    if (child !== null && !needsRemount) {\n      scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n    }\n\n    if (sibling !== null) {\n      scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n    }\n  }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n  {\n    var hostInstances = new Set();\n    var types = new Set(families.map(function (family) {\n      return family.current;\n    }));\n    findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n    return hostInstances;\n  }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n  {\n    var child = fiber.child,\n        sibling = fiber.sibling,\n        tag = fiber.tag,\n        type = fiber.type;\n    var candidateType = null;\n\n    switch (tag) {\n      case FunctionComponent:\n      case SimpleMemoComponent:\n      case ClassComponent:\n        candidateType = type;\n        break;\n\n      case ForwardRef:\n        candidateType = type.render;\n        break;\n    }\n\n    var didMatch = false;\n\n    if (candidateType !== null) {\n      if (types.has(candidateType)) {\n        didMatch = true;\n      }\n    }\n\n    if (didMatch) {\n      // We have a match. This only drills down to the closest host components.\n      // There's no need to search deeper because for the purpose of giving\n      // visual feedback, \"flashing\" outermost parent rectangles is sufficient.\n      findHostInstancesForFiberShallowly(fiber, hostInstances);\n    } else {\n      // If there's no match, maybe there will be one further down in the child tree.\n      if (child !== null) {\n        findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n      }\n    }\n\n    if (sibling !== null) {\n      findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n    }\n  }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n  {\n    var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n\n    if (foundHostInstances) {\n      return;\n    } // If we didn't find any host children, fallback to closest host parent.\n\n\n    var node = fiber;\n\n    while (true) {\n      switch (node.tag) {\n        case HostComponent:\n          hostInstances.add(node.stateNode);\n          return;\n\n        case HostPortal:\n          hostInstances.add(node.stateNode.containerInfo);\n          return;\n\n        case HostRoot:\n          hostInstances.add(node.stateNode.containerInfo);\n          return;\n      }\n\n      if (node.return === null) {\n        throw new Error('Expected to reach root first.');\n      }\n\n      node = node.return;\n    }\n  }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n  {\n    var node = fiber;\n    var foundHostInstances = false;\n\n    while (true) {\n      if (node.tag === HostComponent) {\n        // We got a match.\n        foundHostInstances = true;\n        hostInstances.add(node.stateNode); // There may still be more, so keep searching.\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n\n      if (node === fiber) {\n        return foundHostInstances;\n      }\n\n      while (node.sibling === null) {\n        if (node.return === null || node.return === fiber) {\n          return foundHostInstances;\n        }\n\n        node = node.return;\n      }\n\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n\n  return false;\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n  if (Component && Component.defaultProps) {\n    // Resolve default props. Taken from ReactElement\n    var props = _assign({}, baseProps);\n\n    var defaultProps = Component.defaultProps;\n\n    for (var propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n\n    return props;\n  }\n\n  return baseProps;\n}\nfunction readLazyComponentType(lazyComponent) {\n  initializeLazyComponentType(lazyComponent);\n\n  if (lazyComponent._status !== Resolved) {\n    throw lazyComponent._result;\n  }\n\n  return lazyComponent._result;\n}\n\nvar valueCursor = createCursor(null);\nvar rendererSigil;\n\n{\n  // Use this to detect multiple renderers using the same context\n  rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastContextWithAllBitsObserved = null;\nvar isDisallowedContextReadInDEV = false;\nfunction resetContextDependencies() {\n  // This is called right before React yields execution, to ensure `readContext`\n  // cannot be called outside the render phase.\n  currentlyRenderingFiber = null;\n  lastContextDependency = null;\n  lastContextWithAllBitsObserved = null;\n\n  {\n    isDisallowedContextReadInDEV = false;\n  }\n}\nfunction enterDisallowedContextReadInDEV() {\n  {\n    isDisallowedContextReadInDEV = true;\n  }\n}\nfunction exitDisallowedContextReadInDEV() {\n  {\n    isDisallowedContextReadInDEV = false;\n  }\n}\nfunction pushProvider(providerFiber, nextValue) {\n  var context = providerFiber.type._context;\n\n  {\n    push(valueCursor, context._currentValue, providerFiber);\n    context._currentValue = nextValue;\n\n    {\n      if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n        error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');\n      }\n\n      context._currentRenderer = rendererSigil;\n    }\n  }\n}\nfunction popProvider(providerFiber) {\n  var currentValue = valueCursor.current;\n  pop(valueCursor, providerFiber);\n  var context = providerFiber.type._context;\n\n  {\n    context._currentValue = currentValue;\n  }\n}\nfunction calculateChangedBits(context, newValue, oldValue) {\n  if (objectIs(oldValue, newValue)) {\n    // No change\n    return 0;\n  } else {\n    var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n    {\n      if ((changedBits & MAX_SIGNED_31_BIT_INT) !== changedBits) {\n        error('calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n      }\n    }\n\n    return changedBits | 0;\n  }\n}\nfunction scheduleWorkOnParentPath(parent, renderExpirationTime) {\n  // Update the child expiration time of all the ancestors, including\n  // the alternates.\n  var node = parent;\n\n  while (node !== null) {\n    var alternate = node.alternate;\n\n    if (node.childExpirationTime < renderExpirationTime) {\n      node.childExpirationTime = renderExpirationTime;\n\n      if (alternate !== null && alternate.childExpirationTime < renderExpirationTime) {\n        alternate.childExpirationTime = renderExpirationTime;\n      }\n    } else if (alternate !== null && alternate.childExpirationTime < renderExpirationTime) {\n      alternate.childExpirationTime = renderExpirationTime;\n    } else {\n      // Neither alternate was updated, which means the rest of the\n      // ancestor path already has sufficient priority.\n      break;\n    }\n\n    node = node.return;\n  }\n}\nfunction propagateContextChange(workInProgress, context, changedBits, renderExpirationTime) {\n  var fiber = workInProgress.child;\n\n  if (fiber !== null) {\n    // Set the return pointer of the child to the work-in-progress fiber.\n    fiber.return = workInProgress;\n  }\n\n  while (fiber !== null) {\n    var nextFiber = void 0; // Visit this fiber.\n\n    var list = fiber.dependencies;\n\n    if (list !== null) {\n      nextFiber = fiber.child;\n      var dependency = list.firstContext;\n\n      while (dependency !== null) {\n        // Check if the context matches.\n        if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {\n          // Match! Schedule an update on this fiber.\n          if (fiber.tag === ClassComponent) {\n            // Schedule a force update on the work-in-progress.\n            var update = createUpdate(renderExpirationTime, null);\n            update.tag = ForceUpdate; // TODO: Because we don't have a work-in-progress, this will add the\n            // update to the current fiber, too, which means it will persist even if\n            // this render is thrown away. Since it's a race condition, not sure it's\n            // worth fixing.\n\n            enqueueUpdate(fiber, update);\n          }\n\n          if (fiber.expirationTime < renderExpirationTime) {\n            fiber.expirationTime = renderExpirationTime;\n          }\n\n          var alternate = fiber.alternate;\n\n          if (alternate !== null && alternate.expirationTime < renderExpirationTime) {\n            alternate.expirationTime = renderExpirationTime;\n          }\n\n          scheduleWorkOnParentPath(fiber.return, renderExpirationTime); // Mark the expiration time on the list, too.\n\n          if (list.expirationTime < renderExpirationTime) {\n            list.expirationTime = renderExpirationTime;\n          } // Since we already found a match, we can stop traversing the\n          // dependency list.\n\n\n          break;\n        }\n\n        dependency = dependency.next;\n      }\n    } else if (fiber.tag === ContextProvider) {\n      // Don't scan deeper if this is a matching provider\n      nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n    } else {\n      // Traverse down.\n      nextFiber = fiber.child;\n    }\n\n    if (nextFiber !== null) {\n      // Set the return pointer of the child to the work-in-progress fiber.\n      nextFiber.return = fiber;\n    } else {\n      // No child. Traverse to next sibling.\n      nextFiber = fiber;\n\n      while (nextFiber !== null) {\n        if (nextFiber === workInProgress) {\n          // We're back to the root of this subtree. Exit.\n          nextFiber = null;\n          break;\n        }\n\n        var sibling = nextFiber.sibling;\n\n        if (sibling !== null) {\n          // Set the return pointer of the sibling to the work-in-progress fiber.\n          sibling.return = nextFiber.return;\n          nextFiber = sibling;\n          break;\n        } // No more siblings. Traverse up.\n\n\n        nextFiber = nextFiber.return;\n      }\n    }\n\n    fiber = nextFiber;\n  }\n}\nfunction prepareToReadContext(workInProgress, renderExpirationTime) {\n  currentlyRenderingFiber = workInProgress;\n  lastContextDependency = null;\n  lastContextWithAllBitsObserved = null;\n  var dependencies = workInProgress.dependencies;\n\n  if (dependencies !== null) {\n    var firstContext = dependencies.firstContext;\n\n    if (firstContext !== null) {\n      if (dependencies.expirationTime >= renderExpirationTime) {\n        // Context list has a pending update. Mark that this fiber performed work.\n        markWorkInProgressReceivedUpdate();\n      } // Reset the work-in-progress list\n\n\n      dependencies.firstContext = null;\n    }\n  }\n}\nfunction readContext(context, observedBits) {\n  {\n    // This warning would fire if you read context inside a Hook like useMemo.\n    // Unlike the class check below, it's not enforced in production for perf.\n    if (isDisallowedContextReadInDEV) {\n      error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n    }\n  }\n\n  if (lastContextWithAllBitsObserved === context) ; else if (observedBits === false || observedBits === 0) ; else {\n    var resolvedObservedBits; // Avoid deopting on observable arguments or heterogeneous types.\n\n    if (typeof observedBits !== 'number' || observedBits === MAX_SIGNED_31_BIT_INT) {\n      // Observe all updates.\n      lastContextWithAllBitsObserved = context;\n      resolvedObservedBits = MAX_SIGNED_31_BIT_INT;\n    } else {\n      resolvedObservedBits = observedBits;\n    }\n\n    var contextItem = {\n      context: context,\n      observedBits: resolvedObservedBits,\n      next: null\n    };\n\n    if (lastContextDependency === null) {\n      if (!(currentlyRenderingFiber !== null)) {\n        {\n          throw Error( \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\" );\n        }\n      } // This is the first dependency for this component. Create a new list.\n\n\n      lastContextDependency = contextItem;\n      currentlyRenderingFiber.dependencies = {\n        expirationTime: NoWork,\n        firstContext: contextItem,\n        responders: null\n      };\n    } else {\n      // Append a new context item.\n      lastContextDependency = lastContextDependency.next = contextItem;\n    }\n  }\n\n  return  context._currentValue ;\n}\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3; // Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\n\nvar hasForceUpdate = false;\nvar didWarnUpdateInsideUpdate;\nvar currentlyProcessingQueue;\n\n{\n  didWarnUpdateInsideUpdate = false;\n  currentlyProcessingQueue = null;\n}\n\nfunction initializeUpdateQueue(fiber) {\n  var queue = {\n    baseState: fiber.memoizedState,\n    baseQueue: null,\n    shared: {\n      pending: null\n    },\n    effects: null\n  };\n  fiber.updateQueue = queue;\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n  // Clone the update queue from current. Unless it's already a clone.\n  var queue = workInProgress.updateQueue;\n  var currentQueue = current.updateQueue;\n\n  if (queue === currentQueue) {\n    var clone = {\n      baseState: currentQueue.baseState,\n      baseQueue: currentQueue.baseQueue,\n      shared: currentQueue.shared,\n      effects: currentQueue.effects\n    };\n    workInProgress.updateQueue = clone;\n  }\n}\nfunction createUpdate(expirationTime, suspenseConfig) {\n  var update = {\n    expirationTime: expirationTime,\n    suspenseConfig: suspenseConfig,\n    tag: UpdateState,\n    payload: null,\n    callback: null,\n    next: null\n  };\n  update.next = update;\n\n  {\n    update.priority = getCurrentPriorityLevel();\n  }\n\n  return update;\n}\nfunction enqueueUpdate(fiber, update) {\n  var updateQueue = fiber.updateQueue;\n\n  if (updateQueue === null) {\n    // Only occurs if the fiber has been unmounted.\n    return;\n  }\n\n  var sharedQueue = updateQueue.shared;\n  var pending = sharedQueue.pending;\n\n  if (pending === null) {\n    // This is the first update. Create a circular list.\n    update.next = update;\n  } else {\n    update.next = pending.next;\n    pending.next = update;\n  }\n\n  sharedQueue.pending = update;\n\n  {\n    if (currentlyProcessingQueue === sharedQueue && !didWarnUpdateInsideUpdate) {\n      error('An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n\n      didWarnUpdateInsideUpdate = true;\n    }\n  }\n}\nfunction enqueueCapturedUpdate(workInProgress, update) {\n  var current = workInProgress.alternate;\n\n  if (current !== null) {\n    // Ensure the work-in-progress queue is a clone\n    cloneUpdateQueue(current, workInProgress);\n  } // Captured updates go only on the work-in-progress queue.\n\n\n  var queue = workInProgress.updateQueue; // Append the update to the end of the list.\n\n  var last = queue.baseQueue;\n\n  if (last === null) {\n    queue.baseQueue = update.next = update;\n    update.next = update;\n  } else {\n    update.next = last.next;\n    last.next = update;\n  }\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n  switch (update.tag) {\n    case ReplaceState:\n      {\n        var payload = update.payload;\n\n        if (typeof payload === 'function') {\n          // Updater function\n          {\n            enterDisallowedContextReadInDEV();\n\n            if ( workInProgress.mode & StrictMode) {\n              payload.call(instance, prevState, nextProps);\n            }\n          }\n\n          var nextState = payload.call(instance, prevState, nextProps);\n\n          {\n            exitDisallowedContextReadInDEV();\n          }\n\n          return nextState;\n        } // State object\n\n\n        return payload;\n      }\n\n    case CaptureUpdate:\n      {\n        workInProgress.effectTag = workInProgress.effectTag & ~ShouldCapture | DidCapture;\n      }\n    // Intentional fallthrough\n\n    case UpdateState:\n      {\n        var _payload = update.payload;\n        var partialState;\n\n        if (typeof _payload === 'function') {\n          // Updater function\n          {\n            enterDisallowedContextReadInDEV();\n\n            if ( workInProgress.mode & StrictMode) {\n              _payload.call(instance, prevState, nextProps);\n            }\n          }\n\n          partialState = _payload.call(instance, prevState, nextProps);\n\n          {\n            exitDisallowedContextReadInDEV();\n          }\n        } else {\n          // Partial state object\n          partialState = _payload;\n        }\n\n        if (partialState === null || partialState === undefined) {\n          // Null and undefined are treated as no-ops.\n          return prevState;\n        } // Merge the partial state and the previous state.\n\n\n        return _assign({}, prevState, partialState);\n      }\n\n    case ForceUpdate:\n      {\n        hasForceUpdate = true;\n        return prevState;\n      }\n  }\n\n  return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, props, instance, renderExpirationTime) {\n  // This is always non-null on a ClassComponent or HostRoot\n  var queue = workInProgress.updateQueue;\n  hasForceUpdate = false;\n\n  {\n    currentlyProcessingQueue = queue.shared;\n  } // The last rebase update that is NOT part of the base state.\n\n\n  var baseQueue = queue.baseQueue; // The last pending update that hasn't been processed yet.\n\n  var pendingQueue = queue.shared.pending;\n\n  if (pendingQueue !== null) {\n    // We have new updates that haven't been processed yet.\n    // We'll add them to the base queue.\n    if (baseQueue !== null) {\n      // Merge the pending queue and the base queue.\n      var baseFirst = baseQueue.next;\n      var pendingFirst = pendingQueue.next;\n      baseQueue.next = pendingFirst;\n      pendingQueue.next = baseFirst;\n    }\n\n    baseQueue = pendingQueue;\n    queue.shared.pending = null; // TODO: Pass `current` as argument\n\n    var current = workInProgress.alternate;\n\n    if (current !== null) {\n      var currentQueue = current.updateQueue;\n\n      if (currentQueue !== null) {\n        currentQueue.baseQueue = pendingQueue;\n      }\n    }\n  } // These values may change as we process the queue.\n\n\n  if (baseQueue !== null) {\n    var first = baseQueue.next; // Iterate through the list of updates to compute the result.\n\n    var newState = queue.baseState;\n    var newExpirationTime = NoWork;\n    var newBaseState = null;\n    var newBaseQueueFirst = null;\n    var newBaseQueueLast = null;\n\n    if (first !== null) {\n      var update = first;\n\n      do {\n        var updateExpirationTime = update.expirationTime;\n\n        if (updateExpirationTime < renderExpirationTime) {\n          // Priority is insufficient. Skip this update. If this is the first\n          // skipped update, the previous update/state is the new base\n          // update/state.\n          var clone = {\n            expirationTime: update.expirationTime,\n            suspenseConfig: update.suspenseConfig,\n            tag: update.tag,\n            payload: update.payload,\n            callback: update.callback,\n            next: null\n          };\n\n          if (newBaseQueueLast === null) {\n            newBaseQueueFirst = newBaseQueueLast = clone;\n            newBaseState = newState;\n          } else {\n            newBaseQueueLast = newBaseQueueLast.next = clone;\n          } // Update the remaining priority in the queue.\n\n\n          if (updateExpirationTime > newExpirationTime) {\n            newExpirationTime = updateExpirationTime;\n          }\n        } else {\n          // This update does have sufficient priority.\n          if (newBaseQueueLast !== null) {\n            var _clone = {\n              expirationTime: Sync,\n              // This update is going to be committed so we never want uncommit it.\n              suspenseConfig: update.suspenseConfig,\n              tag: update.tag,\n              payload: update.payload,\n              callback: update.callback,\n              next: null\n            };\n            newBaseQueueLast = newBaseQueueLast.next = _clone;\n          } // Mark the event time of this update as relevant to this render pass.\n          // TODO: This should ideally use the true event time of this update rather than\n          // its priority which is a derived and not reverseable value.\n          // TODO: We should skip this update if it was already committed but currently\n          // we have no way of detecting the difference between a committed and suspended\n          // update here.\n\n\n          markRenderEventTimeAndConfig(updateExpirationTime, update.suspenseConfig); // Process this update.\n\n          newState = getStateFromUpdate(workInProgress, queue, update, newState, props, instance);\n          var callback = update.callback;\n\n          if (callback !== null) {\n            workInProgress.effectTag |= Callback;\n            var effects = queue.effects;\n\n            if (effects === null) {\n              queue.effects = [update];\n            } else {\n              effects.push(update);\n            }\n          }\n        }\n\n        update = update.next;\n\n        if (update === null || update === first) {\n          pendingQueue = queue.shared.pending;\n\n          if (pendingQueue === null) {\n            break;\n          } else {\n            // An update was scheduled from inside a reducer. Add the new\n            // pending updates to the end of the list and keep processing.\n            update = baseQueue.next = pendingQueue.next;\n            pendingQueue.next = first;\n            queue.baseQueue = baseQueue = pendingQueue;\n            queue.shared.pending = null;\n          }\n        }\n      } while (true);\n    }\n\n    if (newBaseQueueLast === null) {\n      newBaseState = newState;\n    } else {\n      newBaseQueueLast.next = newBaseQueueFirst;\n    }\n\n    queue.baseState = newBaseState;\n    queue.baseQueue = newBaseQueueLast; // Set the remaining expiration time to be whatever is remaining in the queue.\n    // This should be fine because the only two other things that contribute to\n    // expiration time are props and context. We're already in the middle of the\n    // begin phase by the time we start processing the queue, so we've already\n    // dealt with the props. Context in components that specify\n    // shouldComponentUpdate is tricky; but we'll have to account for\n    // that regardless.\n\n    markUnprocessedUpdateTime(newExpirationTime);\n    workInProgress.expirationTime = newExpirationTime;\n    workInProgress.memoizedState = newState;\n  }\n\n  {\n    currentlyProcessingQueue = null;\n  }\n}\n\nfunction callCallback(callback, context) {\n  if (!(typeof callback === 'function')) {\n    {\n      throw Error( \"Invalid argument passed as callback. Expected a function. Instead received: \" + callback );\n    }\n  }\n\n  callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n  hasForceUpdate = false;\n}\nfunction checkHasForceUpdateAfterProcessing() {\n  return hasForceUpdate;\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n  // Commit the effects\n  var effects = finishedQueue.effects;\n  finishedQueue.effects = null;\n\n  if (effects !== null) {\n    for (var i = 0; i < effects.length; i++) {\n      var effect = effects[i];\n      var callback = effect.callback;\n\n      if (callback !== null) {\n        effect.callback = null;\n        callCallback(callback, instance);\n      }\n    }\n  }\n}\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nfunction requestCurrentSuspenseConfig() {\n  return ReactCurrentBatchConfig.suspense;\n}\n\nvar fakeInternalInstance = {};\nvar isArray = Array.isArray; // React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\n\nvar emptyRefsObject = new React.Component().refs;\nvar didWarnAboutStateAssignmentForComponent;\nvar didWarnAboutUninitializedState;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\nvar didWarnAboutLegacyLifecyclesAndDerivedState;\nvar didWarnAboutUndefinedDerivedState;\nvar warnOnUndefinedDerivedState;\nvar warnOnInvalidCallback;\nvar didWarnAboutDirectlyAssigningPropsToState;\nvar didWarnAboutContextTypeAndContextTypes;\nvar didWarnAboutInvalidateContextType;\n\n{\n  didWarnAboutStateAssignmentForComponent = new Set();\n  didWarnAboutUninitializedState = new Set();\n  didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n  didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n  didWarnAboutDirectlyAssigningPropsToState = new Set();\n  didWarnAboutUndefinedDerivedState = new Set();\n  didWarnAboutContextTypeAndContextTypes = new Set();\n  didWarnAboutInvalidateContextType = new Set();\n  var didWarnOnInvalidCallback = new Set();\n\n  warnOnInvalidCallback = function (callback, callerName) {\n    if (callback === null || typeof callback === 'function') {\n      return;\n    }\n\n    var key = callerName + \"_\" + callback;\n\n    if (!didWarnOnInvalidCallback.has(key)) {\n      didWarnOnInvalidCallback.add(key);\n\n      error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n    }\n  };\n\n  warnOnUndefinedDerivedState = function (type, partialState) {\n    if (partialState === undefined) {\n      var componentName = getComponentName(type) || 'Component';\n\n      if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n        didWarnAboutUndefinedDerivedState.add(componentName);\n\n        error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n      }\n    }\n  }; // This is so gross but it's at least non-critical and can be removed if\n  // it causes problems. This is meant to give a nicer error message for\n  // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n  // ...)) which otherwise throws a \"_processChildContext is not a function\"\n  // exception.\n\n\n  Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n    enumerable: false,\n    value: function () {\n      {\n        {\n          throw Error( \"_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).\" );\n        }\n      }\n    }\n  });\n  Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n  var prevState = workInProgress.memoizedState;\n\n  {\n    if ( workInProgress.mode & StrictMode) {\n      // Invoke the function an extra time to help detect side-effects.\n      getDerivedStateFromProps(nextProps, prevState);\n    }\n  }\n\n  var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n  {\n    warnOnUndefinedDerivedState(ctor, partialState);\n  } // Merge the partial state and the previous state.\n\n\n  var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);\n  workInProgress.memoizedState = memoizedState; // Once the update queue is empty, persist the derived state onto the\n  // base state.\n\n  if (workInProgress.expirationTime === NoWork) {\n    // Queue is always non-null for classes\n    var updateQueue = workInProgress.updateQueue;\n    updateQueue.baseState = memoizedState;\n  }\n}\nvar classComponentUpdater = {\n  isMounted: isMounted,\n  enqueueSetState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTimeForUpdate();\n    var suspenseConfig = requestCurrentSuspenseConfig();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n    var update = createUpdate(expirationTime, suspenseConfig);\n    update.payload = payload;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback(callback, 'setState');\n      }\n\n      update.callback = callback;\n    }\n\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  },\n  enqueueReplaceState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTimeForUpdate();\n    var suspenseConfig = requestCurrentSuspenseConfig();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n    var update = createUpdate(expirationTime, suspenseConfig);\n    update.tag = ReplaceState;\n    update.payload = payload;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback(callback, 'replaceState');\n      }\n\n      update.callback = callback;\n    }\n\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  },\n  enqueueForceUpdate: function (inst, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTimeForUpdate();\n    var suspenseConfig = requestCurrentSuspenseConfig();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n    var update = createUpdate(expirationTime, suspenseConfig);\n    update.tag = ForceUpdate;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback(callback, 'forceUpdate');\n      }\n\n      update.callback = callback;\n    }\n\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n  var instance = workInProgress.stateNode;\n\n  if (typeof instance.shouldComponentUpdate === 'function') {\n    {\n      if ( workInProgress.mode & StrictMode) {\n        // Invoke the function an extra time to help detect side-effects.\n        instance.shouldComponentUpdate(newProps, newState, nextContext);\n      }\n    }\n\n    startPhaseTimer(workInProgress, 'shouldComponentUpdate');\n    var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n    stopPhaseTimer();\n\n    {\n      if (shouldUpdate === undefined) {\n        error('%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component');\n      }\n    }\n\n    return shouldUpdate;\n  }\n\n  if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n    return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n  }\n\n  return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n  var instance = workInProgress.stateNode;\n\n  {\n    var name = getComponentName(ctor) || 'Component';\n    var renderPresent = instance.render;\n\n    if (!renderPresent) {\n      if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n        error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n      } else {\n        error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n      }\n    }\n\n    if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n      error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n    }\n\n    if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n    }\n\n    if (instance.propTypes) {\n      error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n    }\n\n    if (instance.contextType) {\n      error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name);\n    }\n\n    {\n      if (instance.contextTypes) {\n        error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n      }\n\n      if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n        didWarnAboutContextTypeAndContextTypes.add(ctor);\n\n        error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n      }\n    }\n\n    if (typeof instance.componentShouldUpdate === 'function') {\n      error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n    }\n\n    if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n      error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');\n    }\n\n    if (typeof instance.componentDidUnmount === 'function') {\n      error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n    }\n\n    if (typeof instance.componentDidReceiveProps === 'function') {\n      error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n    }\n\n    if (typeof instance.componentWillRecieveProps === 'function') {\n      error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n    }\n\n    if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') {\n      error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name);\n    }\n\n    var hasMutatedProps = instance.props !== newProps;\n\n    if (instance.props !== undefined && hasMutatedProps) {\n      error('%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n    }\n\n    if (instance.defaultProps) {\n      error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n      didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n\n      error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));\n    }\n\n    if (typeof instance.getDerivedStateFromProps === 'function') {\n      error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n    }\n\n    if (typeof instance.getDerivedStateFromError === 'function') {\n      error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n    }\n\n    if (typeof ctor.getSnapshotBeforeUpdate === 'function') {\n      error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name);\n    }\n\n    var _state = instance.state;\n\n    if (_state && (typeof _state !== 'object' || isArray(_state))) {\n      error('%s.state: must be set to an object or null', name);\n    }\n\n    if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') {\n      error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name);\n    }\n  }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n  instance.updater = classComponentUpdater;\n  workInProgress.stateNode = instance; // The instance needs access to the fiber so that it can schedule updates\n\n  set(instance, workInProgress);\n\n  {\n    instance._reactInternalInstance = fakeInternalInstance;\n  }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props) {\n  var isLegacyContextConsumer = false;\n  var unmaskedContext = emptyContextObject;\n  var context = emptyContextObject;\n  var contextType = ctor.contextType;\n\n  {\n    if ('contextType' in ctor) {\n      var isValid = // Allow null for conditional declaration\n      contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n      if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n        didWarnAboutInvalidateContextType.add(ctor);\n        var addendum = '';\n\n        if (contextType === undefined) {\n          addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n        } else if (typeof contextType !== 'object') {\n          addendum = ' However, it is set to a ' + typeof contextType + '.';\n        } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n          addendum = ' Did you accidentally pass the Context.Provider instead?';\n        } else if (contextType._context !== undefined) {\n          // <Context.Consumer>\n          addendum = ' Did you accidentally pass the Context.Consumer instead?';\n        } else {\n          addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n        }\n\n        error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentName(ctor) || 'Component', addendum);\n      }\n    }\n  }\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    context = readContext(contextType);\n  } else {\n    unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    var contextTypes = ctor.contextTypes;\n    isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n    context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n  } // Instantiate twice to help detect side-effects.\n\n\n  {\n    if ( workInProgress.mode & StrictMode) {\n      new ctor(props, context); // eslint-disable-line no-new\n    }\n  }\n\n  var instance = new ctor(props, context);\n  var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n  adoptClassInstance(workInProgress, instance);\n\n  {\n    if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n      var componentName = getComponentName(ctor) || 'Component';\n\n      if (!didWarnAboutUninitializedState.has(componentName)) {\n        didWarnAboutUninitializedState.add(componentName);\n\n        error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n      }\n    } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n    // Warn about these lifecycles if they are present.\n    // Don't warn about react-lifecycles-compat polyfilled methods though.\n\n\n    if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n      var foundWillMountName = null;\n      var foundWillReceivePropsName = null;\n      var foundWillUpdateName = null;\n\n      if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n        foundWillMountName = 'componentWillMount';\n      } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        foundWillMountName = 'UNSAFE_componentWillMount';\n      }\n\n      if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n        foundWillReceivePropsName = 'componentWillReceiveProps';\n      } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n        foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n      }\n\n      if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n        foundWillUpdateName = 'componentWillUpdate';\n      } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n      }\n\n      if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n        var _componentName = getComponentName(ctor) || 'Component';\n\n        var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n\n        if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n          didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n\n          error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? \"\\n  \" + foundWillMountName : '', foundWillReceivePropsName !== null ? \"\\n  \" + foundWillReceivePropsName : '', foundWillUpdateName !== null ? \"\\n  \" + foundWillUpdateName : '');\n        }\n      }\n    }\n  } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n  // ReactFiberContext usually updates this cache but can't for newly-created instances.\n\n\n  if (isLegacyContextConsumer) {\n    cacheContext(workInProgress, unmaskedContext, context);\n  }\n\n  return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n  startPhaseTimer(workInProgress, 'componentWillMount');\n  var oldState = instance.state;\n\n  if (typeof instance.componentWillMount === 'function') {\n    instance.componentWillMount();\n  }\n\n  if (typeof instance.UNSAFE_componentWillMount === 'function') {\n    instance.UNSAFE_componentWillMount();\n  }\n\n  stopPhaseTimer();\n\n  if (oldState !== instance.state) {\n    {\n      error('%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');\n    }\n\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n  var oldState = instance.state;\n  startPhaseTimer(workInProgress, 'componentWillReceiveProps');\n\n  if (typeof instance.componentWillReceiveProps === 'function') {\n    instance.componentWillReceiveProps(newProps, nextContext);\n  }\n\n  if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n  }\n\n  stopPhaseTimer();\n\n  if (instance.state !== oldState) {\n    {\n      var componentName = getComponentName(workInProgress.type) || 'Component';\n\n      if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n        didWarnAboutStateAssignmentForComponent.add(componentName);\n\n        error('%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n      }\n    }\n\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n} // Invokes the mount life-cycles on a previously never rendered instance.\n\n\nfunction mountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {\n  {\n    checkClassInstance(workInProgress, ctor, newProps);\n  }\n\n  var instance = workInProgress.stateNode;\n  instance.props = newProps;\n  instance.state = workInProgress.memoizedState;\n  instance.refs = emptyRefsObject;\n  initializeUpdateQueue(workInProgress);\n  var contextType = ctor.contextType;\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    instance.context = readContext(contextType);\n  } else {\n    var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    instance.context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  {\n    if (instance.state === newProps) {\n      var componentName = getComponentName(ctor) || 'Component';\n\n      if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n        didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n\n        error('%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n      }\n    }\n\n    if (workInProgress.mode & StrictMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n    }\n\n    {\n      ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n    }\n  }\n\n  processUpdateQueue(workInProgress, newProps, instance, renderExpirationTime);\n  instance.state = workInProgress.memoizedState;\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    instance.state = workInProgress.memoizedState;\n  } // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n\n  if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n    callComponentWillMount(workInProgress, instance); // If we had additional state updates during this life-cycle, let's\n    // process them now.\n\n    processUpdateQueue(workInProgress, newProps, instance, renderExpirationTime);\n    instance.state = workInProgress.memoizedState;\n  }\n\n  if (typeof instance.componentDidMount === 'function') {\n    workInProgress.effectTag |= Update;\n  }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {\n  var instance = workInProgress.stateNode;\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = oldProps;\n  var oldContext = instance.context;\n  var contextType = ctor.contextType;\n  var nextContext = emptyContextObject;\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    nextContext = readContext(contextType);\n  } else {\n    var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  processUpdateQueue(workInProgress, newProps, instance, renderExpirationTime);\n  newState = workInProgress.memoizedState;\n\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n      startPhaseTimer(workInProgress, 'componentWillMount');\n\n      if (typeof instance.componentWillMount === 'function') {\n        instance.componentWillMount();\n      }\n\n      if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        instance.UNSAFE_componentWillMount();\n      }\n\n      stopPhaseTimer();\n    }\n\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    } // If shouldComponentUpdate returned false, we should still update the\n    // memoized state to indicate that this work can be reused.\n\n\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  } // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n\n\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextContext;\n  return shouldUpdate;\n} // Invokes the update life-cycles and returns false if it shouldn't rerender.\n\n\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderExpirationTime) {\n  var instance = workInProgress.stateNode;\n  cloneUpdateQueue(current, workInProgress);\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = workInProgress.type === workInProgress.elementType ? oldProps : resolveDefaultProps(workInProgress.type, oldProps);\n  var oldContext = instance.context;\n  var contextType = ctor.contextType;\n  var nextContext = emptyContextObject;\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    nextContext = readContext(contextType);\n  } else {\n    var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  processUpdateQueue(workInProgress, newProps, instance, renderExpirationTime);\n  newState = workInProgress.memoizedState;\n\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Update;\n      }\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Snapshot;\n      }\n    }\n\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n      startPhaseTimer(workInProgress, 'componentWillUpdate');\n\n      if (typeof instance.componentWillUpdate === 'function') {\n        instance.componentWillUpdate(newProps, newState, nextContext);\n      }\n\n      if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n      }\n\n      stopPhaseTimer();\n    }\n\n    if (typeof instance.componentDidUpdate === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      workInProgress.effectTag |= Snapshot;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Update;\n      }\n    }\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Snapshot;\n      }\n    } // If shouldComponentUpdate returned false, we should still update the\n    // memoized props/state to indicate that this work can be reused.\n\n\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  } // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n\n\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextContext;\n  return shouldUpdate;\n}\n\nvar didWarnAboutMaps;\nvar didWarnAboutGenerators;\nvar didWarnAboutStringRefs;\nvar ownerHasKeyUseWarning;\nvar ownerHasFunctionTypeWarning;\n\nvar warnForMissingKey = function (child) {};\n\n{\n  didWarnAboutMaps = false;\n  didWarnAboutGenerators = false;\n  didWarnAboutStringRefs = {};\n  /**\n   * Warn if there's no key explicitly set on dynamic arrays of children or\n   * object keys are not valid. This allows us to keep track of children between\n   * updates.\n   */\n\n  ownerHasKeyUseWarning = {};\n  ownerHasFunctionTypeWarning = {};\n\n  warnForMissingKey = function (child) {\n    if (child === null || typeof child !== 'object') {\n      return;\n    }\n\n    if (!child._store || child._store.validated || child.key != null) {\n      return;\n    }\n\n    if (!(typeof child._store === 'object')) {\n      {\n        throw Error( \"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n\n    child._store.validated = true;\n    var currentComponentErrorInfo = 'Each child in a list should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.' + getCurrentFiberStackInDev();\n\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n    error('Each child in a list should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.');\n  };\n}\n\nvar isArray$1 = Array.isArray;\n\nfunction coerceRef(returnFiber, current, element) {\n  var mixedRef = element.ref;\n\n  if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n    {\n      // TODO: Clean this up once we turn on the string ref warning for\n      // everyone, because the strict mode case will no longer be relevant\n      if ((returnFiber.mode & StrictMode || warnAboutStringRefs) && // We warn in ReactElement.js if owner and self are equal for string refs\n      // because these cannot be automatically converted to an arrow function\n      // using a codemod. Therefore, we don't have to warn about string refs again.\n      !(element._owner && element._self && element._owner.stateNode !== element._self)) {\n        var componentName = getComponentName(returnFiber.type) || 'Component';\n\n        if (!didWarnAboutStringRefs[componentName]) {\n          {\n            error('A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://fb.me/react-strict-mode-string-ref%s', mixedRef, getStackByFiberInDevAndProd(returnFiber));\n          }\n\n          didWarnAboutStringRefs[componentName] = true;\n        }\n      }\n    }\n\n    if (element._owner) {\n      var owner = element._owner;\n      var inst;\n\n      if (owner) {\n        var ownerFiber = owner;\n\n        if (!(ownerFiber.tag === ClassComponent)) {\n          {\n            throw Error( \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref\" );\n          }\n        }\n\n        inst = ownerFiber.stateNode;\n      }\n\n      if (!inst) {\n        {\n          throw Error( \"Missing owner for string ref \" + mixedRef + \". This error is likely caused by a bug in React. Please file an issue.\" );\n        }\n      }\n\n      var stringRef = '' + mixedRef; // Check if previous string ref matches new string ref\n\n      if (current !== null && current.ref !== null && typeof current.ref === 'function' && current.ref._stringRef === stringRef) {\n        return current.ref;\n      }\n\n      var ref = function (value) {\n        var refs = inst.refs;\n\n        if (refs === emptyRefsObject) {\n          // This is a lazy pooled frozen object, so we need to initialize.\n          refs = inst.refs = {};\n        }\n\n        if (value === null) {\n          delete refs[stringRef];\n        } else {\n          refs[stringRef] = value;\n        }\n      };\n\n      ref._stringRef = stringRef;\n      return ref;\n    } else {\n      if (!(typeof mixedRef === 'string')) {\n        {\n          throw Error( \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\" );\n        }\n      }\n\n      if (!element._owner) {\n        {\n          throw Error( \"Element ref was specified as a string (\" + mixedRef + \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://fb.me/react-refs-must-have-owner for more information.\" );\n        }\n      }\n    }\n  }\n\n  return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n  if (returnFiber.type !== 'textarea') {\n    var addendum = '';\n\n    {\n      addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + getCurrentFiberStackInDev();\n    }\n\n    {\n      {\n        throw Error( \"Objects are not valid as a React child (found: \" + (Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild) + \").\" + addendum );\n      }\n    }\n  }\n}\n\nfunction warnOnFunctionType() {\n  {\n    var currentComponentErrorInfo = 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.' + getCurrentFiberStackInDev();\n\n    if (ownerHasFunctionTypeWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasFunctionTypeWarning[currentComponentErrorInfo] = true;\n\n    error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n  }\n} // This wrapper function exists because I expect to clone the code in each path\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\n\n\nfunction ChildReconciler(shouldTrackSideEffects) {\n  function deleteChild(returnFiber, childToDelete) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return;\n    } // Deletions are added in reversed order so we add it to the front.\n    // At this point, the return fiber's effect list is empty except for\n    // deletions, so we can just append the deletion to the list. The remaining\n    // effects aren't added until the complete phase. Once we implement\n    // resuming, this may not be true.\n\n\n    var last = returnFiber.lastEffect;\n\n    if (last !== null) {\n      last.nextEffect = childToDelete;\n      returnFiber.lastEffect = childToDelete;\n    } else {\n      returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n    }\n\n    childToDelete.nextEffect = null;\n    childToDelete.effectTag = Deletion;\n  }\n\n  function deleteRemainingChildren(returnFiber, currentFirstChild) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return null;\n    } // TODO: For the shouldClone case, this could be micro-optimized a bit by\n    // assuming that after the first child we've already added everything.\n\n\n    var childToDelete = currentFirstChild;\n\n    while (childToDelete !== null) {\n      deleteChild(returnFiber, childToDelete);\n      childToDelete = childToDelete.sibling;\n    }\n\n    return null;\n  }\n\n  function mapRemainingChildren(returnFiber, currentFirstChild) {\n    // Add the remaining children to a temporary map so that we can find them by\n    // keys quickly. Implicit (null) keys get added to this set with their index\n    // instead.\n    var existingChildren = new Map();\n    var existingChild = currentFirstChild;\n\n    while (existingChild !== null) {\n      if (existingChild.key !== null) {\n        existingChildren.set(existingChild.key, existingChild);\n      } else {\n        existingChildren.set(existingChild.index, existingChild);\n      }\n\n      existingChild = existingChild.sibling;\n    }\n\n    return existingChildren;\n  }\n\n  function useFiber(fiber, pendingProps) {\n    // We currently set sibling to null and index to 0 here because it is easy\n    // to forget to do before returning it. E.g. for the single child case.\n    var clone = createWorkInProgress(fiber, pendingProps);\n    clone.index = 0;\n    clone.sibling = null;\n    return clone;\n  }\n\n  function placeChild(newFiber, lastPlacedIndex, newIndex) {\n    newFiber.index = newIndex;\n\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return lastPlacedIndex;\n    }\n\n    var current = newFiber.alternate;\n\n    if (current !== null) {\n      var oldIndex = current.index;\n\n      if (oldIndex < lastPlacedIndex) {\n        // This is a move.\n        newFiber.effectTag = Placement;\n        return lastPlacedIndex;\n      } else {\n        // This item can stay in place.\n        return oldIndex;\n      }\n    } else {\n      // This is an insertion.\n      newFiber.effectTag = Placement;\n      return lastPlacedIndex;\n    }\n  }\n\n  function placeSingleChild(newFiber) {\n    // This is simpler for the single child case. We only need to do a\n    // placement for inserting new children.\n    if (shouldTrackSideEffects && newFiber.alternate === null) {\n      newFiber.effectTag = Placement;\n    }\n\n    return newFiber;\n  }\n\n  function updateTextNode(returnFiber, current, textContent, expirationTime) {\n    if (current === null || current.tag !== HostText) {\n      // Insert\n      var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current, textContent);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateElement(returnFiber, current, element, expirationTime) {\n    if (current !== null) {\n      if (current.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n       isCompatibleFamilyForHotReloading(current, element) )) {\n        // Move based on index\n        var existing = useFiber(current, element.props);\n        existing.ref = coerceRef(returnFiber, current, element);\n        existing.return = returnFiber;\n\n        {\n          existing._debugSource = element._source;\n          existing._debugOwner = element._owner;\n        }\n\n        return existing;\n      }\n    } // Insert\n\n\n    var created = createFiberFromElement(element, returnFiber.mode, expirationTime);\n    created.ref = coerceRef(returnFiber, current, element);\n    created.return = returnFiber;\n    return created;\n  }\n\n  function updatePortal(returnFiber, current, portal, expirationTime) {\n    if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n      // Insert\n      var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current, portal.children || []);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateFragment(returnFiber, current, fragment, expirationTime, key) {\n    if (current === null || current.tag !== Fragment) {\n      // Insert\n      var created = createFiberFromFragment(fragment, returnFiber.mode, expirationTime, key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current, fragment);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function createChild(returnFiber, newChild, expirationTime) {\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime);\n\n            _created.ref = coerceRef(returnFiber, null, newChild);\n            _created.return = returnFiber;\n            return _created;\n          }\n\n        case REACT_PORTAL_TYPE:\n          {\n            var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime);\n\n            _created2.return = returnFiber;\n            return _created2;\n          }\n      }\n\n      if (isArray$1(newChild) || getIteratorFn(newChild)) {\n        var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null);\n\n        _created3.return = returnFiber;\n        return _created3;\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  function updateSlot(returnFiber, oldFiber, newChild, expirationTime) {\n    // Update the fiber if the keys match, otherwise return null.\n    var key = oldFiber !== null ? oldFiber.key : null;\n\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      if (key !== null) {\n        return null;\n      }\n\n      return updateTextNode(returnFiber, oldFiber, '' + newChild, expirationTime);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            if (newChild.key === key) {\n              if (newChild.type === REACT_FRAGMENT_TYPE) {\n                return updateFragment(returnFiber, oldFiber, newChild.props.children, expirationTime, key);\n              }\n\n              return updateElement(returnFiber, oldFiber, newChild, expirationTime);\n            } else {\n              return null;\n            }\n          }\n\n        case REACT_PORTAL_TYPE:\n          {\n            if (newChild.key === key) {\n              return updatePortal(returnFiber, oldFiber, newChild, expirationTime);\n            } else {\n              return null;\n            }\n          }\n      }\n\n      if (isArray$1(newChild) || getIteratorFn(newChild)) {\n        if (key !== null) {\n          return null;\n        }\n\n        return updateFragment(returnFiber, oldFiber, newChild, expirationTime, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  function updateFromMap(existingChildren, returnFiber, newIdx, newChild, expirationTime) {\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys, so we neither have to check the old nor\n      // new node for the key. If both are text nodes, they match.\n      var matchedFiber = existingChildren.get(newIdx) || null;\n      return updateTextNode(returnFiber, matchedFiber, '' + newChild, expirationTime);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n            if (newChild.type === REACT_FRAGMENT_TYPE) {\n              return updateFragment(returnFiber, _matchedFiber, newChild.props.children, expirationTime, newChild.key);\n            }\n\n            return updateElement(returnFiber, _matchedFiber, newChild, expirationTime);\n          }\n\n        case REACT_PORTAL_TYPE:\n          {\n            var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n            return updatePortal(returnFiber, _matchedFiber2, newChild, expirationTime);\n          }\n      }\n\n      if (isArray$1(newChild) || getIteratorFn(newChild)) {\n        var _matchedFiber3 = existingChildren.get(newIdx) || null;\n\n        return updateFragment(returnFiber, _matchedFiber3, newChild, expirationTime, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n  /**\n   * Warns if there is a duplicate or missing key\n   */\n\n\n  function warnOnInvalidKey(child, knownKeys) {\n    {\n      if (typeof child !== 'object' || child === null) {\n        return knownKeys;\n      }\n\n      switch (child.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n        case REACT_PORTAL_TYPE:\n          warnForMissingKey(child);\n          var key = child.key;\n\n          if (typeof key !== 'string') {\n            break;\n          }\n\n          if (knownKeys === null) {\n            knownKeys = new Set();\n            knownKeys.add(key);\n            break;\n          }\n\n          if (!knownKeys.has(key)) {\n            knownKeys.add(key);\n            break;\n          }\n\n          error('Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n\n          break;\n      }\n    }\n\n    return knownKeys;\n  }\n\n  function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, expirationTime) {\n    // This algorithm can't optimize by searching from both ends since we\n    // don't have backpointers on fibers. I'm trying to see how far we can get\n    // with that model. If it ends up not being worth the tradeoffs, we can\n    // add it later.\n    // Even with a two ended optimization, we'd want to optimize for the case\n    // where there are few changes and brute force the comparison instead of\n    // going for the Map. It'd like to explore hitting that path first in\n    // forward-only mode and only go for the Map once we notice that we need\n    // lots of look ahead. This doesn't handle reversal as well as two ended\n    // search but that's unusual. Besides, for the two ended optimization to\n    // work on Iterables, we'd need to copy the whole set.\n    // In this first iteration, we'll just live with hitting the bad case\n    // (adding everything to a Map) in for every insert/move.\n    // If you change this code, also update reconcileChildrenIterator() which\n    // uses the same algorithm.\n    {\n      // First, validate keys.\n      var knownKeys = null;\n\n      for (var i = 0; i < newChildren.length; i++) {\n        var child = newChildren[i];\n        knownKeys = warnOnInvalidKey(child, knownKeys);\n      }\n    }\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n\n    for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n\n      var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], expirationTime);\n\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n\n        break;\n      }\n\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (newIdx === newChildren.length) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; newIdx < newChildren.length; newIdx++) {\n        var _newFiber = createChild(returnFiber, newChildren[newIdx], expirationTime);\n\n        if (_newFiber === null) {\n          continue;\n        }\n\n        lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber;\n        } else {\n          previousNewFiber.sibling = _newFiber;\n        }\n\n        previousNewFiber = _newFiber;\n      }\n\n      return resultingFirstChild;\n    } // Add all children to a key map for quick lookups.\n\n\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n    for (; newIdx < newChildren.length; newIdx++) {\n      var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], expirationTime);\n\n      if (_newFiber2 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber2.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n          }\n        }\n\n        lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber2;\n        } else {\n          previousNewFiber.sibling = _newFiber2;\n        }\n\n        previousNewFiber = _newFiber2;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, expirationTime) {\n    // This is the same implementation as reconcileChildrenArray(),\n    // but using the iterator instead.\n    var iteratorFn = getIteratorFn(newChildrenIterable);\n\n    if (!(typeof iteratorFn === 'function')) {\n      {\n        throw Error( \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\" );\n      }\n    }\n\n    {\n      // We don't support rendering Generators because it's a mutation.\n      // See https://github.com/facebook/react/issues/12995\n      if (typeof Symbol === 'function' && // $FlowFixMe Flow doesn't know about toStringTag\n      newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n        if (!didWarnAboutGenerators) {\n          error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.');\n        }\n\n        didWarnAboutGenerators = true;\n      } // Warn about using Maps as children\n\n\n      if (newChildrenIterable.entries === iteratorFn) {\n        if (!didWarnAboutMaps) {\n          error('Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.');\n        }\n\n        didWarnAboutMaps = true;\n      } // First, validate keys.\n      // We'll get a different iterator later for the main pass.\n\n\n      var _newChildren = iteratorFn.call(newChildrenIterable);\n\n      if (_newChildren) {\n        var knownKeys = null;\n\n        var _step = _newChildren.next();\n\n        for (; !_step.done; _step = _newChildren.next()) {\n          var child = _step.value;\n          knownKeys = warnOnInvalidKey(child, knownKeys);\n        }\n      }\n    }\n\n    var newChildren = iteratorFn.call(newChildrenIterable);\n\n    if (!(newChildren != null)) {\n      {\n        throw Error( \"An iterable object provided no iterator.\" );\n      }\n    }\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n    var step = newChildren.next();\n\n    for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n\n      var newFiber = updateSlot(returnFiber, oldFiber, step.value, expirationTime);\n\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n\n        break;\n      }\n\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (step.done) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; !step.done; newIdx++, step = newChildren.next()) {\n        var _newFiber3 = createChild(returnFiber, step.value, expirationTime);\n\n        if (_newFiber3 === null) {\n          continue;\n        }\n\n        lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber3;\n        } else {\n          previousNewFiber.sibling = _newFiber3;\n        }\n\n        previousNewFiber = _newFiber3;\n      }\n\n      return resultingFirstChild;\n    } // Add all children to a key map for quick lookups.\n\n\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n    for (; !step.done; newIdx++, step = newChildren.next()) {\n      var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, expirationTime);\n\n      if (_newFiber4 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber4.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n          }\n        }\n\n        lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber4;\n        } else {\n          previousNewFiber.sibling = _newFiber4;\n        }\n\n        previousNewFiber = _newFiber4;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, expirationTime) {\n    // There's no need to check for keys on text nodes since we don't have a\n    // way to define them.\n    if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n      // We already have an existing node so let's just update it and delete\n      // the rest.\n      deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n      var existing = useFiber(currentFirstChild, textContent);\n      existing.return = returnFiber;\n      return existing;\n    } // The existing first child is not a text node so we need to create one\n    // and delete the existing ones.\n\n\n    deleteRemainingChildren(returnFiber, currentFirstChild);\n    var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);\n    created.return = returnFiber;\n    return created;\n  }\n\n  function reconcileSingleElement(returnFiber, currentFirstChild, element, expirationTime) {\n    var key = element.key;\n    var child = currentFirstChild;\n\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        switch (child.tag) {\n          case Fragment:\n            {\n              if (element.type === REACT_FRAGMENT_TYPE) {\n                deleteRemainingChildren(returnFiber, child.sibling);\n                var existing = useFiber(child, element.props.children);\n                existing.return = returnFiber;\n\n                {\n                  existing._debugSource = element._source;\n                  existing._debugOwner = element._owner;\n                }\n\n                return existing;\n              }\n\n              break;\n            }\n\n          case Block:\n\n          // We intentionally fallthrough here if enableBlocksAPI is not on.\n          // eslint-disable-next-lined no-fallthrough\n\n          default:\n            {\n              if (child.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n               isCompatibleFamilyForHotReloading(child, element) )) {\n                deleteRemainingChildren(returnFiber, child.sibling);\n\n                var _existing3 = useFiber(child, element.props);\n\n                _existing3.ref = coerceRef(returnFiber, child, element);\n                _existing3.return = returnFiber;\n\n                {\n                  _existing3._debugSource = element._source;\n                  _existing3._debugOwner = element._owner;\n                }\n\n                return _existing3;\n              }\n\n              break;\n            }\n        } // Didn't match.\n\n\n        deleteRemainingChildren(returnFiber, child);\n        break;\n      } else {\n        deleteChild(returnFiber, child);\n      }\n\n      child = child.sibling;\n    }\n\n    if (element.type === REACT_FRAGMENT_TYPE) {\n      var created = createFiberFromFragment(element.props.children, returnFiber.mode, expirationTime, element.key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      var _created4 = createFiberFromElement(element, returnFiber.mode, expirationTime);\n\n      _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n      _created4.return = returnFiber;\n      return _created4;\n    }\n  }\n\n  function reconcileSinglePortal(returnFiber, currentFirstChild, portal, expirationTime) {\n    var key = portal.key;\n    var child = currentFirstChild;\n\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n          deleteRemainingChildren(returnFiber, child.sibling);\n          var existing = useFiber(child, portal.children || []);\n          existing.return = returnFiber;\n          return existing;\n        } else {\n          deleteRemainingChildren(returnFiber, child);\n          break;\n        }\n      } else {\n        deleteChild(returnFiber, child);\n      }\n\n      child = child.sibling;\n    }\n\n    var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);\n    created.return = returnFiber;\n    return created;\n  } // This API will tag the children with the side-effect of the reconciliation\n  // itself. They will be added to the side-effect list as we pass through the\n  // children and the parent.\n\n\n  function reconcileChildFibers(returnFiber, currentFirstChild, newChild, expirationTime) {\n    // This function is not recursive.\n    // If the top level item is an array, we treat it as a set of children,\n    // not as a fragment. Nested arrays on the other hand will be treated as\n    // fragment nodes. Recursion happens at the normal flow.\n    // Handle top level unkeyed fragments as if they were arrays.\n    // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n    // We treat the ambiguous cases above the same.\n    var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n\n    if (isUnkeyedTopLevelFragment) {\n      newChild = newChild.props.children;\n    } // Handle object types\n\n\n    var isObject = typeof newChild === 'object' && newChild !== null;\n\n    if (isObject) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, expirationTime));\n\n        case REACT_PORTAL_TYPE:\n          return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, expirationTime));\n      }\n    }\n\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, expirationTime));\n    }\n\n    if (isArray$1(newChild)) {\n      return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, expirationTime);\n    }\n\n    if (getIteratorFn(newChild)) {\n      return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, expirationTime);\n    }\n\n    if (isObject) {\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {\n      // If the new child is undefined, and the return fiber is a composite\n      // component, throw an error. If Fiber return types are disabled,\n      // we already threw above.\n      switch (returnFiber.tag) {\n        case ClassComponent:\n          {\n            {\n              var instance = returnFiber.stateNode;\n\n              if (instance.render._isMockFunction) {\n                // We allow auto-mocks to proceed as if they're returning null.\n                break;\n              }\n            }\n          }\n        // Intentionally fall through to the next case, which handles both\n        // functions and classes\n        // eslint-disable-next-lined no-fallthrough\n\n        case FunctionComponent:\n          {\n            var Component = returnFiber.type;\n\n            {\n              {\n                throw Error( (Component.displayName || Component.name || 'Component') + \"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.\" );\n              }\n            }\n          }\n      }\n    } // Remaining cases are all treated as empty.\n\n\n    return deleteRemainingChildren(returnFiber, currentFirstChild);\n  }\n\n  return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\nfunction cloneChildFibers(current, workInProgress) {\n  if (!(current === null || workInProgress.child === current.child)) {\n    {\n      throw Error( \"Resuming work not yet implemented.\" );\n    }\n  }\n\n  if (workInProgress.child === null) {\n    return;\n  }\n\n  var currentChild = workInProgress.child;\n  var newChild = createWorkInProgress(currentChild, currentChild.pendingProps);\n  workInProgress.child = newChild;\n  newChild.return = workInProgress;\n\n  while (currentChild.sibling !== null) {\n    currentChild = currentChild.sibling;\n    newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps);\n    newChild.return = workInProgress;\n  }\n\n  newChild.sibling = null;\n} // Reset a workInProgress child set to prepare it for a second pass.\n\nfunction resetChildFibers(workInProgress, renderExpirationTime) {\n  var child = workInProgress.child;\n\n  while (child !== null) {\n    resetWorkInProgress(child, renderExpirationTime);\n    child = child.sibling;\n  }\n}\n\nvar NO_CONTEXT = {};\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n  if (!(c !== NO_CONTEXT)) {\n    {\n      throw Error( \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n\n  return c;\n}\n\nfunction getRootHostContainer() {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n  // Push current root instance onto the stack;\n  // This allows us to reset root when portals are popped.\n  push(rootInstanceStackCursor, nextRootInstance, fiber); // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n\n  push(contextFiberStackCursor, fiber, fiber); // Finally, we need to push the host context to the stack.\n  // However, we can't just call getRootHostContext() and push it because\n  // we'd have a different number of entries on the stack depending on\n  // whether getRootHostContext() throws somewhere in renderer code or not.\n  // So we push an empty value first. This lets us safely unwind on errors.\n\n  push(contextStackCursor$1, NO_CONTEXT, fiber);\n  var nextRootContext = getRootHostContext(nextRootInstance); // Now that we know this function doesn't throw, replace it.\n\n  pop(contextStackCursor$1, fiber);\n  push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n  pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n  var context = requiredContext(contextStackCursor$1.current);\n  return context;\n}\n\nfunction pushHostContext(fiber) {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  var context = requiredContext(contextStackCursor$1.current);\n  var nextContext = getChildHostContext(context, fiber.type); // Don't push this Fiber's context unless it's unique.\n\n  if (context === nextContext) {\n    return;\n  } // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n\n\n  push(contextFiberStackCursor, fiber, fiber);\n  push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n  // Do not pop unless this Fiber provided the current context.\n  // pushHostContext() only pushes Fibers that provide unique contexts.\n  if (contextFiberStackCursor.current !== fiber) {\n    return;\n  }\n\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0; // The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\n\nvar SubtreeSuspenseContextMask = 1; // Subtree Flags:\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\n\nvar InvisibleParentSuspenseContext = 1; // Shallow Flags:\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\n\nvar ForceSuspenseFallback = 2;\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\nfunction hasSuspenseContext(parentContext, flag) {\n  return (parentContext & flag) !== 0;\n}\nfunction setDefaultShallowSuspenseContext(parentContext) {\n  return parentContext & SubtreeSuspenseContextMask;\n}\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n  return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n  return parentContext | subtreeContext;\n}\nfunction pushSuspenseContext(fiber, newContext) {\n  push(suspenseStackCursor, newContext, fiber);\n}\nfunction popSuspenseContext(fiber) {\n  pop(suspenseStackCursor, fiber);\n}\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n  // If it was the primary children that just suspended, capture and render the\n  // fallback. Otherwise, don't capture and bubble to the next boundary.\n  var nextState = workInProgress.memoizedState;\n\n  if (nextState !== null) {\n    if (nextState.dehydrated !== null) {\n      // A dehydrated boundary always captures.\n      return true;\n    }\n\n    return false;\n  }\n\n  var props = workInProgress.memoizedProps; // In order to capture, the Suspense component must have a fallback prop.\n\n  if (props.fallback === undefined) {\n    return false;\n  } // Regular boundaries always capture.\n\n\n  if (props.unstable_avoidThisFallback !== true) {\n    return true;\n  } // If it's a boundary we should avoid, then we prefer to bubble up to the\n  // parent boundary if it is currently invisible.\n\n\n  if (hasInvisibleParent) {\n    return false;\n  } // If the parent is not able to handle it, we must handle it.\n\n\n  return true;\n}\nfunction findFirstSuspended(row) {\n  var node = row;\n\n  while (node !== null) {\n    if (node.tag === SuspenseComponent) {\n      var state = node.memoizedState;\n\n      if (state !== null) {\n        var dehydrated = state.dehydrated;\n\n        if (dehydrated === null || isSuspenseInstancePending(dehydrated) || isSuspenseInstanceFallback(dehydrated)) {\n          return node;\n        }\n      }\n    } else if (node.tag === SuspenseListComponent && // revealOrder undefined can't be trusted because it don't\n    // keep track of whether it suspended or not.\n    node.memoizedProps.revealOrder !== undefined) {\n      var didSuspend = (node.effectTag & DidCapture) !== NoEffect;\n\n      if (didSuspend) {\n        return node;\n      }\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === row) {\n      return null;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === row) {\n        return null;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n\n  return null;\n}\n\nfunction createDeprecatedResponderListener(responder, props) {\n  var eventResponderListener = {\n    responder: responder,\n    props: props\n  };\n\n  {\n    Object.freeze(eventResponderListener);\n  }\n\n  return eventResponderListener;\n}\n\nvar HasEffect =\n/* */\n1; // Represents the phase in which the effect (not the clean-up) fires.\n\nvar Layout =\n/*    */\n2;\nvar Passive$1 =\n/*   */\n4;\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher,\n    ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar didWarnAboutMismatchedHooksForComponent;\n\n{\n  didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\n// These are set right before calling the component.\nvar renderExpirationTime = NoWork; // The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\n\nvar currentlyRenderingFiber$1 = null; // Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\n\nvar currentHook = null;\nvar workInProgressHook = null; // Whether an update was scheduled at any point during the render phase. This\n// does not get reset if we do another render pass; only when we're completely\n// finished evaluating this component. This is an optimization so we know\n// whether we need to clear render phase updates after a throw.\n\nvar didScheduleRenderPhaseUpdate = false;\nvar RE_RENDER_LIMIT = 25; // In DEV, this is the name of the currently executing primitive hook\n\nvar currentHookNameInDev = null; // In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\n\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1; // In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\n\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n  {\n    var hookName = currentHookNameInDev;\n\n    if (hookTypesDev === null) {\n      hookTypesDev = [hookName];\n    } else {\n      hookTypesDev.push(hookName);\n    }\n  }\n}\n\nfunction updateHookTypesDev() {\n  {\n    var hookName = currentHookNameInDev;\n\n    if (hookTypesDev !== null) {\n      hookTypesUpdateIndexDev++;\n\n      if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n        warnOnHookMismatchInDev(hookName);\n      }\n    }\n  }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n  {\n    if (deps !== undefined && deps !== null && !Array.isArray(deps)) {\n      // Verify deps, but only on mount to avoid extra checks.\n      // It's unlikely their type would change as usually you define them inline.\n      error('%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n    }\n  }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n  {\n    var componentName = getComponentName(currentlyRenderingFiber$1.type);\n\n    if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n      didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n      if (hookTypesDev !== null) {\n        var table = '';\n        var secondColumnStart = 30;\n\n        for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n          var oldHookName = hookTypesDev[i];\n          var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n          var row = i + 1 + \". \" + oldHookName; // Extra space so second column lines up\n          // lol @ IE not supporting String#repeat\n\n          while (row.length < secondColumnStart) {\n            row += ' ';\n          }\n\n          row += newHookName + '\\n';\n          table += row;\n        }\n\n        error('React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://fb.me/rules-of-hooks\\n\\n' + '   Previous render            Next render\\n' + '   ------------------------------------------------------\\n' + '%s' + '   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n      }\n    }\n  }\n}\n\nfunction throwInvalidHookError() {\n  {\n    {\n      throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.\" );\n    }\n  }\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n  {\n    if (ignorePreviousDependencies) {\n      // Only true when this component is being hot reloaded.\n      return false;\n    }\n  }\n\n  if (prevDeps === null) {\n    {\n      error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n    }\n\n    return false;\n  }\n\n  {\n    // Don't bother comparing lengths in prod because these arrays should be\n    // passed inline.\n    if (nextDeps.length !== prevDeps.length) {\n      error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, \"[\" + prevDeps.join(', ') + \"]\", \"[\" + nextDeps.join(', ') + \"]\");\n    }\n  }\n\n  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n    if (objectIs(nextDeps[i], prevDeps[i])) {\n      continue;\n    }\n\n    return false;\n  }\n\n  return true;\n}\n\nfunction renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderExpirationTime) {\n  renderExpirationTime = nextRenderExpirationTime;\n  currentlyRenderingFiber$1 = workInProgress;\n\n  {\n    hookTypesDev = current !== null ? current._debugHookTypes : null;\n    hookTypesUpdateIndexDev = -1; // Used for hot reloading:\n\n    ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n  }\n\n  workInProgress.memoizedState = null;\n  workInProgress.updateQueue = null;\n  workInProgress.expirationTime = NoWork; // The following should have already been reset\n  // currentHook = null;\n  // workInProgressHook = null;\n  // didScheduleRenderPhaseUpdate = false;\n  // TODO Warn if no hooks are used at all during mount, then some are used during update.\n  // Currently we will identify the update render as a mount because memoizedState === null.\n  // This is tricky because it's valid for certain types of components (e.g. React.lazy)\n  // Using memoizedState to differentiate between mount/update only works if at least one stateful hook is used.\n  // Non-stateful hooks (e.g. context) don't get added to memoizedState,\n  // so memoizedState would be null during updates and mounts.\n\n  {\n    if (current !== null && current.memoizedState !== null) {\n      ReactCurrentDispatcher.current = HooksDispatcherOnUpdateInDEV;\n    } else if (hookTypesDev !== null) {\n      // This dispatcher handles an edge case where a component is updating,\n      // but no stateful hooks have been used.\n      // We want to match the production code behavior (which will use HooksDispatcherOnMount),\n      // but with the extra DEV validation to ensure hooks ordering hasn't changed.\n      // This dispatcher does that.\n      ReactCurrentDispatcher.current = HooksDispatcherOnMountWithHookTypesInDEV;\n    } else {\n      ReactCurrentDispatcher.current = HooksDispatcherOnMountInDEV;\n    }\n  }\n\n  var children = Component(props, secondArg); // Check if there was a render phase update\n\n  if (workInProgress.expirationTime === renderExpirationTime) {\n    // Keep rendering in a loop for as long as render phase updates continue to\n    // be scheduled. Use a counter to prevent infinite loops.\n    var numberOfReRenders = 0;\n\n    do {\n      workInProgress.expirationTime = NoWork;\n\n      if (!(numberOfReRenders < RE_RENDER_LIMIT)) {\n        {\n          throw Error( \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\" );\n        }\n      }\n\n      numberOfReRenders += 1;\n\n      {\n        // Even when hot reloading, allow dependencies to stabilize\n        // after first render to prevent infinite render phase updates.\n        ignorePreviousDependencies = false;\n      } // Start over from the beginning of the list\n\n\n      currentHook = null;\n      workInProgressHook = null;\n      workInProgress.updateQueue = null;\n\n      {\n        // Also validate hook order for cascading updates.\n        hookTypesUpdateIndexDev = -1;\n      }\n\n      ReactCurrentDispatcher.current =  HooksDispatcherOnRerenderInDEV ;\n      children = Component(props, secondArg);\n    } while (workInProgress.expirationTime === renderExpirationTime);\n  } // We can assume the previous dispatcher is always this one, since we set it\n  // at the beginning of the render phase and there's no re-entrancy.\n\n\n  ReactCurrentDispatcher.current = ContextOnlyDispatcher;\n\n  {\n    workInProgress._debugHookTypes = hookTypesDev;\n  } // This check uses currentHook so that it works the same in DEV and prod bundles.\n  // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\n\n\n  var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n  renderExpirationTime = NoWork;\n  currentlyRenderingFiber$1 = null;\n  currentHook = null;\n  workInProgressHook = null;\n\n  {\n    currentHookNameInDev = null;\n    hookTypesDev = null;\n    hookTypesUpdateIndexDev = -1;\n  }\n\n  didScheduleRenderPhaseUpdate = false;\n\n  if (!!didRenderTooFewHooks) {\n    {\n      throw Error( \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\" );\n    }\n  }\n\n  return children;\n}\nfunction bailoutHooks(current, workInProgress, expirationTime) {\n  workInProgress.updateQueue = current.updateQueue;\n  workInProgress.effectTag &= ~(Passive | Update);\n\n  if (current.expirationTime <= expirationTime) {\n    current.expirationTime = NoWork;\n  }\n}\nfunction resetHooksAfterThrow() {\n  // We can assume the previous dispatcher is always this one, since we set it\n  // at the beginning of the render phase and there's no re-entrancy.\n  ReactCurrentDispatcher.current = ContextOnlyDispatcher;\n\n  if (didScheduleRenderPhaseUpdate) {\n    // There were render phase updates. These are only valid for this render\n    // phase, which we are now aborting. Remove the updates from the queues so\n    // they do not persist to the next render. Do not remove updates from hooks\n    // that weren't processed.\n    //\n    // Only reset the updates from the queue if it has a clone. If it does\n    // not have a clone, that means it wasn't processed, and the updates were\n    // scheduled before we entered the render phase.\n    var hook = currentlyRenderingFiber$1.memoizedState;\n\n    while (hook !== null) {\n      var queue = hook.queue;\n\n      if (queue !== null) {\n        queue.pending = null;\n      }\n\n      hook = hook.next;\n    }\n  }\n\n  renderExpirationTime = NoWork;\n  currentlyRenderingFiber$1 = null;\n  currentHook = null;\n  workInProgressHook = null;\n\n  {\n    hookTypesDev = null;\n    hookTypesUpdateIndexDev = -1;\n    currentHookNameInDev = null;\n  }\n\n  didScheduleRenderPhaseUpdate = false;\n}\n\nfunction mountWorkInProgressHook() {\n  var hook = {\n    memoizedState: null,\n    baseState: null,\n    baseQueue: null,\n    queue: null,\n    next: null\n  };\n\n  if (workInProgressHook === null) {\n    // This is the first hook in the list\n    currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook;\n  } else {\n    // Append to the end of the list\n    workInProgressHook = workInProgressHook.next = hook;\n  }\n\n  return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n  // This function is used both for updates and for re-renders triggered by a\n  // render phase update. It assumes there is either a current hook we can\n  // clone, or a work-in-progress hook from a previous render pass that we can\n  // use as a base. When we reach the end of the base list, we must switch to\n  // the dispatcher used for mounts.\n  var nextCurrentHook;\n\n  if (currentHook === null) {\n    var current = currentlyRenderingFiber$1.alternate;\n\n    if (current !== null) {\n      nextCurrentHook = current.memoizedState;\n    } else {\n      nextCurrentHook = null;\n    }\n  } else {\n    nextCurrentHook = currentHook.next;\n  }\n\n  var nextWorkInProgressHook;\n\n  if (workInProgressHook === null) {\n    nextWorkInProgressHook = currentlyRenderingFiber$1.memoizedState;\n  } else {\n    nextWorkInProgressHook = workInProgressHook.next;\n  }\n\n  if (nextWorkInProgressHook !== null) {\n    // There's already a work-in-progress. Reuse it.\n    workInProgressHook = nextWorkInProgressHook;\n    nextWorkInProgressHook = workInProgressHook.next;\n    currentHook = nextCurrentHook;\n  } else {\n    // Clone from the current hook.\n    if (!(nextCurrentHook !== null)) {\n      {\n        throw Error( \"Rendered more hooks than during the previous render.\" );\n      }\n    }\n\n    currentHook = nextCurrentHook;\n    var newHook = {\n      memoizedState: currentHook.memoizedState,\n      baseState: currentHook.baseState,\n      baseQueue: currentHook.baseQueue,\n      queue: currentHook.queue,\n      next: null\n    };\n\n    if (workInProgressHook === null) {\n      // This is the first hook in the list.\n      currentlyRenderingFiber$1.memoizedState = workInProgressHook = newHook;\n    } else {\n      // Append to the end of the list.\n      workInProgressHook = workInProgressHook.next = newHook;\n    }\n  }\n\n  return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n  return {\n    lastEffect: null\n  };\n}\n\nfunction basicStateReducer(state, action) {\n  // $FlowFixMe: Flow doesn't like mixed types\n  return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n  var hook = mountWorkInProgressHook();\n  var initialState;\n\n  if (init !== undefined) {\n    initialState = init(initialArg);\n  } else {\n    initialState = initialArg;\n  }\n\n  hook.memoizedState = hook.baseState = initialState;\n  var queue = hook.queue = {\n    pending: null,\n    dispatch: null,\n    lastRenderedReducer: reducer,\n    lastRenderedState: initialState\n  };\n  var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n  return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n  var hook = updateWorkInProgressHook();\n  var queue = hook.queue;\n\n  if (!(queue !== null)) {\n    {\n      throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n    }\n  }\n\n  queue.lastRenderedReducer = reducer;\n  var current = currentHook; // The last rebase update that is NOT part of the base state.\n\n  var baseQueue = current.baseQueue; // The last pending update that hasn't been processed yet.\n\n  var pendingQueue = queue.pending;\n\n  if (pendingQueue !== null) {\n    // We have new updates that haven't been processed yet.\n    // We'll add them to the base queue.\n    if (baseQueue !== null) {\n      // Merge the pending queue and the base queue.\n      var baseFirst = baseQueue.next;\n      var pendingFirst = pendingQueue.next;\n      baseQueue.next = pendingFirst;\n      pendingQueue.next = baseFirst;\n    }\n\n    current.baseQueue = baseQueue = pendingQueue;\n    queue.pending = null;\n  }\n\n  if (baseQueue !== null) {\n    // We have a queue to process.\n    var first = baseQueue.next;\n    var newState = current.baseState;\n    var newBaseState = null;\n    var newBaseQueueFirst = null;\n    var newBaseQueueLast = null;\n    var update = first;\n\n    do {\n      var updateExpirationTime = update.expirationTime;\n\n      if (updateExpirationTime < renderExpirationTime) {\n        // Priority is insufficient. Skip this update. If this is the first\n        // skipped update, the previous update/state is the new base\n        // update/state.\n        var clone = {\n          expirationTime: update.expirationTime,\n          suspenseConfig: update.suspenseConfig,\n          action: update.action,\n          eagerReducer: update.eagerReducer,\n          eagerState: update.eagerState,\n          next: null\n        };\n\n        if (newBaseQueueLast === null) {\n          newBaseQueueFirst = newBaseQueueLast = clone;\n          newBaseState = newState;\n        } else {\n          newBaseQueueLast = newBaseQueueLast.next = clone;\n        } // Update the remaining priority in the queue.\n\n\n        if (updateExpirationTime > currentlyRenderingFiber$1.expirationTime) {\n          currentlyRenderingFiber$1.expirationTime = updateExpirationTime;\n          markUnprocessedUpdateTime(updateExpirationTime);\n        }\n      } else {\n        // This update does have sufficient priority.\n        if (newBaseQueueLast !== null) {\n          var _clone = {\n            expirationTime: Sync,\n            // This update is going to be committed so we never want uncommit it.\n            suspenseConfig: update.suspenseConfig,\n            action: update.action,\n            eagerReducer: update.eagerReducer,\n            eagerState: update.eagerState,\n            next: null\n          };\n          newBaseQueueLast = newBaseQueueLast.next = _clone;\n        } // Mark the event time of this update as relevant to this render pass.\n        // TODO: This should ideally use the true event time of this update rather than\n        // its priority which is a derived and not reverseable value.\n        // TODO: We should skip this update if it was already committed but currently\n        // we have no way of detecting the difference between a committed and suspended\n        // update here.\n\n\n        markRenderEventTimeAndConfig(updateExpirationTime, update.suspenseConfig); // Process this update.\n\n        if (update.eagerReducer === reducer) {\n          // If this update was processed eagerly, and its reducer matches the\n          // current reducer, we can use the eagerly computed state.\n          newState = update.eagerState;\n        } else {\n          var action = update.action;\n          newState = reducer(newState, action);\n        }\n      }\n\n      update = update.next;\n    } while (update !== null && update !== first);\n\n    if (newBaseQueueLast === null) {\n      newBaseState = newState;\n    } else {\n      newBaseQueueLast.next = newBaseQueueFirst;\n    } // Mark that the fiber performed work, but only if the new state is\n    // different from the current state.\n\n\n    if (!objectIs(newState, hook.memoizedState)) {\n      markWorkInProgressReceivedUpdate();\n    }\n\n    hook.memoizedState = newState;\n    hook.baseState = newBaseState;\n    hook.baseQueue = newBaseQueueLast;\n    queue.lastRenderedState = newState;\n  }\n\n  var dispatch = queue.dispatch;\n  return [hook.memoizedState, dispatch];\n}\n\nfunction rerenderReducer(reducer, initialArg, init) {\n  var hook = updateWorkInProgressHook();\n  var queue = hook.queue;\n\n  if (!(queue !== null)) {\n    {\n      throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n    }\n  }\n\n  queue.lastRenderedReducer = reducer; // This is a re-render. Apply the new render phase updates to the previous\n  // work-in-progress hook.\n\n  var dispatch = queue.dispatch;\n  var lastRenderPhaseUpdate = queue.pending;\n  var newState = hook.memoizedState;\n\n  if (lastRenderPhaseUpdate !== null) {\n    // The queue doesn't persist past this render pass.\n    queue.pending = null;\n    var firstRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n    var update = firstRenderPhaseUpdate;\n\n    do {\n      // Process this render phase update. We don't have to check the\n      // priority because it will always be the same as the current\n      // render's.\n      var action = update.action;\n      newState = reducer(newState, action);\n      update = update.next;\n    } while (update !== firstRenderPhaseUpdate); // Mark that the fiber performed work, but only if the new state is\n    // different from the current state.\n\n\n    if (!objectIs(newState, hook.memoizedState)) {\n      markWorkInProgressReceivedUpdate();\n    }\n\n    hook.memoizedState = newState; // Don't persist the state accumulated from the render phase updates to\n    // the base state unless the queue is empty.\n    // TODO: Not sure if this is the desired semantics, but it's what we\n    // do for gDSFP. I can't remember why.\n\n    if (hook.baseQueue === null) {\n      hook.baseState = newState;\n    }\n\n    queue.lastRenderedState = newState;\n  }\n\n  return [newState, dispatch];\n}\n\nfunction mountState(initialState) {\n  var hook = mountWorkInProgressHook();\n\n  if (typeof initialState === 'function') {\n    // $FlowFixMe: Flow doesn't like mixed types\n    initialState = initialState();\n  }\n\n  hook.memoizedState = hook.baseState = initialState;\n  var queue = hook.queue = {\n    pending: null,\n    dispatch: null,\n    lastRenderedReducer: basicStateReducer,\n    lastRenderedState: initialState\n  };\n  var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n  return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n  return updateReducer(basicStateReducer);\n}\n\nfunction rerenderState(initialState) {\n  return rerenderReducer(basicStateReducer);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n  var effect = {\n    tag: tag,\n    create: create,\n    destroy: destroy,\n    deps: deps,\n    // Circular\n    next: null\n  };\n  var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n  if (componentUpdateQueue === null) {\n    componentUpdateQueue = createFunctionComponentUpdateQueue();\n    currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n    componentUpdateQueue.lastEffect = effect.next = effect;\n  } else {\n    var lastEffect = componentUpdateQueue.lastEffect;\n\n    if (lastEffect === null) {\n      componentUpdateQueue.lastEffect = effect.next = effect;\n    } else {\n      var firstEffect = lastEffect.next;\n      lastEffect.next = effect;\n      effect.next = firstEffect;\n      componentUpdateQueue.lastEffect = effect;\n    }\n  }\n\n  return effect;\n}\n\nfunction mountRef(initialValue) {\n  var hook = mountWorkInProgressHook();\n  var ref = {\n    current: initialValue\n  };\n\n  {\n    Object.seal(ref);\n  }\n\n  hook.memoizedState = ref;\n  return ref;\n}\n\nfunction updateRef(initialValue) {\n  var hook = updateWorkInProgressHook();\n  return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  currentlyRenderingFiber$1.effectTag |= fiberEffectTag;\n  hook.memoizedState = pushEffect(HasEffect | hookEffectTag, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var destroy = undefined;\n\n  if (currentHook !== null) {\n    var prevEffect = currentHook.memoizedState;\n    destroy = prevEffect.destroy;\n\n    if (nextDeps !== null) {\n      var prevDeps = prevEffect.deps;\n\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        pushEffect(hookEffectTag, create, destroy, nextDeps);\n        return;\n      }\n    }\n  }\n\n  currentlyRenderingFiber$1.effectTag |= fiberEffectTag;\n  hook.memoizedState = pushEffect(HasEffect | hookEffectTag, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n  {\n    // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n    if ('undefined' !== typeof jest) {\n      warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n    }\n  }\n\n  return mountEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction updateEffect(create, deps) {\n  {\n    // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n    if ('undefined' !== typeof jest) {\n      warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n    }\n  }\n\n  return updateEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n  return mountEffectImpl(Update, Layout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n  return updateEffectImpl(Update, Layout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n  if (typeof ref === 'function') {\n    var refCallback = ref;\n\n    var _inst = create();\n\n    refCallback(_inst);\n    return function () {\n      refCallback(null);\n    };\n  } else if (ref !== null && ref !== undefined) {\n    var refObject = ref;\n\n    {\n      if (!refObject.hasOwnProperty('current')) {\n        error('Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}');\n      }\n    }\n\n    var _inst2 = create();\n\n    refObject.current = _inst2;\n    return function () {\n      refObject.current = null;\n    };\n  }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n  {\n    if (typeof create !== 'function') {\n      error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n    }\n  } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n  return mountEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n  {\n    if (typeof create !== 'function') {\n      error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n    }\n  } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n  return updateEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {// This hook is normally a no-op.\n  // The react-debug-hooks package injects its own implementation\n  // so that e.g. DevTools can display custom hook values.\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  hook.memoizedState = [callback, nextDeps];\n  return callback;\n}\n\nfunction updateCallback(callback, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var prevState = hook.memoizedState;\n\n  if (prevState !== null) {\n    if (nextDeps !== null) {\n      var prevDeps = prevState[1];\n\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        return prevState[0];\n      }\n    }\n  }\n\n  hook.memoizedState = [callback, nextDeps];\n  return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var nextValue = nextCreate();\n  hook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var prevState = hook.memoizedState;\n\n  if (prevState !== null) {\n    // Assume these are defined. If they're not, areHookInputsEqual will warn.\n    if (nextDeps !== null) {\n      var prevDeps = prevState[1];\n\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        return prevState[0];\n      }\n    }\n  }\n\n  var nextValue = nextCreate();\n  hook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction mountDeferredValue(value, config) {\n  var _mountState = mountState(value),\n      prevValue = _mountState[0],\n      setValue = _mountState[1];\n\n  mountEffect(function () {\n    var previousConfig = ReactCurrentBatchConfig$1.suspense;\n    ReactCurrentBatchConfig$1.suspense = config === undefined ? null : config;\n\n    try {\n      setValue(value);\n    } finally {\n      ReactCurrentBatchConfig$1.suspense = previousConfig;\n    }\n  }, [value, config]);\n  return prevValue;\n}\n\nfunction updateDeferredValue(value, config) {\n  var _updateState = updateState(),\n      prevValue = _updateState[0],\n      setValue = _updateState[1];\n\n  updateEffect(function () {\n    var previousConfig = ReactCurrentBatchConfig$1.suspense;\n    ReactCurrentBatchConfig$1.suspense = config === undefined ? null : config;\n\n    try {\n      setValue(value);\n    } finally {\n      ReactCurrentBatchConfig$1.suspense = previousConfig;\n    }\n  }, [value, config]);\n  return prevValue;\n}\n\nfunction rerenderDeferredValue(value, config) {\n  var _rerenderState = rerenderState(),\n      prevValue = _rerenderState[0],\n      setValue = _rerenderState[1];\n\n  updateEffect(function () {\n    var previousConfig = ReactCurrentBatchConfig$1.suspense;\n    ReactCurrentBatchConfig$1.suspense = config === undefined ? null : config;\n\n    try {\n      setValue(value);\n    } finally {\n      ReactCurrentBatchConfig$1.suspense = previousConfig;\n    }\n  }, [value, config]);\n  return prevValue;\n}\n\nfunction startTransition(setPending, config, callback) {\n  var priorityLevel = getCurrentPriorityLevel();\n  runWithPriority$1(priorityLevel < UserBlockingPriority$1 ? UserBlockingPriority$1 : priorityLevel, function () {\n    setPending(true);\n  });\n  runWithPriority$1(priorityLevel > NormalPriority ? NormalPriority : priorityLevel, function () {\n    var previousConfig = ReactCurrentBatchConfig$1.suspense;\n    ReactCurrentBatchConfig$1.suspense = config === undefined ? null : config;\n\n    try {\n      setPending(false);\n      callback();\n    } finally {\n      ReactCurrentBatchConfig$1.suspense = previousConfig;\n    }\n  });\n}\n\nfunction mountTransition(config) {\n  var _mountState2 = mountState(false),\n      isPending = _mountState2[0],\n      setPending = _mountState2[1];\n\n  var start = mountCallback(startTransition.bind(null, setPending, config), [setPending, config]);\n  return [start, isPending];\n}\n\nfunction updateTransition(config) {\n  var _updateState2 = updateState(),\n      isPending = _updateState2[0],\n      setPending = _updateState2[1];\n\n  var start = updateCallback(startTransition.bind(null, setPending, config), [setPending, config]);\n  return [start, isPending];\n}\n\nfunction rerenderTransition(config) {\n  var _rerenderState2 = rerenderState(),\n      isPending = _rerenderState2[0],\n      setPending = _rerenderState2[1];\n\n  var start = updateCallback(startTransition.bind(null, setPending, config), [setPending, config]);\n  return [start, isPending];\n}\n\nfunction dispatchAction(fiber, queue, action) {\n  {\n    if (typeof arguments[3] === 'function') {\n      error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n    }\n  }\n\n  var currentTime = requestCurrentTimeForUpdate();\n  var suspenseConfig = requestCurrentSuspenseConfig();\n  var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n  var update = {\n    expirationTime: expirationTime,\n    suspenseConfig: suspenseConfig,\n    action: action,\n    eagerReducer: null,\n    eagerState: null,\n    next: null\n  };\n\n  {\n    update.priority = getCurrentPriorityLevel();\n  } // Append the update to the end of the list.\n\n\n  var pending = queue.pending;\n\n  if (pending === null) {\n    // This is the first update. Create a circular list.\n    update.next = update;\n  } else {\n    update.next = pending.next;\n    pending.next = update;\n  }\n\n  queue.pending = update;\n  var alternate = fiber.alternate;\n\n  if (fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1) {\n    // This is a render phase update. Stash it in a lazily-created map of\n    // queue -> linked list of updates. After this render pass, we'll restart\n    // and apply the stashed updates on top of the work-in-progress hook.\n    didScheduleRenderPhaseUpdate = true;\n    update.expirationTime = renderExpirationTime;\n    currentlyRenderingFiber$1.expirationTime = renderExpirationTime;\n  } else {\n    if (fiber.expirationTime === NoWork && (alternate === null || alternate.expirationTime === NoWork)) {\n      // The queue is currently empty, which means we can eagerly compute the\n      // next state before entering the render phase. If the new state is the\n      // same as the current state, we may be able to bail out entirely.\n      var lastRenderedReducer = queue.lastRenderedReducer;\n\n      if (lastRenderedReducer !== null) {\n        var prevDispatcher;\n\n        {\n          prevDispatcher = ReactCurrentDispatcher.current;\n          ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n        }\n\n        try {\n          var currentState = queue.lastRenderedState;\n          var eagerState = lastRenderedReducer(currentState, action); // Stash the eagerly computed state, and the reducer used to compute\n          // it, on the update object. If the reducer hasn't changed by the\n          // time we enter the render phase, then the eager state can be used\n          // without calling the reducer again.\n\n          update.eagerReducer = lastRenderedReducer;\n          update.eagerState = eagerState;\n\n          if (objectIs(eagerState, currentState)) {\n            // Fast path. We can bail out without scheduling React to re-render.\n            // It's still possible that we'll need to rebase this update later,\n            // if the component re-renders for a different reason and by that\n            // time the reducer has changed.\n            return;\n          }\n        } catch (error) {// Suppress the error. It will throw again in the render phase.\n        } finally {\n          {\n            ReactCurrentDispatcher.current = prevDispatcher;\n          }\n        }\n      }\n    }\n\n    {\n      // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n      if ('undefined' !== typeof jest) {\n        warnIfNotScopedWithMatchingAct(fiber);\n        warnIfNotCurrentlyActingUpdatesInDev(fiber);\n      }\n    }\n\n    scheduleWork(fiber, expirationTime);\n  }\n}\n\nvar ContextOnlyDispatcher = {\n  readContext: readContext,\n  useCallback: throwInvalidHookError,\n  useContext: throwInvalidHookError,\n  useEffect: throwInvalidHookError,\n  useImperativeHandle: throwInvalidHookError,\n  useLayoutEffect: throwInvalidHookError,\n  useMemo: throwInvalidHookError,\n  useReducer: throwInvalidHookError,\n  useRef: throwInvalidHookError,\n  useState: throwInvalidHookError,\n  useDebugValue: throwInvalidHookError,\n  useResponder: throwInvalidHookError,\n  useDeferredValue: throwInvalidHookError,\n  useTransition: throwInvalidHookError\n};\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar HooksDispatcherOnRerenderInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n\n{\n  var warnInvalidContextAccess = function () {\n    error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n  };\n\n  var warnInvalidHookAccess = function () {\n    error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://fb.me/rules-of-hooks');\n  };\n\n  HooksDispatcherOnMountInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      mountHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      mountHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      mountHookTypesDev();\n      return mountDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      mountHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      mountHookTypesDev();\n      return mountDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      mountHookTypesDev();\n      return mountTransition(config);\n    }\n  };\n  HooksDispatcherOnMountWithHookTypesInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return mountDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      updateHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      updateHookTypesDev();\n      return mountDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      updateHookTypesDev();\n      return mountTransition(config);\n    }\n  };\n  HooksDispatcherOnUpdateInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      updateHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      updateHookTypesDev();\n      return updateDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      updateHookTypesDev();\n      return updateTransition(config);\n    }\n  };\n  HooksDispatcherOnRerenderInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n      try {\n        return rerenderReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n      try {\n        return rerenderState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      updateHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      updateHookTypesDev();\n      return rerenderDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      updateHookTypesDev();\n      return rerenderTransition(config);\n    }\n  };\n  InvalidNestedHooksDispatcherOnMountInDEV = {\n    readContext: function (context, observedBits) {\n      warnInvalidContextAccess();\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountTransition(config);\n    }\n  };\n  InvalidNestedHooksDispatcherOnUpdateInDEV = {\n    readContext: function (context, observedBits) {\n      warnInvalidContextAccess();\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateTransition(config);\n    }\n  };\n  InvalidNestedHooksDispatcherOnRerenderInDEV = {\n    readContext: function (context, observedBits) {\n      warnInvalidContextAccess();\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return rerenderReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateRef();\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher.current;\n      ReactCurrentDispatcher.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n      try {\n        return rerenderState(initialState);\n      } finally {\n        ReactCurrentDispatcher.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDebugValue();\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return createDeprecatedResponderListener(responder, props);\n    },\n    useDeferredValue: function (value, config) {\n      currentHookNameInDev = 'useDeferredValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return rerenderDeferredValue(value, config);\n    },\n    useTransition: function (config) {\n      currentHookNameInDev = 'useTransition';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return rerenderTransition(config);\n    }\n  };\n}\n\nvar now$1 = Scheduler.unstable_now;\nvar commitTime = 0;\nvar profilerStartTime = -1;\n\nfunction getCommitTime() {\n  return commitTime;\n}\n\nfunction recordCommitTime() {\n\n  commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n\n  profilerStartTime = now$1();\n\n  if (fiber.actualStartTime < 0) {\n    fiber.actualStartTime = now$1();\n  }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n\n  profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n\n  if (profilerStartTime >= 0) {\n    var elapsedTime = now$1() - profilerStartTime;\n    fiber.actualDuration += elapsedTime;\n\n    if (overrideBaseTime) {\n      fiber.selfBaseDuration = elapsedTime;\n    }\n\n    profilerStartTime = -1;\n  }\n}\n\n// This may have been an insertion or a hydration.\n\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false;\n\nfunction enterHydrationState(fiber) {\n\n  var parentInstance = fiber.stateNode.containerInfo;\n  nextHydratableInstance = getFirstHydratableChild(parentInstance);\n  hydrationParentFiber = fiber;\n  isHydrating = true;\n  return true;\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n        break;\n\n      case HostComponent:\n        didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n        break;\n    }\n  }\n\n  var childToDelete = createFiberFromHostInstanceForDeletion();\n  childToDelete.stateNode = instance;\n  childToDelete.return = returnFiber;\n  childToDelete.effectTag = Deletion; // This might seem like it belongs on progressedFirstDeletion. However,\n  // these children are not part of the reconciliation list of children.\n  // Even if we abort and rereconcile the children, that will try to hydrate\n  // again and the nodes are still in the host tree so these will be\n  // recreated.\n\n  if (returnFiber.lastEffect !== null) {\n    returnFiber.lastEffect.nextEffect = childToDelete;\n    returnFiber.lastEffect = childToDelete;\n  } else {\n    returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n  }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n  fiber.effectTag = fiber.effectTag & ~Hydrating | Placement;\n\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        {\n          var parentContainer = returnFiber.stateNode.containerInfo;\n\n          switch (fiber.tag) {\n            case HostComponent:\n              var type = fiber.type;\n              var props = fiber.pendingProps;\n              didNotFindHydratableContainerInstance(parentContainer, type);\n              break;\n\n            case HostText:\n              var text = fiber.pendingProps;\n              didNotFindHydratableContainerTextInstance(parentContainer, text);\n              break;\n          }\n\n          break;\n        }\n\n      case HostComponent:\n        {\n          var parentType = returnFiber.type;\n          var parentProps = returnFiber.memoizedProps;\n          var parentInstance = returnFiber.stateNode;\n\n          switch (fiber.tag) {\n            case HostComponent:\n              var _type = fiber.type;\n              var _props = fiber.pendingProps;\n              didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type);\n              break;\n\n            case HostText:\n              var _text = fiber.pendingProps;\n              didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n              break;\n\n            case SuspenseComponent:\n              didNotFindHydratableSuspenseInstance(parentType, parentProps);\n              break;\n          }\n\n          break;\n        }\n\n      default:\n        return;\n    }\n  }\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n  switch (fiber.tag) {\n    case HostComponent:\n      {\n        var type = fiber.type;\n        var props = fiber.pendingProps;\n        var instance = canHydrateInstance(nextInstance, type);\n\n        if (instance !== null) {\n          fiber.stateNode = instance;\n          return true;\n        }\n\n        return false;\n      }\n\n    case HostText:\n      {\n        var text = fiber.pendingProps;\n        var textInstance = canHydrateTextInstance(nextInstance, text);\n\n        if (textInstance !== null) {\n          fiber.stateNode = textInstance;\n          return true;\n        }\n\n        return false;\n      }\n\n    case SuspenseComponent:\n      {\n\n        return false;\n      }\n\n    default:\n      return false;\n  }\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n  if (!isHydrating) {\n    return;\n  }\n\n  var nextInstance = nextHydratableInstance;\n\n  if (!nextInstance) {\n    // Nothing to hydrate. Make it an insertion.\n    insertNonHydratedInstance(hydrationParentFiber, fiber);\n    isHydrating = false;\n    hydrationParentFiber = fiber;\n    return;\n  }\n\n  var firstAttemptedInstance = nextInstance;\n\n  if (!tryHydrate(fiber, nextInstance)) {\n    // If we can't hydrate this instance let's try the next one.\n    // We use this as a heuristic. It's based on intuition and not data so it\n    // might be flawed or unnecessary.\n    nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n\n    if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n      // Nothing to hydrate. Make it an insertion.\n      insertNonHydratedInstance(hydrationParentFiber, fiber);\n      isHydrating = false;\n      hydrationParentFiber = fiber;\n      return;\n    } // We matched the next one, we'll now assume that the first one was\n    // superfluous and we'll delete it. Since we can't eagerly delete it\n    // we'll have to schedule a deletion. To do that, this node needs a dummy\n    // fiber associated with it.\n\n\n    deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);\n  }\n\n  hydrationParentFiber = fiber;\n  nextHydratableInstance = getFirstHydratableChild(nextInstance);\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n\n  var instance = fiber.stateNode;\n  var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber); // TODO: Type this specific to this type of component.\n\n  fiber.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n  // is a new ref we mark this as an update.\n\n  if (updatePayload !== null) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n\n  var textInstance = fiber.stateNode;\n  var textContent = fiber.memoizedProps;\n  var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n\n  {\n    if (shouldUpdate) {\n      // We assume that prepareToHydrateHostTextInstance is called in a context where the\n      // hydration parent is the parent host component of this host text.\n      var returnFiber = hydrationParentFiber;\n\n      if (returnFiber !== null) {\n        switch (returnFiber.tag) {\n          case HostRoot:\n            {\n              var parentContainer = returnFiber.stateNode.containerInfo;\n              didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n              break;\n            }\n\n          case HostComponent:\n            {\n              var parentType = returnFiber.type;\n              var parentProps = returnFiber.memoizedProps;\n              var parentInstance = returnFiber.stateNode;\n              didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n              break;\n            }\n        }\n      }\n    }\n  }\n\n  return shouldUpdate;\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n\n  var suspenseState = fiber.memoizedState;\n  var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n  if (!suspenseInstance) {\n    {\n      throw Error( \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n\n  return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n  var parent = fiber.return;\n\n  while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== SuspenseComponent) {\n    parent = parent.return;\n  }\n\n  hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n\n  if (fiber !== hydrationParentFiber) {\n    // We're deeper than the current hydration context, inside an inserted\n    // tree.\n    return false;\n  }\n\n  if (!isHydrating) {\n    // If we're not currently hydrating but we're in a hydration context, then\n    // we were an insertion and now need to pop up reenter hydration of our\n    // siblings.\n    popToNextHostParent(fiber);\n    isHydrating = true;\n    return false;\n  }\n\n  var type = fiber.type; // If we have any remaining hydratable nodes, we need to delete them now.\n  // We only do this deeper than head and body since they tend to have random\n  // other nodes in them. We also ignore components with pure text content in\n  // side of them.\n  // TODO: Better heuristic.\n\n  if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n    var nextInstance = nextHydratableInstance;\n\n    while (nextInstance) {\n      deleteHydratableInstance(fiber, nextInstance);\n      nextInstance = getNextHydratableSibling(nextInstance);\n    }\n  }\n\n  popToNextHostParent(fiber);\n\n  if (fiber.tag === SuspenseComponent) {\n    nextHydratableInstance = skipPastDehydratedSuspenseInstance(fiber);\n  } else {\n    nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n  }\n\n  return true;\n}\n\nfunction resetHydrationState() {\n\n  hydrationParentFiber = null;\n  nextHydratableInstance = null;\n  isHydrating = false;\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar didReceiveUpdate = false;\nvar didWarnAboutBadClass;\nvar didWarnAboutModulePatternComponent;\nvar didWarnAboutContextTypeOnFunctionComponent;\nvar didWarnAboutGetDerivedStateOnFunctionComponent;\nvar didWarnAboutFunctionRefs;\nvar didWarnAboutReassigningProps;\nvar didWarnAboutRevealOrder;\nvar didWarnAboutTailOptions;\n\n{\n  didWarnAboutBadClass = {};\n  didWarnAboutModulePatternComponent = {};\n  didWarnAboutContextTypeOnFunctionComponent = {};\n  didWarnAboutGetDerivedStateOnFunctionComponent = {};\n  didWarnAboutFunctionRefs = {};\n  didWarnAboutReassigningProps = false;\n  didWarnAboutRevealOrder = {};\n  didWarnAboutTailOptions = {};\n}\n\nfunction reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime) {\n  if (current === null) {\n    // If this is a fresh new component that hasn't been rendered yet, we\n    // won't update its child set by applying minimal side-effects. Instead,\n    // we will add them all to the child before it gets rendered. That means\n    // we can optimize this reconciliation pass by not tracking side-effects.\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    // If the current child is the same as the work in progress, it means that\n    // we haven't yet started any work on these children. Therefore, we use\n    // the clone algorithm to create a copy of all the current children.\n    // If we had any progressed work already, that is invalid at this point so\n    // let's throw it out.\n    workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderExpirationTime);\n  }\n}\n\nfunction forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderExpirationTime) {\n  // This function is fork of reconcileChildren. It's used in cases where we\n  // want to reconcile without matching against the existing set. This has the\n  // effect of all current children being unmounted; even if the type and key\n  // are the same, the old child is unmounted and a new child is created.\n  //\n  // To do this, we're going to go through the reconcile algorithm twice. In\n  // the first pass, we schedule a deletion for all the current children by\n  // passing null.\n  workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderExpirationTime); // In the second pass, we mount the new children. The trick here is that we\n  // pass null in place of where we usually pass the current child set. This has\n  // the effect of remounting all children regardless of whether their\n  // identities match.\n\n  workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n}\n\nfunction updateForwardRef(current, workInProgress, Component, nextProps, renderExpirationTime) {\n  // TODO: current can be non-null here even if the component\n  // hasn't yet mounted. This happens after the first render suspends.\n  // We'll need to figure out if this is fine or can cause issues.\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n\n      if (innerPropTypes) {\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(Component), getCurrentFiberStackInDev);\n      }\n    }\n  }\n\n  var render = Component.render;\n  var ref = workInProgress.ref; // The rest is a fork of updateFunctionComponent\n\n  var nextChildren;\n  prepareToReadContext(workInProgress, renderExpirationTime);\n\n  {\n    ReactCurrentOwner$1.current = workInProgress;\n    setIsRendering(true);\n    nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderExpirationTime);\n\n    if ( workInProgress.mode & StrictMode) {\n      // Only double-render components with Hooks\n      if (workInProgress.memoizedState !== null) {\n        nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderExpirationTime);\n      }\n    }\n\n    setIsRendering(false);\n  }\n\n  if (current !== null && !didReceiveUpdate) {\n    bailoutHooks(current, workInProgress, renderExpirationTime);\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n  } // React DevTools reads this flag.\n\n\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateMemoComponent(current, workInProgress, Component, nextProps, updateExpirationTime, renderExpirationTime) {\n  if (current === null) {\n    var type = Component.type;\n\n    if (isSimpleFunctionComponent(type) && Component.compare === null && // SimpleMemoComponent codepath doesn't resolve outer props either.\n    Component.defaultProps === undefined) {\n      var resolvedType = type;\n\n      {\n        resolvedType = resolveFunctionForHotReloading(type);\n      } // If this is a plain function component without default props,\n      // and with only the default shallow comparison, we upgrade it\n      // to a SimpleMemoComponent to allow fast path updates.\n\n\n      workInProgress.tag = SimpleMemoComponent;\n      workInProgress.type = resolvedType;\n\n      {\n        validateFunctionComponentInDev(workInProgress, type);\n      }\n\n      return updateSimpleMemoComponent(current, workInProgress, resolvedType, nextProps, updateExpirationTime, renderExpirationTime);\n    }\n\n    {\n      var innerPropTypes = type.propTypes;\n\n      if (innerPropTypes) {\n        // Inner memo component props aren't currently validated in createElement.\n        // We could move it there, but we'd still need this for lazy code path.\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(type), getCurrentFiberStackInDev);\n      }\n    }\n\n    var child = createFiberFromTypeAndProps(Component.type, null, nextProps, null, workInProgress.mode, renderExpirationTime);\n    child.ref = workInProgress.ref;\n    child.return = workInProgress;\n    workInProgress.child = child;\n    return child;\n  }\n\n  {\n    var _type = Component.type;\n    var _innerPropTypes = _type.propTypes;\n\n    if (_innerPropTypes) {\n      // Inner memo component props aren't currently validated in createElement.\n      // We could move it there, but we'd still need this for lazy code path.\n      checkPropTypes(_innerPropTypes, nextProps, // Resolved props\n      'prop', getComponentName(_type), getCurrentFiberStackInDev);\n    }\n  }\n\n  var currentChild = current.child; // This is always exactly one child\n\n  if (updateExpirationTime < renderExpirationTime) {\n    // This will be the props with resolved defaultProps,\n    // unlike current.memoizedProps which will be the unresolved ones.\n    var prevProps = currentChild.memoizedProps; // Default to shallow comparison\n\n    var compare = Component.compare;\n    compare = compare !== null ? compare : shallowEqual;\n\n    if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {\n      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n    }\n  } // React DevTools reads this flag.\n\n\n  workInProgress.effectTag |= PerformedWork;\n  var newChild = createWorkInProgress(currentChild, nextProps);\n  newChild.ref = workInProgress.ref;\n  newChild.return = workInProgress;\n  workInProgress.child = newChild;\n  return newChild;\n}\n\nfunction updateSimpleMemoComponent(current, workInProgress, Component, nextProps, updateExpirationTime, renderExpirationTime) {\n  // TODO: current can be non-null here even if the component\n  // hasn't yet mounted. This happens when the inner render suspends.\n  // We'll need to figure out if this is fine or can cause issues.\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var outerMemoType = workInProgress.elementType;\n\n      if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n        // We warn when you define propTypes on lazy()\n        // so let's just skip over it to find memo() outer wrapper.\n        // Inner props for memo are validated later.\n        outerMemoType = refineResolvedLazyComponent(outerMemoType);\n      }\n\n      var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n\n      if (outerPropTypes) {\n        checkPropTypes(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)\n        'prop', getComponentName(outerMemoType), getCurrentFiberStackInDev);\n      } // Inner propTypes will be validated in the function component path.\n\n    }\n  }\n\n  if (current !== null) {\n    var prevProps = current.memoizedProps;\n\n    if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref && ( // Prevent bailout if the implementation changed due to hot reload.\n     workInProgress.type === current.type )) {\n      didReceiveUpdate = false;\n\n      if (updateExpirationTime < renderExpirationTime) {\n        // The pending update priority was cleared at the beginning of\n        // beginWork. We're about to bail out, but there might be additional\n        // updates at a lower priority. Usually, the priority level of the\n        // remaining updates is accumlated during the evaluation of the\n        // component (i.e. when processing the update queue). But since since\n        // we're bailing out early *without* evaluating the component, we need\n        // to account for it here, too. Reset to the value of the current fiber.\n        // NOTE: This only applies to SimpleMemoComponent, not MemoComponent,\n        // because a MemoComponent fiber does not have hooks or an update queue;\n        // rather, it wraps around an inner component, which may or may not\n        // contains hooks.\n        // TODO: Move the reset at in beginWork out of the common path so that\n        // this is no longer necessary.\n        workInProgress.expirationTime = current.expirationTime;\n        return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n      }\n    }\n  }\n\n  return updateFunctionComponent(current, workInProgress, Component, nextProps, renderExpirationTime);\n}\n\nfunction updateFragment(current, workInProgress, renderExpirationTime) {\n  var nextChildren = workInProgress.pendingProps;\n  reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateMode(current, workInProgress, renderExpirationTime) {\n  var nextChildren = workInProgress.pendingProps.children;\n  reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateProfiler(current, workInProgress, renderExpirationTime) {\n  {\n    workInProgress.effectTag |= Update;\n  }\n\n  var nextProps = workInProgress.pendingProps;\n  var nextChildren = nextProps.children;\n  reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction markRef(current, workInProgress) {\n  var ref = workInProgress.ref;\n\n  if (current === null && ref !== null || current !== null && current.ref !== ref) {\n    // Schedule a Ref effect\n    workInProgress.effectTag |= Ref;\n  }\n}\n\nfunction updateFunctionComponent(current, workInProgress, Component, nextProps, renderExpirationTime) {\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n\n      if (innerPropTypes) {\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(Component), getCurrentFiberStackInDev);\n      }\n    }\n  }\n\n  var context;\n\n  {\n    var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n    context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  var nextChildren;\n  prepareToReadContext(workInProgress, renderExpirationTime);\n\n  {\n    ReactCurrentOwner$1.current = workInProgress;\n    setIsRendering(true);\n    nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderExpirationTime);\n\n    if ( workInProgress.mode & StrictMode) {\n      // Only double-render components with Hooks\n      if (workInProgress.memoizedState !== null) {\n        nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderExpirationTime);\n      }\n    }\n\n    setIsRendering(false);\n  }\n\n  if (current !== null && !didReceiveUpdate) {\n    bailoutHooks(current, workInProgress, renderExpirationTime);\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n  } // React DevTools reads this flag.\n\n\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateClassComponent(current, workInProgress, Component, nextProps, renderExpirationTime) {\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n\n      if (innerPropTypes) {\n        checkPropTypes(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(Component), getCurrentFiberStackInDev);\n      }\n    }\n  } // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n\n\n  var hasContext;\n\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  var instance = workInProgress.stateNode;\n  var shouldUpdate;\n\n  if (instance === null) {\n    if (current !== null) {\n      // A class component without an instance only mounts if it suspended\n      // inside a non-concurrent tree, in an inconsistent state. We want to\n      // treat it like a new mount, even though an empty version of it already\n      // committed. Disconnect the alternate pointers.\n      current.alternate = null;\n      workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n      workInProgress.effectTag |= Placement;\n    } // In the initial pass we might need to construct the instance.\n\n\n    constructClassInstance(workInProgress, Component, nextProps);\n    mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n    shouldUpdate = true;\n  } else if (current === null) {\n    // In a resume, we'll already have an instance we can reuse.\n    shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n  } else {\n    shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderExpirationTime);\n  }\n\n  var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime);\n\n  {\n    var inst = workInProgress.stateNode;\n\n    if (inst.props !== nextProps) {\n      if (!didWarnAboutReassigningProps) {\n        error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentName(workInProgress.type) || 'a component');\n      }\n\n      didWarnAboutReassigningProps = true;\n    }\n  }\n\n  return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime) {\n  // Refs should update even if shouldComponentUpdate returns false\n  markRef(current, workInProgress);\n  var didCaptureError = (workInProgress.effectTag & DidCapture) !== NoEffect;\n\n  if (!shouldUpdate && !didCaptureError) {\n    // Context providers should defer to sCU for rendering\n    if (hasContext) {\n      invalidateContextProvider(workInProgress, Component, false);\n    }\n\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n  }\n\n  var instance = workInProgress.stateNode; // Rerender\n\n  ReactCurrentOwner$1.current = workInProgress;\n  var nextChildren;\n\n  if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n    // If we captured an error, but getDerivedStateFromError is not defined,\n    // unmount all the children. componentDidCatch will schedule an update to\n    // re-render a fallback. This is temporary until we migrate everyone to\n    // the new API.\n    // TODO: Warn in a future release.\n    nextChildren = null;\n\n    {\n      stopProfilerTimerIfRunning();\n    }\n  } else {\n    {\n      setIsRendering(true);\n      nextChildren = instance.render();\n\n      if ( workInProgress.mode & StrictMode) {\n        instance.render();\n      }\n\n      setIsRendering(false);\n    }\n  } // React DevTools reads this flag.\n\n\n  workInProgress.effectTag |= PerformedWork;\n\n  if (current !== null && didCaptureError) {\n    // If we're recovering from an error, reconcile without reusing any of\n    // the existing children. Conceptually, the normal children and the children\n    // that are shown on error are two different sets, so we shouldn't reuse\n    // normal children even if their identities match.\n    forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderExpirationTime);\n  } else {\n    reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  } // Memoize state using the values we just used to render.\n  // TODO: Restructure so we never read values from the instance.\n\n\n  workInProgress.memoizedState = instance.state; // The context might have changed so we need to recalculate it.\n\n  if (hasContext) {\n    invalidateContextProvider(workInProgress, Component, true);\n  }\n\n  return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n  var root = workInProgress.stateNode;\n\n  if (root.pendingContext) {\n    pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n  } else if (root.context) {\n    // Should always be set\n    pushTopLevelContextObject(workInProgress, root.context, false);\n  }\n\n  pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current, workInProgress, renderExpirationTime) {\n  pushHostRootContext(workInProgress);\n  var updateQueue = workInProgress.updateQueue;\n\n  if (!(current !== null && updateQueue !== null)) {\n    {\n      throw Error( \"If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n\n  var nextProps = workInProgress.pendingProps;\n  var prevState = workInProgress.memoizedState;\n  var prevChildren = prevState !== null ? prevState.element : null;\n  cloneUpdateQueue(current, workInProgress);\n  processUpdateQueue(workInProgress, nextProps, null, renderExpirationTime);\n  var nextState = workInProgress.memoizedState; // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n\n  var nextChildren = nextState.element;\n\n  if (nextChildren === prevChildren) {\n    // If the state is the same as before, that's a bailout because we had\n    // no work that expires at this time.\n    resetHydrationState();\n    return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n  }\n\n  var root = workInProgress.stateNode;\n\n  if (root.hydrate && enterHydrationState(workInProgress)) {\n    // If we don't have any current children this might be the first pass.\n    // We always try to hydrate. If this isn't a hydration pass there won't\n    // be any children to hydrate which is effectively the same thing as\n    // not hydrating.\n    var child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n    workInProgress.child = child;\n    var node = child;\n\n    while (node) {\n      // Mark each child as hydrating. This is a fast path to know whether this\n      // tree is part of a hydrating tree. This is used to determine if a child\n      // node has fully mounted yet, and for scheduling event replaying.\n      // Conceptually this is similar to Placement in that a new subtree is\n      // inserted into the React tree here. It just happens to not need DOM\n      // mutations because it already exists.\n      node.effectTag = node.effectTag & ~Placement | Hydrating;\n      node = node.sibling;\n    }\n  } else {\n    // Otherwise reset hydration state in case we aborted and resumed another\n    // root.\n    reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n    resetHydrationState();\n  }\n\n  return workInProgress.child;\n}\n\nfunction updateHostComponent(current, workInProgress, renderExpirationTime) {\n  pushHostContext(workInProgress);\n\n  if (current === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  }\n\n  var type = workInProgress.type;\n  var nextProps = workInProgress.pendingProps;\n  var prevProps = current !== null ? current.memoizedProps : null;\n  var nextChildren = nextProps.children;\n  var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n  if (isDirectTextChild) {\n    // We special case a direct text child of a host node. This is a common\n    // case. We won't handle it as a reified child. We will instead handle\n    // this in the host environment that also has access to this prop. That\n    // avoids allocating another HostText fiber and traversing it.\n    nextChildren = null;\n  } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n    // If we're switching from a direct text child to a normal child, or to\n    // empty, we need to schedule the text content to be reset.\n    workInProgress.effectTag |= ContentReset;\n  }\n\n  markRef(current, workInProgress); // Check the host config to see if the children are offscreen/hidden.\n\n  if (workInProgress.mode & ConcurrentMode && renderExpirationTime !== Never && shouldDeprioritizeSubtree(type, nextProps)) {\n    {\n      markSpawnedWork(Never);\n    } // Schedule this fiber to re-render at offscreen priority. Then bailout.\n\n\n    workInProgress.expirationTime = workInProgress.childExpirationTime = Never;\n    return null;\n  }\n\n  reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateHostText(current, workInProgress) {\n  if (current === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  } // Nothing to do here. This is terminal. We'll do the completion step\n  // immediately after.\n\n\n  return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, updateExpirationTime, renderExpirationTime) {\n  if (_current !== null) {\n    // A lazy component only mounts if it suspended inside a non-\n    // concurrent tree, in an inconsistent state. We want to treat it like\n    // a new mount, even though an empty version of it already committed.\n    // Disconnect the alternate pointers.\n    _current.alternate = null;\n    workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n    workInProgress.effectTag |= Placement;\n  }\n\n  var props = workInProgress.pendingProps; // We can't start a User Timing measurement with correct label yet.\n  // Cancel and resume right after we know the tag.\n\n  cancelWorkTimer(workInProgress);\n  var Component = readLazyComponentType(elementType); // Store the unwrapped component in the type.\n\n  workInProgress.type = Component;\n  var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n  startWorkTimer(workInProgress);\n  var resolvedProps = resolveDefaultProps(Component, props);\n  var child;\n\n  switch (resolvedTag) {\n    case FunctionComponent:\n      {\n        {\n          validateFunctionComponentInDev(workInProgress, Component);\n          workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n        }\n\n        child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderExpirationTime);\n        return child;\n      }\n\n    case ClassComponent:\n      {\n        {\n          workInProgress.type = Component = resolveClassForHotReloading(Component);\n        }\n\n        child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderExpirationTime);\n        return child;\n      }\n\n    case ForwardRef:\n      {\n        {\n          workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n        }\n\n        child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderExpirationTime);\n        return child;\n      }\n\n    case MemoComponent:\n      {\n        {\n          if (workInProgress.type !== workInProgress.elementType) {\n            var outerPropTypes = Component.propTypes;\n\n            if (outerPropTypes) {\n              checkPropTypes(outerPropTypes, resolvedProps, // Resolved for outer only\n              'prop', getComponentName(Component), getCurrentFiberStackInDev);\n            }\n          }\n        }\n\n        child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too\n        updateExpirationTime, renderExpirationTime);\n        return child;\n      }\n  }\n\n  var hint = '';\n\n  {\n    if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n      hint = ' Did you wrap a component in React.lazy() more than once?';\n    }\n  } // This message intentionally doesn't mention ForwardRef or MemoComponent\n  // because the fact that it's a separate type of work is an\n  // implementation detail.\n\n\n  {\n    {\n      throw Error( \"Element type is invalid. Received a promise that resolves to: \" + Component + \". Lazy element type must resolve to a class or function.\" + hint );\n    }\n  }\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderExpirationTime) {\n  if (_current !== null) {\n    // An incomplete component only mounts if it suspended inside a non-\n    // concurrent tree, in an inconsistent state. We want to treat it like\n    // a new mount, even though an empty version of it already committed.\n    // Disconnect the alternate pointers.\n    _current.alternate = null;\n    workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n    workInProgress.effectTag |= Placement;\n  } // Promote the fiber to a class and try rendering again.\n\n\n  workInProgress.tag = ClassComponent; // The rest of this function is a fork of `updateClassComponent`\n  // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n\n  var hasContext;\n\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  constructClassInstance(workInProgress, Component, nextProps);\n  mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n  return finishClassComponent(null, workInProgress, Component, true, hasContext, renderExpirationTime);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderExpirationTime) {\n  if (_current !== null) {\n    // An indeterminate component only mounts if it suspended inside a non-\n    // concurrent tree, in an inconsistent state. We want to treat it like\n    // a new mount, even though an empty version of it already committed.\n    // Disconnect the alternate pointers.\n    _current.alternate = null;\n    workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n    workInProgress.effectTag |= Placement;\n  }\n\n  var props = workInProgress.pendingProps;\n  var context;\n\n  {\n    var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n    context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  var value;\n\n  {\n    if (Component.prototype && typeof Component.prototype.render === 'function') {\n      var componentName = getComponentName(Component) || 'Unknown';\n\n      if (!didWarnAboutBadClass[componentName]) {\n        error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n\n        didWarnAboutBadClass[componentName] = true;\n      }\n    }\n\n    if (workInProgress.mode & StrictMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n    }\n\n    setIsRendering(true);\n    ReactCurrentOwner$1.current = workInProgress;\n    value = renderWithHooks(null, workInProgress, Component, props, context, renderExpirationTime);\n    setIsRendering(false);\n  } // React DevTools reads this flag.\n\n\n  workInProgress.effectTag |= PerformedWork;\n\n  if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n    {\n      var _componentName = getComponentName(Component) || 'Unknown';\n\n      if (!didWarnAboutModulePatternComponent[_componentName]) {\n        error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n\n        didWarnAboutModulePatternComponent[_componentName] = true;\n      }\n    } // Proceed under the assumption that this is a class instance\n\n\n    workInProgress.tag = ClassComponent; // Throw out any hooks that were used.\n\n    workInProgress.memoizedState = null;\n    workInProgress.updateQueue = null; // Push context providers early to prevent context stack mismatches.\n    // During mounting we don't know the child context yet as the instance doesn't exist.\n    // We will invalidate the child context in finishClassComponent() right after rendering.\n\n    var hasContext = false;\n\n    if (isContextProvider(Component)) {\n      hasContext = true;\n      pushContextProvider(workInProgress);\n    } else {\n      hasContext = false;\n    }\n\n    workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n    initializeUpdateQueue(workInProgress);\n    var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n\n    if (typeof getDerivedStateFromProps === 'function') {\n      applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);\n    }\n\n    adoptClassInstance(workInProgress, value);\n    mountClassInstance(workInProgress, Component, props, renderExpirationTime);\n    return finishClassComponent(null, workInProgress, Component, true, hasContext, renderExpirationTime);\n  } else {\n    // Proceed under the assumption that this is a function component\n    workInProgress.tag = FunctionComponent;\n\n    {\n\n      if ( workInProgress.mode & StrictMode) {\n        // Only double-render components with Hooks\n        if (workInProgress.memoizedState !== null) {\n          value = renderWithHooks(null, workInProgress, Component, props, context, renderExpirationTime);\n        }\n      }\n    }\n\n    reconcileChildren(null, workInProgress, value, renderExpirationTime);\n\n    {\n      validateFunctionComponentInDev(workInProgress, Component);\n    }\n\n    return workInProgress.child;\n  }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n  {\n    if (Component) {\n      if (Component.childContextTypes) {\n        error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component');\n      }\n    }\n\n    if (workInProgress.ref !== null) {\n      var info = '';\n      var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n      if (ownerName) {\n        info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n      }\n\n      var warningKey = ownerName || workInProgress._debugID || '';\n      var debugSource = workInProgress._debugSource;\n\n      if (debugSource) {\n        warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n      }\n\n      if (!didWarnAboutFunctionRefs[warningKey]) {\n        didWarnAboutFunctionRefs[warningKey] = true;\n\n        error('Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n      }\n    }\n\n    if (typeof Component.getDerivedStateFromProps === 'function') {\n      var _componentName2 = getComponentName(Component) || 'Unknown';\n\n      if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName2]) {\n        error('%s: Function components do not support getDerivedStateFromProps.', _componentName2);\n\n        didWarnAboutGetDerivedStateOnFunctionComponent[_componentName2] = true;\n      }\n    }\n\n    if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n      var _componentName3 = getComponentName(Component) || 'Unknown';\n\n      if (!didWarnAboutContextTypeOnFunctionComponent[_componentName3]) {\n        error('%s: Function components do not support contextType.', _componentName3);\n\n        didWarnAboutContextTypeOnFunctionComponent[_componentName3] = true;\n      }\n    }\n  }\n}\n\nvar SUSPENDED_MARKER = {\n  dehydrated: null,\n  retryTime: NoWork\n};\n\nfunction shouldRemainOnFallback(suspenseContext, current, workInProgress) {\n  // If the context is telling us that we should show a fallback, and we're not\n  // already showing content, then we should show the fallback instead.\n  return hasSuspenseContext(suspenseContext, ForceSuspenseFallback) && (current === null || current.memoizedState !== null);\n}\n\nfunction updateSuspenseComponent(current, workInProgress, renderExpirationTime) {\n  var mode = workInProgress.mode;\n  var nextProps = workInProgress.pendingProps; // This is used by DevTools to force a boundary to suspend.\n\n  {\n    if (shouldSuspend(workInProgress)) {\n      workInProgress.effectTag |= DidCapture;\n    }\n  }\n\n  var suspenseContext = suspenseStackCursor.current;\n  var nextDidTimeout = false;\n  var didSuspend = (workInProgress.effectTag & DidCapture) !== NoEffect;\n\n  if (didSuspend || shouldRemainOnFallback(suspenseContext, current)) {\n    // Something in this boundary's subtree already suspended. Switch to\n    // rendering the fallback children.\n    nextDidTimeout = true;\n    workInProgress.effectTag &= ~DidCapture;\n  } else {\n    // Attempting the main content\n    if (current === null || current.memoizedState !== null) {\n      // This is a new mount or this boundary is already showing a fallback state.\n      // Mark this subtree context as having at least one invisible parent that could\n      // handle the fallback state.\n      // Boundaries without fallbacks or should be avoided are not considered since\n      // they cannot handle preferred fallback states.\n      if (nextProps.fallback !== undefined && nextProps.unstable_avoidThisFallback !== true) {\n        suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n      }\n    }\n  }\n\n  suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n  pushSuspenseContext(workInProgress, suspenseContext); // This next part is a bit confusing. If the children timeout, we switch to\n  // showing the fallback children in place of the \"primary\" children.\n  // However, we don't want to delete the primary children because then their\n  // state will be lost (both the React state and the host state, e.g.\n  // uncontrolled form inputs). Instead we keep them mounted and hide them.\n  // Both the fallback children AND the primary children are rendered at the\n  // same time. Once the primary children are un-suspended, we can delete\n  // the fallback children — don't need to preserve their state.\n  //\n  // The two sets of children are siblings in the host environment, but\n  // semantically, for purposes of reconciliation, they are two separate sets.\n  // So we store them using two fragment fibers.\n  //\n  // However, we want to avoid allocating extra fibers for every placeholder.\n  // They're only necessary when the children time out, because that's the\n  // only time when both sets are mounted.\n  //\n  // So, the extra fragment fibers are only used if the children time out.\n  // Otherwise, we render the primary children directly. This requires some\n  // custom reconciliation logic to preserve the state of the primary\n  // children. It's essentially a very basic form of re-parenting.\n\n  if (current === null) {\n    // If we're currently hydrating, try to hydrate this boundary.\n    // But only if this has a fallback.\n    if (nextProps.fallback !== undefined) {\n      tryToClaimNextHydratableInstance(workInProgress); // This could've been a dehydrated suspense component.\n    } // This is the initial mount. This branch is pretty simple because there's\n    // no previous state that needs to be preserved.\n\n\n    if (nextDidTimeout) {\n      // Mount separate fragments for primary and fallback children.\n      var nextFallbackChildren = nextProps.fallback;\n      var primaryChildFragment = createFiberFromFragment(null, mode, NoWork, null);\n      primaryChildFragment.return = workInProgress;\n\n      if ((workInProgress.mode & BlockingMode) === NoMode) {\n        // Outside of blocking mode, we commit the effects from the\n        // partially completed, timed-out tree, too.\n        var progressedState = workInProgress.memoizedState;\n        var progressedPrimaryChild = progressedState !== null ? workInProgress.child.child : workInProgress.child;\n        primaryChildFragment.child = progressedPrimaryChild;\n        var progressedChild = progressedPrimaryChild;\n\n        while (progressedChild !== null) {\n          progressedChild.return = primaryChildFragment;\n          progressedChild = progressedChild.sibling;\n        }\n      }\n\n      var fallbackChildFragment = createFiberFromFragment(nextFallbackChildren, mode, renderExpirationTime, null);\n      fallbackChildFragment.return = workInProgress;\n      primaryChildFragment.sibling = fallbackChildFragment; // Skip the primary children, and continue working on the\n      // fallback children.\n\n      workInProgress.memoizedState = SUSPENDED_MARKER;\n      workInProgress.child = primaryChildFragment;\n      return fallbackChildFragment;\n    } else {\n      // Mount the primary children without an intermediate fragment fiber.\n      var nextPrimaryChildren = nextProps.children;\n      workInProgress.memoizedState = null;\n      return workInProgress.child = mountChildFibers(workInProgress, null, nextPrimaryChildren, renderExpirationTime);\n    }\n  } else {\n    // This is an update. This branch is more complicated because we need to\n    // ensure the state of the primary children is preserved.\n    var prevState = current.memoizedState;\n\n    if (prevState !== null) {\n      // wrapped in a fragment fiber.\n\n\n      var currentPrimaryChildFragment = current.child;\n      var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n\n      if (nextDidTimeout) {\n        // Still timed out. Reuse the current primary children by cloning\n        // its fragment. We're going to skip over these entirely.\n        var _nextFallbackChildren2 = nextProps.fallback;\n\n        var _primaryChildFragment2 = createWorkInProgress(currentPrimaryChildFragment, currentPrimaryChildFragment.pendingProps);\n\n        _primaryChildFragment2.return = workInProgress;\n\n        if ((workInProgress.mode & BlockingMode) === NoMode) {\n          // Outside of blocking mode, we commit the effects from the\n          // partially completed, timed-out tree, too.\n          var _progressedState = workInProgress.memoizedState;\n\n          var _progressedPrimaryChild = _progressedState !== null ? workInProgress.child.child : workInProgress.child;\n\n          if (_progressedPrimaryChild !== currentPrimaryChildFragment.child) {\n            _primaryChildFragment2.child = _progressedPrimaryChild;\n            var _progressedChild2 = _progressedPrimaryChild;\n\n            while (_progressedChild2 !== null) {\n              _progressedChild2.return = _primaryChildFragment2;\n              _progressedChild2 = _progressedChild2.sibling;\n            }\n          }\n        } // Because primaryChildFragment is a new fiber that we're inserting as the\n        // parent of a new tree, we need to set its treeBaseDuration.\n\n\n        if ( workInProgress.mode & ProfileMode) {\n          // treeBaseDuration is the sum of all the child tree base durations.\n          var _treeBaseDuration = 0;\n          var _hiddenChild = _primaryChildFragment2.child;\n\n          while (_hiddenChild !== null) {\n            _treeBaseDuration += _hiddenChild.treeBaseDuration;\n            _hiddenChild = _hiddenChild.sibling;\n          }\n\n          _primaryChildFragment2.treeBaseDuration = _treeBaseDuration;\n        } // Clone the fallback child fragment, too. These we'll continue\n        // working on.\n\n\n        var _fallbackChildFragment2 = createWorkInProgress(currentFallbackChildFragment, _nextFallbackChildren2);\n\n        _fallbackChildFragment2.return = workInProgress;\n        _primaryChildFragment2.sibling = _fallbackChildFragment2;\n        _primaryChildFragment2.childExpirationTime = NoWork; // Skip the primary children, and continue working on the\n        // fallback children.\n\n        workInProgress.memoizedState = SUSPENDED_MARKER;\n        workInProgress.child = _primaryChildFragment2;\n        return _fallbackChildFragment2;\n      } else {\n        // No longer suspended. Switch back to showing the primary children,\n        // and remove the intermediate fragment fiber.\n        var _nextPrimaryChildren = nextProps.children;\n        var currentPrimaryChild = currentPrimaryChildFragment.child;\n        var primaryChild = reconcileChildFibers(workInProgress, currentPrimaryChild, _nextPrimaryChildren, renderExpirationTime); // If this render doesn't suspend, we need to delete the fallback\n        // children. Wait until the complete phase, after we've confirmed the\n        // fallback is no longer needed.\n        // TODO: Would it be better to store the fallback fragment on\n        // the stateNode?\n        // Continue rendering the children, like we normally do.\n\n        workInProgress.memoizedState = null;\n        return workInProgress.child = primaryChild;\n      }\n    } else {\n      // The current tree has not already timed out. That means the primary\n      // children are not wrapped in a fragment fiber.\n      var _currentPrimaryChild = current.child;\n\n      if (nextDidTimeout) {\n        // Timed out. Wrap the children in a fragment fiber to keep them\n        // separate from the fallback children.\n        var _nextFallbackChildren3 = nextProps.fallback;\n\n        var _primaryChildFragment3 = createFiberFromFragment( // It shouldn't matter what the pending props are because we aren't\n        // going to render this fragment.\n        null, mode, NoWork, null);\n\n        _primaryChildFragment3.return = workInProgress;\n        _primaryChildFragment3.child = _currentPrimaryChild;\n\n        if (_currentPrimaryChild !== null) {\n          _currentPrimaryChild.return = _primaryChildFragment3;\n        } // Even though we're creating a new fiber, there are no new children,\n        // because we're reusing an already mounted tree. So we don't need to\n        // schedule a placement.\n        // primaryChildFragment.effectTag |= Placement;\n\n\n        if ((workInProgress.mode & BlockingMode) === NoMode) {\n          // Outside of blocking mode, we commit the effects from the\n          // partially completed, timed-out tree, too.\n          var _progressedState2 = workInProgress.memoizedState;\n\n          var _progressedPrimaryChild2 = _progressedState2 !== null ? workInProgress.child.child : workInProgress.child;\n\n          _primaryChildFragment3.child = _progressedPrimaryChild2;\n          var _progressedChild3 = _progressedPrimaryChild2;\n\n          while (_progressedChild3 !== null) {\n            _progressedChild3.return = _primaryChildFragment3;\n            _progressedChild3 = _progressedChild3.sibling;\n          }\n        } // Because primaryChildFragment is a new fiber that we're inserting as the\n        // parent of a new tree, we need to set its treeBaseDuration.\n\n\n        if ( workInProgress.mode & ProfileMode) {\n          // treeBaseDuration is the sum of all the child tree base durations.\n          var _treeBaseDuration2 = 0;\n          var _hiddenChild2 = _primaryChildFragment3.child;\n\n          while (_hiddenChild2 !== null) {\n            _treeBaseDuration2 += _hiddenChild2.treeBaseDuration;\n            _hiddenChild2 = _hiddenChild2.sibling;\n          }\n\n          _primaryChildFragment3.treeBaseDuration = _treeBaseDuration2;\n        } // Create a fragment from the fallback children, too.\n\n\n        var _fallbackChildFragment3 = createFiberFromFragment(_nextFallbackChildren3, mode, renderExpirationTime, null);\n\n        _fallbackChildFragment3.return = workInProgress;\n        _primaryChildFragment3.sibling = _fallbackChildFragment3;\n        _fallbackChildFragment3.effectTag |= Placement;\n        _primaryChildFragment3.childExpirationTime = NoWork; // Skip the primary children, and continue working on the\n        // fallback children.\n\n        workInProgress.memoizedState = SUSPENDED_MARKER;\n        workInProgress.child = _primaryChildFragment3;\n        return _fallbackChildFragment3;\n      } else {\n        // Still haven't timed out. Continue rendering the children, like we\n        // normally do.\n        workInProgress.memoizedState = null;\n        var _nextPrimaryChildren2 = nextProps.children;\n        return workInProgress.child = reconcileChildFibers(workInProgress, _currentPrimaryChild, _nextPrimaryChildren2, renderExpirationTime);\n      }\n    }\n  }\n}\n\nfunction scheduleWorkOnFiber(fiber, renderExpirationTime) {\n  if (fiber.expirationTime < renderExpirationTime) {\n    fiber.expirationTime = renderExpirationTime;\n  }\n\n  var alternate = fiber.alternate;\n\n  if (alternate !== null && alternate.expirationTime < renderExpirationTime) {\n    alternate.expirationTime = renderExpirationTime;\n  }\n\n  scheduleWorkOnParentPath(fiber.return, renderExpirationTime);\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderExpirationTime) {\n  // Mark any Suspense boundaries with fallbacks as having work to do.\n  // If they were previously forced into fallbacks, they may now be able\n  // to unblock.\n  var node = firstChild;\n\n  while (node !== null) {\n    if (node.tag === SuspenseComponent) {\n      var state = node.memoizedState;\n\n      if (state !== null) {\n        scheduleWorkOnFiber(node, renderExpirationTime);\n      }\n    } else if (node.tag === SuspenseListComponent) {\n      // If the tail is hidden there might not be an Suspense boundaries\n      // to schedule work on. In this case we have to schedule it on the\n      // list itself.\n      // We don't have to traverse to the children of the list since\n      // the list will propagate the change when it rerenders.\n      scheduleWorkOnFiber(node, renderExpirationTime);\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === workInProgress) {\n      return;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === workInProgress) {\n        return;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction findLastContentRow(firstChild) {\n  // This is going to find the last row among these children that is already\n  // showing content on the screen, as opposed to being in fallback state or\n  // new. If a row has multiple Suspense boundaries, any of them being in the\n  // fallback state, counts as the whole row being in a fallback state.\n  // Note that the \"rows\" will be workInProgress, but any nested children\n  // will still be current since we haven't rendered them yet. The mounted\n  // order may not be the same as the new order. We use the new order.\n  var row = firstChild;\n  var lastContentRow = null;\n\n  while (row !== null) {\n    var currentRow = row.alternate; // New rows can't be content rows.\n\n    if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n      lastContentRow = row;\n    }\n\n    row = row.sibling;\n  }\n\n  return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n  {\n    if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n      didWarnAboutRevealOrder[revealOrder] = true;\n\n      if (typeof revealOrder === 'string') {\n        switch (revealOrder.toLowerCase()) {\n          case 'together':\n          case 'forwards':\n          case 'backwards':\n            {\n              error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n\n              break;\n            }\n\n          case 'forward':\n          case 'backward':\n            {\n              error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n\n              break;\n            }\n\n          default:\n            error('\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n\n            break;\n        }\n      } else {\n        error('%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n      }\n    }\n  }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n  {\n    if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n      if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n        didWarnAboutTailOptions[tailMode] = true;\n\n        error('\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n      } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n        didWarnAboutTailOptions[tailMode] = true;\n\n        error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n      }\n    }\n  }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n  {\n    var isArray = Array.isArray(childSlot);\n    var isIterable = !isArray && typeof getIteratorFn(childSlot) === 'function';\n\n    if (isArray || isIterable) {\n      var type = isArray ? 'array' : 'iterable';\n\n      error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n  {\n    if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n      if (Array.isArray(children)) {\n        for (var i = 0; i < children.length; i++) {\n          if (!validateSuspenseListNestedChild(children[i], i)) {\n            return;\n          }\n        }\n      } else {\n        var iteratorFn = getIteratorFn(children);\n\n        if (typeof iteratorFn === 'function') {\n          var childrenIterator = iteratorFn.call(children);\n\n          if (childrenIterator) {\n            var step = childrenIterator.next();\n            var _i = 0;\n\n            for (; !step.done; step = childrenIterator.next()) {\n              if (!validateSuspenseListNestedChild(step.value, _i)) {\n                return;\n              }\n\n              _i++;\n            }\n          }\n        } else {\n          error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n        }\n      }\n    }\n  }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode, lastEffectBeforeRendering) {\n  var renderState = workInProgress.memoizedState;\n\n  if (renderState === null) {\n    workInProgress.memoizedState = {\n      isBackwards: isBackwards,\n      rendering: null,\n      renderingStartTime: 0,\n      last: lastContentRow,\n      tail: tail,\n      tailExpiration: 0,\n      tailMode: tailMode,\n      lastEffect: lastEffectBeforeRendering\n    };\n  } else {\n    // We can reuse the existing object from previous renders.\n    renderState.isBackwards = isBackwards;\n    renderState.rendering = null;\n    renderState.renderingStartTime = 0;\n    renderState.last = lastContentRow;\n    renderState.tail = tail;\n    renderState.tailExpiration = 0;\n    renderState.tailMode = tailMode;\n    renderState.lastEffect = lastEffectBeforeRendering;\n  }\n} // This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\n\n\nfunction updateSuspenseListComponent(current, workInProgress, renderExpirationTime) {\n  var nextProps = workInProgress.pendingProps;\n  var revealOrder = nextProps.revealOrder;\n  var tailMode = nextProps.tail;\n  var newChildren = nextProps.children;\n  validateRevealOrder(revealOrder);\n  validateTailOptions(tailMode, revealOrder);\n  validateSuspenseListChildren(newChildren, revealOrder);\n  reconcileChildren(current, workInProgress, newChildren, renderExpirationTime);\n  var suspenseContext = suspenseStackCursor.current;\n  var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n\n  if (shouldForceFallback) {\n    suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n    workInProgress.effectTag |= DidCapture;\n  } else {\n    var didSuspendBefore = current !== null && (current.effectTag & DidCapture) !== NoEffect;\n\n    if (didSuspendBefore) {\n      // If we previously forced a fallback, we need to schedule work\n      // on any nested boundaries to let them know to try to render\n      // again. This is the same as context updating.\n      propagateSuspenseContextChange(workInProgress, workInProgress.child, renderExpirationTime);\n    }\n\n    suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n  }\n\n  pushSuspenseContext(workInProgress, suspenseContext);\n\n  if ((workInProgress.mode & BlockingMode) === NoMode) {\n    // Outside of blocking mode, SuspenseList doesn't work so we just\n    // use make it a noop by treating it as the default revealOrder.\n    workInProgress.memoizedState = null;\n  } else {\n    switch (revealOrder) {\n      case 'forwards':\n        {\n          var lastContentRow = findLastContentRow(workInProgress.child);\n          var tail;\n\n          if (lastContentRow === null) {\n            // The whole list is part of the tail.\n            // TODO: We could fast path by just rendering the tail now.\n            tail = workInProgress.child;\n            workInProgress.child = null;\n          } else {\n            // Disconnect the tail rows after the content row.\n            // We're going to render them separately later.\n            tail = lastContentRow.sibling;\n            lastContentRow.sibling = null;\n          }\n\n          initSuspenseListRenderState(workInProgress, false, // isBackwards\n          tail, lastContentRow, tailMode, workInProgress.lastEffect);\n          break;\n        }\n\n      case 'backwards':\n        {\n          // We're going to find the first row that has existing content.\n          // At the same time we're going to reverse the list of everything\n          // we pass in the meantime. That's going to be our tail in reverse\n          // order.\n          var _tail = null;\n          var row = workInProgress.child;\n          workInProgress.child = null;\n\n          while (row !== null) {\n            var currentRow = row.alternate; // New rows can't be content rows.\n\n            if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n              // This is the beginning of the main content.\n              workInProgress.child = row;\n              break;\n            }\n\n            var nextRow = row.sibling;\n            row.sibling = _tail;\n            _tail = row;\n            row = nextRow;\n          } // TODO: If workInProgress.child is null, we can continue on the tail immediately.\n\n\n          initSuspenseListRenderState(workInProgress, true, // isBackwards\n          _tail, null, // last\n          tailMode, workInProgress.lastEffect);\n          break;\n        }\n\n      case 'together':\n        {\n          initSuspenseListRenderState(workInProgress, false, // isBackwards\n          null, // tail\n          null, // last\n          undefined, workInProgress.lastEffect);\n          break;\n        }\n\n      default:\n        {\n          // The default reveal order is the same as not having\n          // a boundary.\n          workInProgress.memoizedState = null;\n        }\n    }\n  }\n\n  return workInProgress.child;\n}\n\nfunction updatePortalComponent(current, workInProgress, renderExpirationTime) {\n  pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n  var nextChildren = workInProgress.pendingProps;\n\n  if (current === null) {\n    // Portals are special because we don't append the children during mount\n    // but at commit. Therefore we need to track insertions which the normal\n    // flow doesn't do during mount. This doesn't happen at the root because\n    // the root always starts with a \"current\" with a null child.\n    // TODO: Consider unifying this with how the root works.\n    workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    reconcileChildren(current, workInProgress, nextChildren, renderExpirationTime);\n  }\n\n  return workInProgress.child;\n}\n\nfunction updateContextProvider(current, workInProgress, renderExpirationTime) {\n  var providerType = workInProgress.type;\n  var context = providerType._context;\n  var newProps = workInProgress.pendingProps;\n  var oldProps = workInProgress.memoizedProps;\n  var newValue = newProps.value;\n\n  {\n    var providerPropTypes = workInProgress.type.propTypes;\n\n    if (providerPropTypes) {\n      checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider', getCurrentFiberStackInDev);\n    }\n  }\n\n  pushProvider(workInProgress, newValue);\n\n  if (oldProps !== null) {\n    var oldValue = oldProps.value;\n    var changedBits = calculateChangedBits(context, newValue, oldValue);\n\n    if (changedBits === 0) {\n      // No change. Bailout early if children are the same.\n      if (oldProps.children === newProps.children && !hasContextChanged()) {\n        return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n      }\n    } else {\n      // The context value changed. Search for matching consumers and schedule\n      // them to update.\n      propagateContextChange(workInProgress, context, changedBits, renderExpirationTime);\n    }\n  }\n\n  var newChildren = newProps.children;\n  reconcileChildren(current, workInProgress, newChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current, workInProgress, renderExpirationTime) {\n  var context = workInProgress.type; // The logic below for Context differs depending on PROD or DEV mode. In\n  // DEV mode, we create a separate object for Context.Consumer that acts\n  // like a proxy to Context. This proxy object adds unnecessary code in PROD\n  // so we use the old behaviour (Context.Consumer references Context) to\n  // reduce size and overhead. The separate object references context via\n  // a property called \"_context\", which also gives us the ability to check\n  // in DEV mode if this property exists or not and warn if it does not.\n\n  {\n    if (context._context === undefined) {\n      // This may be because it's a Context (rather than a Consumer).\n      // Or it may be because it's older React where they're the same thing.\n      // We only want to warn if we're sure it's a new React.\n      if (context !== context.Consumer) {\n        if (!hasWarnedAboutUsingContextAsConsumer) {\n          hasWarnedAboutUsingContextAsConsumer = true;\n\n          error('Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n        }\n      }\n    } else {\n      context = context._context;\n    }\n  }\n\n  var newProps = workInProgress.pendingProps;\n  var render = newProps.children;\n\n  {\n    if (typeof render !== 'function') {\n      error('A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.');\n    }\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  var newValue = readContext(context, newProps.unstable_observedBits);\n  var newChildren;\n\n  {\n    ReactCurrentOwner$1.current = workInProgress;\n    setIsRendering(true);\n    newChildren = render(newValue);\n    setIsRendering(false);\n  } // React DevTools reads this flag.\n\n\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current, workInProgress, newChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n  didReceiveUpdate = true;\n}\n\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime) {\n  cancelWorkTimer(workInProgress);\n\n  if (current !== null) {\n    // Reuse previous dependencies\n    workInProgress.dependencies = current.dependencies;\n  }\n\n  {\n    // Don't update \"base\" render times for bailouts.\n    stopProfilerTimerIfRunning();\n  }\n\n  var updateExpirationTime = workInProgress.expirationTime;\n\n  if (updateExpirationTime !== NoWork) {\n    markUnprocessedUpdateTime(updateExpirationTime);\n  } // Check if the children have any pending work.\n\n\n  var childExpirationTime = workInProgress.childExpirationTime;\n\n  if (childExpirationTime < renderExpirationTime) {\n    // The children don't have any work either. We can skip them.\n    // TODO: Once we add back resuming, we should check if the children are\n    // a work-in-progress set. If so, we need to transfer their effects.\n    return null;\n  } else {\n    // This fiber doesn't have work, but its subtree does. Clone the child\n    // fibers and continue.\n    cloneChildFibers(current, workInProgress);\n    return workInProgress.child;\n  }\n}\n\nfunction remountFiber(current, oldWorkInProgress, newWorkInProgress) {\n  {\n    var returnFiber = oldWorkInProgress.return;\n\n    if (returnFiber === null) {\n      throw new Error('Cannot swap the root fiber.');\n    } // Disconnect from the old current.\n    // It will get deleted.\n\n\n    current.alternate = null;\n    oldWorkInProgress.alternate = null; // Connect to the new tree.\n\n    newWorkInProgress.index = oldWorkInProgress.index;\n    newWorkInProgress.sibling = oldWorkInProgress.sibling;\n    newWorkInProgress.return = oldWorkInProgress.return;\n    newWorkInProgress.ref = oldWorkInProgress.ref; // Replace the child/sibling pointers above it.\n\n    if (oldWorkInProgress === returnFiber.child) {\n      returnFiber.child = newWorkInProgress;\n    } else {\n      var prevSibling = returnFiber.child;\n\n      if (prevSibling === null) {\n        throw new Error('Expected parent to have a child.');\n      }\n\n      while (prevSibling.sibling !== oldWorkInProgress) {\n        prevSibling = prevSibling.sibling;\n\n        if (prevSibling === null) {\n          throw new Error('Expected to find the previous sibling.');\n        }\n      }\n\n      prevSibling.sibling = newWorkInProgress;\n    } // Delete the old fiber and place the new one.\n    // Since the old fiber is disconnected, we have to schedule it manually.\n\n\n    var last = returnFiber.lastEffect;\n\n    if (last !== null) {\n      last.nextEffect = current;\n      returnFiber.lastEffect = current;\n    } else {\n      returnFiber.firstEffect = returnFiber.lastEffect = current;\n    }\n\n    current.nextEffect = null;\n    current.effectTag = Deletion;\n    newWorkInProgress.effectTag |= Placement; // Restart work from the new fiber.\n\n    return newWorkInProgress;\n  }\n}\n\nfunction beginWork(current, workInProgress, renderExpirationTime) {\n  var updateExpirationTime = workInProgress.expirationTime;\n\n  {\n    if (workInProgress._debugNeedsRemount && current !== null) {\n      // This will restart the begin phase with a new fiber.\n      return remountFiber(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.expirationTime));\n    }\n  }\n\n  if (current !== null) {\n    var oldProps = current.memoizedProps;\n    var newProps = workInProgress.pendingProps;\n\n    if (oldProps !== newProps || hasContextChanged() || ( // Force a re-render if the implementation changed due to hot reload:\n     workInProgress.type !== current.type )) {\n      // If props or context changed, mark the fiber as having performed work.\n      // This may be unset if the props are determined to be equal later (memo).\n      didReceiveUpdate = true;\n    } else if (updateExpirationTime < renderExpirationTime) {\n      didReceiveUpdate = false; // This fiber does not have any pending work. Bailout without entering\n      // the begin phase. There's still some bookkeeping we that needs to be done\n      // in this optimized path, mostly pushing stuff onto the stack.\n\n      switch (workInProgress.tag) {\n        case HostRoot:\n          pushHostRootContext(workInProgress);\n          resetHydrationState();\n          break;\n\n        case HostComponent:\n          pushHostContext(workInProgress);\n\n          if (workInProgress.mode & ConcurrentMode && renderExpirationTime !== Never && shouldDeprioritizeSubtree(workInProgress.type, newProps)) {\n            {\n              markSpawnedWork(Never);\n            } // Schedule this fiber to re-render at offscreen priority. Then bailout.\n\n\n            workInProgress.expirationTime = workInProgress.childExpirationTime = Never;\n            return null;\n          }\n\n          break;\n\n        case ClassComponent:\n          {\n            var Component = workInProgress.type;\n\n            if (isContextProvider(Component)) {\n              pushContextProvider(workInProgress);\n            }\n\n            break;\n          }\n\n        case HostPortal:\n          pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n          break;\n\n        case ContextProvider:\n          {\n            var newValue = workInProgress.memoizedProps.value;\n            pushProvider(workInProgress, newValue);\n            break;\n          }\n\n        case Profiler:\n          {\n            // Profiler should only call onRender when one of its descendants actually rendered.\n            var hasChildWork = workInProgress.childExpirationTime >= renderExpirationTime;\n\n            if (hasChildWork) {\n              workInProgress.effectTag |= Update;\n            }\n          }\n\n          break;\n\n        case SuspenseComponent:\n          {\n            var state = workInProgress.memoizedState;\n\n            if (state !== null) {\n              // whether to retry the primary children, or to skip over it and\n              // go straight to the fallback. Check the priority of the primary\n              // child fragment.\n\n\n              var primaryChildFragment = workInProgress.child;\n              var primaryChildExpirationTime = primaryChildFragment.childExpirationTime;\n\n              if (primaryChildExpirationTime !== NoWork && primaryChildExpirationTime >= renderExpirationTime) {\n                // The primary children have pending work. Use the normal path\n                // to attempt to render the primary children again.\n                return updateSuspenseComponent(current, workInProgress, renderExpirationTime);\n              } else {\n                pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); // The primary children do not have pending work with sufficient\n                // priority. Bailout.\n\n                var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n\n                if (child !== null) {\n                  // The fallback children have pending work. Skip over the\n                  // primary children and work on the fallback.\n                  return child.sibling;\n                } else {\n                  return null;\n                }\n              }\n            } else {\n              pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n            }\n\n            break;\n          }\n\n        case SuspenseListComponent:\n          {\n            var didSuspendBefore = (current.effectTag & DidCapture) !== NoEffect;\n\n            var _hasChildWork = workInProgress.childExpirationTime >= renderExpirationTime;\n\n            if (didSuspendBefore) {\n              if (_hasChildWork) {\n                // If something was in fallback state last time, and we have all the\n                // same children then we're still in progressive loading state.\n                // Something might get unblocked by state updates or retries in the\n                // tree which will affect the tail. So we need to use the normal\n                // path to compute the correct tail.\n                return updateSuspenseListComponent(current, workInProgress, renderExpirationTime);\n              } // If none of the children had any work, that means that none of\n              // them got retried so they'll still be blocked in the same way\n              // as before. We can fast bail out.\n\n\n              workInProgress.effectTag |= DidCapture;\n            } // If nothing suspended before and we're rendering the same children,\n            // then the tail doesn't matter. Anything new that suspends will work\n            // in the \"together\" mode, so we can continue from the state we had.\n\n\n            var renderState = workInProgress.memoizedState;\n\n            if (renderState !== null) {\n              // Reset to the \"together\" mode in case we've started a different\n              // update in the past but didn't complete it.\n              renderState.rendering = null;\n              renderState.tail = null;\n            }\n\n            pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n            if (_hasChildWork) {\n              break;\n            } else {\n              // If none of the children had any work, that means that none of\n              // them got retried so they'll still be blocked in the same way\n              // as before. We can fast bail out.\n              return null;\n            }\n          }\n      }\n\n      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderExpirationTime);\n    } else {\n      // An update was scheduled on this fiber, but there are no new props\n      // nor legacy context. Set this to false. If an update queue or context\n      // consumer produces a changed value, it will set this to true. Otherwise,\n      // the component will assume the children have not changed and bail out.\n      didReceiveUpdate = false;\n    }\n  } else {\n    didReceiveUpdate = false;\n  } // Before entering the begin phase, clear pending update priority.\n  // TODO: This assumes that we're about to evaluate the component and process\n  // the update queue. However, there's an exception: SimpleMemoComponent\n  // sometimes bails out later in the begin phase. This indicates that we should\n  // move this assignment out of the common path and into each branch.\n\n\n  workInProgress.expirationTime = NoWork;\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n      {\n        return mountIndeterminateComponent(current, workInProgress, workInProgress.type, renderExpirationTime);\n      }\n\n    case LazyComponent:\n      {\n        var elementType = workInProgress.elementType;\n        return mountLazyComponent(current, workInProgress, elementType, updateExpirationTime, renderExpirationTime);\n      }\n\n    case FunctionComponent:\n      {\n        var _Component = workInProgress.type;\n        var unresolvedProps = workInProgress.pendingProps;\n        var resolvedProps = workInProgress.elementType === _Component ? unresolvedProps : resolveDefaultProps(_Component, unresolvedProps);\n        return updateFunctionComponent(current, workInProgress, _Component, resolvedProps, renderExpirationTime);\n      }\n\n    case ClassComponent:\n      {\n        var _Component2 = workInProgress.type;\n        var _unresolvedProps = workInProgress.pendingProps;\n\n        var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);\n\n        return updateClassComponent(current, workInProgress, _Component2, _resolvedProps, renderExpirationTime);\n      }\n\n    case HostRoot:\n      return updateHostRoot(current, workInProgress, renderExpirationTime);\n\n    case HostComponent:\n      return updateHostComponent(current, workInProgress, renderExpirationTime);\n\n    case HostText:\n      return updateHostText(current, workInProgress);\n\n    case SuspenseComponent:\n      return updateSuspenseComponent(current, workInProgress, renderExpirationTime);\n\n    case HostPortal:\n      return updatePortalComponent(current, workInProgress, renderExpirationTime);\n\n    case ForwardRef:\n      {\n        var type = workInProgress.type;\n        var _unresolvedProps2 = workInProgress.pendingProps;\n\n        var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n\n        return updateForwardRef(current, workInProgress, type, _resolvedProps2, renderExpirationTime);\n      }\n\n    case Fragment:\n      return updateFragment(current, workInProgress, renderExpirationTime);\n\n    case Mode:\n      return updateMode(current, workInProgress, renderExpirationTime);\n\n    case Profiler:\n      return updateProfiler(current, workInProgress, renderExpirationTime);\n\n    case ContextProvider:\n      return updateContextProvider(current, workInProgress, renderExpirationTime);\n\n    case ContextConsumer:\n      return updateContextConsumer(current, workInProgress, renderExpirationTime);\n\n    case MemoComponent:\n      {\n        var _type2 = workInProgress.type;\n        var _unresolvedProps3 = workInProgress.pendingProps; // Resolve outer props first, then resolve inner props.\n\n        var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n\n        {\n          if (workInProgress.type !== workInProgress.elementType) {\n            var outerPropTypes = _type2.propTypes;\n\n            if (outerPropTypes) {\n              checkPropTypes(outerPropTypes, _resolvedProps3, // Resolved for outer only\n              'prop', getComponentName(_type2), getCurrentFiberStackInDev);\n            }\n          }\n        }\n\n        _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n        return updateMemoComponent(current, workInProgress, _type2, _resolvedProps3, updateExpirationTime, renderExpirationTime);\n      }\n\n    case SimpleMemoComponent:\n      {\n        return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, updateExpirationTime, renderExpirationTime);\n      }\n\n    case IncompleteClassComponent:\n      {\n        var _Component3 = workInProgress.type;\n        var _unresolvedProps4 = workInProgress.pendingProps;\n\n        var _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4);\n\n        return mountIncompleteClassComponent(current, workInProgress, _Component3, _resolvedProps4, renderExpirationTime);\n      }\n\n    case SuspenseListComponent:\n      {\n        return updateSuspenseListComponent(current, workInProgress, renderExpirationTime);\n      }\n  }\n\n  {\n    {\n      throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n}\n\nfunction markUpdate(workInProgress) {\n  // Tag the fiber with an update effect. This turns a Placement into\n  // a PlacementAndUpdate.\n  workInProgress.effectTag |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n  workInProgress.effectTag |= Ref;\n}\n\nvar appendAllChildren;\nvar updateHostContainer;\nvar updateHostComponent$1;\nvar updateHostText$1;\n\n{\n  // Mutation mode\n  appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n    // We only have the top Fiber that was created but we need recurse down its\n    // children to find all the terminal nodes.\n    var node = workInProgress.child;\n\n    while (node !== null) {\n      if (node.tag === HostComponent || node.tag === HostText) {\n        appendInitialChild(parent, node.stateNode);\n      } else if (node.tag === HostPortal) ; else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n\n      if (node === workInProgress) {\n        return;\n      }\n\n      while (node.sibling === null) {\n        if (node.return === null || node.return === workInProgress) {\n          return;\n        }\n\n        node = node.return;\n      }\n\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  };\n\n  updateHostContainer = function (workInProgress) {// Noop\n  };\n\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    // If we have an alternate, that means this is an update and we need to\n    // schedule a side-effect to do the updates.\n    var oldProps = current.memoizedProps;\n\n    if (oldProps === newProps) {\n      // In mutation mode, this is sufficient for a bailout because\n      // we won't touch this node even if children changed.\n      return;\n    } // If we get updated because one of our children updated, we don't\n    // have newProps so we'll have to reuse them.\n    // TODO: Split the update API as separate for the props vs. children.\n    // Even better would be if children weren't special cased at all tho.\n\n\n    var instance = workInProgress.stateNode;\n    var currentHostContext = getHostContext(); // TODO: Experiencing an error where oldProps is null. Suggests a host\n    // component is hitting the resume path. Figure out why. Possibly\n    // related to `hidden`.\n\n    var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext); // TODO: Type this specific to this type of component.\n\n    workInProgress.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n    // is a new ref we mark this as an update. All the work is done in commitWork.\n\n    if (updatePayload) {\n      markUpdate(workInProgress);\n    }\n  };\n\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    // If the text differs, mark it as an update. All the work in done in commitWork.\n    if (oldText !== newText) {\n      markUpdate(workInProgress);\n    }\n  };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n  switch (renderState.tailMode) {\n    case 'hidden':\n      {\n        // Any insertions at the end of the tail list after this point\n        // should be invisible. If there are already mounted boundaries\n        // anything before them are not considered for collapsing.\n        // Therefore we need to go through the whole tail to find if\n        // there are any.\n        var tailNode = renderState.tail;\n        var lastTailNode = null;\n\n        while (tailNode !== null) {\n          if (tailNode.alternate !== null) {\n            lastTailNode = tailNode;\n          }\n\n          tailNode = tailNode.sibling;\n        } // Next we're simply going to delete all insertions after the\n        // last rendered item.\n\n\n        if (lastTailNode === null) {\n          // All remaining items in the tail are insertions.\n          renderState.tail = null;\n        } else {\n          // Detach the insertion after the last node that was already\n          // inserted.\n          lastTailNode.sibling = null;\n        }\n\n        break;\n      }\n\n    case 'collapsed':\n      {\n        // Any insertions at the end of the tail list after this point\n        // should be invisible. If there are already mounted boundaries\n        // anything before them are not considered for collapsing.\n        // Therefore we need to go through the whole tail to find if\n        // there are any.\n        var _tailNode = renderState.tail;\n        var _lastTailNode = null;\n\n        while (_tailNode !== null) {\n          if (_tailNode.alternate !== null) {\n            _lastTailNode = _tailNode;\n          }\n\n          _tailNode = _tailNode.sibling;\n        } // Next we're simply going to delete all insertions after the\n        // last rendered item.\n\n\n        if (_lastTailNode === null) {\n          // All remaining items in the tail are insertions.\n          if (!hasRenderedATailFallback && renderState.tail !== null) {\n            // We suspended during the head. We want to show at least one\n            // row at the tail. So we'll keep on and cut off the rest.\n            renderState.tail.sibling = null;\n          } else {\n            renderState.tail = null;\n          }\n        } else {\n          // Detach the insertion after the last node that was already\n          // inserted.\n          _lastTailNode.sibling = null;\n        }\n\n        break;\n      }\n  }\n}\n\nfunction completeWork(current, workInProgress, renderExpirationTime) {\n  var newProps = workInProgress.pendingProps;\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n    case LazyComponent:\n    case SimpleMemoComponent:\n    case FunctionComponent:\n    case ForwardRef:\n    case Fragment:\n    case Mode:\n    case Profiler:\n    case ContextConsumer:\n    case MemoComponent:\n      return null;\n\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n\n        return null;\n      }\n\n    case HostRoot:\n      {\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        var fiberRoot = workInProgress.stateNode;\n\n        if (fiberRoot.pendingContext) {\n          fiberRoot.context = fiberRoot.pendingContext;\n          fiberRoot.pendingContext = null;\n        }\n\n        if (current === null || current.child === null) {\n          // If we hydrated, pop so that we can delete any remaining children\n          // that weren't hydrated.\n          var wasHydrated = popHydrationState(workInProgress);\n\n          if (wasHydrated) {\n            // If we hydrated, then we'll need to schedule an update for\n            // the commit side-effects on the root.\n            markUpdate(workInProgress);\n          }\n        }\n\n        updateHostContainer(workInProgress);\n        return null;\n      }\n\n    case HostComponent:\n      {\n        popHostContext(workInProgress);\n        var rootContainerInstance = getRootHostContainer();\n        var type = workInProgress.type;\n\n        if (current !== null && workInProgress.stateNode != null) {\n          updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n          if (current.ref !== workInProgress.ref) {\n            markRef$1(workInProgress);\n          }\n        } else {\n          if (!newProps) {\n            if (!(workInProgress.stateNode !== null)) {\n              {\n                throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n              }\n            } // This can happen when we abort work.\n\n\n            return null;\n          }\n\n          var currentHostContext = getHostContext(); // TODO: Move createInstance to beginWork and keep it on a context\n          // \"stack\" as the parent. Then append children as we go in beginWork\n          // or completeWork depending on whether we want to add them top->down or\n          // bottom->up. Top->down is faster in IE11.\n\n          var _wasHydrated = popHydrationState(workInProgress);\n\n          if (_wasHydrated) {\n            // TODO: Move this and createInstance step into the beginPhase\n            // to consolidate.\n            if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n              // If changes to the hydrated node need to be applied at the\n              // commit-phase we mark this as such.\n              markUpdate(workInProgress);\n            }\n          } else {\n            var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n            appendAllChildren(instance, workInProgress, false, false); // This needs to be set before we mount Flare event listeners\n\n            workInProgress.stateNode = instance;\n            // (eg DOM renderer supports auto-focus for certain elements).\n            // Make sure such renderers get scheduled for later work.\n\n\n            if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance)) {\n              markUpdate(workInProgress);\n            }\n          }\n\n          if (workInProgress.ref !== null) {\n            // If there is a ref on a host node we need to schedule a callback\n            markRef$1(workInProgress);\n          }\n        }\n\n        return null;\n      }\n\n    case HostText:\n      {\n        var newText = newProps;\n\n        if (current && workInProgress.stateNode != null) {\n          var oldText = current.memoizedProps; // If we have an alternate, that means this is an update and we need\n          // to schedule a side-effect to do the updates.\n\n          updateHostText$1(current, workInProgress, oldText, newText);\n        } else {\n          if (typeof newText !== 'string') {\n            if (!(workInProgress.stateNode !== null)) {\n              {\n                throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n              }\n            } // This can happen when we abort work.\n\n          }\n\n          var _rootContainerInstance = getRootHostContainer();\n\n          var _currentHostContext = getHostContext();\n\n          var _wasHydrated2 = popHydrationState(workInProgress);\n\n          if (_wasHydrated2) {\n            if (prepareToHydrateHostTextInstance(workInProgress)) {\n              markUpdate(workInProgress);\n            }\n          } else {\n            workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n          }\n        }\n\n        return null;\n      }\n\n    case SuspenseComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var nextState = workInProgress.memoizedState;\n\n        if ((workInProgress.effectTag & DidCapture) !== NoEffect) {\n          // Something suspended. Re-render with the fallback children.\n          workInProgress.expirationTime = renderExpirationTime; // Do not reset the effect list.\n\n          return workInProgress;\n        }\n\n        var nextDidTimeout = nextState !== null;\n        var prevDidTimeout = false;\n\n        if (current === null) {\n          if (workInProgress.memoizedProps.fallback !== undefined) {\n            popHydrationState(workInProgress);\n          }\n        } else {\n          var prevState = current.memoizedState;\n          prevDidTimeout = prevState !== null;\n\n          if (!nextDidTimeout && prevState !== null) {\n            // We just switched from the fallback to the normal children.\n            // Delete the fallback.\n            // TODO: Would it be better to store the fallback fragment on\n            // the stateNode during the begin phase?\n            var currentFallbackChild = current.child.sibling;\n\n            if (currentFallbackChild !== null) {\n              // Deletions go at the beginning of the return fiber's effect list\n              var first = workInProgress.firstEffect;\n\n              if (first !== null) {\n                workInProgress.firstEffect = currentFallbackChild;\n                currentFallbackChild.nextEffect = first;\n              } else {\n                workInProgress.firstEffect = workInProgress.lastEffect = currentFallbackChild;\n                currentFallbackChild.nextEffect = null;\n              }\n\n              currentFallbackChild.effectTag = Deletion;\n            }\n          }\n        }\n\n        if (nextDidTimeout && !prevDidTimeout) {\n          // If this subtreee is running in blocking mode we can suspend,\n          // otherwise we won't suspend.\n          // TODO: This will still suspend a synchronous tree if anything\n          // in the concurrent tree already suspended during this render.\n          // This is a known bug.\n          if ((workInProgress.mode & BlockingMode) !== NoMode) {\n            // TODO: Move this back to throwException because this is too late\n            // if this is a large tree which is common for initial loads. We\n            // don't know if we should restart a render or not until we get\n            // this marker, and this is too late.\n            // If this render already had a ping or lower pri updates,\n            // and this is the first time we know we're going to suspend we\n            // should be able to immediately restart from within throwException.\n            var hasInvisibleChildContext = current === null && workInProgress.memoizedProps.unstable_avoidThisFallback !== true;\n\n            if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n              // If this was in an invisible tree or a new render, then showing\n              // this boundary is ok.\n              renderDidSuspend();\n            } else {\n              // Otherwise, we're going to have to hide content so we should\n              // suspend for longer if possible.\n              renderDidSuspendDelayIfPossible();\n            }\n          }\n        }\n\n        {\n          // TODO: Only schedule updates if these values are non equal, i.e. it changed.\n          if (nextDidTimeout || prevDidTimeout) {\n            // If this boundary just timed out, schedule an effect to attach a\n            // retry listener to the promise. This flag is also used to hide the\n            // primary children. In mutation mode, we also need the flag to\n            // *unhide* children that were previously hidden, so check if this\n            // is currently timed out, too.\n            workInProgress.effectTag |= Update;\n          }\n        }\n\n        return null;\n      }\n\n    case HostPortal:\n      popHostContainer(workInProgress);\n      updateHostContainer(workInProgress);\n      return null;\n\n    case ContextProvider:\n      // Pop provider fiber\n      popProvider(workInProgress);\n      return null;\n\n    case IncompleteClassComponent:\n      {\n        // Same as class component case. I put it down here so that the tags are\n        // sequential to ensure this switch is compiled to a jump table.\n        var _Component = workInProgress.type;\n\n        if (isContextProvider(_Component)) {\n          popContext(workInProgress);\n        }\n\n        return null;\n      }\n\n    case SuspenseListComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var renderState = workInProgress.memoizedState;\n\n        if (renderState === null) {\n          // We're running in the default, \"independent\" mode.\n          // We don't do anything in this mode.\n          return null;\n        }\n\n        var didSuspendAlready = (workInProgress.effectTag & DidCapture) !== NoEffect;\n        var renderedTail = renderState.rendering;\n\n        if (renderedTail === null) {\n          // We just rendered the head.\n          if (!didSuspendAlready) {\n            // This is the first pass. We need to figure out if anything is still\n            // suspended in the rendered set.\n            // If new content unsuspended, but there's still some content that\n            // didn't. Then we need to do a second pass that forces everything\n            // to keep showing their fallbacks.\n            // We might be suspended if something in this render pass suspended, or\n            // something in the previous committed pass suspended. Otherwise,\n            // there's no chance so we can skip the expensive call to\n            // findFirstSuspended.\n            var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.effectTag & DidCapture) === NoEffect);\n\n            if (!cannotBeSuspended) {\n              var row = workInProgress.child;\n\n              while (row !== null) {\n                var suspended = findFirstSuspended(row);\n\n                if (suspended !== null) {\n                  didSuspendAlready = true;\n                  workInProgress.effectTag |= DidCapture;\n                  cutOffTailIfNeeded(renderState, false); // If this is a newly suspended tree, it might not get committed as\n                  // part of the second pass. In that case nothing will subscribe to\n                  // its thennables. Instead, we'll transfer its thennables to the\n                  // SuspenseList so that it can retry if they resolve.\n                  // There might be multiple of these in the list but since we're\n                  // going to wait for all of them anyway, it doesn't really matter\n                  // which ones gets to ping. In theory we could get clever and keep\n                  // track of how many dependencies remain but it gets tricky because\n                  // in the meantime, we can add/remove/change items and dependencies.\n                  // We might bail out of the loop before finding any but that\n                  // doesn't matter since that means that the other boundaries that\n                  // we did find already has their listeners attached.\n\n                  var newThennables = suspended.updateQueue;\n\n                  if (newThennables !== null) {\n                    workInProgress.updateQueue = newThennables;\n                    workInProgress.effectTag |= Update;\n                  } // Rerender the whole list, but this time, we'll force fallbacks\n                  // to stay in place.\n                  // Reset the effect list before doing the second pass since that's now invalid.\n\n\n                  if (renderState.lastEffect === null) {\n                    workInProgress.firstEffect = null;\n                  }\n\n                  workInProgress.lastEffect = renderState.lastEffect; // Reset the child fibers to their original state.\n\n                  resetChildFibers(workInProgress, renderExpirationTime); // Set up the Suspense Context to force suspense and immediately\n                  // rerender the children.\n\n                  pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback));\n                  return workInProgress.child;\n                }\n\n                row = row.sibling;\n              }\n            }\n          } else {\n            cutOffTailIfNeeded(renderState, false);\n          } // Next we're going to render the tail.\n\n        } else {\n          // Append the rendered row to the child list.\n          if (!didSuspendAlready) {\n            var _suspended = findFirstSuspended(renderedTail);\n\n            if (_suspended !== null) {\n              workInProgress.effectTag |= DidCapture;\n              didSuspendAlready = true; // Ensure we transfer the update queue to the parent so that it doesn't\n              // get lost if this row ends up dropped during a second pass.\n\n              var _newThennables = _suspended.updateQueue;\n\n              if (_newThennables !== null) {\n                workInProgress.updateQueue = _newThennables;\n                workInProgress.effectTag |= Update;\n              }\n\n              cutOffTailIfNeeded(renderState, true); // This might have been modified.\n\n              if (renderState.tail === null && renderState.tailMode === 'hidden' && !renderedTail.alternate) {\n                // We need to delete the row we just rendered.\n                // Reset the effect list to what it was before we rendered this\n                // child. The nested children have already appended themselves.\n                var lastEffect = workInProgress.lastEffect = renderState.lastEffect; // Remove any effects that were appended after this point.\n\n                if (lastEffect !== null) {\n                  lastEffect.nextEffect = null;\n                } // We're done.\n\n\n                return null;\n              }\n            } else if ( // The time it took to render last row is greater than time until\n            // the expiration.\n            now() * 2 - renderState.renderingStartTime > renderState.tailExpiration && renderExpirationTime > Never) {\n              // We have now passed our CPU deadline and we'll just give up further\n              // attempts to render the main content and only render fallbacks.\n              // The assumption is that this is usually faster.\n              workInProgress.effectTag |= DidCapture;\n              didSuspendAlready = true;\n              cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n              // to get it started back up to attempt the next item. If we can show\n              // them, then they really have the same priority as this render.\n              // So we'll pick it back up the very next render pass once we've had\n              // an opportunity to yield for paint.\n\n              var nextPriority = renderExpirationTime - 1;\n              workInProgress.expirationTime = workInProgress.childExpirationTime = nextPriority;\n\n              {\n                markSpawnedWork(nextPriority);\n              }\n            }\n          }\n\n          if (renderState.isBackwards) {\n            // The effect list of the backwards tail will have been added\n            // to the end. This breaks the guarantee that life-cycles fire in\n            // sibling order but that isn't a strong guarantee promised by React.\n            // Especially since these might also just pop in during future commits.\n            // Append to the beginning of the list.\n            renderedTail.sibling = workInProgress.child;\n            workInProgress.child = renderedTail;\n          } else {\n            var previousSibling = renderState.last;\n\n            if (previousSibling !== null) {\n              previousSibling.sibling = renderedTail;\n            } else {\n              workInProgress.child = renderedTail;\n            }\n\n            renderState.last = renderedTail;\n          }\n        }\n\n        if (renderState.tail !== null) {\n          // We still have tail rows to render.\n          if (renderState.tailExpiration === 0) {\n            // Heuristic for how long we're willing to spend rendering rows\n            // until we just give up and show what we have so far.\n            var TAIL_EXPIRATION_TIMEOUT_MS = 500;\n            renderState.tailExpiration = now() + TAIL_EXPIRATION_TIMEOUT_MS; // TODO: This is meant to mimic the train model or JND but this\n            // is a per component value. It should really be since the start\n            // of the total render or last commit. Consider using something like\n            // globalMostRecentFallbackTime. That doesn't account for being\n            // suspended for part of the time or when it's a new render.\n            // It should probably use a global start time value instead.\n          } // Pop a row.\n\n\n          var next = renderState.tail;\n          renderState.rendering = next;\n          renderState.tail = next.sibling;\n          renderState.lastEffect = workInProgress.lastEffect;\n          renderState.renderingStartTime = now();\n          next.sibling = null; // Restore the context.\n          // TODO: We can probably just avoid popping it instead and only\n          // setting it the first time we go from not suspended to suspended.\n\n          var suspenseContext = suspenseStackCursor.current;\n\n          if (didSuspendAlready) {\n            suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n          } else {\n            suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n          }\n\n          pushSuspenseContext(workInProgress, suspenseContext); // Do a pass over the next row.\n\n          return next;\n        }\n\n        return null;\n      }\n  }\n\n  {\n    {\n      throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n}\n\nfunction unwindWork(workInProgress, renderExpirationTime) {\n  switch (workInProgress.tag) {\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n\n        var effectTag = workInProgress.effectTag;\n\n        if (effectTag & ShouldCapture) {\n          workInProgress.effectTag = effectTag & ~ShouldCapture | DidCapture;\n          return workInProgress;\n        }\n\n        return null;\n      }\n\n    case HostRoot:\n      {\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        var _effectTag = workInProgress.effectTag;\n\n        if (!((_effectTag & DidCapture) === NoEffect)) {\n          {\n            throw Error( \"The root failed to unmount after an error. This is likely a bug in React. Please file an issue.\" );\n          }\n        }\n\n        workInProgress.effectTag = _effectTag & ~ShouldCapture | DidCapture;\n        return workInProgress;\n      }\n\n    case HostComponent:\n      {\n        // TODO: popHydrationState\n        popHostContext(workInProgress);\n        return null;\n      }\n\n    case SuspenseComponent:\n      {\n        popSuspenseContext(workInProgress);\n\n        var _effectTag2 = workInProgress.effectTag;\n\n        if (_effectTag2 & ShouldCapture) {\n          workInProgress.effectTag = _effectTag2 & ~ShouldCapture | DidCapture; // Captured a suspense effect. Re-render the boundary.\n\n          return workInProgress;\n        }\n\n        return null;\n      }\n\n    case SuspenseListComponent:\n      {\n        popSuspenseContext(workInProgress); // SuspenseList doesn't actually catch anything. It should've been\n        // caught by a nested boundary. If not, it should bubble through.\n\n        return null;\n      }\n\n    case HostPortal:\n      popHostContainer(workInProgress);\n      return null;\n\n    case ContextProvider:\n      popProvider(workInProgress);\n      return null;\n\n    default:\n      return null;\n  }\n}\n\nfunction unwindInterruptedWork(interruptedWork) {\n  switch (interruptedWork.tag) {\n    case ClassComponent:\n      {\n        var childContextTypes = interruptedWork.type.childContextTypes;\n\n        if (childContextTypes !== null && childContextTypes !== undefined) {\n          popContext(interruptedWork);\n        }\n\n        break;\n      }\n\n    case HostRoot:\n      {\n        popHostContainer(interruptedWork);\n        popTopLevelContextObject(interruptedWork);\n        break;\n      }\n\n    case HostComponent:\n      {\n        popHostContext(interruptedWork);\n        break;\n      }\n\n    case HostPortal:\n      popHostContainer(interruptedWork);\n      break;\n\n    case SuspenseComponent:\n      popSuspenseContext(interruptedWork);\n      break;\n\n    case SuspenseListComponent:\n      popSuspenseContext(interruptedWork);\n      break;\n\n    case ContextProvider:\n      popProvider(interruptedWork);\n      break;\n  }\n}\n\nfunction createCapturedValue(value, source) {\n  // If the value is an error, call this function immediately after it is thrown\n  // so the stack is accurate.\n  return {\n    value: value,\n    source: source,\n    stack: getStackByFiberInDevAndProd(source)\n  };\n}\n\nfunction logCapturedError(capturedError) {\n\n  var error = capturedError.error;\n\n  {\n    var componentName = capturedError.componentName,\n        componentStack = capturedError.componentStack,\n        errorBoundaryName = capturedError.errorBoundaryName,\n        errorBoundaryFound = capturedError.errorBoundaryFound,\n        willRetry = capturedError.willRetry; // Browsers support silencing uncaught errors by calling\n    // `preventDefault()` in window `error` handler.\n    // We record this information as an expando on the error.\n\n    if (error != null && error._suppressLogging) {\n      if (errorBoundaryFound && willRetry) {\n        // The error is recoverable and was silenced.\n        // Ignore it and don't print the stack addendum.\n        // This is handy for testing error boundaries without noise.\n        return;\n      } // The error is fatal. Since the silencing might have\n      // been accidental, we'll surface it anyway.\n      // However, the browser would have silenced the original error\n      // so we'll print it first, and then print the stack addendum.\n\n\n      console['error'](error); // Don't transform to our wrapper\n      // For a more detailed description of this block, see:\n      // https://github.com/facebook/react/pull/13384\n    }\n\n    var componentNameMessage = componentName ? \"The above error occurred in the <\" + componentName + \"> component:\" : 'The above error occurred in one of your React components:';\n    var errorBoundaryMessage; // errorBoundaryFound check is sufficient; errorBoundaryName check is to satisfy Flow.\n\n    if (errorBoundaryFound && errorBoundaryName) {\n      if (willRetry) {\n        errorBoundaryMessage = \"React will try to recreate this component tree from scratch \" + (\"using the error boundary you provided, \" + errorBoundaryName + \".\");\n      } else {\n        errorBoundaryMessage = \"This error was initially handled by the error boundary \" + errorBoundaryName + \".\\n\" + \"Recreating the tree from scratch failed so React will unmount the tree.\";\n      }\n    } else {\n      errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://fb.me/react-error-boundaries to learn more about error boundaries.';\n    }\n\n    var combinedMessage = \"\" + componentNameMessage + componentStack + \"\\n\\n\" + (\"\" + errorBoundaryMessage); // In development, we provide our own message with just the component stack.\n    // We don't include the original error message and JS stack because the browser\n    // has already printed it. Even if the application swallows the error, it is still\n    // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n\n    console['error'](combinedMessage); // Don't transform to our wrapper\n  }\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n\n{\n  didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n}\n\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\nfunction logError(boundary, errorInfo) {\n  var source = errorInfo.source;\n  var stack = errorInfo.stack;\n\n  if (stack === null && source !== null) {\n    stack = getStackByFiberInDevAndProd(source);\n  }\n\n  var capturedError = {\n    componentName: source !== null ? getComponentName(source.type) : null,\n    componentStack: stack !== null ? stack : '',\n    error: errorInfo.value,\n    errorBoundary: null,\n    errorBoundaryName: null,\n    errorBoundaryFound: false,\n    willRetry: false\n  };\n\n  if (boundary !== null && boundary.tag === ClassComponent) {\n    capturedError.errorBoundary = boundary.stateNode;\n    capturedError.errorBoundaryName = getComponentName(boundary.type);\n    capturedError.errorBoundaryFound = true;\n    capturedError.willRetry = true;\n  }\n\n  try {\n    logCapturedError(capturedError);\n  } catch (e) {\n    // This method must not throw, or React internal state will get messed up.\n    // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n    // we want to report this error outside of the normal stack as a last resort.\n    // https://github.com/facebook/react/issues/13188\n    setTimeout(function () {\n      throw e;\n    });\n  }\n}\n\nvar callComponentWillUnmountWithTimer = function (current, instance) {\n  startPhaseTimer(current, 'componentWillUnmount');\n  instance.props = current.memoizedProps;\n  instance.state = current.memoizedState;\n  instance.componentWillUnmount();\n  stopPhaseTimer();\n}; // Capture errors so they don't interrupt unmounting.\n\n\nfunction safelyCallComponentWillUnmount(current, instance) {\n  {\n    invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current, instance);\n\n    if (hasCaughtError()) {\n      var unmountError = clearCaughtError();\n      captureCommitPhaseError(current, unmountError);\n    }\n  }\n}\n\nfunction safelyDetachRef(current) {\n  var ref = current.ref;\n\n  if (ref !== null) {\n    if (typeof ref === 'function') {\n      {\n        invokeGuardedCallback(null, ref, null, null);\n\n        if (hasCaughtError()) {\n          var refError = clearCaughtError();\n          captureCommitPhaseError(current, refError);\n        }\n      }\n    } else {\n      ref.current = null;\n    }\n  }\n}\n\nfunction safelyCallDestroy(current, destroy) {\n  {\n    invokeGuardedCallback(null, destroy, null);\n\n    if (hasCaughtError()) {\n      var error = clearCaughtError();\n      captureCommitPhaseError(current, error);\n    }\n  }\n}\n\nfunction commitBeforeMutationLifeCycles(current, finishedWork) {\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n    case Block:\n      {\n        return;\n      }\n\n    case ClassComponent:\n      {\n        if (finishedWork.effectTag & Snapshot) {\n          if (current !== null) {\n            var prevProps = current.memoizedProps;\n            var prevState = current.memoizedState;\n            startPhaseTimer(finishedWork, 'getSnapshotBeforeUpdate');\n            var instance = finishedWork.stateNode; // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                if (instance.props !== finishedWork.memoizedProps) {\n                  error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n                }\n\n                if (instance.state !== finishedWork.memoizedState) {\n                  error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n                }\n              }\n            }\n\n            var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n\n            {\n              var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n\n              if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n                didWarnSet.add(finishedWork.type);\n\n                error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));\n              }\n            }\n\n            instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n            stopPhaseTimer();\n          }\n        }\n\n        return;\n      }\n\n    case HostRoot:\n    case HostComponent:\n    case HostText:\n    case HostPortal:\n    case IncompleteClassComponent:\n      // Nothing to do for these component types\n      return;\n  }\n\n  {\n    {\n      throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n}\n\nfunction commitHookEffectListUnmount(tag, finishedWork) {\n  var updateQueue = finishedWork.updateQueue;\n  var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n  if (lastEffect !== null) {\n    var firstEffect = lastEffect.next;\n    var effect = firstEffect;\n\n    do {\n      if ((effect.tag & tag) === tag) {\n        // Unmount\n        var destroy = effect.destroy;\n        effect.destroy = undefined;\n\n        if (destroy !== undefined) {\n          destroy();\n        }\n      }\n\n      effect = effect.next;\n    } while (effect !== firstEffect);\n  }\n}\n\nfunction commitHookEffectListMount(tag, finishedWork) {\n  var updateQueue = finishedWork.updateQueue;\n  var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n  if (lastEffect !== null) {\n    var firstEffect = lastEffect.next;\n    var effect = firstEffect;\n\n    do {\n      if ((effect.tag & tag) === tag) {\n        // Mount\n        var create = effect.create;\n        effect.destroy = create();\n\n        {\n          var destroy = effect.destroy;\n\n          if (destroy !== undefined && typeof destroy !== 'function') {\n            var addendum = void 0;\n\n            if (destroy === null) {\n              addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n            } else if (typeof destroy.then === 'function') {\n              addendum = '\\n\\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useEffect(() => {\\n' + '  async function fetchData() {\\n' + '    // You can await here\\n' + '    const response = await MyAPI.getData(someId);\\n' + '    // ...\\n' + '  }\\n' + '  fetchData();\\n' + \"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\" + 'Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching';\n            } else {\n              addendum = ' You returned: ' + destroy;\n            }\n\n            error('An effect function must not return anything besides a function, ' + 'which is used for clean-up.%s%s', addendum, getStackByFiberInDevAndProd(finishedWork));\n          }\n        }\n      }\n\n      effect = effect.next;\n    } while (effect !== firstEffect);\n  }\n}\n\nfunction commitPassiveHookEffects(finishedWork) {\n  if ((finishedWork.effectTag & Passive) !== NoEffect) {\n    switch (finishedWork.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n      case Block:\n        {\n          // TODO (#17945) We should call all passive destroy functions (for all fibers)\n          // before calling any create functions. The current approach only serializes\n          // these for a single fiber.\n          commitHookEffectListUnmount(Passive$1 | HasEffect, finishedWork);\n          commitHookEffectListMount(Passive$1 | HasEffect, finishedWork);\n          break;\n        }\n    }\n  }\n}\n\nfunction commitLifeCycles(finishedRoot, current, finishedWork, committedExpirationTime) {\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n    case Block:\n      {\n        // At this point layout effects have already been destroyed (during mutation phase).\n        // This is done to prevent sibling component effects from interfering with each other,\n        // e.g. a destroy function in one component should never override a ref set\n        // by a create function in another component during the same commit.\n        commitHookEffectListMount(Layout | HasEffect, finishedWork);\n\n        return;\n      }\n\n    case ClassComponent:\n      {\n        var instance = finishedWork.stateNode;\n\n        if (finishedWork.effectTag & Update) {\n          if (current === null) {\n            startPhaseTimer(finishedWork, 'componentDidMount'); // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                if (instance.props !== finishedWork.memoizedProps) {\n                  error('Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n                }\n\n                if (instance.state !== finishedWork.memoizedState) {\n                  error('Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n                }\n              }\n            }\n\n            instance.componentDidMount();\n            stopPhaseTimer();\n          } else {\n            var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps);\n            var prevState = current.memoizedState;\n            startPhaseTimer(finishedWork, 'componentDidUpdate'); // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                if (instance.props !== finishedWork.memoizedProps) {\n                  error('Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n                }\n\n                if (instance.state !== finishedWork.memoizedState) {\n                  error('Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n                }\n              }\n            }\n\n            instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n            stopPhaseTimer();\n          }\n        }\n\n        var updateQueue = finishedWork.updateQueue;\n\n        if (updateQueue !== null) {\n          {\n            if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n              if (instance.props !== finishedWork.memoizedProps) {\n                error('Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n              }\n\n              if (instance.state !== finishedWork.memoizedState) {\n                error('Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n              }\n            }\n          } // We could update instance props and state here,\n          // but instead we rely on them being set during last render.\n          // TODO: revisit this when we implement resuming.\n\n\n          commitUpdateQueue(finishedWork, updateQueue, instance);\n        }\n\n        return;\n      }\n\n    case HostRoot:\n      {\n        var _updateQueue = finishedWork.updateQueue;\n\n        if (_updateQueue !== null) {\n          var _instance = null;\n\n          if (finishedWork.child !== null) {\n            switch (finishedWork.child.tag) {\n              case HostComponent:\n                _instance = getPublicInstance(finishedWork.child.stateNode);\n                break;\n\n              case ClassComponent:\n                _instance = finishedWork.child.stateNode;\n                break;\n            }\n          }\n\n          commitUpdateQueue(finishedWork, _updateQueue, _instance);\n        }\n\n        return;\n      }\n\n    case HostComponent:\n      {\n        var _instance2 = finishedWork.stateNode; // Renderers may schedule work to be done after host components are mounted\n        // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n        // These effects should only be committed when components are first mounted,\n        // aka when there is no current/alternate.\n\n        if (current === null && finishedWork.effectTag & Update) {\n          var type = finishedWork.type;\n          var props = finishedWork.memoizedProps;\n          commitMount(_instance2, type, props);\n        }\n\n        return;\n      }\n\n    case HostText:\n      {\n        // We have no life-cycles associated with text.\n        return;\n      }\n\n    case HostPortal:\n      {\n        // We have no life-cycles associated with portals.\n        return;\n      }\n\n    case Profiler:\n      {\n        {\n          var onRender = finishedWork.memoizedProps.onRender;\n\n          if (typeof onRender === 'function') {\n            {\n              onRender(finishedWork.memoizedProps.id, current === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime(), finishedRoot.memoizedInteractions);\n            }\n          }\n        }\n\n        return;\n      }\n\n    case SuspenseComponent:\n      {\n        commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n        return;\n      }\n\n    case SuspenseListComponent:\n    case IncompleteClassComponent:\n    case FundamentalComponent:\n    case ScopeComponent:\n      return;\n  }\n\n  {\n    {\n      throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n  {\n    // We only have the top Fiber that was inserted but we need to recurse down its\n    // children to find all the terminal nodes.\n    var node = finishedWork;\n\n    while (true) {\n      if (node.tag === HostComponent) {\n        var instance = node.stateNode;\n\n        if (isHidden) {\n          hideInstance(instance);\n        } else {\n          unhideInstance(node.stateNode, node.memoizedProps);\n        }\n      } else if (node.tag === HostText) {\n        var _instance3 = node.stateNode;\n\n        if (isHidden) {\n          hideTextInstance(_instance3);\n        } else {\n          unhideTextInstance(_instance3, node.memoizedProps);\n        }\n      } else if (node.tag === SuspenseComponent && node.memoizedState !== null && node.memoizedState.dehydrated === null) {\n        // Found a nested Suspense component that timed out. Skip over the\n        // primary child fragment, which should remain hidden.\n        var fallbackChildFragment = node.child.sibling;\n        fallbackChildFragment.return = node;\n        node = fallbackChildFragment;\n        continue;\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n\n      if (node === finishedWork) {\n        return;\n      }\n\n      while (node.sibling === null) {\n        if (node.return === null || node.return === finishedWork) {\n          return;\n        }\n\n        node = node.return;\n      }\n\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n}\n\nfunction commitAttachRef(finishedWork) {\n  var ref = finishedWork.ref;\n\n  if (ref !== null) {\n    var instance = finishedWork.stateNode;\n    var instanceToUse;\n\n    switch (finishedWork.tag) {\n      case HostComponent:\n        instanceToUse = getPublicInstance(instance);\n        break;\n\n      default:\n        instanceToUse = instance;\n    } // Moved outside to ensure DCE works with this flag\n\n    if (typeof ref === 'function') {\n      ref(instanceToUse);\n    } else {\n      {\n        if (!ref.hasOwnProperty('current')) {\n          error('Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().%s', getComponentName(finishedWork.type), getStackByFiberInDevAndProd(finishedWork));\n        }\n      }\n\n      ref.current = instanceToUse;\n    }\n  }\n}\n\nfunction commitDetachRef(current) {\n  var currentRef = current.ref;\n\n  if (currentRef !== null) {\n    if (typeof currentRef === 'function') {\n      currentRef(null);\n    } else {\n      currentRef.current = null;\n    }\n  }\n} // User-originating errors (lifecycles and refs) should not interrupt\n// deletion, so don't let them throw. Host-originating errors should\n// interrupt deletion, so it's okay\n\n\nfunction commitUnmount(finishedRoot, current, renderPriorityLevel) {\n  onCommitUnmount(current);\n\n  switch (current.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case MemoComponent:\n    case SimpleMemoComponent:\n    case Block:\n      {\n        var updateQueue = current.updateQueue;\n\n        if (updateQueue !== null) {\n          var lastEffect = updateQueue.lastEffect;\n\n          if (lastEffect !== null) {\n            var firstEffect = lastEffect.next;\n\n            {\n              // When the owner fiber is deleted, the destroy function of a passive\n              // effect hook is called during the synchronous commit phase. This is\n              // a concession to implementation complexity. Calling it in the\n              // passive effect phase (like they usually are, when dependencies\n              // change during an update) would require either traversing the\n              // children of the deleted fiber again, or including unmount effects\n              // as part of the fiber effect list.\n              //\n              // Because this is during the sync commit phase, we need to change\n              // the priority.\n              //\n              // TODO: Reconsider this implementation trade off.\n              var priorityLevel = renderPriorityLevel > NormalPriority ? NormalPriority : renderPriorityLevel;\n              runWithPriority$1(priorityLevel, function () {\n                var effect = firstEffect;\n\n                do {\n                  var _destroy = effect.destroy;\n\n                  if (_destroy !== undefined) {\n                    safelyCallDestroy(current, _destroy);\n                  }\n\n                  effect = effect.next;\n                } while (effect !== firstEffect);\n              });\n            }\n          }\n        }\n\n        return;\n      }\n\n    case ClassComponent:\n      {\n        safelyDetachRef(current);\n        var instance = current.stateNode;\n\n        if (typeof instance.componentWillUnmount === 'function') {\n          safelyCallComponentWillUnmount(current, instance);\n        }\n\n        return;\n      }\n\n    case HostComponent:\n      {\n\n        safelyDetachRef(current);\n        return;\n      }\n\n    case HostPortal:\n      {\n        // TODO: this is recursive.\n        // We are also not using this parent because\n        // the portal will get pushed immediately.\n        {\n          unmountHostComponents(finishedRoot, current, renderPriorityLevel);\n        }\n\n        return;\n      }\n\n    case FundamentalComponent:\n      {\n\n        return;\n      }\n\n    case DehydratedFragment:\n      {\n\n        return;\n      }\n\n    case ScopeComponent:\n      {\n\n        return;\n      }\n  }\n}\n\nfunction commitNestedUnmounts(finishedRoot, root, renderPriorityLevel) {\n  // While we're inside a removed host node we don't want to call\n  // removeChild on the inner nodes because they're removed by the top\n  // call anyway. We also want to call componentWillUnmount on all\n  // composites before this host node is removed from the tree. Therefore\n  // we do an inner loop while we're still inside the host node.\n  var node = root;\n\n  while (true) {\n    commitUnmount(finishedRoot, node, renderPriorityLevel); // Visit children because they may contain more composite or host nodes.\n    // Skip portals because commitUnmount() currently visits them recursively.\n\n    if (node.child !== null && ( // If we use mutation we drill down into portals using commitUnmount above.\n    // If we don't use mutation we drill down into portals here instead.\n     node.tag !== HostPortal)) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n\n    if (node === root) {\n      return;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === root) {\n        return;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction detachFiber(current) {\n  var alternate = current.alternate; // Cut off the return pointers to disconnect it from the tree. Ideally, we\n  // should clear the child pointer of the parent alternate to let this\n  // get GC:ed but we don't know which for sure which parent is the current\n  // one so we'll settle for GC:ing the subtree of this child. This child\n  // itself will be GC:ed when the parent updates the next time.\n\n  current.return = null;\n  current.child = null;\n  current.memoizedState = null;\n  current.updateQueue = null;\n  current.dependencies = null;\n  current.alternate = null;\n  current.firstEffect = null;\n  current.lastEffect = null;\n  current.pendingProps = null;\n  current.memoizedProps = null;\n  current.stateNode = null;\n\n  if (alternate !== null) {\n    detachFiber(alternate);\n  }\n}\n\nfunction getHostParentFiber(fiber) {\n  var parent = fiber.return;\n\n  while (parent !== null) {\n    if (isHostParent(parent)) {\n      return parent;\n    }\n\n    parent = parent.return;\n  }\n\n  {\n    {\n      throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n}\n\nfunction isHostParent(fiber) {\n  return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n  // We're going to search forward into the tree until we find a sibling host\n  // node. Unfortunately, if multiple insertions are done in a row we have to\n  // search past them. This leads to exponential search for the next sibling.\n  // TODO: Find a more efficient way to do this.\n  var node = fiber;\n\n  siblings: while (true) {\n    // If we didn't find anything, let's try the next sibling.\n    while (node.sibling === null) {\n      if (node.return === null || isHostParent(node.return)) {\n        // If we pop out of the root or hit the parent the fiber we are the\n        // last sibling.\n        return null;\n      }\n\n      node = node.return;\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n\n    while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedFragment) {\n      // If it is not host node and, we might have a host node inside it.\n      // Try to search down until we find one.\n      if (node.effectTag & Placement) {\n        // If we don't have a child, try the siblings instead.\n        continue siblings;\n      } // If we don't have a child, try the siblings instead.\n      // We also skip portals because they are not part of this host tree.\n\n\n      if (node.child === null || node.tag === HostPortal) {\n        continue siblings;\n      } else {\n        node.child.return = node;\n        node = node.child;\n      }\n    } // Check if this host node is stable or about to be placed.\n\n\n    if (!(node.effectTag & Placement)) {\n      // Found it!\n      return node.stateNode;\n    }\n  }\n}\n\nfunction commitPlacement(finishedWork) {\n\n\n  var parentFiber = getHostParentFiber(finishedWork); // Note: these two variables *must* always be updated together.\n\n  var parent;\n  var isContainer;\n  var parentStateNode = parentFiber.stateNode;\n\n  switch (parentFiber.tag) {\n    case HostComponent:\n      parent = parentStateNode;\n      isContainer = false;\n      break;\n\n    case HostRoot:\n      parent = parentStateNode.containerInfo;\n      isContainer = true;\n      break;\n\n    case HostPortal:\n      parent = parentStateNode.containerInfo;\n      isContainer = true;\n      break;\n\n    case FundamentalComponent:\n\n    // eslint-disable-next-line-no-fallthrough\n\n    default:\n      {\n        {\n          throw Error( \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\" );\n        }\n      }\n\n  }\n\n  if (parentFiber.effectTag & ContentReset) {\n    // Reset the text content of the parent before doing any insertions\n    resetTextContent(parent); // Clear ContentReset from the effect tag\n\n    parentFiber.effectTag &= ~ContentReset;\n  }\n\n  var before = getHostSibling(finishedWork); // We only have the top Fiber that was inserted but we need to recurse down its\n  // children to find all the terminal nodes.\n\n  if (isContainer) {\n    insertOrAppendPlacementNodeIntoContainer(finishedWork, before, parent);\n  } else {\n    insertOrAppendPlacementNode(finishedWork, before, parent);\n  }\n}\n\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n  var tag = node.tag;\n  var isHost = tag === HostComponent || tag === HostText;\n\n  if (isHost || enableFundamentalAPI ) {\n    var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n    if (before) {\n      insertInContainerBefore(parent, stateNode, before);\n    } else {\n      appendChildToContainer(parent, stateNode);\n    }\n  } else if (tag === HostPortal) ; else {\n    var child = node.child;\n\n    if (child !== null) {\n      insertOrAppendPlacementNodeIntoContainer(child, before, parent);\n      var sibling = child.sibling;\n\n      while (sibling !== null) {\n        insertOrAppendPlacementNodeIntoContainer(sibling, before, parent);\n        sibling = sibling.sibling;\n      }\n    }\n  }\n}\n\nfunction insertOrAppendPlacementNode(node, before, parent) {\n  var tag = node.tag;\n  var isHost = tag === HostComponent || tag === HostText;\n\n  if (isHost || enableFundamentalAPI ) {\n    var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n    if (before) {\n      insertBefore(parent, stateNode, before);\n    } else {\n      appendChild(parent, stateNode);\n    }\n  } else if (tag === HostPortal) ; else {\n    var child = node.child;\n\n    if (child !== null) {\n      insertOrAppendPlacementNode(child, before, parent);\n      var sibling = child.sibling;\n\n      while (sibling !== null) {\n        insertOrAppendPlacementNode(sibling, before, parent);\n        sibling = sibling.sibling;\n      }\n    }\n  }\n}\n\nfunction unmountHostComponents(finishedRoot, current, renderPriorityLevel) {\n  // We only have the top Fiber that was deleted but we need to recurse down its\n  // children to find all the terminal nodes.\n  var node = current; // Each iteration, currentParent is populated with node's host parent if not\n  // currentParentIsValid.\n\n  var currentParentIsValid = false; // Note: these two variables *must* always be updated together.\n\n  var currentParent;\n  var currentParentIsContainer;\n\n  while (true) {\n    if (!currentParentIsValid) {\n      var parent = node.return;\n\n      findParent: while (true) {\n        if (!(parent !== null)) {\n          {\n            throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n          }\n        }\n\n        var parentStateNode = parent.stateNode;\n\n        switch (parent.tag) {\n          case HostComponent:\n            currentParent = parentStateNode;\n            currentParentIsContainer = false;\n            break findParent;\n\n          case HostRoot:\n            currentParent = parentStateNode.containerInfo;\n            currentParentIsContainer = true;\n            break findParent;\n\n          case HostPortal:\n            currentParent = parentStateNode.containerInfo;\n            currentParentIsContainer = true;\n            break findParent;\n\n        }\n\n        parent = parent.return;\n      }\n\n      currentParentIsValid = true;\n    }\n\n    if (node.tag === HostComponent || node.tag === HostText) {\n      commitNestedUnmounts(finishedRoot, node, renderPriorityLevel); // After all the children have unmounted, it is now safe to remove the\n      // node from the tree.\n\n      if (currentParentIsContainer) {\n        removeChildFromContainer(currentParent, node.stateNode);\n      } else {\n        removeChild(currentParent, node.stateNode);\n      } // Don't visit children because we already visited them.\n\n    } else if (node.tag === HostPortal) {\n      if (node.child !== null) {\n        // When we go into a portal, it becomes the parent to remove from.\n        // We will reassign it back when we pop the portal on the way up.\n        currentParent = node.stateNode.containerInfo;\n        currentParentIsContainer = true; // Visit children because portals might contain host components.\n\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n    } else {\n      commitUnmount(finishedRoot, node, renderPriorityLevel); // Visit children because we may find more host components below.\n\n      if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n    }\n\n    if (node === current) {\n      return;\n    }\n\n    while (node.sibling === null) {\n      if (node.return === null || node.return === current) {\n        return;\n      }\n\n      node = node.return;\n\n      if (node.tag === HostPortal) {\n        // When we go out of the portal, we need to restore the parent.\n        // Since we don't keep a stack of them, we will search for it.\n        currentParentIsValid = false;\n      }\n    }\n\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction commitDeletion(finishedRoot, current, renderPriorityLevel) {\n  {\n    // Recursively delete all host nodes from the parent.\n    // Detach refs and call componentWillUnmount() on the whole subtree.\n    unmountHostComponents(finishedRoot, current, renderPriorityLevel);\n  }\n\n  detachFiber(current);\n}\n\nfunction commitWork(current, finishedWork) {\n\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case MemoComponent:\n    case SimpleMemoComponent:\n    case Block:\n      {\n        // Layout effects are destroyed during the mutation phase so that all\n        // destroy functions for all fibers are called before any create functions.\n        // This prevents sibling component effects from interfering with each other,\n        // e.g. a destroy function in one component should never override a ref set\n        // by a create function in another component during the same commit.\n        commitHookEffectListUnmount(Layout | HasEffect, finishedWork);\n        return;\n      }\n\n    case ClassComponent:\n      {\n        return;\n      }\n\n    case HostComponent:\n      {\n        var instance = finishedWork.stateNode;\n\n        if (instance != null) {\n          // Commit the work prepared earlier.\n          var newProps = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n          // as the newProps. The updatePayload will contain the real change in\n          // this case.\n\n          var oldProps = current !== null ? current.memoizedProps : newProps;\n          var type = finishedWork.type; // TODO: Type the updateQueue to be specific to host components.\n\n          var updatePayload = finishedWork.updateQueue;\n          finishedWork.updateQueue = null;\n\n          if (updatePayload !== null) {\n            commitUpdate(instance, updatePayload, type, oldProps, newProps);\n          }\n        }\n\n        return;\n      }\n\n    case HostText:\n      {\n        if (!(finishedWork.stateNode !== null)) {\n          {\n            throw Error( \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\" );\n          }\n        }\n\n        var textInstance = finishedWork.stateNode;\n        var newText = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n        // as the newProps. The updatePayload will contain the real change in\n        // this case.\n\n        var oldText = current !== null ? current.memoizedProps : newText;\n        commitTextUpdate(textInstance, oldText, newText);\n        return;\n      }\n\n    case HostRoot:\n      {\n        {\n          var _root = finishedWork.stateNode;\n\n          if (_root.hydrate) {\n            // We've just hydrated. No need to hydrate again.\n            _root.hydrate = false;\n            commitHydratedContainer(_root.containerInfo);\n          }\n        }\n\n        return;\n      }\n\n    case Profiler:\n      {\n        return;\n      }\n\n    case SuspenseComponent:\n      {\n        commitSuspenseComponent(finishedWork);\n        attachSuspenseRetryListeners(finishedWork);\n        return;\n      }\n\n    case SuspenseListComponent:\n      {\n        attachSuspenseRetryListeners(finishedWork);\n        return;\n      }\n\n    case IncompleteClassComponent:\n      {\n        return;\n      }\n  }\n\n  {\n    {\n      throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  }\n}\n\nfunction commitSuspenseComponent(finishedWork) {\n  var newState = finishedWork.memoizedState;\n  var newDidTimeout;\n  var primaryChildParent = finishedWork;\n\n  if (newState === null) {\n    newDidTimeout = false;\n  } else {\n    newDidTimeout = true;\n    primaryChildParent = finishedWork.child;\n    markCommitTimeOfFallback();\n  }\n\n  if ( primaryChildParent !== null) {\n    hideOrUnhideAllChildren(primaryChildParent, newDidTimeout);\n  }\n}\n\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n\n  var newState = finishedWork.memoizedState;\n\n  if (newState === null) {\n    var current = finishedWork.alternate;\n\n    if (current !== null) {\n      var prevState = current.memoizedState;\n\n      if (prevState !== null) {\n        var suspenseInstance = prevState.dehydrated;\n\n        if (suspenseInstance !== null) {\n          commitHydratedSuspenseInstance(suspenseInstance);\n        }\n      }\n    }\n  }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n  // If this boundary just timed out, then it will have a set of thenables.\n  // For each thenable, attach a listener so that when it resolves, React\n  // attempts to re-render the boundary in the primary (pre-timeout) state.\n  var thenables = finishedWork.updateQueue;\n\n  if (thenables !== null) {\n    finishedWork.updateQueue = null;\n    var retryCache = finishedWork.stateNode;\n\n    if (retryCache === null) {\n      retryCache = finishedWork.stateNode = new PossiblyWeakSet();\n    }\n\n    thenables.forEach(function (thenable) {\n      // Memoize using the boundary fiber to prevent redundant listeners.\n      var retry = resolveRetryThenable.bind(null, finishedWork, thenable);\n\n      if (!retryCache.has(thenable)) {\n        {\n          if (thenable.__reactDoNotTraceInteractions !== true) {\n            retry = tracing.unstable_wrap(retry);\n          }\n        }\n\n        retryCache.add(thenable);\n        thenable.then(retry, retry);\n      }\n    });\n  }\n}\n\nfunction commitResetTextContent(current) {\n\n  resetTextContent(current.stateNode);\n}\n\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, expirationTime) {\n  var update = createUpdate(expirationTime, null); // Unmount the root by rendering null.\n\n  update.tag = CaptureUpdate; // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n\n  update.payload = {\n    element: null\n  };\n  var error = errorInfo.value;\n\n  update.callback = function () {\n    onUncaughtError(error);\n    logError(fiber, errorInfo);\n  };\n\n  return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, expirationTime) {\n  var update = createUpdate(expirationTime, null);\n  update.tag = CaptureUpdate;\n  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n\n  if (typeof getDerivedStateFromError === 'function') {\n    var error$1 = errorInfo.value;\n\n    update.payload = function () {\n      logError(fiber, errorInfo);\n      return getDerivedStateFromError(error$1);\n    };\n  }\n\n  var inst = fiber.stateNode;\n\n  if (inst !== null && typeof inst.componentDidCatch === 'function') {\n    update.callback = function callback() {\n      {\n        markFailedErrorBoundaryForHotReloading(fiber);\n      }\n\n      if (typeof getDerivedStateFromError !== 'function') {\n        // To preserve the preexisting retry behavior of error boundaries,\n        // we keep track of which ones already failed during this batch.\n        // This gets reset before we yield back to the browser.\n        // TODO: Warn in strict mode if getDerivedStateFromError is\n        // not defined.\n        markLegacyErrorBoundaryAsFailed(this); // Only log here if componentDidCatch is the only error boundary method defined\n\n        logError(fiber, errorInfo);\n      }\n\n      var error$1 = errorInfo.value;\n      var stack = errorInfo.stack;\n      this.componentDidCatch(error$1, {\n        componentStack: stack !== null ? stack : ''\n      });\n\n      {\n        if (typeof getDerivedStateFromError !== 'function') {\n          // If componentDidCatch is the only error boundary method defined,\n          // then it needs to call setState to recover from errors.\n          // If no state update is scheduled then the boundary will swallow the error.\n          if (fiber.expirationTime !== Sync) {\n            error('%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentName(fiber.type) || 'Unknown');\n          }\n        }\n      }\n    };\n  } else {\n    update.callback = function () {\n      markFailedErrorBoundaryForHotReloading(fiber);\n    };\n  }\n\n  return update;\n}\n\nfunction attachPingListener(root, renderExpirationTime, thenable) {\n  // Attach a listener to the promise to \"ping\" the root and retry. But\n  // only if one does not already exist for the current render expiration\n  // time (which acts like a \"thread ID\" here).\n  var pingCache = root.pingCache;\n  var threadIDs;\n\n  if (pingCache === null) {\n    pingCache = root.pingCache = new PossiblyWeakMap$1();\n    threadIDs = new Set();\n    pingCache.set(thenable, threadIDs);\n  } else {\n    threadIDs = pingCache.get(thenable);\n\n    if (threadIDs === undefined) {\n      threadIDs = new Set();\n      pingCache.set(thenable, threadIDs);\n    }\n  }\n\n  if (!threadIDs.has(renderExpirationTime)) {\n    // Memoize using the thread ID to prevent redundant listeners.\n    threadIDs.add(renderExpirationTime);\n    var ping = pingSuspendedRoot.bind(null, root, thenable, renderExpirationTime);\n    thenable.then(ping, ping);\n  }\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, renderExpirationTime) {\n  // The source fiber did not complete.\n  sourceFiber.effectTag |= Incomplete; // Its effect list is no longer valid.\n\n  sourceFiber.firstEffect = sourceFiber.lastEffect = null;\n\n  if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n    // This is a thenable.\n    var thenable = value;\n\n    if ((sourceFiber.mode & BlockingMode) === NoMode) {\n      // Reset the memoizedState to what it was before we attempted\n      // to render it.\n      var currentSource = sourceFiber.alternate;\n\n      if (currentSource) {\n        sourceFiber.updateQueue = currentSource.updateQueue;\n        sourceFiber.memoizedState = currentSource.memoizedState;\n        sourceFiber.expirationTime = currentSource.expirationTime;\n      } else {\n        sourceFiber.updateQueue = null;\n        sourceFiber.memoizedState = null;\n      }\n    }\n\n    var hasInvisibleParentBoundary = hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext); // Schedule the nearest Suspense to re-render the timed out view.\n\n    var _workInProgress = returnFiber;\n\n    do {\n      if (_workInProgress.tag === SuspenseComponent && shouldCaptureSuspense(_workInProgress, hasInvisibleParentBoundary)) {\n        // Found the nearest boundary.\n        // Stash the promise on the boundary fiber. If the boundary times out, we'll\n        // attach another listener to flip the boundary back to its normal state.\n        var thenables = _workInProgress.updateQueue;\n\n        if (thenables === null) {\n          var updateQueue = new Set();\n          updateQueue.add(thenable);\n          _workInProgress.updateQueue = updateQueue;\n        } else {\n          thenables.add(thenable);\n        } // If the boundary is outside of blocking mode, we should *not*\n        // suspend the commit. Pretend as if the suspended component rendered\n        // null and keep rendering. In the commit phase, we'll schedule a\n        // subsequent synchronous update to re-render the Suspense.\n        //\n        // Note: It doesn't matter whether the component that suspended was\n        // inside a blocking mode tree. If the Suspense is outside of it, we\n        // should *not* suspend the commit.\n\n\n        if ((_workInProgress.mode & BlockingMode) === NoMode) {\n          _workInProgress.effectTag |= DidCapture; // We're going to commit this fiber even though it didn't complete.\n          // But we shouldn't call any lifecycle methods or callbacks. Remove\n          // all lifecycle effect tags.\n\n          sourceFiber.effectTag &= ~(LifecycleEffectMask | Incomplete);\n\n          if (sourceFiber.tag === ClassComponent) {\n            var currentSourceFiber = sourceFiber.alternate;\n\n            if (currentSourceFiber === null) {\n              // This is a new mount. Change the tag so it's not mistaken for a\n              // completed class component. For example, we should not call\n              // componentWillUnmount if it is deleted.\n              sourceFiber.tag = IncompleteClassComponent;\n            } else {\n              // When we try rendering again, we should not reuse the current fiber,\n              // since it's known to be in an inconsistent state. Use a force update to\n              // prevent a bail out.\n              var update = createUpdate(Sync, null);\n              update.tag = ForceUpdate;\n              enqueueUpdate(sourceFiber, update);\n            }\n          } // The source fiber did not complete. Mark it with Sync priority to\n          // indicate that it still has pending work.\n\n\n          sourceFiber.expirationTime = Sync; // Exit without suspending.\n\n          return;\n        } // Confirmed that the boundary is in a concurrent mode tree. Continue\n        // with the normal suspend path.\n        //\n        // After this we'll use a set of heuristics to determine whether this\n        // render pass will run to completion or restart or \"suspend\" the commit.\n        // The actual logic for this is spread out in different places.\n        //\n        // This first principle is that if we're going to suspend when we complete\n        // a root, then we should also restart if we get an update or ping that\n        // might unsuspend it, and vice versa. The only reason to suspend is\n        // because you think you might want to restart before committing. However,\n        // it doesn't make sense to restart only while in the period we're suspended.\n        //\n        // Restarting too aggressively is also not good because it starves out any\n        // intermediate loading state. So we use heuristics to determine when.\n        // Suspense Heuristics\n        //\n        // If nothing threw a Promise or all the same fallbacks are already showing,\n        // then don't suspend/restart.\n        //\n        // If this is an initial render of a new tree of Suspense boundaries and\n        // those trigger a fallback, then don't suspend/restart. We want to ensure\n        // that we can show the initial loading state as quickly as possible.\n        //\n        // If we hit a \"Delayed\" case, such as when we'd switch from content back into\n        // a fallback, then we should always suspend/restart. SuspenseConfig applies to\n        // this case. If none is defined, JND is used instead.\n        //\n        // If we're already showing a fallback and it gets \"retried\", allowing us to show\n        // another level, but there's still an inner boundary that would show a fallback,\n        // then we suspend/restart for 500ms since the last time we showed a fallback\n        // anywhere in the tree. This effectively throttles progressive loading into a\n        // consistent train of commits. This also gives us an opportunity to restart to\n        // get to the completed state slightly earlier.\n        //\n        // If there's ambiguity due to batching it's resolved in preference of:\n        // 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n        //\n        // We want to ensure that a \"busy\" state doesn't get force committed. We want to\n        // ensure that new initial loading states can commit as soon as possible.\n\n\n        attachPingListener(root, renderExpirationTime, thenable);\n        _workInProgress.effectTag |= ShouldCapture;\n        _workInProgress.expirationTime = renderExpirationTime;\n        return;\n      } // This boundary already captured during this render. Continue to the next\n      // boundary.\n\n\n      _workInProgress = _workInProgress.return;\n    } while (_workInProgress !== null); // No boundary was found. Fallthrough to error mode.\n    // TODO: Use invariant so the message is stripped in prod?\n\n\n    value = new Error((getComponentName(sourceFiber.type) || 'A React component') + ' suspended while rendering, but no fallback UI was specified.\\n' + '\\n' + 'Add a <Suspense fallback=...> component higher in the tree to ' + 'provide a loading indicator or placeholder to display.' + getStackByFiberInDevAndProd(sourceFiber));\n  } // We didn't find a boundary that could handle this type of exception. Start\n  // over and traverse parent path again, this time treating the exception\n  // as an error.\n\n\n  renderDidError();\n  value = createCapturedValue(value, sourceFiber);\n  var workInProgress = returnFiber;\n\n  do {\n    switch (workInProgress.tag) {\n      case HostRoot:\n        {\n          var _errorInfo = value;\n          workInProgress.effectTag |= ShouldCapture;\n          workInProgress.expirationTime = renderExpirationTime;\n\n          var _update = createRootErrorUpdate(workInProgress, _errorInfo, renderExpirationTime);\n\n          enqueueCapturedUpdate(workInProgress, _update);\n          return;\n        }\n\n      case ClassComponent:\n        // Capture and retry\n        var errorInfo = value;\n        var ctor = workInProgress.type;\n        var instance = workInProgress.stateNode;\n\n        if ((workInProgress.effectTag & DidCapture) === NoEffect && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n          workInProgress.effectTag |= ShouldCapture;\n          workInProgress.expirationTime = renderExpirationTime; // Schedule the error boundary to re-render using updated state\n\n          var _update2 = createClassErrorUpdate(workInProgress, errorInfo, renderExpirationTime);\n\n          enqueueCapturedUpdate(workInProgress, _update2);\n          return;\n        }\n\n        break;\n    }\n\n    workInProgress = workInProgress.return;\n  } while (workInProgress !== null);\n}\n\nvar ceil = Math.ceil;\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n    ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n    IsSomeRendererActing = ReactSharedInternals.IsSomeRendererActing;\nvar NoContext =\n/*                    */\n0;\nvar BatchedContext =\n/*               */\n1;\nvar EventContext =\n/*                 */\n2;\nvar DiscreteEventContext =\n/*         */\n4;\nvar LegacyUnbatchedContext =\n/*       */\n8;\nvar RenderContext =\n/*                */\n16;\nvar CommitContext =\n/*                */\n32;\nvar RootIncomplete = 0;\nvar RootFatalErrored = 1;\nvar RootErrored = 2;\nvar RootSuspended = 3;\nvar RootSuspendedWithDelay = 4;\nvar RootCompleted = 5;\n// Describes where we are in the React execution stack\nvar executionContext = NoContext; // The root we're working on\n\nvar workInProgressRoot = null; // The fiber we're working on\n\nvar workInProgress = null; // The expiration time we're rendering\n\nvar renderExpirationTime$1 = NoWork; // Whether to root completed, errored, suspended, etc.\n\nvar workInProgressRootExitStatus = RootIncomplete; // A fatal error, if one is thrown\n\nvar workInProgressRootFatalError = null; // Most recent event time among processed updates during this render.\n// This is conceptually a time stamp but expressed in terms of an ExpirationTime\n// because we deal mostly with expiration times in the hot path, so this avoids\n// the conversion happening in the hot path.\n\nvar workInProgressRootLatestProcessedExpirationTime = Sync;\nvar workInProgressRootLatestSuspenseTimeout = Sync;\nvar workInProgressRootCanSuspendUsingConfig = null; // The work left over by components that were visited during this render. Only\n// includes unprocessed updates, not work in bailed out children.\n\nvar workInProgressRootNextUnprocessedUpdateTime = NoWork; // If we're pinged while rendering we don't always restart immediately.\n// This flag determines if it might be worthwhile to restart if an opportunity\n// happens latere.\n\nvar workInProgressRootHasPendingPing = false; // The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\n\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500;\nvar nextEffect = null;\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null;\nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsRenderPriority = NoPriority;\nvar pendingPassiveEffectsExpirationTime = NoWork;\nvar rootsWithPendingDiscreteUpdates = null; // Use these to prevent an infinite loop of nested updates\n\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0;\nvar interruptedBy = null; // Marks the need to reschedule pending interactions at these expiration times\n// during the commit phase. This enables them to be traced across components\n// that spawn new work during render. E.g. hidden boundaries, suspended SSR\n// hydration or SuspenseList.\n\nvar spawnedWorkDuringRender = null; // Expiration times are computed by adding to the current time (the start\n// time). However, if two updates are scheduled within the same event, we\n// should treat their start times as simultaneous, even if the actual clock\n// time has advanced between the first and second call.\n// In other words, because expiration times determine how updates are batched,\n// we want all updates of like priority that occur within the same event to\n// receive the same expiration time. Otherwise we get tearing.\n\nvar currentEventTime = NoWork;\nfunction requestCurrentTimeForUpdate() {\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    // We're inside React, so it's fine to read the actual time.\n    return msToExpirationTime(now());\n  } // We're not inside React, so we may be in the middle of a browser event.\n\n\n  if (currentEventTime !== NoWork) {\n    // Use the same start time for all updates until we enter React again.\n    return currentEventTime;\n  } // This is the first update since React yielded. Compute a new start time.\n\n\n  currentEventTime = msToExpirationTime(now());\n  return currentEventTime;\n}\nfunction getCurrentTime() {\n  return msToExpirationTime(now());\n}\nfunction computeExpirationForFiber(currentTime, fiber, suspenseConfig) {\n  var mode = fiber.mode;\n\n  if ((mode & BlockingMode) === NoMode) {\n    return Sync;\n  }\n\n  var priorityLevel = getCurrentPriorityLevel();\n\n  if ((mode & ConcurrentMode) === NoMode) {\n    return priorityLevel === ImmediatePriority ? Sync : Batched;\n  }\n\n  if ((executionContext & RenderContext) !== NoContext) {\n    // Use whatever time we're already rendering\n    // TODO: Should there be a way to opt out, like with `runWithPriority`?\n    return renderExpirationTime$1;\n  }\n\n  var expirationTime;\n\n  if (suspenseConfig !== null) {\n    // Compute an expiration time based on the Suspense timeout.\n    expirationTime = computeSuspenseExpiration(currentTime, suspenseConfig.timeoutMs | 0 || LOW_PRIORITY_EXPIRATION);\n  } else {\n    // Compute an expiration time based on the Scheduler priority.\n    switch (priorityLevel) {\n      case ImmediatePriority:\n        expirationTime = Sync;\n        break;\n\n      case UserBlockingPriority$1:\n        // TODO: Rename this to computeUserBlockingExpiration\n        expirationTime = computeInteractiveExpiration(currentTime);\n        break;\n\n      case NormalPriority:\n      case LowPriority:\n        // TODO: Handle LowPriority\n        // TODO: Rename this to... something better.\n        expirationTime = computeAsyncExpiration(currentTime);\n        break;\n\n      case IdlePriority:\n        expirationTime = Idle;\n        break;\n\n      default:\n        {\n          {\n            throw Error( \"Expected a valid priority level\" );\n          }\n        }\n\n    }\n  } // If we're in the middle of rendering a tree, do not update at the same\n  // expiration time that is already rendering.\n  // TODO: We shouldn't have to do this if the update is on a different root.\n  // Refactor computeExpirationForFiber + scheduleUpdate so we have access to\n  // the root when we check for this condition.\n\n\n  if (workInProgressRoot !== null && expirationTime === renderExpirationTime$1) {\n    // This is a trick to move this update into a separate batch\n    expirationTime -= 1;\n  }\n\n  return expirationTime;\n}\nfunction scheduleUpdateOnFiber(fiber, expirationTime) {\n  checkForNestedUpdates();\n  warnAboutRenderPhaseUpdatesInDEV(fiber);\n  var root = markUpdateTimeFromFiberToRoot(fiber, expirationTime);\n\n  if (root === null) {\n    warnAboutUpdateOnUnmountedFiberInDEV(fiber);\n    return;\n  }\n\n  checkForInterruption(fiber, expirationTime);\n  recordScheduleUpdate(); // TODO: computeExpirationForFiber also reads the priority. Pass the\n  // priority as an argument to that function and this one.\n\n  var priorityLevel = getCurrentPriorityLevel();\n\n  if (expirationTime === Sync) {\n    if ( // Check if we're inside unbatchedUpdates\n    (executionContext & LegacyUnbatchedContext) !== NoContext && // Check if we're not already rendering\n    (executionContext & (RenderContext | CommitContext)) === NoContext) {\n      // Register pending interactions on the root to avoid losing traced interaction data.\n      schedulePendingInteractions(root, expirationTime); // This is a legacy edge case. The initial mount of a ReactDOM.render-ed\n      // root inside of batchedUpdates should be synchronous, but layout updates\n      // should be deferred until the end of the batch.\n\n      performSyncWorkOnRoot(root);\n    } else {\n      ensureRootIsScheduled(root);\n      schedulePendingInteractions(root, expirationTime);\n\n      if (executionContext === NoContext) {\n        // Flush the synchronous work now, unless we're already working or inside\n        // a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n        // scheduleCallbackForFiber to preserve the ability to schedule a callback\n        // without immediately flushing it. We only do this for user-initiated\n        // updates, to preserve historical behavior of legacy mode.\n        flushSyncCallbackQueue();\n      }\n    }\n  } else {\n    ensureRootIsScheduled(root);\n    schedulePendingInteractions(root, expirationTime);\n  }\n\n  if ((executionContext & DiscreteEventContext) !== NoContext && ( // Only updates at user-blocking priority or greater are considered\n  // discrete, even inside a discrete event.\n  priorityLevel === UserBlockingPriority$1 || priorityLevel === ImmediatePriority)) {\n    // This is the result of a discrete event. Track the lowest priority\n    // discrete update per root so we can flush them early, if needed.\n    if (rootsWithPendingDiscreteUpdates === null) {\n      rootsWithPendingDiscreteUpdates = new Map([[root, expirationTime]]);\n    } else {\n      var lastDiscreteTime = rootsWithPendingDiscreteUpdates.get(root);\n\n      if (lastDiscreteTime === undefined || lastDiscreteTime > expirationTime) {\n        rootsWithPendingDiscreteUpdates.set(root, expirationTime);\n      }\n    }\n  }\n}\nvar scheduleWork = scheduleUpdateOnFiber; // This is split into a separate function so we can mark a fiber with pending\n// work without treating it as a typical update that originates from an event;\n// e.g. retrying a Suspense boundary isn't an update, but it does schedule work\n// on a fiber.\n\nfunction markUpdateTimeFromFiberToRoot(fiber, expirationTime) {\n  // Update the source fiber's expiration time\n  if (fiber.expirationTime < expirationTime) {\n    fiber.expirationTime = expirationTime;\n  }\n\n  var alternate = fiber.alternate;\n\n  if (alternate !== null && alternate.expirationTime < expirationTime) {\n    alternate.expirationTime = expirationTime;\n  } // Walk the parent path to the root and update the child expiration time.\n\n\n  var node = fiber.return;\n  var root = null;\n\n  if (node === null && fiber.tag === HostRoot) {\n    root = fiber.stateNode;\n  } else {\n    while (node !== null) {\n      alternate = node.alternate;\n\n      if (node.childExpirationTime < expirationTime) {\n        node.childExpirationTime = expirationTime;\n\n        if (alternate !== null && alternate.childExpirationTime < expirationTime) {\n          alternate.childExpirationTime = expirationTime;\n        }\n      } else if (alternate !== null && alternate.childExpirationTime < expirationTime) {\n        alternate.childExpirationTime = expirationTime;\n      }\n\n      if (node.return === null && node.tag === HostRoot) {\n        root = node.stateNode;\n        break;\n      }\n\n      node = node.return;\n    }\n  }\n\n  if (root !== null) {\n    if (workInProgressRoot === root) {\n      // Received an update to a tree that's in the middle of rendering. Mark\n      // that's unprocessed work on this root.\n      markUnprocessedUpdateTime(expirationTime);\n\n      if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n        // The root already suspended with a delay, which means this render\n        // definitely won't finish. Since we have a new update, let's mark it as\n        // suspended now, right before marking the incoming update. This has the\n        // effect of interrupting the current render and switching to the update.\n        // TODO: This happens to work when receiving an update during the render\n        // phase, because of the trick inside computeExpirationForFiber to\n        // subtract 1 from `renderExpirationTime` to move it into a\n        // separate bucket. But we should probably model it with an exception,\n        // using the same mechanism we use to force hydration of a subtree.\n        // TODO: This does not account for low pri updates that were already\n        // scheduled before the root started rendering. Need to track the next\n        // pending expiration time (perhaps by backtracking the return path) and\n        // then trigger a restart in the `renderDidSuspendDelayIfPossible` path.\n        markRootSuspendedAtTime(root, renderExpirationTime$1);\n      }\n    } // Mark that the root has a pending update.\n\n\n    markRootUpdatedAtTime(root, expirationTime);\n  }\n\n  return root;\n}\n\nfunction getNextRootExpirationTimeToWorkOn(root) {\n  // Determines the next expiration time that the root should render, taking\n  // into account levels that may be suspended, or levels that may have\n  // received a ping.\n  var lastExpiredTime = root.lastExpiredTime;\n\n  if (lastExpiredTime !== NoWork) {\n    return lastExpiredTime;\n  } // \"Pending\" refers to any update that hasn't committed yet, including if it\n  // suspended. The \"suspended\" range is therefore a subset.\n\n\n  var firstPendingTime = root.firstPendingTime;\n\n  if (!isRootSuspendedAtTime(root, firstPendingTime)) {\n    // The highest priority pending time is not suspended. Let's work on that.\n    return firstPendingTime;\n  } // If the first pending time is suspended, check if there's a lower priority\n  // pending level that we know about. Or check if we received a ping. Work\n  // on whichever is higher priority.\n\n\n  var lastPingedTime = root.lastPingedTime;\n  var nextKnownPendingLevel = root.nextKnownPendingLevel;\n  var nextLevel = lastPingedTime > nextKnownPendingLevel ? lastPingedTime : nextKnownPendingLevel;\n\n  if ( nextLevel <= Idle && firstPendingTime !== nextLevel) {\n    // Don't work on Idle/Never priority unless everything else is committed.\n    return NoWork;\n  }\n\n  return nextLevel;\n} // Use this function to schedule a task for a root. There's only one task per\n// root; if a task was already scheduled, we'll check to make sure the\n// expiration time of the existing task is the same as the expiration time of\n// the next level that the root has work on. This function is called on every\n// update, and right before exiting a task.\n\n\nfunction ensureRootIsScheduled(root) {\n  var lastExpiredTime = root.lastExpiredTime;\n\n  if (lastExpiredTime !== NoWork) {\n    // Special case: Expired work should flush synchronously.\n    root.callbackExpirationTime = Sync;\n    root.callbackPriority = ImmediatePriority;\n    root.callbackNode = scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n    return;\n  }\n\n  var expirationTime = getNextRootExpirationTimeToWorkOn(root);\n  var existingCallbackNode = root.callbackNode;\n\n  if (expirationTime === NoWork) {\n    // There's nothing to work on.\n    if (existingCallbackNode !== null) {\n      root.callbackNode = null;\n      root.callbackExpirationTime = NoWork;\n      root.callbackPriority = NoPriority;\n    }\n\n    return;\n  } // TODO: If this is an update, we already read the current time. Pass the\n  // time as an argument.\n\n\n  var currentTime = requestCurrentTimeForUpdate();\n  var priorityLevel = inferPriorityFromExpirationTime(currentTime, expirationTime); // If there's an existing render task, confirm it has the correct priority and\n  // expiration time. Otherwise, we'll cancel it and schedule a new one.\n\n  if (existingCallbackNode !== null) {\n    var existingCallbackPriority = root.callbackPriority;\n    var existingCallbackExpirationTime = root.callbackExpirationTime;\n\n    if ( // Callback must have the exact same expiration time.\n    existingCallbackExpirationTime === expirationTime && // Callback must have greater or equal priority.\n    existingCallbackPriority >= priorityLevel) {\n      // Existing callback is sufficient.\n      return;\n    } // Need to schedule a new task.\n    // TODO: Instead of scheduling a new task, we should be able to change the\n    // priority of the existing one.\n\n\n    cancelCallback(existingCallbackNode);\n  }\n\n  root.callbackExpirationTime = expirationTime;\n  root.callbackPriority = priorityLevel;\n  var callbackNode;\n\n  if (expirationTime === Sync) {\n    // Sync React callbacks are scheduled on a special internal queue\n    callbackNode = scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n  } else {\n    callbackNode = scheduleCallback(priorityLevel, performConcurrentWorkOnRoot.bind(null, root), // Compute a task timeout based on the expiration time. This also affects\n    // ordering because tasks are processed in timeout order.\n    {\n      timeout: expirationTimeToMs(expirationTime) - now()\n    });\n  }\n\n  root.callbackNode = callbackNode;\n} // This is the entry point for every concurrent task, i.e. anything that\n// goes through Scheduler.\n\n\nfunction performConcurrentWorkOnRoot(root, didTimeout) {\n  // Since we know we're in a React event, we can clear the current\n  // event time. The next update will compute a new event time.\n  currentEventTime = NoWork;\n\n  if (didTimeout) {\n    // The render task took too long to complete. Mark the current time as\n    // expired to synchronously render all expired work in a single batch.\n    var currentTime = requestCurrentTimeForUpdate();\n    markRootExpiredAtTime(root, currentTime); // This will schedule a synchronous callback.\n\n    ensureRootIsScheduled(root);\n    return null;\n  } // Determine the next expiration time to work on, using the fields stored\n  // on the root.\n\n\n  var expirationTime = getNextRootExpirationTimeToWorkOn(root);\n\n  if (expirationTime !== NoWork) {\n    var originalCallbackNode = root.callbackNode;\n\n    if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n      {\n        throw Error( \"Should not already be working.\" );\n      }\n    }\n\n    flushPassiveEffects(); // If the root or expiration time have changed, throw out the existing stack\n    // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n    if (root !== workInProgressRoot || expirationTime !== renderExpirationTime$1) {\n      prepareFreshStack(root, expirationTime);\n      startWorkOnPendingInteractions(root, expirationTime);\n    } // If we have a work-in-progress fiber, it means there's still work to do\n    // in this root.\n\n\n    if (workInProgress !== null) {\n      var prevExecutionContext = executionContext;\n      executionContext |= RenderContext;\n      var prevDispatcher = pushDispatcher();\n      var prevInteractions = pushInteractions(root);\n      startWorkLoopTimer(workInProgress);\n\n      do {\n        try {\n          workLoopConcurrent();\n          break;\n        } catch (thrownValue) {\n          handleError(root, thrownValue);\n        }\n      } while (true);\n\n      resetContextDependencies();\n      executionContext = prevExecutionContext;\n      popDispatcher(prevDispatcher);\n\n      {\n        popInteractions(prevInteractions);\n      }\n\n      if (workInProgressRootExitStatus === RootFatalErrored) {\n        var fatalError = workInProgressRootFatalError;\n        stopInterruptedWorkLoopTimer();\n        prepareFreshStack(root, expirationTime);\n        markRootSuspendedAtTime(root, expirationTime);\n        ensureRootIsScheduled(root);\n        throw fatalError;\n      }\n\n      if (workInProgress !== null) {\n        // There's still work left over. Exit without committing.\n        stopInterruptedWorkLoopTimer();\n      } else {\n        // We now have a consistent tree. The next step is either to commit it,\n        // or, if something suspended, wait to commit it after a timeout.\n        stopFinishedWorkLoopTimer();\n        var finishedWork = root.finishedWork = root.current.alternate;\n        root.finishedExpirationTime = expirationTime;\n        finishConcurrentRender(root, finishedWork, workInProgressRootExitStatus, expirationTime);\n      }\n\n      ensureRootIsScheduled(root);\n\n      if (root.callbackNode === originalCallbackNode) {\n        // The task node scheduled for this root is the same one that's\n        // currently executed. Need to return a continuation.\n        return performConcurrentWorkOnRoot.bind(null, root);\n      }\n    }\n  }\n\n  return null;\n}\n\nfunction finishConcurrentRender(root, finishedWork, exitStatus, expirationTime) {\n  // Set this to null to indicate there's no in-progress render.\n  workInProgressRoot = null;\n\n  switch (exitStatus) {\n    case RootIncomplete:\n    case RootFatalErrored:\n      {\n        {\n          {\n            throw Error( \"Root did not complete. This is a bug in React.\" );\n          }\n        }\n      }\n    // Flow knows about invariant, so it complains if I add a break\n    // statement, but eslint doesn't know about invariant, so it complains\n    // if I do. eslint-disable-next-line no-fallthrough\n\n    case RootErrored:\n      {\n        // If this was an async render, the error may have happened due to\n        // a mutation in a concurrent event. Try rendering one more time,\n        // synchronously, to see if the error goes away. If there are\n        // lower priority updates, let's include those, too, in case they\n        // fix the inconsistency. Render at Idle to include all updates.\n        // If it was Idle or Never or some not-yet-invented time, render\n        // at that time.\n        markRootExpiredAtTime(root, expirationTime > Idle ? Idle : expirationTime); // We assume that this second render pass will be synchronous\n        // and therefore not hit this path again.\n\n        break;\n      }\n\n    case RootSuspended:\n      {\n        markRootSuspendedAtTime(root, expirationTime);\n        var lastSuspendedTime = root.lastSuspendedTime;\n\n        if (expirationTime === lastSuspendedTime) {\n          root.nextKnownPendingLevel = getRemainingExpirationTime(finishedWork);\n        } // We have an acceptable loading state. We need to figure out if we\n        // should immediately commit it or wait a bit.\n        // If we have processed new updates during this render, we may now\n        // have a new loading state ready. We want to ensure that we commit\n        // that as soon as possible.\n\n\n        var hasNotProcessedNewUpdates = workInProgressRootLatestProcessedExpirationTime === Sync;\n\n        if (hasNotProcessedNewUpdates && // do not delay if we're inside an act() scope\n        !( IsThisRendererActing.current)) {\n          // If we have not processed any new updates during this pass, then\n          // this is either a retry of an existing fallback state or a\n          // hidden tree. Hidden trees shouldn't be batched with other work\n          // and after that's fixed it can only be a retry. We're going to\n          // throttle committing retries so that we don't show too many\n          // loading states too quickly.\n          var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); // Don't bother with a very short suspense time.\n\n          if (msUntilTimeout > 10) {\n            if (workInProgressRootHasPendingPing) {\n              var lastPingedTime = root.lastPingedTime;\n\n              if (lastPingedTime === NoWork || lastPingedTime >= expirationTime) {\n                // This render was pinged but we didn't get to restart\n                // earlier so try restarting now instead.\n                root.lastPingedTime = expirationTime;\n                prepareFreshStack(root, expirationTime);\n                break;\n              }\n            }\n\n            var nextTime = getNextRootExpirationTimeToWorkOn(root);\n\n            if (nextTime !== NoWork && nextTime !== expirationTime) {\n              // There's additional work on this root.\n              break;\n            }\n\n            if (lastSuspendedTime !== NoWork && lastSuspendedTime !== expirationTime) {\n              // We should prefer to render the fallback of at the last\n              // suspended level. Ping the last suspended level to try\n              // rendering it again.\n              root.lastPingedTime = lastSuspendedTime;\n              break;\n            } // The render is suspended, it hasn't timed out, and there's no\n            // lower priority work to do. Instead of committing the fallback\n            // immediately, wait for more data to arrive.\n\n\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), msUntilTimeout);\n            break;\n          }\n        } // The work expired. Commit immediately.\n\n\n        commitRoot(root);\n        break;\n      }\n\n    case RootSuspendedWithDelay:\n      {\n        markRootSuspendedAtTime(root, expirationTime);\n        var _lastSuspendedTime = root.lastSuspendedTime;\n\n        if (expirationTime === _lastSuspendedTime) {\n          root.nextKnownPendingLevel = getRemainingExpirationTime(finishedWork);\n        }\n\n        if ( // do not delay if we're inside an act() scope\n        !( IsThisRendererActing.current)) {\n          // We're suspended in a state that should be avoided. We'll try to\n          // avoid committing it for as long as the timeouts let us.\n          if (workInProgressRootHasPendingPing) {\n            var _lastPingedTime = root.lastPingedTime;\n\n            if (_lastPingedTime === NoWork || _lastPingedTime >= expirationTime) {\n              // This render was pinged but we didn't get to restart earlier\n              // so try restarting now instead.\n              root.lastPingedTime = expirationTime;\n              prepareFreshStack(root, expirationTime);\n              break;\n            }\n          }\n\n          var _nextTime = getNextRootExpirationTimeToWorkOn(root);\n\n          if (_nextTime !== NoWork && _nextTime !== expirationTime) {\n            // There's additional work on this root.\n            break;\n          }\n\n          if (_lastSuspendedTime !== NoWork && _lastSuspendedTime !== expirationTime) {\n            // We should prefer to render the fallback of at the last\n            // suspended level. Ping the last suspended level to try\n            // rendering it again.\n            root.lastPingedTime = _lastSuspendedTime;\n            break;\n          }\n\n          var _msUntilTimeout;\n\n          if (workInProgressRootLatestSuspenseTimeout !== Sync) {\n            // We have processed a suspense config whose expiration time we\n            // can use as the timeout.\n            _msUntilTimeout = expirationTimeToMs(workInProgressRootLatestSuspenseTimeout) - now();\n          } else if (workInProgressRootLatestProcessedExpirationTime === Sync) {\n            // This should never normally happen because only new updates\n            // cause delayed states, so we should have processed something.\n            // However, this could also happen in an offscreen tree.\n            _msUntilTimeout = 0;\n          } else {\n            // If we don't have a suspense config, we're going to use a\n            // heuristic to determine how long we can suspend.\n            var eventTimeMs = inferTimeFromExpirationTime(workInProgressRootLatestProcessedExpirationTime);\n            var currentTimeMs = now();\n            var timeUntilExpirationMs = expirationTimeToMs(expirationTime) - currentTimeMs;\n            var timeElapsed = currentTimeMs - eventTimeMs;\n\n            if (timeElapsed < 0) {\n              // We get this wrong some time since we estimate the time.\n              timeElapsed = 0;\n            }\n\n            _msUntilTimeout = jnd(timeElapsed) - timeElapsed; // Clamp the timeout to the expiration time. TODO: Once the\n            // event time is exact instead of inferred from expiration time\n            // we don't need this.\n\n            if (timeUntilExpirationMs < _msUntilTimeout) {\n              _msUntilTimeout = timeUntilExpirationMs;\n            }\n          } // Don't bother with a very short suspense time.\n\n\n          if (_msUntilTimeout > 10) {\n            // The render is suspended, it hasn't timed out, and there's no\n            // lower priority work to do. Instead of committing the fallback\n            // immediately, wait for more data to arrive.\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout);\n            break;\n          }\n        } // The work expired. Commit immediately.\n\n\n        commitRoot(root);\n        break;\n      }\n\n    case RootCompleted:\n      {\n        // The work completed. Ready to commit.\n        if ( // do not delay if we're inside an act() scope\n        !( IsThisRendererActing.current) && workInProgressRootLatestProcessedExpirationTime !== Sync && workInProgressRootCanSuspendUsingConfig !== null) {\n          // If we have exceeded the minimum loading delay, which probably\n          // means we have shown a spinner already, we might have to suspend\n          // a bit longer to ensure that the spinner is shown for\n          // enough time.\n          var _msUntilTimeout2 = computeMsUntilSuspenseLoadingDelay(workInProgressRootLatestProcessedExpirationTime, expirationTime, workInProgressRootCanSuspendUsingConfig);\n\n          if (_msUntilTimeout2 > 10) {\n            markRootSuspendedAtTime(root, expirationTime);\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout2);\n            break;\n          }\n        }\n\n        commitRoot(root);\n        break;\n      }\n\n    default:\n      {\n        {\n          {\n            throw Error( \"Unknown root exit status.\" );\n          }\n        }\n      }\n  }\n} // This is the entry point for synchronous tasks that don't go\n// through Scheduler\n\n\nfunction performSyncWorkOnRoot(root) {\n  // Check if there's expired work on this root. Otherwise, render at Sync.\n  var lastExpiredTime = root.lastExpiredTime;\n  var expirationTime = lastExpiredTime !== NoWork ? lastExpiredTime : Sync;\n\n  if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n    {\n      throw Error( \"Should not already be working.\" );\n    }\n  }\n\n  flushPassiveEffects(); // If the root or expiration time have changed, throw out the existing stack\n  // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n  if (root !== workInProgressRoot || expirationTime !== renderExpirationTime$1) {\n    prepareFreshStack(root, expirationTime);\n    startWorkOnPendingInteractions(root, expirationTime);\n  } // If we have a work-in-progress fiber, it means there's still work to do\n  // in this root.\n\n\n  if (workInProgress !== null) {\n    var prevExecutionContext = executionContext;\n    executionContext |= RenderContext;\n    var prevDispatcher = pushDispatcher();\n    var prevInteractions = pushInteractions(root);\n    startWorkLoopTimer(workInProgress);\n\n    do {\n      try {\n        workLoopSync();\n        break;\n      } catch (thrownValue) {\n        handleError(root, thrownValue);\n      }\n    } while (true);\n\n    resetContextDependencies();\n    executionContext = prevExecutionContext;\n    popDispatcher(prevDispatcher);\n\n    {\n      popInteractions(prevInteractions);\n    }\n\n    if (workInProgressRootExitStatus === RootFatalErrored) {\n      var fatalError = workInProgressRootFatalError;\n      stopInterruptedWorkLoopTimer();\n      prepareFreshStack(root, expirationTime);\n      markRootSuspendedAtTime(root, expirationTime);\n      ensureRootIsScheduled(root);\n      throw fatalError;\n    }\n\n    if (workInProgress !== null) {\n      // This is a sync render, so we should have finished the whole tree.\n      {\n        {\n          throw Error( \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\" );\n        }\n      }\n    } else {\n      // We now have a consistent tree. Because this is a sync render, we\n      // will commit it even if something suspended.\n      stopFinishedWorkLoopTimer();\n      root.finishedWork = root.current.alternate;\n      root.finishedExpirationTime = expirationTime;\n      finishSyncRender(root);\n    } // Before exiting, make sure there's a callback scheduled for the next\n    // pending level.\n\n\n    ensureRootIsScheduled(root);\n  }\n\n  return null;\n}\n\nfunction finishSyncRender(root) {\n  // Set this to null to indicate there's no in-progress render.\n  workInProgressRoot = null;\n  commitRoot(root);\n}\nfunction flushDiscreteUpdates() {\n  // TODO: Should be able to flush inside batchedUpdates, but not inside `act`.\n  // However, `act` uses `batchedUpdates`, so there's no way to distinguish\n  // those two cases. Need to fix this before exposing flushDiscreteUpdates\n  // as a public API.\n  if ((executionContext & (BatchedContext | RenderContext | CommitContext)) !== NoContext) {\n    {\n      if ((executionContext & RenderContext) !== NoContext) {\n        error('unstable_flushDiscreteUpdates: Cannot flush updates when React is ' + 'already rendering.');\n      }\n    } // We're already rendering, so we can't synchronously flush pending work.\n    // This is probably a nested event dispatch triggered by a lifecycle/effect,\n    // like `el.focus()`. Exit.\n\n\n    return;\n  }\n\n  flushPendingDiscreteUpdates(); // If the discrete updates scheduled passive effects, flush them now so that\n  // they fire before the next serial event.\n\n  flushPassiveEffects();\n}\nfunction syncUpdates(fn, a, b, c) {\n  return runWithPriority$1(ImmediatePriority, fn.bind(null, a, b, c));\n}\n\nfunction flushPendingDiscreteUpdates() {\n  if (rootsWithPendingDiscreteUpdates !== null) {\n    // For each root with pending discrete updates, schedule a callback to\n    // immediately flush them.\n    var roots = rootsWithPendingDiscreteUpdates;\n    rootsWithPendingDiscreteUpdates = null;\n    roots.forEach(function (expirationTime, root) {\n      markRootExpiredAtTime(root, expirationTime);\n      ensureRootIsScheduled(root);\n    }); // Now flush the immediate queue.\n\n    flushSyncCallbackQueue();\n  }\n}\n\nfunction batchedUpdates$1(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext;\n\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\nfunction batchedEventUpdates$1(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext |= EventContext;\n\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext;\n\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\nfunction discreteUpdates$1(fn, a, b, c, d) {\n  var prevExecutionContext = executionContext;\n  executionContext |= DiscreteEventContext;\n\n  try {\n    // Should this\n    return runWithPriority$1(UserBlockingPriority$1, fn.bind(null, a, b, c, d));\n  } finally {\n    executionContext = prevExecutionContext;\n\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\nfunction unbatchedUpdates(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext &= ~BatchedContext;\n  executionContext |= LegacyUnbatchedContext;\n\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext;\n\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\nfunction flushSync(fn, a) {\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    {\n      {\n        throw Error( \"flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.\" );\n      }\n    }\n  }\n\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n\n  try {\n    return runWithPriority$1(ImmediatePriority, fn.bind(null, a));\n  } finally {\n    executionContext = prevExecutionContext; // Flush the immediate callbacks that were scheduled during this batch.\n    // Note that this will happen even if batchedUpdates is higher up\n    // the stack.\n\n    flushSyncCallbackQueue();\n  }\n}\n\nfunction prepareFreshStack(root, expirationTime) {\n  root.finishedWork = null;\n  root.finishedExpirationTime = NoWork;\n  var timeoutHandle = root.timeoutHandle;\n\n  if (timeoutHandle !== noTimeout) {\n    // The root previous suspended and scheduled a timeout to commit a fallback\n    // state. Now that we have additional work, cancel the timeout.\n    root.timeoutHandle = noTimeout; // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n\n    cancelTimeout(timeoutHandle);\n  }\n\n  if (workInProgress !== null) {\n    var interruptedWork = workInProgress.return;\n\n    while (interruptedWork !== null) {\n      unwindInterruptedWork(interruptedWork);\n      interruptedWork = interruptedWork.return;\n    }\n  }\n\n  workInProgressRoot = root;\n  workInProgress = createWorkInProgress(root.current, null);\n  renderExpirationTime$1 = expirationTime;\n  workInProgressRootExitStatus = RootIncomplete;\n  workInProgressRootFatalError = null;\n  workInProgressRootLatestProcessedExpirationTime = Sync;\n  workInProgressRootLatestSuspenseTimeout = Sync;\n  workInProgressRootCanSuspendUsingConfig = null;\n  workInProgressRootNextUnprocessedUpdateTime = NoWork;\n  workInProgressRootHasPendingPing = false;\n\n  {\n    spawnedWorkDuringRender = null;\n  }\n\n  {\n    ReactStrictModeWarnings.discardPendingWarnings();\n  }\n}\n\nfunction handleError(root, thrownValue) {\n  do {\n    try {\n      // Reset module-level state that was set during the render phase.\n      resetContextDependencies();\n      resetHooksAfterThrow();\n      resetCurrentFiber();\n\n      if (workInProgress === null || workInProgress.return === null) {\n        // Expected to be working on a non-root fiber. This is a fatal error\n        // because there's no ancestor that can handle it; the root is\n        // supposed to capture all errors that weren't caught by an error\n        // boundary.\n        workInProgressRootExitStatus = RootFatalErrored;\n        workInProgressRootFatalError = thrownValue; // Set `workInProgress` to null. This represents advancing to the next\n        // sibling, or the parent if there are no siblings. But since the root\n        // has no siblings nor a parent, we set it to null. Usually this is\n        // handled by `completeUnitOfWork` or `unwindWork`, but since we're\n        // interntionally not calling those, we need set it here.\n        // TODO: Consider calling `unwindWork` to pop the contexts.\n\n        workInProgress = null;\n        return null;\n      }\n\n      if (enableProfilerTimer && workInProgress.mode & ProfileMode) {\n        // Record the time spent rendering before an error was thrown. This\n        // avoids inaccurate Profiler durations in the case of a\n        // suspended render.\n        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, true);\n      }\n\n      throwException(root, workInProgress.return, workInProgress, thrownValue, renderExpirationTime$1);\n      workInProgress = completeUnitOfWork(workInProgress);\n    } catch (yetAnotherThrownValue) {\n      // Something in the return path also threw.\n      thrownValue = yetAnotherThrownValue;\n      continue;\n    } // Return to the normal work loop.\n\n\n    return;\n  } while (true);\n}\n\nfunction pushDispatcher(root) {\n  var prevDispatcher = ReactCurrentDispatcher$1.current;\n  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n  if (prevDispatcher === null) {\n    // The React isomorphic package does not include a default dispatcher.\n    // Instead the first renderer will lazily attach one, in order to give\n    // nicer error messages.\n    return ContextOnlyDispatcher;\n  } else {\n    return prevDispatcher;\n  }\n}\n\nfunction popDispatcher(prevDispatcher) {\n  ReactCurrentDispatcher$1.current = prevDispatcher;\n}\n\nfunction pushInteractions(root) {\n  {\n    var prevInteractions = tracing.__interactionsRef.current;\n    tracing.__interactionsRef.current = root.memoizedInteractions;\n    return prevInteractions;\n  }\n}\n\nfunction popInteractions(prevInteractions) {\n  {\n    tracing.__interactionsRef.current = prevInteractions;\n  }\n}\n\nfunction markCommitTimeOfFallback() {\n  globalMostRecentFallbackTime = now();\n}\nfunction markRenderEventTimeAndConfig(expirationTime, suspenseConfig) {\n  if (expirationTime < workInProgressRootLatestProcessedExpirationTime && expirationTime > Idle) {\n    workInProgressRootLatestProcessedExpirationTime = expirationTime;\n  }\n\n  if (suspenseConfig !== null) {\n    if (expirationTime < workInProgressRootLatestSuspenseTimeout && expirationTime > Idle) {\n      workInProgressRootLatestSuspenseTimeout = expirationTime; // Most of the time we only have one config and getting wrong is not bad.\n\n      workInProgressRootCanSuspendUsingConfig = suspenseConfig;\n    }\n  }\n}\nfunction markUnprocessedUpdateTime(expirationTime) {\n  if (expirationTime > workInProgressRootNextUnprocessedUpdateTime) {\n    workInProgressRootNextUnprocessedUpdateTime = expirationTime;\n  }\n}\nfunction renderDidSuspend() {\n  if (workInProgressRootExitStatus === RootIncomplete) {\n    workInProgressRootExitStatus = RootSuspended;\n  }\n}\nfunction renderDidSuspendDelayIfPossible() {\n  if (workInProgressRootExitStatus === RootIncomplete || workInProgressRootExitStatus === RootSuspended) {\n    workInProgressRootExitStatus = RootSuspendedWithDelay;\n  } // Check if there's a lower priority update somewhere else in the tree.\n\n\n  if (workInProgressRootNextUnprocessedUpdateTime !== NoWork && workInProgressRoot !== null) {\n    // Mark the current render as suspended, and then mark that there's a\n    // pending update.\n    // TODO: This should immediately interrupt the current render, instead\n    // of waiting until the next time we yield.\n    markRootSuspendedAtTime(workInProgressRoot, renderExpirationTime$1);\n    markRootUpdatedAtTime(workInProgressRoot, workInProgressRootNextUnprocessedUpdateTime);\n  }\n}\nfunction renderDidError() {\n  if (workInProgressRootExitStatus !== RootCompleted) {\n    workInProgressRootExitStatus = RootErrored;\n  }\n} // Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\n\nfunction renderHasNotSuspendedYet() {\n  // If something errored or completed, we can't really be sure,\n  // so those are false.\n  return workInProgressRootExitStatus === RootIncomplete;\n}\n\nfunction inferTimeFromExpirationTime(expirationTime) {\n  // We don't know exactly when the update was scheduled, but we can infer an\n  // approximate start time from the expiration time.\n  var earliestExpirationTimeMs = expirationTimeToMs(expirationTime);\n  return earliestExpirationTimeMs - LOW_PRIORITY_EXPIRATION;\n}\n\nfunction inferTimeFromExpirationTimeWithSuspenseConfig(expirationTime, suspenseConfig) {\n  // We don't know exactly when the update was scheduled, but we can infer an\n  // approximate start time from the expiration time by subtracting the timeout\n  // that was added to the event time.\n  var earliestExpirationTimeMs = expirationTimeToMs(expirationTime);\n  return earliestExpirationTimeMs - (suspenseConfig.timeoutMs | 0 || LOW_PRIORITY_EXPIRATION);\n} // The work loop is an extremely hot path. Tell Closure not to inline it.\n\n/** @noinline */\n\n\nfunction workLoopSync() {\n  // Already timed out, so perform work without checking if we need to yield.\n  while (workInProgress !== null) {\n    workInProgress = performUnitOfWork(workInProgress);\n  }\n}\n/** @noinline */\n\n\nfunction workLoopConcurrent() {\n  // Perform work until Scheduler asks us to yield\n  while (workInProgress !== null && !shouldYield()) {\n    workInProgress = performUnitOfWork(workInProgress);\n  }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n  // The current, flushed, state of this fiber is the alternate. Ideally\n  // nothing should rely on this, but relying on it here means that we don't\n  // need an additional field on the work in progress.\n  var current = unitOfWork.alternate;\n  startWorkTimer(unitOfWork);\n  setCurrentFiber(unitOfWork);\n  var next;\n\n  if ( (unitOfWork.mode & ProfileMode) !== NoMode) {\n    startProfilerTimer(unitOfWork);\n    next = beginWork$1(current, unitOfWork, renderExpirationTime$1);\n    stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n  } else {\n    next = beginWork$1(current, unitOfWork, renderExpirationTime$1);\n  }\n\n  resetCurrentFiber();\n  unitOfWork.memoizedProps = unitOfWork.pendingProps;\n\n  if (next === null) {\n    // If this doesn't spawn new work, complete the current work.\n    next = completeUnitOfWork(unitOfWork);\n  }\n\n  ReactCurrentOwner$2.current = null;\n  return next;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n  // Attempt to complete the current unit of work, then move to the next\n  // sibling. If there are no more siblings, return to the parent fiber.\n  workInProgress = unitOfWork;\n\n  do {\n    // The current, flushed, state of this fiber is the alternate. Ideally\n    // nothing should rely on this, but relying on it here means that we don't\n    // need an additional field on the work in progress.\n    var current = workInProgress.alternate;\n    var returnFiber = workInProgress.return; // Check if the work completed or if something threw.\n\n    if ((workInProgress.effectTag & Incomplete) === NoEffect) {\n      setCurrentFiber(workInProgress);\n      var next = void 0;\n\n      if ( (workInProgress.mode & ProfileMode) === NoMode) {\n        next = completeWork(current, workInProgress, renderExpirationTime$1);\n      } else {\n        startProfilerTimer(workInProgress);\n        next = completeWork(current, workInProgress, renderExpirationTime$1); // Update render duration assuming we didn't error.\n\n        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);\n      }\n\n      stopWorkTimer(workInProgress);\n      resetCurrentFiber();\n      resetChildExpirationTime(workInProgress);\n\n      if (next !== null) {\n        // Completing this fiber spawned new work. Work on that next.\n        return next;\n      }\n\n      if (returnFiber !== null && // Do not append effects to parents if a sibling failed to complete\n      (returnFiber.effectTag & Incomplete) === NoEffect) {\n        // Append all the effects of the subtree and this fiber onto the effect\n        // list of the parent. The completion order of the children affects the\n        // side-effect order.\n        if (returnFiber.firstEffect === null) {\n          returnFiber.firstEffect = workInProgress.firstEffect;\n        }\n\n        if (workInProgress.lastEffect !== null) {\n          if (returnFiber.lastEffect !== null) {\n            returnFiber.lastEffect.nextEffect = workInProgress.firstEffect;\n          }\n\n          returnFiber.lastEffect = workInProgress.lastEffect;\n        } // If this fiber had side-effects, we append it AFTER the children's\n        // side-effects. We can perform certain side-effects earlier if needed,\n        // by doing multiple passes over the effect list. We don't want to\n        // schedule our own side-effect on our own list because if end up\n        // reusing children we'll schedule this effect onto itself since we're\n        // at the end.\n\n\n        var effectTag = workInProgress.effectTag; // Skip both NoWork and PerformedWork tags when creating the effect\n        // list. PerformedWork effect is read by React DevTools but shouldn't be\n        // committed.\n\n        if (effectTag > PerformedWork) {\n          if (returnFiber.lastEffect !== null) {\n            returnFiber.lastEffect.nextEffect = workInProgress;\n          } else {\n            returnFiber.firstEffect = workInProgress;\n          }\n\n          returnFiber.lastEffect = workInProgress;\n        }\n      }\n    } else {\n      // This fiber did not complete because something threw. Pop values off\n      // the stack without entering the complete phase. If this is a boundary,\n      // capture values if possible.\n      var _next = unwindWork(workInProgress); // Because this fiber did not complete, don't reset its expiration time.\n\n\n      if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n        // Record the render duration for the fiber that errored.\n        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false); // Include the time spent working on failed children before continuing.\n\n        var actualDuration = workInProgress.actualDuration;\n        var child = workInProgress.child;\n\n        while (child !== null) {\n          actualDuration += child.actualDuration;\n          child = child.sibling;\n        }\n\n        workInProgress.actualDuration = actualDuration;\n      }\n\n      if (_next !== null) {\n        // If completing this work spawned new work, do that next. We'll come\n        // back here again.\n        // Since we're restarting, remove anything that is not a host effect\n        // from the effect tag.\n        // TODO: The name stopFailedWorkTimer is misleading because Suspense\n        // also captures and restarts.\n        stopFailedWorkTimer(workInProgress);\n        _next.effectTag &= HostEffectMask;\n        return _next;\n      }\n\n      stopWorkTimer(workInProgress);\n\n      if (returnFiber !== null) {\n        // Mark the parent fiber as incomplete and clear its effect list.\n        returnFiber.firstEffect = returnFiber.lastEffect = null;\n        returnFiber.effectTag |= Incomplete;\n      }\n    }\n\n    var siblingFiber = workInProgress.sibling;\n\n    if (siblingFiber !== null) {\n      // If there is more work to do in this returnFiber, do that next.\n      return siblingFiber;\n    } // Otherwise, return to the parent\n\n\n    workInProgress = returnFiber;\n  } while (workInProgress !== null); // We've reached the root.\n\n\n  if (workInProgressRootExitStatus === RootIncomplete) {\n    workInProgressRootExitStatus = RootCompleted;\n  }\n\n  return null;\n}\n\nfunction getRemainingExpirationTime(fiber) {\n  var updateExpirationTime = fiber.expirationTime;\n  var childExpirationTime = fiber.childExpirationTime;\n  return updateExpirationTime > childExpirationTime ? updateExpirationTime : childExpirationTime;\n}\n\nfunction resetChildExpirationTime(completedWork) {\n  if (renderExpirationTime$1 !== Never && completedWork.childExpirationTime === Never) {\n    // The children of this component are hidden. Don't bubble their\n    // expiration times.\n    return;\n  }\n\n  var newChildExpirationTime = NoWork; // Bubble up the earliest expiration time.\n\n  if ( (completedWork.mode & ProfileMode) !== NoMode) {\n    // In profiling mode, resetChildExpirationTime is also used to reset\n    // profiler durations.\n    var actualDuration = completedWork.actualDuration;\n    var treeBaseDuration = completedWork.selfBaseDuration; // When a fiber is cloned, its actualDuration is reset to 0. This value will\n    // only be updated if work is done on the fiber (i.e. it doesn't bailout).\n    // When work is done, it should bubble to the parent's actualDuration. If\n    // the fiber has not been cloned though, (meaning no work was done), then\n    // this value will reflect the amount of time spent working on a previous\n    // render. In that case it should not bubble. We determine whether it was\n    // cloned by comparing the child pointer.\n\n    var shouldBubbleActualDurations = completedWork.alternate === null || completedWork.child !== completedWork.alternate.child;\n    var child = completedWork.child;\n\n    while (child !== null) {\n      var childUpdateExpirationTime = child.expirationTime;\n      var childChildExpirationTime = child.childExpirationTime;\n\n      if (childUpdateExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = childUpdateExpirationTime;\n      }\n\n      if (childChildExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = childChildExpirationTime;\n      }\n\n      if (shouldBubbleActualDurations) {\n        actualDuration += child.actualDuration;\n      }\n\n      treeBaseDuration += child.treeBaseDuration;\n      child = child.sibling;\n    }\n\n    completedWork.actualDuration = actualDuration;\n    completedWork.treeBaseDuration = treeBaseDuration;\n  } else {\n    var _child = completedWork.child;\n\n    while (_child !== null) {\n      var _childUpdateExpirationTime = _child.expirationTime;\n      var _childChildExpirationTime = _child.childExpirationTime;\n\n      if (_childUpdateExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = _childUpdateExpirationTime;\n      }\n\n      if (_childChildExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = _childChildExpirationTime;\n      }\n\n      _child = _child.sibling;\n    }\n  }\n\n  completedWork.childExpirationTime = newChildExpirationTime;\n}\n\nfunction commitRoot(root) {\n  var renderPriorityLevel = getCurrentPriorityLevel();\n  runWithPriority$1(ImmediatePriority, commitRootImpl.bind(null, root, renderPriorityLevel));\n  return null;\n}\n\nfunction commitRootImpl(root, renderPriorityLevel) {\n  do {\n    // `flushPassiveEffects` will call `flushSyncUpdateQueue` at the end, which\n    // means `flushPassiveEffects` will sometimes result in additional\n    // passive effects. So we need to keep flushing in a loop until there are\n    // no more pending effects.\n    // TODO: Might be better if `flushPassiveEffects` did not automatically\n    // flush synchronous work at the end, to avoid factoring hazards like this.\n    flushPassiveEffects();\n  } while (rootWithPendingPassiveEffects !== null);\n\n  flushRenderPhaseStrictModeWarningsInDEV();\n\n  if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n    {\n      throw Error( \"Should not already be working.\" );\n    }\n  }\n\n  var finishedWork = root.finishedWork;\n  var expirationTime = root.finishedExpirationTime;\n\n  if (finishedWork === null) {\n    return null;\n  }\n\n  root.finishedWork = null;\n  root.finishedExpirationTime = NoWork;\n\n  if (!(finishedWork !== root.current)) {\n    {\n      throw Error( \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\" );\n    }\n  } // commitRoot never returns a continuation; it always finishes synchronously.\n  // So we can clear these now to allow a new callback to be scheduled.\n\n\n  root.callbackNode = null;\n  root.callbackExpirationTime = NoWork;\n  root.callbackPriority = NoPriority;\n  root.nextKnownPendingLevel = NoWork;\n  startCommitTimer(); // Update the first and last pending times on this root. The new first\n  // pending time is whatever is left on the root fiber.\n\n  var remainingExpirationTimeBeforeCommit = getRemainingExpirationTime(finishedWork);\n  markRootFinishedAtTime(root, expirationTime, remainingExpirationTimeBeforeCommit);\n\n  if (root === workInProgressRoot) {\n    // We can reset these now that they are finished.\n    workInProgressRoot = null;\n    workInProgress = null;\n    renderExpirationTime$1 = NoWork;\n  } // This indicates that the last root we worked on is not the same one that\n  // we're committing now. This most commonly happens when a suspended root\n  // times out.\n  // Get the list of effects.\n\n\n  var firstEffect;\n\n  if (finishedWork.effectTag > PerformedWork) {\n    // A fiber's effect list consists only of its children, not itself. So if\n    // the root has an effect, we need to add it to the end of the list. The\n    // resulting list is the set that would belong to the root's parent, if it\n    // had one; that is, all the effects in the tree including the root.\n    if (finishedWork.lastEffect !== null) {\n      finishedWork.lastEffect.nextEffect = finishedWork;\n      firstEffect = finishedWork.firstEffect;\n    } else {\n      firstEffect = finishedWork;\n    }\n  } else {\n    // There is no effect on the root.\n    firstEffect = finishedWork.firstEffect;\n  }\n\n  if (firstEffect !== null) {\n    var prevExecutionContext = executionContext;\n    executionContext |= CommitContext;\n    var prevInteractions = pushInteractions(root); // Reset this to null before calling lifecycles\n\n    ReactCurrentOwner$2.current = null; // The commit phase is broken into several sub-phases. We do a separate pass\n    // of the effect list for each phase: all mutation effects come before all\n    // layout effects, and so on.\n    // The first phase a \"before mutation\" phase. We use this phase to read the\n    // state of the host tree right before we mutate it. This is where\n    // getSnapshotBeforeUpdate is called.\n\n    startCommitSnapshotEffectsTimer();\n    prepareForCommit(root.containerInfo);\n    nextEffect = firstEffect;\n\n    do {\n      {\n        invokeGuardedCallback(null, commitBeforeMutationEffects, null);\n\n        if (hasCaughtError()) {\n          if (!(nextEffect !== null)) {\n            {\n              throw Error( \"Should be working on an effect.\" );\n            }\n          }\n\n          var error = clearCaughtError();\n          captureCommitPhaseError(nextEffect, error);\n          nextEffect = nextEffect.nextEffect;\n        }\n      }\n    } while (nextEffect !== null);\n\n    stopCommitSnapshotEffectsTimer();\n\n    {\n      // Mark the current commit time to be shared by all Profilers in this\n      // batch. This enables them to be grouped later.\n      recordCommitTime();\n    } // The next phase is the mutation phase, where we mutate the host tree.\n\n\n    startCommitHostEffectsTimer();\n    nextEffect = firstEffect;\n\n    do {\n      {\n        invokeGuardedCallback(null, commitMutationEffects, null, root, renderPriorityLevel);\n\n        if (hasCaughtError()) {\n          if (!(nextEffect !== null)) {\n            {\n              throw Error( \"Should be working on an effect.\" );\n            }\n          }\n\n          var _error = clearCaughtError();\n\n          captureCommitPhaseError(nextEffect, _error);\n          nextEffect = nextEffect.nextEffect;\n        }\n      }\n    } while (nextEffect !== null);\n\n    stopCommitHostEffectsTimer();\n    resetAfterCommit(root.containerInfo); // The work-in-progress tree is now the current tree. This must come after\n    // the mutation phase, so that the previous tree is still current during\n    // componentWillUnmount, but before the layout phase, so that the finished\n    // work is current during componentDidMount/Update.\n\n    root.current = finishedWork; // The next phase is the layout phase, where we call effects that read\n    // the host tree after it's been mutated. The idiomatic use case for this is\n    // layout, but class component lifecycles also fire here for legacy reasons.\n\n    startCommitLifeCyclesTimer();\n    nextEffect = firstEffect;\n\n    do {\n      {\n        invokeGuardedCallback(null, commitLayoutEffects, null, root, expirationTime);\n\n        if (hasCaughtError()) {\n          if (!(nextEffect !== null)) {\n            {\n              throw Error( \"Should be working on an effect.\" );\n            }\n          }\n\n          var _error2 = clearCaughtError();\n\n          captureCommitPhaseError(nextEffect, _error2);\n          nextEffect = nextEffect.nextEffect;\n        }\n      }\n    } while (nextEffect !== null);\n\n    stopCommitLifeCyclesTimer();\n    nextEffect = null; // Tell Scheduler to yield at the end of the frame, so the browser has an\n    // opportunity to paint.\n\n    requestPaint();\n\n    {\n      popInteractions(prevInteractions);\n    }\n\n    executionContext = prevExecutionContext;\n  } else {\n    // No effects.\n    root.current = finishedWork; // Measure these anyway so the flamegraph explicitly shows that there were\n    // no effects.\n    // TODO: Maybe there's a better way to report this.\n\n    startCommitSnapshotEffectsTimer();\n    stopCommitSnapshotEffectsTimer();\n\n    {\n      recordCommitTime();\n    }\n\n    startCommitHostEffectsTimer();\n    stopCommitHostEffectsTimer();\n    startCommitLifeCyclesTimer();\n    stopCommitLifeCyclesTimer();\n  }\n\n  stopCommitTimer();\n  var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n  if (rootDoesHavePassiveEffects) {\n    // This commit has passive effects. Stash a reference to them. But don't\n    // schedule a callback until after flushing layout work.\n    rootDoesHavePassiveEffects = false;\n    rootWithPendingPassiveEffects = root;\n    pendingPassiveEffectsExpirationTime = expirationTime;\n    pendingPassiveEffectsRenderPriority = renderPriorityLevel;\n  } else {\n    // We are done with the effect chain at this point so let's clear the\n    // nextEffect pointers to assist with GC. If we have passive effects, we'll\n    // clear this in flushPassiveEffects.\n    nextEffect = firstEffect;\n\n    while (nextEffect !== null) {\n      var nextNextEffect = nextEffect.nextEffect;\n      nextEffect.nextEffect = null;\n      nextEffect = nextNextEffect;\n    }\n  } // Check if there's remaining work on this root\n\n\n  var remainingExpirationTime = root.firstPendingTime;\n\n  if (remainingExpirationTime !== NoWork) {\n    {\n      if (spawnedWorkDuringRender !== null) {\n        var expirationTimes = spawnedWorkDuringRender;\n        spawnedWorkDuringRender = null;\n\n        for (var i = 0; i < expirationTimes.length; i++) {\n          scheduleInteractions(root, expirationTimes[i], root.memoizedInteractions);\n        }\n      }\n\n      schedulePendingInteractions(root, remainingExpirationTime);\n    }\n  } else {\n    // If there's no remaining work, we can clear the set of already failed\n    // error boundaries.\n    legacyErrorBoundariesThatAlreadyFailed = null;\n  }\n\n  {\n    if (!rootDidHavePassiveEffects) {\n      // If there are no passive effects, then we can complete the pending interactions.\n      // Otherwise, we'll wait until after the passive effects are flushed.\n      // Wait to do this until after remaining work has been scheduled,\n      // so that we don't prematurely signal complete for interactions when there's e.g. hidden work.\n      finishPendingInteractions(root, expirationTime);\n    }\n  }\n\n  if (remainingExpirationTime === Sync) {\n    // Count the number of times the root synchronously re-renders without\n    // finishing. If there are too many, it indicates an infinite update loop.\n    if (root === rootWithNestedUpdates) {\n      nestedUpdateCount++;\n    } else {\n      nestedUpdateCount = 0;\n      rootWithNestedUpdates = root;\n    }\n  } else {\n    nestedUpdateCount = 0;\n  }\n\n  onCommitRoot(finishedWork.stateNode, expirationTime); // Always call this before exiting `commitRoot`, to ensure that any\n  // additional work on this root is scheduled.\n\n  ensureRootIsScheduled(root);\n\n  if (hasUncaughtError) {\n    hasUncaughtError = false;\n    var _error3 = firstUncaughtError;\n    firstUncaughtError = null;\n    throw _error3;\n  }\n\n  if ((executionContext & LegacyUnbatchedContext) !== NoContext) {\n    // This is a legacy edge case. We just committed the initial mount of\n    // a ReactDOM.render-ed root inside of batchedUpdates. The commit fired\n    // synchronously, but layout updates should be deferred until the end\n    // of the batch.\n    return null;\n  } // If layout work was scheduled, flush it now.\n\n\n  flushSyncCallbackQueue();\n  return null;\n}\n\nfunction commitBeforeMutationEffects() {\n  while (nextEffect !== null) {\n    var effectTag = nextEffect.effectTag;\n\n    if ((effectTag & Snapshot) !== NoEffect) {\n      setCurrentFiber(nextEffect);\n      recordEffect();\n      var current = nextEffect.alternate;\n      commitBeforeMutationLifeCycles(current, nextEffect);\n      resetCurrentFiber();\n    }\n\n    if ((effectTag & Passive) !== NoEffect) {\n      // If there are passive effects, schedule a callback to flush at\n      // the earliest opportunity.\n      if (!rootDoesHavePassiveEffects) {\n        rootDoesHavePassiveEffects = true;\n        scheduleCallback(NormalPriority, function () {\n          flushPassiveEffects();\n          return null;\n        });\n      }\n    }\n\n    nextEffect = nextEffect.nextEffect;\n  }\n}\n\nfunction commitMutationEffects(root, renderPriorityLevel) {\n  // TODO: Should probably move the bulk of this function to commitWork.\n  while (nextEffect !== null) {\n    setCurrentFiber(nextEffect);\n    var effectTag = nextEffect.effectTag;\n\n    if (effectTag & ContentReset) {\n      commitResetTextContent(nextEffect);\n    }\n\n    if (effectTag & Ref) {\n      var current = nextEffect.alternate;\n\n      if (current !== null) {\n        commitDetachRef(current);\n      }\n    } // The following switch statement is only concerned about placement,\n    // updates, and deletions. To avoid needing to add a case for every possible\n    // bitmap value, we remove the secondary effects from the effect tag and\n    // switch on that value.\n\n\n    var primaryEffectTag = effectTag & (Placement | Update | Deletion | Hydrating);\n\n    switch (primaryEffectTag) {\n      case Placement:\n        {\n          commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n          // inserted, before any life-cycles like componentDidMount gets called.\n          // TODO: findDOMNode doesn't rely on this any more but isMounted does\n          // and isMounted is deprecated anyway so we should be able to kill this.\n\n          nextEffect.effectTag &= ~Placement;\n          break;\n        }\n\n      case PlacementAndUpdate:\n        {\n          // Placement\n          commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n          // inserted, before any life-cycles like componentDidMount gets called.\n\n          nextEffect.effectTag &= ~Placement; // Update\n\n          var _current = nextEffect.alternate;\n          commitWork(_current, nextEffect);\n          break;\n        }\n\n      case Hydrating:\n        {\n          nextEffect.effectTag &= ~Hydrating;\n          break;\n        }\n\n      case HydratingAndUpdate:\n        {\n          nextEffect.effectTag &= ~Hydrating; // Update\n\n          var _current2 = nextEffect.alternate;\n          commitWork(_current2, nextEffect);\n          break;\n        }\n\n      case Update:\n        {\n          var _current3 = nextEffect.alternate;\n          commitWork(_current3, nextEffect);\n          break;\n        }\n\n      case Deletion:\n        {\n          commitDeletion(root, nextEffect, renderPriorityLevel);\n          break;\n        }\n    } // TODO: Only record a mutation effect if primaryEffectTag is non-zero.\n\n\n    recordEffect();\n    resetCurrentFiber();\n    nextEffect = nextEffect.nextEffect;\n  }\n}\n\nfunction commitLayoutEffects(root, committedExpirationTime) {\n  // TODO: Should probably move the bulk of this function to commitWork.\n  while (nextEffect !== null) {\n    setCurrentFiber(nextEffect);\n    var effectTag = nextEffect.effectTag;\n\n    if (effectTag & (Update | Callback)) {\n      recordEffect();\n      var current = nextEffect.alternate;\n      commitLifeCycles(root, current, nextEffect);\n    }\n\n    if (effectTag & Ref) {\n      recordEffect();\n      commitAttachRef(nextEffect);\n    }\n\n    resetCurrentFiber();\n    nextEffect = nextEffect.nextEffect;\n  }\n}\n\nfunction flushPassiveEffects() {\n  if (pendingPassiveEffectsRenderPriority !== NoPriority) {\n    var priorityLevel = pendingPassiveEffectsRenderPriority > NormalPriority ? NormalPriority : pendingPassiveEffectsRenderPriority;\n    pendingPassiveEffectsRenderPriority = NoPriority;\n    return runWithPriority$1(priorityLevel, flushPassiveEffectsImpl);\n  }\n}\n\nfunction flushPassiveEffectsImpl() {\n  if (rootWithPendingPassiveEffects === null) {\n    return false;\n  }\n\n  var root = rootWithPendingPassiveEffects;\n  var expirationTime = pendingPassiveEffectsExpirationTime;\n  rootWithPendingPassiveEffects = null;\n  pendingPassiveEffectsExpirationTime = NoWork;\n\n  if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n    {\n      throw Error( \"Cannot flush passive effects while already rendering.\" );\n    }\n  }\n\n  var prevExecutionContext = executionContext;\n  executionContext |= CommitContext;\n  var prevInteractions = pushInteractions(root);\n\n  {\n    // Note: This currently assumes there are no passive effects on the root fiber\n    // because the root is not part of its own effect list.\n    // This could change in the future.\n    var _effect2 = root.current.firstEffect;\n\n    while (_effect2 !== null) {\n      {\n        setCurrentFiber(_effect2);\n        invokeGuardedCallback(null, commitPassiveHookEffects, null, _effect2);\n\n        if (hasCaughtError()) {\n          if (!(_effect2 !== null)) {\n            {\n              throw Error( \"Should be working on an effect.\" );\n            }\n          }\n\n          var _error5 = clearCaughtError();\n\n          captureCommitPhaseError(_effect2, _error5);\n        }\n\n        resetCurrentFiber();\n      }\n\n      var nextNextEffect = _effect2.nextEffect; // Remove nextEffect pointer to assist GC\n\n      _effect2.nextEffect = null;\n      _effect2 = nextNextEffect;\n    }\n  }\n\n  {\n    popInteractions(prevInteractions);\n    finishPendingInteractions(root, expirationTime);\n  }\n\n  executionContext = prevExecutionContext;\n  flushSyncCallbackQueue(); // If additional passive effects were scheduled, increment a counter. If this\n  // exceeds the limit, we'll fire a warning.\n\n  nestedPassiveUpdateCount = rootWithPendingPassiveEffects === null ? 0 : nestedPassiveUpdateCount + 1;\n  return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n  return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n  if (legacyErrorBoundariesThatAlreadyFailed === null) {\n    legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n  } else {\n    legacyErrorBoundariesThatAlreadyFailed.add(instance);\n  }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n  if (!hasUncaughtError) {\n    hasUncaughtError = true;\n    firstUncaughtError = error;\n  }\n}\n\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n  var errorInfo = createCapturedValue(error, sourceFiber);\n  var update = createRootErrorUpdate(rootFiber, errorInfo, Sync);\n  enqueueUpdate(rootFiber, update);\n  var root = markUpdateTimeFromFiberToRoot(rootFiber, Sync);\n\n  if (root !== null) {\n    ensureRootIsScheduled(root);\n    schedulePendingInteractions(root, Sync);\n  }\n}\n\nfunction captureCommitPhaseError(sourceFiber, error) {\n  if (sourceFiber.tag === HostRoot) {\n    // Error was thrown at the root. There is no parent, so the root\n    // itself should capture it.\n    captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n    return;\n  }\n\n  var fiber = sourceFiber.return;\n\n  while (fiber !== null) {\n    if (fiber.tag === HostRoot) {\n      captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error);\n      return;\n    } else if (fiber.tag === ClassComponent) {\n      var ctor = fiber.type;\n      var instance = fiber.stateNode;\n\n      if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n        var errorInfo = createCapturedValue(error, sourceFiber);\n        var update = createClassErrorUpdate(fiber, errorInfo, // TODO: This is always sync\n        Sync);\n        enqueueUpdate(fiber, update);\n        var root = markUpdateTimeFromFiberToRoot(fiber, Sync);\n\n        if (root !== null) {\n          ensureRootIsScheduled(root);\n          schedulePendingInteractions(root, Sync);\n        }\n\n        return;\n      }\n    }\n\n    fiber = fiber.return;\n  }\n}\nfunction pingSuspendedRoot(root, thenable, suspendedTime) {\n  var pingCache = root.pingCache;\n\n  if (pingCache !== null) {\n    // The thenable resolved, so we no longer need to memoize, because it will\n    // never be thrown again.\n    pingCache.delete(thenable);\n  }\n\n  if (workInProgressRoot === root && renderExpirationTime$1 === suspendedTime) {\n    // Received a ping at the same priority level at which we're currently\n    // rendering. We might want to restart this render. This should mirror\n    // the logic of whether or not a root suspends once it completes.\n    // TODO: If we're rendering sync either due to Sync, Batched or expired,\n    // we should probably never restart.\n    // If we're suspended with delay, we'll always suspend so we can always\n    // restart. If we're suspended without any updates, it might be a retry.\n    // If it's early in the retry we can restart. We can't know for sure\n    // whether we'll eventually process an update during this render pass,\n    // but it's somewhat unlikely that we get to a ping before that, since\n    // getting to the root most update is usually very fast.\n    if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && workInProgressRootLatestProcessedExpirationTime === Sync && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n      // Restart from the root. Don't need to schedule a ping because\n      // we're already working on this tree.\n      prepareFreshStack(root, renderExpirationTime$1);\n    } else {\n      // Even though we can't restart right now, we might get an\n      // opportunity later. So we mark this render as having a ping.\n      workInProgressRootHasPendingPing = true;\n    }\n\n    return;\n  }\n\n  if (!isRootSuspendedAtTime(root, suspendedTime)) {\n    // The root is no longer suspended at this time.\n    return;\n  }\n\n  var lastPingedTime = root.lastPingedTime;\n\n  if (lastPingedTime !== NoWork && lastPingedTime < suspendedTime) {\n    // There's already a lower priority ping scheduled.\n    return;\n  } // Mark the time at which this ping was scheduled.\n\n\n  root.lastPingedTime = suspendedTime;\n\n  ensureRootIsScheduled(root);\n  schedulePendingInteractions(root, suspendedTime);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber, retryTime) {\n  // The boundary fiber (a Suspense component or SuspenseList component)\n  // previously was rendered in its fallback state. One of the promises that\n  // suspended it has resolved, which means at least part of the tree was\n  // likely unblocked. Try rendering again, at a new expiration time.\n  if (retryTime === NoWork) {\n    var suspenseConfig = null; // Retries don't carry over the already committed update.\n\n    var currentTime = requestCurrentTimeForUpdate();\n    retryTime = computeExpirationForFiber(currentTime, boundaryFiber, suspenseConfig);\n  } // TODO: Special case idle priority?\n\n\n  var root = markUpdateTimeFromFiberToRoot(boundaryFiber, retryTime);\n\n  if (root !== null) {\n    ensureRootIsScheduled(root);\n    schedulePendingInteractions(root, retryTime);\n  }\n}\nfunction resolveRetryThenable(boundaryFiber, thenable) {\n  var retryTime = NoWork; // Default\n\n  var retryCache;\n\n  {\n    retryCache = boundaryFiber.stateNode;\n  }\n\n  if (retryCache !== null) {\n    // The thenable resolved, so we no longer need to memoize, because it will\n    // never be thrown again.\n    retryCache.delete(thenable);\n  }\n\n  retryTimedOutBoundary(boundaryFiber, retryTime);\n} // Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\n\nfunction jnd(timeElapsed) {\n  return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction computeMsUntilSuspenseLoadingDelay(mostRecentEventTime, committedExpirationTime, suspenseConfig) {\n  var busyMinDurationMs = suspenseConfig.busyMinDurationMs | 0;\n\n  if (busyMinDurationMs <= 0) {\n    return 0;\n  }\n\n  var busyDelayMs = suspenseConfig.busyDelayMs | 0; // Compute the time until this render pass would expire.\n\n  var currentTimeMs = now();\n  var eventTimeMs = inferTimeFromExpirationTimeWithSuspenseConfig(mostRecentEventTime, suspenseConfig);\n  var timeElapsed = currentTimeMs - eventTimeMs;\n\n  if (timeElapsed <= busyDelayMs) {\n    // If we haven't yet waited longer than the initial delay, we don't\n    // have to wait any additional time.\n    return 0;\n  }\n\n  var msUntilTimeout = busyDelayMs + busyMinDurationMs - timeElapsed; // This is the value that is passed to `setTimeout`.\n\n  return msUntilTimeout;\n}\n\nfunction checkForNestedUpdates() {\n  if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n    nestedUpdateCount = 0;\n    rootWithNestedUpdates = null;\n\n    {\n      {\n        throw Error( \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\" );\n      }\n    }\n  }\n\n  {\n    if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n      nestedPassiveUpdateCount = 0;\n\n      error('Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n    }\n  }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n  {\n    ReactStrictModeWarnings.flushLegacyContextWarning();\n\n    {\n      ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n    }\n  }\n}\n\nfunction stopFinishedWorkLoopTimer() {\n  var didCompleteRoot = true;\n  stopWorkLoopTimer(interruptedBy, didCompleteRoot);\n  interruptedBy = null;\n}\n\nfunction stopInterruptedWorkLoopTimer() {\n  // TODO: Track which fiber caused the interruption.\n  var didCompleteRoot = false;\n  stopWorkLoopTimer(interruptedBy, didCompleteRoot);\n  interruptedBy = null;\n}\n\nfunction checkForInterruption(fiberThatReceivedUpdate, updateExpirationTime) {\n  if ( workInProgressRoot !== null && updateExpirationTime > renderExpirationTime$1) {\n    interruptedBy = fiberThatReceivedUpdate;\n  }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = null;\n\nfunction warnAboutUpdateOnUnmountedFiberInDEV(fiber) {\n  {\n    var tag = fiber.tag;\n\n    if (tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n      // Only warn for user-defined components, not internal ones like Suspense.\n      return;\n    }\n    // the problematic code almost always lies inside that component.\n\n\n    var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n    if (didWarnStateUpdateForUnmountedComponent !== null) {\n      if (didWarnStateUpdateForUnmountedComponent.has(componentName)) {\n        return;\n      }\n\n      didWarnStateUpdateForUnmountedComponent.add(componentName);\n    } else {\n      didWarnStateUpdateForUnmountedComponent = new Set([componentName]);\n    }\n\n    error(\"Can't perform a React state update on an unmounted component. This \" + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in %s.%s', tag === ClassComponent ? 'the componentWillUnmount method' : 'a useEffect cleanup function', getStackByFiberInDevAndProd(fiber));\n  }\n}\n\nvar beginWork$1;\n\n{\n  var dummyFiber = null;\n\n  beginWork$1 = function (current, unitOfWork, expirationTime) {\n    // If a component throws an error, we replay it again in a synchronously\n    // dispatched event, so that the debugger will treat it as an uncaught\n    // error See ReactErrorUtils for more information.\n    // Before entering the begin phase, copy the work-in-progress onto a dummy\n    // fiber. If beginWork throws, we'll use this to reset the state.\n    var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n\n    try {\n      return beginWork(current, unitOfWork, expirationTime);\n    } catch (originalError) {\n      if (originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n        // Don't replay promises. Treat everything else like an error.\n        throw originalError;\n      } // Keep this code in sync with handleError; any changes here must have\n      // corresponding changes there.\n\n\n      resetContextDependencies();\n      resetHooksAfterThrow(); // Don't reset current debug fiber, since we're about to work on the\n      // same fiber again.\n      // Unwind the failed stack frame\n\n      unwindInterruptedWork(unitOfWork); // Restore the original properties of the fiber.\n\n      assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n      if ( unitOfWork.mode & ProfileMode) {\n        // Reset the profiler timer.\n        startProfilerTimer(unitOfWork);\n      } // Run beginWork again.\n\n\n      invokeGuardedCallback(null, beginWork, null, current, unitOfWork, expirationTime);\n\n      if (hasCaughtError()) {\n        var replayError = clearCaughtError(); // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.\n        // Rethrow this error instead of the original one.\n\n        throw replayError;\n      } else {\n        // This branch is reachable if the render phase is impure.\n        throw originalError;\n      }\n    }\n  };\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInRenderForAnotherComponent;\n\n{\n  didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n}\n\nfunction warnAboutRenderPhaseUpdatesInDEV(fiber) {\n  {\n    if (isRendering && (executionContext & RenderContext) !== NoContext) {\n      switch (fiber.tag) {\n        case FunctionComponent:\n        case ForwardRef:\n        case SimpleMemoComponent:\n          {\n            var renderingComponentName = workInProgress && getComponentName(workInProgress.type) || 'Unknown'; // Dedupe by the rendering component because it's the one that needs to be fixed.\n\n            var dedupeKey = renderingComponentName;\n\n            if (!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)) {\n              didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);\n              var setStateComponentName = getComponentName(fiber.type) || 'Unknown';\n\n              error('Cannot update a component (`%s`) while rendering a ' + 'different component (`%s`). To locate the bad setState() call inside `%s`, ' + 'follow the stack trace as described in https://fb.me/setstate-in-render', setStateComponentName, renderingComponentName, renderingComponentName);\n            }\n\n            break;\n          }\n\n        case ClassComponent:\n          {\n            if (!didWarnAboutUpdateInRender) {\n              error('Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure ' + 'function of props and state.');\n\n              didWarnAboutUpdateInRender = true;\n            }\n\n            break;\n          }\n      }\n    }\n  }\n} // a 'shared' variable that changes when act() opens/closes in tests.\n\n\nvar IsThisRendererActing = {\n  current: false\n};\nfunction warnIfNotScopedWithMatchingAct(fiber) {\n  {\n    if ( IsSomeRendererActing.current === true && IsThisRendererActing.current !== true) {\n      error(\"It looks like you're using the wrong act() around your test interactions.\\n\" + 'Be sure to use the matching version of act() corresponding to your renderer:\\n\\n' + '// for react-dom:\\n' + \"import {act} from 'react-dom/test-utils';\\n\" + '// ...\\n' + 'act(() => ...);\\n\\n' + '// for react-test-renderer:\\n' + \"import TestRenderer from 'react-test-renderer';\\n\" + 'const {act} = TestRenderer;\\n' + '// ...\\n' + 'act(() => ...);' + '%s', getStackByFiberInDevAndProd(fiber));\n    }\n  }\n}\nfunction warnIfNotCurrentlyActingEffectsInDEV(fiber) {\n  {\n    if ( (fiber.mode & StrictMode) !== NoMode && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n      error('An update to %s ran an effect, but was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + '  /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://fb.me/react-wrap-tests-with-act' + '%s', getComponentName(fiber.type), getStackByFiberInDevAndProd(fiber));\n    }\n  }\n}\n\nfunction warnIfNotCurrentlyActingUpdatesInDEV(fiber) {\n  {\n    if ( executionContext === NoContext && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n      error('An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + '  /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://fb.me/react-wrap-tests-with-act' + '%s', getComponentName(fiber.type), getStackByFiberInDevAndProd(fiber));\n    }\n  }\n}\n\nvar warnIfNotCurrentlyActingUpdatesInDev = warnIfNotCurrentlyActingUpdatesInDEV; // In tests, we want to enforce a mocked scheduler.\n\nvar didWarnAboutUnmockedScheduler = false; // TODO Before we release concurrent mode, revisit this and decide whether a mocked\n// scheduler is the actual recommendation. The alternative could be a testing build,\n// a new lib, or whatever; we dunno just yet. This message is for early adopters\n// to get their tests right.\n\nfunction warnIfUnmockedScheduler(fiber) {\n  {\n    if (didWarnAboutUnmockedScheduler === false && Scheduler.unstable_flushAllWithoutAsserting === undefined) {\n      if (fiber.mode & BlockingMode || fiber.mode & ConcurrentMode) {\n        didWarnAboutUnmockedScheduler = true;\n\n        error('In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked ' + 'to guarantee consistent behaviour across tests and browsers. ' + 'For example, with jest: \\n' + \"jest.mock('scheduler', () => require('scheduler/unstable_mock'));\\n\\n\" + 'For more info, visit https://fb.me/react-mock-scheduler');\n      }\n    }\n  }\n}\n\nfunction computeThreadID(root, expirationTime) {\n  // Interaction threads are unique per root and expiration time.\n  return expirationTime * 1000 + root.interactionThreadID;\n}\n\nfunction markSpawnedWork(expirationTime) {\n\n  if (spawnedWorkDuringRender === null) {\n    spawnedWorkDuringRender = [expirationTime];\n  } else {\n    spawnedWorkDuringRender.push(expirationTime);\n  }\n}\n\nfunction scheduleInteractions(root, expirationTime, interactions) {\n\n  if (interactions.size > 0) {\n    var pendingInteractionMap = root.pendingInteractionMap;\n    var pendingInteractions = pendingInteractionMap.get(expirationTime);\n\n    if (pendingInteractions != null) {\n      interactions.forEach(function (interaction) {\n        if (!pendingInteractions.has(interaction)) {\n          // Update the pending async work count for previously unscheduled interaction.\n          interaction.__count++;\n        }\n\n        pendingInteractions.add(interaction);\n      });\n    } else {\n      pendingInteractionMap.set(expirationTime, new Set(interactions)); // Update the pending async work count for the current interactions.\n\n      interactions.forEach(function (interaction) {\n        interaction.__count++;\n      });\n    }\n\n    var subscriber = tracing.__subscriberRef.current;\n\n    if (subscriber !== null) {\n      var threadID = computeThreadID(root, expirationTime);\n      subscriber.onWorkScheduled(interactions, threadID);\n    }\n  }\n}\n\nfunction schedulePendingInteractions(root, expirationTime) {\n\n  scheduleInteractions(root, expirationTime, tracing.__interactionsRef.current);\n}\n\nfunction startWorkOnPendingInteractions(root, expirationTime) {\n  // we can accurately attribute time spent working on it, And so that cascading\n  // work triggered during the render phase will be associated with it.\n\n\n  var interactions = new Set();\n  root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {\n    if (scheduledExpirationTime >= expirationTime) {\n      scheduledInteractions.forEach(function (interaction) {\n        return interactions.add(interaction);\n      });\n    }\n  }); // Store the current set of interactions on the FiberRoot for a few reasons:\n  // We can re-use it in hot functions like performConcurrentWorkOnRoot()\n  // without having to recalculate it. We will also use it in commitWork() to\n  // pass to any Profiler onRender() hooks. This also provides DevTools with a\n  // way to access it when the onCommitRoot() hook is called.\n\n  root.memoizedInteractions = interactions;\n\n  if (interactions.size > 0) {\n    var subscriber = tracing.__subscriberRef.current;\n\n    if (subscriber !== null) {\n      var threadID = computeThreadID(root, expirationTime);\n\n      try {\n        subscriber.onWorkStarted(interactions, threadID);\n      } catch (error) {\n        // If the subscriber throws, rethrow it in a separate task\n        scheduleCallback(ImmediatePriority, function () {\n          throw error;\n        });\n      }\n    }\n  }\n}\n\nfunction finishPendingInteractions(root, committedExpirationTime) {\n\n  var earliestRemainingTimeAfterCommit = root.firstPendingTime;\n  var subscriber;\n\n  try {\n    subscriber = tracing.__subscriberRef.current;\n\n    if (subscriber !== null && root.memoizedInteractions.size > 0) {\n      var threadID = computeThreadID(root, committedExpirationTime);\n      subscriber.onWorkStopped(root.memoizedInteractions, threadID);\n    }\n  } catch (error) {\n    // If the subscriber throws, rethrow it in a separate task\n    scheduleCallback(ImmediatePriority, function () {\n      throw error;\n    });\n  } finally {\n    // Clear completed interactions from the pending Map.\n    // Unless the render was suspended or cascading work was scheduled,\n    // In which case– leave pending interactions until the subsequent render.\n    var pendingInteractionMap = root.pendingInteractionMap;\n    pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {\n      // Only decrement the pending interaction count if we're done.\n      // If there's still work at the current priority,\n      // That indicates that we are waiting for suspense data.\n      if (scheduledExpirationTime > earliestRemainingTimeAfterCommit) {\n        pendingInteractionMap.delete(scheduledExpirationTime);\n        scheduledInteractions.forEach(function (interaction) {\n          interaction.__count--;\n\n          if (subscriber !== null && interaction.__count === 0) {\n            try {\n              subscriber.onInteractionScheduledWorkCompleted(interaction);\n            } catch (error) {\n              // If the subscriber throws, rethrow it in a separate task\n              scheduleCallback(ImmediatePriority, function () {\n                throw error;\n              });\n            }\n          }\n        });\n      }\n    });\n  }\n}\n\nvar onScheduleFiberRoot = null;\nvar onCommitFiberRoot = null;\nvar onCommitFiberUnmount = null;\nvar hasLoggedError = false;\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\nfunction injectInternals(internals) {\n  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n    // No DevTools\n    return false;\n  }\n\n  var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n  if (hook.isDisabled) {\n    // This isn't a real property on the hook, but it can be set to opt out\n    // of DevTools integration and associated warnings and logs.\n    // https://github.com/facebook/react/issues/3877\n    return true;\n  }\n\n  if (!hook.supportsFiber) {\n    {\n      error('The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://fb.me/react-devtools');\n    } // DevTools exists, even though it doesn't support Fiber.\n\n\n    return true;\n  }\n\n  try {\n    var rendererID = hook.inject(internals); // We have successfully injected, so now it is safe to set up hooks.\n\n    if (true) {\n      // Only used by Fast Refresh\n      if (typeof hook.onScheduleFiberRoot === 'function') {\n        onScheduleFiberRoot = function (root, children) {\n          try {\n            hook.onScheduleFiberRoot(rendererID, root, children);\n          } catch (err) {\n            if ( true && !hasLoggedError) {\n              hasLoggedError = true;\n\n              error('React instrumentation encountered an error: %s', err);\n            }\n          }\n        };\n      }\n    }\n\n    onCommitFiberRoot = function (root, expirationTime) {\n      try {\n        var didError = (root.current.effectTag & DidCapture) === DidCapture;\n\n        if (enableProfilerTimer) {\n          var currentTime = getCurrentTime();\n          var priorityLevel = inferPriorityFromExpirationTime(currentTime, expirationTime);\n          hook.onCommitFiberRoot(rendererID, root, priorityLevel, didError);\n        } else {\n          hook.onCommitFiberRoot(rendererID, root, undefined, didError);\n        }\n      } catch (err) {\n        if (true) {\n          if (!hasLoggedError) {\n            hasLoggedError = true;\n\n            error('React instrumentation encountered an error: %s', err);\n          }\n        }\n      }\n    };\n\n    onCommitFiberUnmount = function (fiber) {\n      try {\n        hook.onCommitFiberUnmount(rendererID, fiber);\n      } catch (err) {\n        if (true) {\n          if (!hasLoggedError) {\n            hasLoggedError = true;\n\n            error('React instrumentation encountered an error: %s', err);\n          }\n        }\n      }\n    };\n  } catch (err) {\n    // Catch all errors because it is unsafe to throw during initialization.\n    {\n      error('React instrumentation encountered an error: %s.', err);\n    }\n  } // DevTools exists\n\n\n  return true;\n}\nfunction onScheduleRoot(root, children) {\n  if (typeof onScheduleFiberRoot === 'function') {\n    onScheduleFiberRoot(root, children);\n  }\n}\nfunction onCommitRoot(root, expirationTime) {\n  if (typeof onCommitFiberRoot === 'function') {\n    onCommitFiberRoot(root, expirationTime);\n  }\n}\nfunction onCommitUnmount(fiber) {\n  if (typeof onCommitFiberUnmount === 'function') {\n    onCommitFiberUnmount(fiber);\n  }\n}\n\nvar hasBadMapPolyfill;\n\n{\n  hasBadMapPolyfill = false;\n\n  try {\n    var nonExtensibleObject = Object.preventExtensions({});\n    var testMap = new Map([[nonExtensibleObject, null]]);\n    var testSet = new Set([nonExtensibleObject]); // This is necessary for Rollup to not consider these unused.\n    // https://github.com/rollup/rollup/issues/1771\n    // TODO: we can remove these if Rollup fixes the bug.\n\n    testMap.set(0, 0);\n    testSet.add(0);\n  } catch (e) {\n    // TODO: Consider warning about bad polyfills\n    hasBadMapPolyfill = true;\n  }\n}\n\nvar debugCounter = 1;\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n  // Instance\n  this.tag = tag;\n  this.key = key;\n  this.elementType = null;\n  this.type = null;\n  this.stateNode = null; // Fiber\n\n  this.return = null;\n  this.child = null;\n  this.sibling = null;\n  this.index = 0;\n  this.ref = null;\n  this.pendingProps = pendingProps;\n  this.memoizedProps = null;\n  this.updateQueue = null;\n  this.memoizedState = null;\n  this.dependencies = null;\n  this.mode = mode; // Effects\n\n  this.effectTag = NoEffect;\n  this.nextEffect = null;\n  this.firstEffect = null;\n  this.lastEffect = null;\n  this.expirationTime = NoWork;\n  this.childExpirationTime = NoWork;\n  this.alternate = null;\n\n  {\n    // Note: The following is done to avoid a v8 performance cliff.\n    //\n    // Initializing the fields below to smis and later updating them with\n    // double values will cause Fibers to end up having separate shapes.\n    // This behavior/bug has something to do with Object.preventExtension().\n    // Fortunately this only impacts DEV builds.\n    // Unfortunately it makes React unusably slow for some applications.\n    // To work around this, initialize the fields below with doubles.\n    //\n    // Learn more about this here:\n    // https://github.com/facebook/react/issues/14365\n    // https://bugs.chromium.org/p/v8/issues/detail?id=8538\n    this.actualDuration = Number.NaN;\n    this.actualStartTime = Number.NaN;\n    this.selfBaseDuration = Number.NaN;\n    this.treeBaseDuration = Number.NaN; // It's okay to replace the initial doubles with smis after initialization.\n    // This won't trigger the performance cliff mentioned above,\n    // and it simplifies other profiler code (including DevTools).\n\n    this.actualDuration = 0;\n    this.actualStartTime = -1;\n    this.selfBaseDuration = 0;\n    this.treeBaseDuration = 0;\n  } // This is normally DEV-only except www when it adds listeners.\n  // TODO: remove the User Timing integration in favor of Root Events.\n\n\n  {\n    this._debugID = debugCounter++;\n    this._debugIsCurrentlyTiming = false;\n  }\n\n  {\n    this._debugSource = null;\n    this._debugOwner = null;\n    this._debugNeedsRemount = false;\n    this._debugHookTypes = null;\n\n    if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n      Object.preventExtensions(this);\n    }\n  }\n} // This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n//    more difficult to predict when they get optimized and they are almost\n//    never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n//    always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n//    to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n//    is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n//    compatible.\n\n\nvar createFiber = function (tag, pendingProps, key, mode) {\n  // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n  return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n  return typeof type === 'function' && !shouldConstruct(type) && type.defaultProps === undefined;\n}\nfunction resolveLazyComponentTag(Component) {\n  if (typeof Component === 'function') {\n    return shouldConstruct(Component) ? ClassComponent : FunctionComponent;\n  } else if (Component !== undefined && Component !== null) {\n    var $$typeof = Component.$$typeof;\n\n    if ($$typeof === REACT_FORWARD_REF_TYPE) {\n      return ForwardRef;\n    }\n\n    if ($$typeof === REACT_MEMO_TYPE) {\n      return MemoComponent;\n    }\n  }\n\n  return IndeterminateComponent;\n} // This is used to create an alternate fiber to do work on.\n\nfunction createWorkInProgress(current, pendingProps) {\n  var workInProgress = current.alternate;\n\n  if (workInProgress === null) {\n    // We use a double buffering pooling technique because we know that we'll\n    // only ever need at most two versions of a tree. We pool the \"other\" unused\n    // node that we're free to reuse. This is lazily created to avoid allocating\n    // extra objects for things that are never updated. It also allow us to\n    // reclaim the extra memory if needed.\n    workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n    workInProgress.elementType = current.elementType;\n    workInProgress.type = current.type;\n    workInProgress.stateNode = current.stateNode;\n\n    {\n      // DEV-only fields\n      {\n        workInProgress._debugID = current._debugID;\n      }\n\n      workInProgress._debugSource = current._debugSource;\n      workInProgress._debugOwner = current._debugOwner;\n      workInProgress._debugHookTypes = current._debugHookTypes;\n    }\n\n    workInProgress.alternate = current;\n    current.alternate = workInProgress;\n  } else {\n    workInProgress.pendingProps = pendingProps; // We already have an alternate.\n    // Reset the effect tag.\n\n    workInProgress.effectTag = NoEffect; // The effect list is no longer valid.\n\n    workInProgress.nextEffect = null;\n    workInProgress.firstEffect = null;\n    workInProgress.lastEffect = null;\n\n    {\n      // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n      // This prevents time from endlessly accumulating in new commits.\n      // This has the downside of resetting values for different priority renders,\n      // But works for yielding (the common case) and should support resuming.\n      workInProgress.actualDuration = 0;\n      workInProgress.actualStartTime = -1;\n    }\n  }\n\n  workInProgress.childExpirationTime = current.childExpirationTime;\n  workInProgress.expirationTime = current.expirationTime;\n  workInProgress.child = current.child;\n  workInProgress.memoizedProps = current.memoizedProps;\n  workInProgress.memoizedState = current.memoizedState;\n  workInProgress.updateQueue = current.updateQueue; // Clone the dependencies object. This is mutated during the render phase, so\n  // it cannot be shared with the current fiber.\n\n  var currentDependencies = current.dependencies;\n  workInProgress.dependencies = currentDependencies === null ? null : {\n    expirationTime: currentDependencies.expirationTime,\n    firstContext: currentDependencies.firstContext,\n    responders: currentDependencies.responders\n  }; // These will be overridden during the parent's reconciliation\n\n  workInProgress.sibling = current.sibling;\n  workInProgress.index = current.index;\n  workInProgress.ref = current.ref;\n\n  {\n    workInProgress.selfBaseDuration = current.selfBaseDuration;\n    workInProgress.treeBaseDuration = current.treeBaseDuration;\n  }\n\n  {\n    workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n\n    switch (workInProgress.tag) {\n      case IndeterminateComponent:\n      case FunctionComponent:\n      case SimpleMemoComponent:\n        workInProgress.type = resolveFunctionForHotReloading(current.type);\n        break;\n\n      case ClassComponent:\n        workInProgress.type = resolveClassForHotReloading(current.type);\n        break;\n\n      case ForwardRef:\n        workInProgress.type = resolveForwardRefForHotReloading(current.type);\n        break;\n    }\n  }\n\n  return workInProgress;\n} // Used to reuse a Fiber for a second pass.\n\nfunction resetWorkInProgress(workInProgress, renderExpirationTime) {\n  // This resets the Fiber to what createFiber or createWorkInProgress would\n  // have set the values to before during the first pass. Ideally this wouldn't\n  // be necessary but unfortunately many code paths reads from the workInProgress\n  // when they should be reading from current and writing to workInProgress.\n  // We assume pendingProps, index, key, ref, return are still untouched to\n  // avoid doing another reconciliation.\n  // Reset the effect tag but keep any Placement tags, since that's something\n  // that child fiber is setting, not the reconciliation.\n  workInProgress.effectTag &= Placement; // The effect list is no longer valid.\n\n  workInProgress.nextEffect = null;\n  workInProgress.firstEffect = null;\n  workInProgress.lastEffect = null;\n  var current = workInProgress.alternate;\n\n  if (current === null) {\n    // Reset to createFiber's initial values.\n    workInProgress.childExpirationTime = NoWork;\n    workInProgress.expirationTime = renderExpirationTime;\n    workInProgress.child = null;\n    workInProgress.memoizedProps = null;\n    workInProgress.memoizedState = null;\n    workInProgress.updateQueue = null;\n    workInProgress.dependencies = null;\n\n    {\n      // Note: We don't reset the actualTime counts. It's useful to accumulate\n      // actual time across multiple render passes.\n      workInProgress.selfBaseDuration = 0;\n      workInProgress.treeBaseDuration = 0;\n    }\n  } else {\n    // Reset to the cloned values that createWorkInProgress would've.\n    workInProgress.childExpirationTime = current.childExpirationTime;\n    workInProgress.expirationTime = current.expirationTime;\n    workInProgress.child = current.child;\n    workInProgress.memoizedProps = current.memoizedProps;\n    workInProgress.memoizedState = current.memoizedState;\n    workInProgress.updateQueue = current.updateQueue; // Clone the dependencies object. This is mutated during the render phase, so\n    // it cannot be shared with the current fiber.\n\n    var currentDependencies = current.dependencies;\n    workInProgress.dependencies = currentDependencies === null ? null : {\n      expirationTime: currentDependencies.expirationTime,\n      firstContext: currentDependencies.firstContext,\n      responders: currentDependencies.responders\n    };\n\n    {\n      // Note: We don't reset the actualTime counts. It's useful to accumulate\n      // actual time across multiple render passes.\n      workInProgress.selfBaseDuration = current.selfBaseDuration;\n      workInProgress.treeBaseDuration = current.treeBaseDuration;\n    }\n  }\n\n  return workInProgress;\n}\nfunction createHostRootFiber(tag) {\n  var mode;\n\n  if (tag === ConcurrentRoot) {\n    mode = ConcurrentMode | BlockingMode | StrictMode;\n  } else if (tag === BlockingRoot) {\n    mode = BlockingMode | StrictMode;\n  } else {\n    mode = NoMode;\n  }\n\n  if ( isDevToolsPresent) {\n    // Always collect profile timings when DevTools are present.\n    // This enables DevTools to start capturing timing at any point–\n    // Without some nodes in the tree having empty base times.\n    mode |= ProfileMode;\n  }\n\n  return createFiber(HostRoot, null, null, mode);\n}\nfunction createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, expirationTime) {\n  var fiber;\n  var fiberTag = IndeterminateComponent; // The resolved type is set if we know what the final type will be. I.e. it's not lazy.\n\n  var resolvedType = type;\n\n  if (typeof type === 'function') {\n    if (shouldConstruct(type)) {\n      fiberTag = ClassComponent;\n\n      {\n        resolvedType = resolveClassForHotReloading(resolvedType);\n      }\n    } else {\n      {\n        resolvedType = resolveFunctionForHotReloading(resolvedType);\n      }\n    }\n  } else if (typeof type === 'string') {\n    fiberTag = HostComponent;\n  } else {\n    getTag: switch (type) {\n      case REACT_FRAGMENT_TYPE:\n        return createFiberFromFragment(pendingProps.children, mode, expirationTime, key);\n\n      case REACT_CONCURRENT_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= ConcurrentMode | BlockingMode | StrictMode;\n        break;\n\n      case REACT_STRICT_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= StrictMode;\n        break;\n\n      case REACT_PROFILER_TYPE:\n        return createFiberFromProfiler(pendingProps, mode, expirationTime, key);\n\n      case REACT_SUSPENSE_TYPE:\n        return createFiberFromSuspense(pendingProps, mode, expirationTime, key);\n\n      case REACT_SUSPENSE_LIST_TYPE:\n        return createFiberFromSuspenseList(pendingProps, mode, expirationTime, key);\n\n      default:\n        {\n          if (typeof type === 'object' && type !== null) {\n            switch (type.$$typeof) {\n              case REACT_PROVIDER_TYPE:\n                fiberTag = ContextProvider;\n                break getTag;\n\n              case REACT_CONTEXT_TYPE:\n                // This is a consumer\n                fiberTag = ContextConsumer;\n                break getTag;\n\n              case REACT_FORWARD_REF_TYPE:\n                fiberTag = ForwardRef;\n\n                {\n                  resolvedType = resolveForwardRefForHotReloading(resolvedType);\n                }\n\n                break getTag;\n\n              case REACT_MEMO_TYPE:\n                fiberTag = MemoComponent;\n                break getTag;\n\n              case REACT_LAZY_TYPE:\n                fiberTag = LazyComponent;\n                resolvedType = null;\n                break getTag;\n\n              case REACT_BLOCK_TYPE:\n                fiberTag = Block;\n                break getTag;\n\n            }\n          }\n\n          var info = '';\n\n          {\n            if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n              info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n            }\n\n            var ownerName = owner ? getComponentName(owner.type) : null;\n\n            if (ownerName) {\n              info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n            }\n          }\n\n          {\n            {\n              throw Error( \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" + (type == null ? type : typeof type) + \".\" + info );\n            }\n          }\n        }\n    }\n  }\n\n  fiber = createFiber(fiberTag, pendingProps, key, mode);\n  fiber.elementType = type;\n  fiber.type = resolvedType;\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\nfunction createFiberFromElement(element, mode, expirationTime) {\n  var owner = null;\n\n  {\n    owner = element._owner;\n  }\n\n  var type = element.type;\n  var key = element.key;\n  var pendingProps = element.props;\n  var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, expirationTime);\n\n  {\n    fiber._debugSource = element._source;\n    fiber._debugOwner = element._owner;\n  }\n\n  return fiber;\n}\nfunction createFiberFromFragment(elements, mode, expirationTime, key) {\n  var fiber = createFiber(Fragment, elements, key, mode);\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, expirationTime, key) {\n  {\n    if (typeof pendingProps.id !== 'string' || typeof pendingProps.onRender !== 'function') {\n      error('Profiler must specify an \"id\" string and \"onRender\" function as props');\n    }\n  }\n\n  var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode); // TODO: The Profiler fiber shouldn't have a type. It has a tag.\n\n  fiber.elementType = REACT_PROFILER_TYPE;\n  fiber.type = REACT_PROFILER_TYPE;\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, expirationTime, key) {\n  var fiber = createFiber(SuspenseComponent, pendingProps, key, mode); // TODO: The SuspenseComponent fiber shouldn't have a type. It has a tag.\n  // This needs to be fixed in getComponentName so that it relies on the tag\n  // instead.\n\n  fiber.type = REACT_SUSPENSE_TYPE;\n  fiber.elementType = REACT_SUSPENSE_TYPE;\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\nfunction createFiberFromSuspenseList(pendingProps, mode, expirationTime, key) {\n  var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n\n  {\n    // TODO: The SuspenseListComponent fiber shouldn't have a type. It has a tag.\n    // This needs to be fixed in getComponentName so that it relies on the tag\n    // instead.\n    fiber.type = REACT_SUSPENSE_LIST_TYPE;\n  }\n\n  fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\nfunction createFiberFromText(content, mode, expirationTime) {\n  var fiber = createFiber(HostText, content, null, mode);\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\nfunction createFiberFromHostInstanceForDeletion() {\n  var fiber = createFiber(HostComponent, null, null, NoMode); // TODO: These should not need a type.\n\n  fiber.elementType = 'DELETED';\n  fiber.type = 'DELETED';\n  return fiber;\n}\nfunction createFiberFromPortal(portal, mode, expirationTime) {\n  var pendingProps = portal.children !== null ? portal.children : [];\n  var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n  fiber.expirationTime = expirationTime;\n  fiber.stateNode = {\n    containerInfo: portal.containerInfo,\n    pendingChildren: null,\n    // Used by persistent updates\n    implementation: portal.implementation\n  };\n  return fiber;\n} // Used for stashing WIP properties to replay failed work in DEV.\n\nfunction assignFiberPropertiesInDEV(target, source) {\n  if (target === null) {\n    // This Fiber's initial properties will always be overwritten.\n    // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n    target = createFiber(IndeterminateComponent, null, null, NoMode);\n  } // This is intentionally written as a list of all properties.\n  // We tried to use Object.assign() instead but this is called in\n  // the hottest path, and Object.assign() was too slow:\n  // https://github.com/facebook/react/issues/12502\n  // This code is DEV-only so size is not a concern.\n\n\n  target.tag = source.tag;\n  target.key = source.key;\n  target.elementType = source.elementType;\n  target.type = source.type;\n  target.stateNode = source.stateNode;\n  target.return = source.return;\n  target.child = source.child;\n  target.sibling = source.sibling;\n  target.index = source.index;\n  target.ref = source.ref;\n  target.pendingProps = source.pendingProps;\n  target.memoizedProps = source.memoizedProps;\n  target.updateQueue = source.updateQueue;\n  target.memoizedState = source.memoizedState;\n  target.dependencies = source.dependencies;\n  target.mode = source.mode;\n  target.effectTag = source.effectTag;\n  target.nextEffect = source.nextEffect;\n  target.firstEffect = source.firstEffect;\n  target.lastEffect = source.lastEffect;\n  target.expirationTime = source.expirationTime;\n  target.childExpirationTime = source.childExpirationTime;\n  target.alternate = source.alternate;\n\n  {\n    target.actualDuration = source.actualDuration;\n    target.actualStartTime = source.actualStartTime;\n    target.selfBaseDuration = source.selfBaseDuration;\n    target.treeBaseDuration = source.treeBaseDuration;\n  }\n\n  {\n    target._debugID = source._debugID;\n  }\n\n  target._debugSource = source._debugSource;\n  target._debugOwner = source._debugOwner;\n  target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;\n  target._debugNeedsRemount = source._debugNeedsRemount;\n  target._debugHookTypes = source._debugHookTypes;\n  return target;\n}\n\nfunction FiberRootNode(containerInfo, tag, hydrate) {\n  this.tag = tag;\n  this.current = null;\n  this.containerInfo = containerInfo;\n  this.pendingChildren = null;\n  this.pingCache = null;\n  this.finishedExpirationTime = NoWork;\n  this.finishedWork = null;\n  this.timeoutHandle = noTimeout;\n  this.context = null;\n  this.pendingContext = null;\n  this.hydrate = hydrate;\n  this.callbackNode = null;\n  this.callbackPriority = NoPriority;\n  this.firstPendingTime = NoWork;\n  this.firstSuspendedTime = NoWork;\n  this.lastSuspendedTime = NoWork;\n  this.nextKnownPendingLevel = NoWork;\n  this.lastPingedTime = NoWork;\n  this.lastExpiredTime = NoWork;\n\n  {\n    this.interactionThreadID = tracing.unstable_getThreadID();\n    this.memoizedInteractions = new Set();\n    this.pendingInteractionMap = new Map();\n  }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate, hydrationCallbacks) {\n  var root = new FiberRootNode(containerInfo, tag, hydrate);\n  // stateNode is any.\n\n\n  var uninitializedFiber = createHostRootFiber(tag);\n  root.current = uninitializedFiber;\n  uninitializedFiber.stateNode = root;\n  initializeUpdateQueue(uninitializedFiber);\n  return root;\n}\nfunction isRootSuspendedAtTime(root, expirationTime) {\n  var firstSuspendedTime = root.firstSuspendedTime;\n  var lastSuspendedTime = root.lastSuspendedTime;\n  return firstSuspendedTime !== NoWork && firstSuspendedTime >= expirationTime && lastSuspendedTime <= expirationTime;\n}\nfunction markRootSuspendedAtTime(root, expirationTime) {\n  var firstSuspendedTime = root.firstSuspendedTime;\n  var lastSuspendedTime = root.lastSuspendedTime;\n\n  if (firstSuspendedTime < expirationTime) {\n    root.firstSuspendedTime = expirationTime;\n  }\n\n  if (lastSuspendedTime > expirationTime || firstSuspendedTime === NoWork) {\n    root.lastSuspendedTime = expirationTime;\n  }\n\n  if (expirationTime <= root.lastPingedTime) {\n    root.lastPingedTime = NoWork;\n  }\n\n  if (expirationTime <= root.lastExpiredTime) {\n    root.lastExpiredTime = NoWork;\n  }\n}\nfunction markRootUpdatedAtTime(root, expirationTime) {\n  // Update the range of pending times\n  var firstPendingTime = root.firstPendingTime;\n\n  if (expirationTime > firstPendingTime) {\n    root.firstPendingTime = expirationTime;\n  } // Update the range of suspended times. Treat everything lower priority or\n  // equal to this update as unsuspended.\n\n\n  var firstSuspendedTime = root.firstSuspendedTime;\n\n  if (firstSuspendedTime !== NoWork) {\n    if (expirationTime >= firstSuspendedTime) {\n      // The entire suspended range is now unsuspended.\n      root.firstSuspendedTime = root.lastSuspendedTime = root.nextKnownPendingLevel = NoWork;\n    } else if (expirationTime >= root.lastSuspendedTime) {\n      root.lastSuspendedTime = expirationTime + 1;\n    } // This is a pending level. Check if it's higher priority than the next\n    // known pending level.\n\n\n    if (expirationTime > root.nextKnownPendingLevel) {\n      root.nextKnownPendingLevel = expirationTime;\n    }\n  }\n}\nfunction markRootFinishedAtTime(root, finishedExpirationTime, remainingExpirationTime) {\n  // Update the range of pending times\n  root.firstPendingTime = remainingExpirationTime; // Update the range of suspended times. Treat everything higher priority or\n  // equal to this update as unsuspended.\n\n  if (finishedExpirationTime <= root.lastSuspendedTime) {\n    // The entire suspended range is now unsuspended.\n    root.firstSuspendedTime = root.lastSuspendedTime = root.nextKnownPendingLevel = NoWork;\n  } else if (finishedExpirationTime <= root.firstSuspendedTime) {\n    // Part of the suspended range is now unsuspended. Narrow the range to\n    // include everything between the unsuspended time (non-inclusive) and the\n    // last suspended time.\n    root.firstSuspendedTime = finishedExpirationTime - 1;\n  }\n\n  if (finishedExpirationTime <= root.lastPingedTime) {\n    // Clear the pinged time\n    root.lastPingedTime = NoWork;\n  }\n\n  if (finishedExpirationTime <= root.lastExpiredTime) {\n    // Clear the expired time\n    root.lastExpiredTime = NoWork;\n  }\n}\nfunction markRootExpiredAtTime(root, expirationTime) {\n  var lastExpiredTime = root.lastExpiredTime;\n\n  if (lastExpiredTime === NoWork || lastExpiredTime > expirationTime) {\n    root.lastExpiredTime = expirationTime;\n  }\n}\n\nvar didWarnAboutNestedUpdates;\nvar didWarnAboutFindNodeInStrictMode;\n\n{\n  didWarnAboutNestedUpdates = false;\n  didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n  if (!parentComponent) {\n    return emptyContextObject;\n  }\n\n  var fiber = get(parentComponent);\n  var parentContext = findCurrentUnmaskedContext(fiber);\n\n  if (fiber.tag === ClassComponent) {\n    var Component = fiber.type;\n\n    if (isContextProvider(Component)) {\n      return processChildContext(fiber, Component, parentContext);\n    }\n  }\n\n  return parentContext;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n  {\n    var fiber = get(component);\n\n    if (fiber === undefined) {\n      if (typeof component.render === 'function') {\n        {\n          {\n            throw Error( \"Unable to find node on an unmounted component.\" );\n          }\n        }\n      } else {\n        {\n          {\n            throw Error( \"Argument appears to not be a ReactComponent. Keys: \" + Object.keys(component) );\n          }\n        }\n      }\n    }\n\n    var hostFiber = findCurrentHostFiber(fiber);\n\n    if (hostFiber === null) {\n      return null;\n    }\n\n    if (hostFiber.mode & StrictMode) {\n      var componentName = getComponentName(fiber.type) || 'Component';\n\n      if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n        didWarnAboutFindNodeInStrictMode[componentName] = true;\n\n        if (fiber.mode & StrictMode) {\n          error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://fb.me/react-strict-mode-find-node%s', methodName, methodName, componentName, getStackByFiberInDevAndProd(hostFiber));\n        } else {\n          error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://fb.me/react-strict-mode-find-node%s', methodName, methodName, componentName, getStackByFiberInDevAndProd(hostFiber));\n        }\n      }\n    }\n\n    return hostFiber.stateNode;\n  }\n}\n\nfunction createContainer(containerInfo, tag, hydrate, hydrationCallbacks) {\n  return createFiberRoot(containerInfo, tag, hydrate);\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n  {\n    onScheduleRoot(container, element);\n  }\n\n  var current$1 = container.current;\n  var currentTime = requestCurrentTimeForUpdate();\n\n  {\n    // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n    if ('undefined' !== typeof jest) {\n      warnIfUnmockedScheduler(current$1);\n      warnIfNotScopedWithMatchingAct(current$1);\n    }\n  }\n\n  var suspenseConfig = requestCurrentSuspenseConfig();\n  var expirationTime = computeExpirationForFiber(currentTime, current$1, suspenseConfig);\n  var context = getContextForSubtree(parentComponent);\n\n  if (container.context === null) {\n    container.context = context;\n  } else {\n    container.pendingContext = context;\n  }\n\n  {\n    if (isRendering && current !== null && !didWarnAboutNestedUpdates) {\n      didWarnAboutNestedUpdates = true;\n\n      error('Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');\n    }\n  }\n\n  var update = createUpdate(expirationTime, suspenseConfig); // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n\n  update.payload = {\n    element: element\n  };\n  callback = callback === undefined ? null : callback;\n\n  if (callback !== null) {\n    {\n      if (typeof callback !== 'function') {\n        error('render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n      }\n    }\n\n    update.callback = callback;\n  }\n\n  enqueueUpdate(current$1, update);\n  scheduleWork(current$1, expirationTime);\n  return expirationTime;\n}\nfunction getPublicRootInstance(container) {\n  var containerFiber = container.current;\n\n  if (!containerFiber.child) {\n    return null;\n  }\n\n  switch (containerFiber.child.tag) {\n    case HostComponent:\n      return getPublicInstance(containerFiber.child.stateNode);\n\n    default:\n      return containerFiber.child.stateNode;\n  }\n}\n\nfunction markRetryTimeImpl(fiber, retryTime) {\n  var suspenseState = fiber.memoizedState;\n\n  if (suspenseState !== null && suspenseState.dehydrated !== null) {\n    if (suspenseState.retryTime < retryTime) {\n      suspenseState.retryTime = retryTime;\n    }\n  }\n} // Increases the priority of thennables when they resolve within this boundary.\n\n\nfunction markRetryTimeIfNotHydrated(fiber, retryTime) {\n  markRetryTimeImpl(fiber, retryTime);\n  var alternate = fiber.alternate;\n\n  if (alternate) {\n    markRetryTimeImpl(alternate, retryTime);\n  }\n}\n\nfunction attemptUserBlockingHydration$1(fiber) {\n  if (fiber.tag !== SuspenseComponent) {\n    // We ignore HostRoots here because we can't increase\n    // their priority and they should not suspend on I/O,\n    // since you have to wrap anything that might suspend in\n    // Suspense.\n    return;\n  }\n\n  var expTime = computeInteractiveExpiration(requestCurrentTimeForUpdate());\n  scheduleWork(fiber, expTime);\n  markRetryTimeIfNotHydrated(fiber, expTime);\n}\nfunction attemptContinuousHydration$1(fiber) {\n  if (fiber.tag !== SuspenseComponent) {\n    // We ignore HostRoots here because we can't increase\n    // their priority and they should not suspend on I/O,\n    // since you have to wrap anything that might suspend in\n    // Suspense.\n    return;\n  }\n\n  scheduleWork(fiber, ContinuousHydration);\n  markRetryTimeIfNotHydrated(fiber, ContinuousHydration);\n}\nfunction attemptHydrationAtCurrentPriority$1(fiber) {\n  if (fiber.tag !== SuspenseComponent) {\n    // We ignore HostRoots here because we can't increase\n    // their priority other than synchronously flush it.\n    return;\n  }\n\n  var currentTime = requestCurrentTimeForUpdate();\n  var expTime = computeExpirationForFiber(currentTime, fiber, null);\n  scheduleWork(fiber, expTime);\n  markRetryTimeIfNotHydrated(fiber, expTime);\n}\nfunction findHostInstanceWithNoPortals(fiber) {\n  var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n\n  if (hostFiber === null) {\n    return null;\n  }\n\n  if (hostFiber.tag === FundamentalComponent) {\n    return hostFiber.stateNode.instance;\n  }\n\n  return hostFiber.stateNode;\n}\n\nvar shouldSuspendImpl = function (fiber) {\n  return false;\n};\n\nfunction shouldSuspend(fiber) {\n  return shouldSuspendImpl(fiber);\n}\nvar overrideHookState = null;\nvar overrideProps = null;\nvar scheduleUpdate = null;\nvar setSuspenseHandler = null;\n\n{\n  var copyWithSetImpl = function (obj, path, idx, value) {\n    if (idx >= path.length) {\n      return value;\n    }\n\n    var key = path[idx];\n    var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj); // $FlowFixMe number or string is fine here\n\n    updated[key] = copyWithSetImpl(obj[key], path, idx + 1, value);\n    return updated;\n  };\n\n  var copyWithSet = function (obj, path, value) {\n    return copyWithSetImpl(obj, path, 0, value);\n  }; // Support DevTools editable values for useState and useReducer.\n\n\n  overrideHookState = function (fiber, id, path, value) {\n    // For now, the \"id\" of stateful hooks is just the stateful hook index.\n    // This may change in the future with e.g. nested hooks.\n    var currentHook = fiber.memoizedState;\n\n    while (currentHook !== null && id > 0) {\n      currentHook = currentHook.next;\n      id--;\n    }\n\n    if (currentHook !== null) {\n      var newState = copyWithSet(currentHook.memoizedState, path, value);\n      currentHook.memoizedState = newState;\n      currentHook.baseState = newState; // We aren't actually adding an update to the queue,\n      // because there is no update we can add for useReducer hooks that won't trigger an error.\n      // (There's no appropriate action type for DevTools overrides.)\n      // As a result though, React will see the scheduled update as a noop and bailout.\n      // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n      fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n      scheduleWork(fiber, Sync);\n    }\n  }; // Support DevTools props for function components, forwardRef, memo, host components, etc.\n\n\n  overrideProps = function (fiber, path, value) {\n    fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n\n    if (fiber.alternate) {\n      fiber.alternate.pendingProps = fiber.pendingProps;\n    }\n\n    scheduleWork(fiber, Sync);\n  };\n\n  scheduleUpdate = function (fiber) {\n    scheduleWork(fiber, Sync);\n  };\n\n  setSuspenseHandler = function (newShouldSuspendImpl) {\n    shouldSuspendImpl = newShouldSuspendImpl;\n  };\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n  var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n  return injectInternals(_assign({}, devToolsConfig, {\n    overrideHookState: overrideHookState,\n    overrideProps: overrideProps,\n    setSuspenseHandler: setSuspenseHandler,\n    scheduleUpdate: scheduleUpdate,\n    currentDispatcherRef: ReactCurrentDispatcher,\n    findHostInstanceByFiber: function (fiber) {\n      var hostFiber = findCurrentHostFiber(fiber);\n\n      if (hostFiber === null) {\n        return null;\n      }\n\n      return hostFiber.stateNode;\n    },\n    findFiberByHostInstance: function (instance) {\n      if (!findFiberByHostInstance) {\n        // Might not be implemented by the renderer.\n        return null;\n      }\n\n      return findFiberByHostInstance(instance);\n    },\n    // React Refresh\n    findHostInstancesForRefresh:  findHostInstancesForRefresh ,\n    scheduleRefresh:  scheduleRefresh ,\n    scheduleRoot:  scheduleRoot ,\n    setRefreshHandler:  setRefreshHandler ,\n    // Enables DevTools to append owner stacks to error messages in DEV mode.\n    getCurrentFiber:  function () {\n      return current;\n    } \n  }));\n}\nvar IsSomeRendererActing$1 = ReactSharedInternals.IsSomeRendererActing;\n\nfunction ReactDOMRoot(container, options) {\n  this._internalRoot = createRootImpl(container, ConcurrentRoot, options);\n}\n\nfunction ReactDOMBlockingRoot(container, tag, options) {\n  this._internalRoot = createRootImpl(container, tag, options);\n}\n\nReactDOMRoot.prototype.render = ReactDOMBlockingRoot.prototype.render = function (children) {\n  var root = this._internalRoot;\n\n  {\n    if (typeof arguments[1] === 'function') {\n      error('render(...): does not support the second callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n    }\n\n    var container = root.containerInfo;\n\n    if (container.nodeType !== COMMENT_NODE) {\n      var hostInstance = findHostInstanceWithNoPortals(root.current);\n\n      if (hostInstance) {\n        if (hostInstance.parentNode !== container) {\n          error('render(...): It looks like the React-rendered content of the ' + 'root container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + \"root.unmount() to empty a root's container.\");\n        }\n      }\n    }\n  }\n\n  updateContainer(children, root, null, null);\n};\n\nReactDOMRoot.prototype.unmount = ReactDOMBlockingRoot.prototype.unmount = function () {\n  {\n    if (typeof arguments[0] === 'function') {\n      error('unmount(...): does not support a callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n    }\n  }\n\n  var root = this._internalRoot;\n  var container = root.containerInfo;\n  updateContainer(null, root, null, function () {\n    unmarkContainerAsRoot(container);\n  });\n};\n\nfunction createRootImpl(container, tag, options) {\n  // Tag is either LegacyRoot or Concurrent Root\n  var hydrate = options != null && options.hydrate === true;\n  var hydrationCallbacks = options != null && options.hydrationOptions || null;\n  var root = createContainer(container, tag, hydrate);\n  markContainerAsRoot(root.current, container);\n\n  if (hydrate && tag !== LegacyRoot) {\n    var doc = container.nodeType === DOCUMENT_NODE ? container : container.ownerDocument;\n    eagerlyTrapReplayableEvents(container, doc);\n  }\n\n  return root;\n}\nfunction createLegacyRoot(container, options) {\n  return new ReactDOMBlockingRoot(container, LegacyRoot, options);\n}\nfunction isValidContainer(node) {\n  return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\nvar topLevelUpdateWarnings;\nvar warnedAboutHydrateAPI = false;\n\n{\n  topLevelUpdateWarnings = function (container) {\n    if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n      var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);\n\n      if (hostInstance) {\n        if (hostInstance.parentNode !== container) {\n          error('render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n        }\n      }\n    }\n\n    var isRootRenderedBySomeReact = !!container._reactRootContainer;\n    var rootEl = getReactRootElementInContainer(container);\n    var hasNonRootReactChild = !!(rootEl && getInstanceFromNode$1(rootEl));\n\n    if (hasNonRootReactChild && !isRootRenderedBySomeReact) {\n      error('render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n    }\n\n    if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n      error('render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n    }\n  };\n}\n\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOCUMENT_NODE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n  var rootElement = getReactRootElementInContainer(container);\n  return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nfunction legacyCreateRootFromDOMContainer(container, forceHydrate) {\n  var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container); // First clear any existing content.\n\n  if (!shouldHydrate) {\n    var warned = false;\n    var rootSibling;\n\n    while (rootSibling = container.lastChild) {\n      {\n        if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n          warned = true;\n\n          error('render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n        }\n      }\n\n      container.removeChild(rootSibling);\n    }\n  }\n\n  {\n    if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n      warnedAboutHydrateAPI = true;\n\n      warn('render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v17. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n    }\n  }\n\n  return createLegacyRoot(container, shouldHydrate ? {\n    hydrate: true\n  } : undefined);\n}\n\nfunction warnOnInvalidCallback$1(callback, callerName) {\n  {\n    if (callback !== null && typeof callback !== 'function') {\n      error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n    }\n  }\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n  {\n    topLevelUpdateWarnings(container);\n    warnOnInvalidCallback$1(callback === undefined ? null : callback, 'render');\n  } // TODO: Without `any` type, Flow says \"Property cannot be accessed on any\n  // member of intersection type.\" Whyyyyyy.\n\n\n  var root = container._reactRootContainer;\n  var fiberRoot;\n\n  if (!root) {\n    // Initial mount\n    root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);\n    fiberRoot = root._internalRoot;\n\n    if (typeof callback === 'function') {\n      var originalCallback = callback;\n\n      callback = function () {\n        var instance = getPublicRootInstance(fiberRoot);\n        originalCallback.call(instance);\n      };\n    } // Initial mount should not be batched.\n\n\n    unbatchedUpdates(function () {\n      updateContainer(children, fiberRoot, parentComponent, callback);\n    });\n  } else {\n    fiberRoot = root._internalRoot;\n\n    if (typeof callback === 'function') {\n      var _originalCallback = callback;\n\n      callback = function () {\n        var instance = getPublicRootInstance(fiberRoot);\n\n        _originalCallback.call(instance);\n      };\n    } // Update\n\n\n    updateContainer(children, fiberRoot, parentComponent, callback);\n  }\n\n  return getPublicRootInstance(fiberRoot);\n}\n\nfunction findDOMNode(componentOrElement) {\n  {\n    var owner = ReactCurrentOwner$3.current;\n\n    if (owner !== null && owner.stateNode !== null) {\n      var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n\n      if (!warnedAboutRefsInRender) {\n        error('%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component');\n      }\n\n      owner.stateNode._warnedAboutRefsInRender = true;\n    }\n  }\n\n  if (componentOrElement == null) {\n    return null;\n  }\n\n  if (componentOrElement.nodeType === ELEMENT_NODE) {\n    return componentOrElement;\n  }\n\n  {\n    return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n  }\n}\nfunction hydrate(element, container, callback) {\n  if (!isValidContainer(container)) {\n    {\n      throw Error( \"Target container is not a DOM element.\" );\n    }\n  }\n\n  {\n    var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n    if (isModernRoot) {\n      error('You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call createRoot(container, {hydrate: true}).render(element)?');\n    }\n  } // TODO: throw or warn if we couldn't hydrate?\n\n\n  return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n}\nfunction render(element, container, callback) {\n  if (!isValidContainer(container)) {\n    {\n      throw Error( \"Target container is not a DOM element.\" );\n    }\n  }\n\n  {\n    var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n    if (isModernRoot) {\n      error('You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call root.render(element)?');\n    }\n  }\n\n  return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n}\nfunction unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n  if (!isValidContainer(containerNode)) {\n    {\n      throw Error( \"Target container is not a DOM element.\" );\n    }\n  }\n\n  if (!(parentComponent != null && has(parentComponent))) {\n    {\n      throw Error( \"parentComponent must be a valid React Component\" );\n    }\n  }\n\n  return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n}\nfunction unmountComponentAtNode(container) {\n  if (!isValidContainer(container)) {\n    {\n      throw Error( \"unmountComponentAtNode(...): Target container is not a DOM element.\" );\n    }\n  }\n\n  {\n    var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n    if (isModernRoot) {\n      error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.unmount()?');\n    }\n  }\n\n  if (container._reactRootContainer) {\n    {\n      var rootEl = getReactRootElementInContainer(container);\n      var renderedByDifferentReact = rootEl && !getInstanceFromNode$1(rootEl);\n\n      if (renderedByDifferentReact) {\n        error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n      }\n    } // Unmount should not be batched.\n\n\n    unbatchedUpdates(function () {\n      legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n        // $FlowFixMe This should probably use `delete container._reactRootContainer`\n        container._reactRootContainer = null;\n        unmarkContainerAsRoot(container);\n      });\n    }); // If you call unmountComponentAtNode twice in quick succession, you'll\n    // get `true` twice. That's probably fine?\n\n    return true;\n  } else {\n    {\n      var _rootEl = getReactRootElementInContainer(container);\n\n      var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode$1(_rootEl)); // Check if the container itself is a React root node.\n\n      var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n      if (hasNonRootReactChild) {\n        error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n      }\n    }\n\n    return false;\n  }\n}\n\nfunction createPortal(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  return {\n    // This tag allow us to uniquely identify this as a React Portal\n    $$typeof: REACT_PORTAL_TYPE,\n    key: key == null ? null : '' + key,\n    children: children,\n    containerInfo: containerInfo,\n    implementation: implementation\n  };\n}\n\nvar ReactVersion = '16.13.1';\n\nsetAttemptUserBlockingHydration(attemptUserBlockingHydration$1);\nsetAttemptContinuousHydration(attemptContinuousHydration$1);\nsetAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);\nvar didWarnAboutUnstableCreatePortal = false;\n\n{\n  if (typeof Map !== 'function' || // $FlowIssue Flow incorrectly thinks Map has no prototype\n  Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || // $FlowIssue Flow incorrectly thinks Set has no prototype\n  Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n    error('React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n  }\n}\n\nsetRestoreImplementation(restoreControlledState$3);\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates$1, flushDiscreteUpdates, batchedEventUpdates$1);\n\nfunction createPortal$1(children, container) {\n  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (!isValidContainer(container)) {\n    {\n      throw Error( \"Target container is not a DOM element.\" );\n    }\n  } // TODO: pass ReactDOM portal implementation as third argument\n  // $FlowFixMe The Flow type is opaque but there's no way to actually create it.\n\n\n  return createPortal(children, container, null, key);\n}\n\nfunction renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n\n  return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);\n}\n\nfunction unstable_createPortal(children, container) {\n  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  {\n    if (!didWarnAboutUnstableCreatePortal) {\n      didWarnAboutUnstableCreatePortal = true;\n\n      warn('The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the \"unstable_\" prefix.');\n    }\n  }\n\n  return createPortal$1(children, container, key);\n}\n\nvar Internals = {\n  // Keep in sync with ReactDOMUnstableNativeDependencies.js\n  // ReactTestUtils.js, and ReactTestUtilsAct.js. This is an array for better minification.\n  Events: [getInstanceFromNode$1, getNodeFromInstance$1, getFiberCurrentPropsFromNode$1, injectEventPluginsByName, eventNameDispatchConfigs, accumulateTwoPhaseDispatches, accumulateDirectDispatches, enqueueStateRestore, restoreStateIfNeeded, dispatchEvent, runEventsInBatch, flushPassiveEffects, IsThisRendererActing]\n};\nvar foundDevTools = injectIntoDevTools({\n  findFiberByHostInstance: getClosestInstanceFromNode,\n  bundleType:  1 ,\n  version: ReactVersion,\n  rendererPackageName: 'react-dom'\n});\n\n{\n  if (!foundDevTools && canUseDOM && window.top === window.self) {\n    // If we're in Chrome or Firefox, provide a download link if not installed.\n    if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n      var protocol = window.location.protocol; // Don't warn in exotic cases like chrome-extension://.\n\n      if (/^(https?|file):$/.test(protocol)) {\n        // eslint-disable-next-line react-internal/no-production-logging\n        console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://fb.me/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://fb.me/react-devtools-faq' : ''), 'font-weight:bold');\n      }\n    }\n  }\n}\n\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\nexports.createPortal = createPortal$1;\nexports.findDOMNode = findDOMNode;\nexports.flushSync = flushSync;\nexports.hydrate = hydrate;\nexports.render = render;\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unstable_batchedUpdates = batchedUpdates$1;\nexports.unstable_createPortal = unstable_createPortal;\nexports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;\nexports.version = ReactVersion;\n  })();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-dom/cjs/react-dom.development.js?");

/***/ }),

/***/ "./node_modules/react-dom/index.js":
/*!*****************************************!*\
  !*** ./node_modules/react-dom/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (true) {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"./node_modules/react-dom/cjs/react-dom.development.js\");\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-dom/index.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/activity.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/activity.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Activity = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"22 12 18 12 15 21 9 3 6 12 2 12\"\n  }));\n});\nActivity.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nActivity.displayName = 'Activity';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Activity);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/activity.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/airplay.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/airplay.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Airplay = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"12 15 17 21 7 21 12 15\"\n  }));\n});\nAirplay.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAirplay.displayName = 'Airplay';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Airplay);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/airplay.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/alert-circle.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/alert-circle.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlertCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"16\",\n    x2: \"12.01\",\n    y2: \"16\"\n  }));\n});\nAlertCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlertCircle.displayName = 'AlertCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlertCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/alert-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/alert-octagon.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/alert-octagon.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlertOctagon = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"16\",\n    x2: \"12.01\",\n    y2: \"16\"\n  }));\n});\nAlertOctagon.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlertOctagon.displayName = 'AlertOctagon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlertOctagon);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/alert-octagon.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/alert-triangle.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/alert-triangle.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlertTriangle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"9\",\n    x2: \"12\",\n    y2: \"13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"17\",\n    x2: \"12.01\",\n    y2: \"17\"\n  }));\n});\nAlertTriangle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlertTriangle.displayName = 'AlertTriangle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlertTriangle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/alert-triangle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/align-center.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/align-center.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlignCenter = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"10\",\n    x2: \"6\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"6\",\n    x2: \"3\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"14\",\n    x2: \"3\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"18\",\n    x2: \"6\",\n    y2: \"18\"\n  }));\n});\nAlignCenter.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlignCenter.displayName = 'AlignCenter';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlignCenter);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/align-center.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/align-justify.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/align-justify.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlignJustify = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"10\",\n    x2: \"3\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"6\",\n    x2: \"3\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"14\",\n    x2: \"3\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"18\",\n    x2: \"3\",\n    y2: \"18\"\n  }));\n});\nAlignJustify.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlignJustify.displayName = 'AlignJustify';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlignJustify);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/align-justify.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/align-left.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/align-left.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlignLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"10\",\n    x2: \"3\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"6\",\n    x2: \"3\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"14\",\n    x2: \"3\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"18\",\n    x2: \"3\",\n    y2: \"18\"\n  }));\n});\nAlignLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlignLeft.displayName = 'AlignLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlignLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/align-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/align-right.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/align-right.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AlignRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"10\",\n    x2: \"7\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"6\",\n    x2: \"3\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"14\",\n    x2: \"3\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"18\",\n    x2: \"7\",\n    y2: \"18\"\n  }));\n});\nAlignRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAlignRight.displayName = 'AlignRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AlignRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/align-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/anchor.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/anchor.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Anchor = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"5\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22\",\n    x2: \"12\",\n    y2: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 12H2a10 10 0 0 0 20 0h-3\"\n  }));\n});\nAnchor.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAnchor.displayName = 'Anchor';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Anchor);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/anchor.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/aperture.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/aperture.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Aperture = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14.31\",\n    y1: \"8\",\n    x2: \"20.05\",\n    y2: \"17.94\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9.69\",\n    y1: \"8\",\n    x2: \"21.17\",\n    y2: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"7.38\",\n    y1: \"12\",\n    x2: \"13.12\",\n    y2: \"2.06\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9.69\",\n    y1: \"16\",\n    x2: \"3.95\",\n    y2: \"6.06\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14.31\",\n    y1: \"16\",\n    x2: \"2.83\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16.62\",\n    y1: \"12\",\n    x2: \"10.88\",\n    y2: \"21.94\"\n  }));\n});\nAperture.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAperture.displayName = 'Aperture';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Aperture);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/aperture.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/archive.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/archive.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Archive = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"21 8 21 21 3 21 3 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"3\",\n    width: \"22\",\n    height: \"5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"12\",\n    x2: \"14\",\n    y2: \"12\"\n  }));\n});\nArchive.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArchive.displayName = 'Archive';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Archive);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/archive.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-down-circle.js":
/*!********************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-down-circle.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowDownCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8 12 12 16 16 12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"16\"\n  }));\n});\nArrowDownCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowDownCircle.displayName = 'ArrowDownCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowDownCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-down-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-down-left.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-down-left.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowDownLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"7\",\n    x2: \"7\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 17 7 17 7 7\"\n  }));\n});\nArrowDownLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowDownLeft.displayName = 'ArrowDownLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowDownLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-down-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-down-right.js":
/*!*******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-down-right.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowDownRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"7\",\n    y1: \"7\",\n    x2: \"17\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 7 17 17 7 17\"\n  }));\n});\nArrowDownRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowDownRight.displayName = 'ArrowDownRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowDownRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-down-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-down.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-down.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"5\",\n    x2: \"12\",\n    y2: \"19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"19 12 12 19 5 12\"\n  }));\n});\nArrowDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowDown.displayName = 'ArrowDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-left-circle.js":
/*!********************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-left-circle.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowLeftCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12 8 8 12 12 16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"12\",\n    x2: \"8\",\n    y2: \"12\"\n  }));\n});\nArrowLeftCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowLeftCircle.displayName = 'ArrowLeftCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowLeftCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-left-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-left.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-left.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"19\",\n    y1: \"12\",\n    x2: \"5\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12 19 5 12 12 5\"\n  }));\n});\nArrowLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowLeft.displayName = 'ArrowLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-right-circle.js":
/*!*********************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-right-circle.js ***!
  \*********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowRightCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12 16 16 12 12 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }));\n});\nArrowRightCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowRightCircle.displayName = 'ArrowRightCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowRightCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-right-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-right.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-right.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"5\",\n    y1: \"12\",\n    x2: \"19\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12 5 19 12 12 19\"\n  }));\n});\nArrowRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowRight.displayName = 'ArrowRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-up-circle.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-up-circle.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowUpCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 12 12 8 8 12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"16\",\n    x2: \"12\",\n    y2: \"8\"\n  }));\n});\nArrowUpCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowUpCircle.displayName = 'ArrowUpCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowUpCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-up-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-up-left.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-up-left.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowUpLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"17\",\n    x2: \"7\",\n    y2: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 17 7 7 17 7\"\n  }));\n});\nArrowUpLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowUpLeft.displayName = 'ArrowUpLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowUpLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-up-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-up-right.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-up-right.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowUpRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"7\",\n    y1: \"17\",\n    x2: \"17\",\n    y2: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 7 17 7 17 17\"\n  }));\n});\nArrowUpRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowUpRight.displayName = 'ArrowUpRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowUpRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-up-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/arrow-up.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/arrow-up.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ArrowUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"19\",\n    x2: \"12\",\n    y2: \"5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"5 12 12 5 19 12\"\n  }));\n});\nArrowUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nArrowUp.displayName = 'ArrowUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ArrowUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/arrow-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/at-sign.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/at-sign.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar AtSign = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"\n  }));\n});\nAtSign.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAtSign.displayName = 'AtSign';\n/* harmony default export */ __webpack_exports__[\"default\"] = (AtSign);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/at-sign.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/award.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/award.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Award = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"8\",\n    r: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"\n  }));\n});\nAward.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nAward.displayName = 'Award';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Award);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/award.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bar-chart-2.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bar-chart-2.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar BarChart2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"20\",\n    x2: \"18\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"20\",\n    x2: \"12\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"20\",\n    x2: \"6\",\n    y2: \"14\"\n  }));\n});\nBarChart2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBarChart2.displayName = 'BarChart2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (BarChart2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bar-chart-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bar-chart.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bar-chart.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar BarChart = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"20\",\n    x2: \"12\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"20\",\n    x2: \"18\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"20\",\n    x2: \"6\",\n    y2: \"16\"\n  }));\n});\nBarChart.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBarChart.displayName = 'BarChart';\n/* harmony default export */ __webpack_exports__[\"default\"] = (BarChart);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bar-chart.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/battery-charging.js":
/*!*******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/battery-charging.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar BatteryCharging = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"13\",\n    x2: \"23\",\n    y2: \"11\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"11 6 7 12 13 12 9 18\"\n  }));\n});\nBatteryCharging.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBatteryCharging.displayName = 'BatteryCharging';\n/* harmony default export */ __webpack_exports__[\"default\"] = (BatteryCharging);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/battery-charging.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/battery.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/battery.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Battery = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"6\",\n    width: \"18\",\n    height: \"12\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"13\",\n    x2: \"23\",\n    y2: \"11\"\n  }));\n});\nBattery.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBattery.displayName = 'Battery';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Battery);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/battery.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bell-off.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bell-off.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar BellOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M13.73 21a2 2 0 0 1-3.46 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18.63 13A17.89 17.89 0 0 1 18 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 8a6 6 0 0 0-9.33-5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }));\n});\nBellOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBellOff.displayName = 'BellOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (BellOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bell-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bell.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bell.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Bell = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M13.73 21a2 2 0 0 1-3.46 0\"\n  }));\n});\nBell.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBell.displayName = 'Bell';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Bell);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bell.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bluetooth.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bluetooth.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Bluetooth = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"\n  }));\n});\nBluetooth.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBluetooth.displayName = 'Bluetooth';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Bluetooth);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bluetooth.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bold.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bold.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Bold = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"\n  }));\n});\nBold.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBold.displayName = 'Bold';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Bold);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bold.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/book-open.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/book-open.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar BookOpen = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"\n  }));\n});\nBookOpen.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBookOpen.displayName = 'BookOpen';\n/* harmony default export */ __webpack_exports__[\"default\"] = (BookOpen);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/book-open.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/book.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/book.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Book = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\n  }));\n});\nBook.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBook.displayName = 'Book';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Book);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/book.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/bookmark.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/bookmark.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Bookmark = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"\n  }));\n});\nBookmark.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBookmark.displayName = 'Bookmark';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Bookmark);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/bookmark.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/box.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/box.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Box = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"3.27 6.96 12 12.01 20.73 6.96\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22.08\",\n    x2: \"12\",\n    y2: \"12\"\n  }));\n});\nBox.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBox.displayName = 'Box';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Box);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/box.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/briefcase.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/briefcase.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Briefcase = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"7\",\n    width: \"20\",\n    height: \"14\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"\n  }));\n});\nBriefcase.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nBriefcase.displayName = 'Briefcase';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Briefcase);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/briefcase.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/calendar.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/calendar.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Calendar = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"4\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"2\",\n    x2: \"16\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"2\",\n    x2: \"8\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"10\",\n    x2: \"21\",\n    y2: \"10\"\n  }));\n});\nCalendar.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCalendar.displayName = 'Calendar';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Calendar);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/calendar.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/camera-off.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/camera-off.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CameraOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"\n  }));\n});\nCameraOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCameraOff.displayName = 'CameraOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CameraOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/camera-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/camera.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/camera.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Camera = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"13\",\n    r: \"4\"\n  }));\n});\nCamera.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCamera.displayName = 'Camera';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Camera);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/camera.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cast.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cast.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Cast = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"20\",\n    x2: \"2.01\",\n    y2: \"20\"\n  }));\n});\nCast.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCast.displayName = 'Cast';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cast);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cast.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/check-circle.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/check-circle.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CheckCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"22 4 12 14.01 9 11.01\"\n  }));\n});\nCheckCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCheckCircle.displayName = 'CheckCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CheckCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/check-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/check-square.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/check-square.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CheckSquare = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 11 12 14 22 4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"\n  }));\n});\nCheckSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCheckSquare.displayName = 'CheckSquare';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CheckSquare);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/check-square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/check.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/check.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Check = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"20 6 9 17 4 12\"\n  }));\n});\nCheck.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCheck.displayName = 'Check';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Check);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/check.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevron-down.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevron-down.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"6 9 12 15 18 9\"\n  }));\n});\nChevronDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronDown.displayName = 'ChevronDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevron-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevron-left.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevron-left.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"15 18 9 12 15 6\"\n  }));\n});\nChevronLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronLeft.displayName = 'ChevronLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevron-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevron-right.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevron-right.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 18 15 12 9 6\"\n  }));\n});\nChevronRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronRight.displayName = 'ChevronRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevron-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevron-up.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevron-up.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"18 15 12 9 6 15\"\n  }));\n});\nChevronUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronUp.displayName = 'ChevronUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevron-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevrons-down.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevrons-down.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronsDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 13 12 18 17 13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 6 12 11 17 6\"\n  }));\n});\nChevronsDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronsDown.displayName = 'ChevronsDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronsDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevrons-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevrons-left.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevrons-left.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronsLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"11 17 6 12 11 7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"18 17 13 12 18 7\"\n  }));\n});\nChevronsLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronsLeft.displayName = 'ChevronsLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronsLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevrons-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevrons-right.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevrons-right.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronsRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"13 17 18 12 13 7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"6 17 11 12 6 7\"\n  }));\n});\nChevronsRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronsRight.displayName = 'ChevronsRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronsRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevrons-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chevrons-up.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chevrons-up.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ChevronsUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 11 12 6 7 11\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 18 12 13 7 18\"\n  }));\n});\nChevronsUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChevronsUp.displayName = 'ChevronsUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ChevronsUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chevrons-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/chrome.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/chrome.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Chrome = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21.17\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3.95\",\n    y1: \"6.06\",\n    x2: \"8.54\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10.88\",\n    y1: \"21.94\",\n    x2: \"15.46\",\n    y2: \"14\"\n  }));\n});\nChrome.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nChrome.displayName = 'Chrome';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Chrome);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/chrome.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/circle.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/circle.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Circle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }));\n});\nCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCircle.displayName = 'Circle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Circle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/clipboard.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/clipboard.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Clipboard = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"8\",\n    y: \"2\",\n    width: \"8\",\n    height: \"4\",\n    rx: \"1\",\n    ry: \"1\"\n  }));\n});\nClipboard.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nClipboard.displayName = 'Clipboard';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Clipboard);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/clipboard.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/clock.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/clock.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Clock = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12 6 12 12 16 14\"\n  }));\n});\nClock.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nClock.displayName = 'Clock';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Clock);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/clock.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cloud-drizzle.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cloud-drizzle.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CloudDrizzle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"19\",\n    x2: \"8\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"13\",\n    x2: \"8\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"19\",\n    x2: \"16\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"13\",\n    x2: \"16\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"21\",\n    x2: \"12\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"15\",\n    x2: \"12\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"\n  }));\n});\nCloudDrizzle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCloudDrizzle.displayName = 'CloudDrizzle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CloudDrizzle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cloud-drizzle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cloud-lightning.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cloud-lightning.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CloudLightning = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"13 11 9 17 15 17 11 23\"\n  }));\n});\nCloudLightning.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCloudLightning.displayName = 'CloudLightning';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CloudLightning);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cloud-lightning.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cloud-off.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cloud-off.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CloudOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }));\n});\nCloudOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCloudOff.displayName = 'CloudOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CloudOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cloud-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cloud-rain.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cloud-rain.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CloudRain = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"13\",\n    x2: \"16\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"13\",\n    x2: \"8\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"15\",\n    x2: \"12\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"\n  }));\n});\nCloudRain.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCloudRain.displayName = 'CloudRain';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CloudRain);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cloud-rain.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cloud-snow.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cloud-snow.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CloudSnow = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"16\",\n    x2: \"8.01\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"20\",\n    x2: \"8.01\",\n    y2: \"20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"18\",\n    x2: \"12.01\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22\",\n    x2: \"12.01\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"16\",\n    x2: \"16.01\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"20\",\n    x2: \"16.01\",\n    y2: \"20\"\n  }));\n});\nCloudSnow.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCloudSnow.displayName = 'CloudSnow';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CloudSnow);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cloud-snow.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cloud.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cloud.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Cloud = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"\n  }));\n});\nCloud.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCloud.displayName = 'Cloud';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cloud);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cloud.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/code.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/code.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Code = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 18 22 12 16 6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8 6 2 12 8 18\"\n  }));\n});\nCode.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCode.displayName = 'Code';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Code);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/code.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/codepen.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/codepen.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Codepen = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22\",\n    x2: \"12\",\n    y2: \"15.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"22 8.5 12 15.5 2 8.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"2 15.5 12 8.5 22 15.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"2\",\n    x2: \"12\",\n    y2: \"8.5\"\n  }));\n});\nCodepen.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCodepen.displayName = 'Codepen';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Codepen);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/codepen.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/codesandbox.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/codesandbox.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Codesandbox = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7.5 4.21 12 6.81 16.5 4.21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7.5 19.79 7.5 14.6 3 12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"21 12 16.5 14.6 16.5 19.79\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"3.27 6.96 12 12.01 20.73 6.96\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22.08\",\n    x2: \"12\",\n    y2: \"12\"\n  }));\n});\nCodesandbox.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCodesandbox.displayName = 'Codesandbox';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Codesandbox);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/codesandbox.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/coffee.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/coffee.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Coffee = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 8h1a4 4 0 0 1 0 8h-1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"1\",\n    x2: \"6\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"1\",\n    x2: \"10\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14\",\n    y1: \"1\",\n    x2: \"14\",\n    y2: \"4\"\n  }));\n});\nCoffee.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCoffee.displayName = 'Coffee';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Coffee);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/coffee.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/columns.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/columns.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Columns = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"\n  }));\n});\nColumns.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nColumns.displayName = 'Columns';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Columns);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/columns.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/command.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/command.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Command = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"\n  }));\n});\nCommand.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCommand.displayName = 'Command';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Command);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/command.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/compass.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/compass.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Compass = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"\n  }));\n});\nCompass.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCompass.displayName = 'Compass';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Compass);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/compass.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/copy.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/copy.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Copy = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"9\",\n    y: \"9\",\n    width: \"13\",\n    height: \"13\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\n  }));\n});\nCopy.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCopy.displayName = 'Copy';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Copy);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/copy.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-down-left.js":
/*!*******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-down-left.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerDownLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 10 4 15 9 20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 4v7a4 4 0 0 1-4 4H4\"\n  }));\n});\nCornerDownLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerDownLeft.displayName = 'CornerDownLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerDownLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-down-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-down-right.js":
/*!********************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-down-right.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerDownRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"15 10 20 15 15 20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 4v7a4 4 0 0 0 4 4h12\"\n  }));\n});\nCornerDownRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerDownRight.displayName = 'CornerDownRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerDownRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-down-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-left-down.js":
/*!*******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-left-down.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerLeftDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"14 15 9 20 4 15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 4h-7a4 4 0 0 0-4 4v12\"\n  }));\n});\nCornerLeftDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerLeftDown.displayName = 'CornerLeftDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerLeftDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-left-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-left-up.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-left-up.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerLeftUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"14 9 9 4 4 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 20h-7a4 4 0 0 1-4-4V4\"\n  }));\n});\nCornerLeftUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerLeftUp.displayName = 'CornerLeftUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerLeftUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-left-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-right-down.js":
/*!********************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-right-down.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerRightDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"10 15 15 20 20 15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 4h7a4 4 0 0 1 4 4v12\"\n  }));\n});\nCornerRightDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerRightDown.displayName = 'CornerRightDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerRightDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-right-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-right-up.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-right-up.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerRightUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"10 9 15 4 20 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 20h7a4 4 0 0 0 4-4V4\"\n  }));\n});\nCornerRightUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerRightUp.displayName = 'CornerRightUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerRightUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-right-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-up-left.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-up-left.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerUpLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 14 4 9 9 4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 20v-7a4 4 0 0 0-4-4H4\"\n  }));\n});\nCornerUpLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerUpLeft.displayName = 'CornerUpLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerUpLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-up-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/corner-up-right.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/corner-up-right.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CornerUpRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"15 14 20 9 15 4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 20v-7a4 4 0 0 1 4-4h12\"\n  }));\n});\nCornerUpRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCornerUpRight.displayName = 'CornerUpRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CornerUpRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/corner-up-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/cpu.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/cpu.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Cpu = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"4\",\n    y: \"4\",\n    width: \"16\",\n    height: \"16\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"9\",\n    y: \"9\",\n    width: \"6\",\n    height: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"1\",\n    x2: \"9\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"1\",\n    x2: \"15\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"20\",\n    x2: \"9\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"20\",\n    x2: \"15\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"20\",\n    y1: \"9\",\n    x2: \"23\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"20\",\n    y1: \"14\",\n    x2: \"23\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"9\",\n    x2: \"4\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"14\",\n    x2: \"4\",\n    y2: \"14\"\n  }));\n});\nCpu.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCpu.displayName = 'Cpu';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Cpu);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/cpu.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/credit-card.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/credit-card.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar CreditCard = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"4\",\n    width: \"22\",\n    height: \"16\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"10\",\n    x2: \"23\",\n    y2: \"10\"\n  }));\n});\nCreditCard.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCreditCard.displayName = 'CreditCard';\n/* harmony default export */ __webpack_exports__[\"default\"] = (CreditCard);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/credit-card.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/crop.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/crop.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Crop = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6.13 1L6 16a2 2 0 0 0 2 2h15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M1 6.13L16 6a2 2 0 0 1 2 2v15\"\n  }));\n});\nCrop.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCrop.displayName = 'Crop';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Crop);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/crop.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/crosshair.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/crosshair.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Crosshair = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"22\",\n    y1: \"12\",\n    x2: \"18\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"12\",\n    x2: \"2\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"6\",\n    x2: \"12\",\n    y2: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22\",\n    x2: \"12\",\n    y2: \"18\"\n  }));\n});\nCrosshair.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nCrosshair.displayName = 'Crosshair';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Crosshair);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/crosshair.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/database.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/database.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Database = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"ellipse\", {\n    cx: \"12\",\n    cy: \"5\",\n    rx: \"9\",\n    ry: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"\n  }));\n});\nDatabase.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDatabase.displayName = 'Database';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Database);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/database.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/delete.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/delete.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Delete = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"9\",\n    x2: \"12\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"9\",\n    x2: \"18\",\n    y2: \"15\"\n  }));\n});\nDelete.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDelete.displayName = 'Delete';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Delete);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/delete.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/disc.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/disc.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Disc = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"3\"\n  }));\n});\nDisc.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDisc.displayName = 'Disc';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Disc);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/disc.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/divide-circle.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/divide-circle.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar DivideCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"16\",\n    x2: \"12\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }));\n});\nDivideCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDivideCircle.displayName = 'DivideCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (DivideCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/divide-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/divide-square.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/divide-square.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar DivideSquare = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"16\",\n    x2: \"12\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"8\"\n  }));\n});\nDivideSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDivideSquare.displayName = 'DivideSquare';\n/* harmony default export */ __webpack_exports__[\"default\"] = (DivideSquare);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/divide-square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/divide.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/divide.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Divide = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"6\",\n    r: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"5\",\n    y1: \"12\",\n    x2: \"19\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"18\",\n    r: \"2\"\n  }));\n});\nDivide.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDivide.displayName = 'Divide';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Divide);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/divide.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/dollar-sign.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/dollar-sign.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar DollarSign = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"1\",\n    x2: \"12\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\n  }));\n});\nDollarSign.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDollarSign.displayName = 'DollarSign';\n/* harmony default export */ __webpack_exports__[\"default\"] = (DollarSign);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/dollar-sign.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/download-cloud.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/download-cloud.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar DownloadCloud = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8 17 12 21 16 17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"12\",\n    x2: \"12\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"\n  }));\n});\nDownloadCloud.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDownloadCloud.displayName = 'DownloadCloud';\n/* harmony default export */ __webpack_exports__[\"default\"] = (DownloadCloud);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/download-cloud.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/download.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/download.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Download = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 10 12 15 17 10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"15\",\n    x2: \"12\",\n    y2: \"3\"\n  }));\n});\nDownload.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDownload.displayName = 'Download';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Download);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/download.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/dribbble.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/dribbble.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Dribbble = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"\n  }));\n});\nDribbble.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDribbble.displayName = 'Dribbble';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Dribbble);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/dribbble.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/droplet.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/droplet.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Droplet = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"\n  }));\n});\nDroplet.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nDroplet.displayName = 'Droplet';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Droplet);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/droplet.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/edit-2.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/edit-2.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Edit2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"\n  }));\n});\nEdit2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nEdit2.displayName = 'Edit2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Edit2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/edit-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/edit-3.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/edit-3.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Edit3 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 20h9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"\n  }));\n});\nEdit3.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nEdit3.displayName = 'Edit3';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Edit3);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/edit-3.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/edit.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/edit.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Edit = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"\n  }));\n});\nEdit.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nEdit.displayName = 'Edit';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Edit);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/edit.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/external-link.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/external-link.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ExternalLink = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"15 3 21 3 21 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"14\",\n    x2: \"21\",\n    y2: \"3\"\n  }));\n});\nExternalLink.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nExternalLink.displayName = 'ExternalLink';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ExternalLink);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/external-link.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/eye-off.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/eye-off.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar EyeOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }));\n});\nEyeOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nEyeOff.displayName = 'EyeOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (EyeOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/eye-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/eye.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/eye.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Eye = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"3\"\n  }));\n});\nEye.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nEye.displayName = 'Eye';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Eye);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/eye.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/facebook.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/facebook.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Facebook = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"\n  }));\n});\nFacebook.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFacebook.displayName = 'Facebook';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Facebook);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/facebook.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/fast-forward.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/fast-forward.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar FastForward = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"13 19 22 12 13 5 13 19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"2 19 11 12 2 5 2 19\"\n  }));\n});\nFastForward.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFastForward.displayName = 'FastForward';\n/* harmony default export */ __webpack_exports__[\"default\"] = (FastForward);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/fast-forward.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/feather.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/feather.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Feather = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"8\",\n    x2: \"2\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17.5\",\n    y1: \"15\",\n    x2: \"9\",\n    y2: \"15\"\n  }));\n});\nFeather.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFeather.displayName = 'Feather';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Feather);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/feather.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/figma.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/figma.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Figma = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"\n  }));\n});\nFigma.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFigma.displayName = 'Figma';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Figma);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/figma.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/file-minus.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/file-minus.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar FileMinus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"14 2 14 8 20 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"15\",\n    x2: \"15\",\n    y2: \"15\"\n  }));\n});\nFileMinus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFileMinus.displayName = 'FileMinus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (FileMinus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/file-minus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/file-plus.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/file-plus.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar FilePlus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"14 2 14 8 20 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"18\",\n    x2: \"12\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"15\",\n    x2: \"15\",\n    y2: \"15\"\n  }));\n});\nFilePlus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFilePlus.displayName = 'FilePlus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (FilePlus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/file-plus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/file-text.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/file-text.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar FileText = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"14 2 14 8 20 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"13\",\n    x2: \"8\",\n    y2: \"13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"17\",\n    x2: \"8\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"10 9 9 9 8 9\"\n  }));\n});\nFileText.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFileText.displayName = 'FileText';\n/* harmony default export */ __webpack_exports__[\"default\"] = (FileText);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/file-text.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/file.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/file.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar File = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"13 2 13 9 20 9\"\n  }));\n});\nFile.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFile.displayName = 'File';\n/* harmony default export */ __webpack_exports__[\"default\"] = (File);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/file.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/film.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/film.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Film = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"2\",\n    width: \"20\",\n    height: \"20\",\n    rx: \"2.18\",\n    ry: \"2.18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"7\",\n    y1: \"2\",\n    x2: \"7\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"2\",\n    x2: \"17\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"12\",\n    x2: \"22\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"7\",\n    x2: \"7\",\n    y2: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"17\",\n    x2: \"7\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"17\",\n    x2: \"22\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"7\",\n    x2: \"22\",\n    y2: \"7\"\n  }));\n});\nFilm.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFilm.displayName = 'Film';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Film);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/film.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/filter.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/filter.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Filter = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"\n  }));\n});\nFilter.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFilter.displayName = 'Filter';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Filter);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/filter.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/flag.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/flag.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Flag = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"22\",\n    x2: \"4\",\n    y2: \"15\"\n  }));\n});\nFlag.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFlag.displayName = 'Flag';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Flag);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/flag.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/folder-minus.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/folder-minus.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar FolderMinus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"14\",\n    x2: \"15\",\n    y2: \"14\"\n  }));\n});\nFolderMinus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFolderMinus.displayName = 'FolderMinus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (FolderMinus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/folder-minus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/folder-plus.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/folder-plus.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar FolderPlus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"11\",\n    x2: \"12\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"14\",\n    x2: \"15\",\n    y2: \"14\"\n  }));\n});\nFolderPlus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFolderPlus.displayName = 'FolderPlus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (FolderPlus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/folder-plus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/folder.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/folder.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Folder = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\n  }));\n});\nFolder.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFolder.displayName = 'Folder';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Folder);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/folder.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/framer.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/framer.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Framer = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"\n  }));\n});\nFramer.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFramer.displayName = 'Framer';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Framer);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/framer.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/frown.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/frown.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Frown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 16s-1.5-2-4-2-4 2-4 2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"9\",\n    x2: \"9.01\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"9\",\n    x2: \"15.01\",\n    y2: \"9\"\n  }));\n});\nFrown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nFrown.displayName = 'Frown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Frown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/frown.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/gift.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/gift.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Gift = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"20 12 20 22 4 22 4 12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"7\",\n    width: \"20\",\n    height: \"5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22\",\n    x2: \"12\",\n    y2: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"\n  }));\n});\nGift.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGift.displayName = 'Gift';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Gift);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/gift.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/git-branch.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/git-branch.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar GitBranch = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"3\",\n    x2: \"6\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18\",\n    cy: \"6\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"18\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 9a9 9 0 0 1-9 9\"\n  }));\n});\nGitBranch.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGitBranch.displayName = 'GitBranch';\n/* harmony default export */ __webpack_exports__[\"default\"] = (GitBranch);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/git-branch.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/git-commit.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/git-commit.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar GitCommit = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1.05\",\n    y1: \"12\",\n    x2: \"7\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17.01\",\n    y1: \"12\",\n    x2: \"22.96\",\n    y2: \"12\"\n  }));\n});\nGitCommit.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGitCommit.displayName = 'GitCommit';\n/* harmony default export */ __webpack_exports__[\"default\"] = (GitCommit);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/git-commit.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/git-merge.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/git-merge.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar GitMerge = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18\",\n    cy: \"18\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"6\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6 21V9a9 9 0 0 0 9 9\"\n  }));\n});\nGitMerge.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGitMerge.displayName = 'GitMerge';\n/* harmony default export */ __webpack_exports__[\"default\"] = (GitMerge);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/git-merge.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/git-pull-request.js":
/*!*******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/git-pull-request.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar GitPullRequest = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18\",\n    cy: \"18\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"6\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M13 6h3a2 2 0 0 1 2 2v7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"9\",\n    x2: \"6\",\n    y2: \"21\"\n  }));\n});\nGitPullRequest.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGitPullRequest.displayName = 'GitPullRequest';\n/* harmony default export */ __webpack_exports__[\"default\"] = (GitPullRequest);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/git-pull-request.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/github.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/github.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar GitHub = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"\n  }));\n});\nGitHub.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGitHub.displayName = 'GitHub';\n/* harmony default export */ __webpack_exports__[\"default\"] = (GitHub);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/github.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/gitlab.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/gitlab.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Gitlab = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"\n  }));\n});\nGitlab.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGitlab.displayName = 'Gitlab';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Gitlab);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/gitlab.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/globe.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/globe.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Globe = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"12\",\n    x2: \"22\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\n  }));\n});\nGlobe.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGlobe.displayName = 'Globe';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Globe);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/globe.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/grid.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/grid.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Grid = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"7\",\n    height: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"14\",\n    y: \"3\",\n    width: \"7\",\n    height: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"14\",\n    y: \"14\",\n    width: \"7\",\n    height: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"14\",\n    width: \"7\",\n    height: \"7\"\n  }));\n});\nGrid.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nGrid.displayName = 'Grid';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Grid);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/grid.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/hard-drive.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/hard-drive.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar HardDrive = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"22\",\n    y1: \"12\",\n    x2: \"2\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"16\",\n    x2: \"6.01\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"16\",\n    x2: \"10.01\",\n    y2: \"16\"\n  }));\n});\nHardDrive.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHardDrive.displayName = 'HardDrive';\n/* harmony default export */ __webpack_exports__[\"default\"] = (HardDrive);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/hard-drive.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/hash.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/hash.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Hash = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"9\",\n    x2: \"20\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"15\",\n    x2: \"20\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"3\",\n    x2: \"8\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"3\",\n    x2: \"14\",\n    y2: \"21\"\n  }));\n});\nHash.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHash.displayName = 'Hash';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hash);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/hash.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/headphones.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/headphones.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Headphones = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3 18v-6a9 9 0 0 1 18 0v6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"\n  }));\n});\nHeadphones.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHeadphones.displayName = 'Headphones';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Headphones);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/headphones.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/heart.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/heart.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Heart = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\n  }));\n});\nHeart.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHeart.displayName = 'Heart';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Heart);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/heart.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/help-circle.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/help-circle.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar HelpCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"17\",\n    x2: \"12.01\",\n    y2: \"17\"\n  }));\n});\nHelpCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHelpCircle.displayName = 'HelpCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (HelpCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/help-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/hexagon.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/hexagon.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Hexagon = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n  }));\n});\nHexagon.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHexagon.displayName = 'Hexagon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Hexagon);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/hexagon.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/home.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/home.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Home = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 22 9 12 15 12 15 22\"\n  }));\n});\nHome.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nHome.displayName = 'Home';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Home);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/home.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/image.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/image.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Image = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"8.5\",\n    cy: \"8.5\",\n    r: \"1.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"21 15 16 10 5 21\"\n  }));\n});\nImage.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nImage.displayName = 'Image';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Image);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/image.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/inbox.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/inbox.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Inbox = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"22 12 16 12 14 15 10 15 8 12 2 12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"\n  }));\n});\nInbox.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nInbox.displayName = 'Inbox';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Inbox);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/inbox.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/info.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/info.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Info = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"16\",\n    x2: \"12\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12.01\",\n    y2: \"8\"\n  }));\n});\nInfo.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nInfo.displayName = 'Info';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Info);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/info.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/instagram.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/instagram.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Instagram = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"2\",\n    width: \"20\",\n    height: \"20\",\n    rx: \"5\",\n    ry: \"5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17.5\",\n    y1: \"6.5\",\n    x2: \"17.51\",\n    y2: \"6.5\"\n  }));\n});\nInstagram.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nInstagram.displayName = 'Instagram';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Instagram);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/instagram.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/italic.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/italic.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Italic = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"19\",\n    y1: \"4\",\n    x2: \"10\",\n    y2: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14\",\n    y1: \"20\",\n    x2: \"5\",\n    y2: \"20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"4\",\n    x2: \"9\",\n    y2: \"20\"\n  }));\n});\nItalic.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nItalic.displayName = 'Italic';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Italic);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/italic.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/key.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/key.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Key = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"\n  }));\n});\nKey.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nKey.displayName = 'Key';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Key);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/key.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/layers.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/layers.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Layers = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"12 2 2 7 12 12 22 7 12 2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"2 17 12 22 22 17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"2 12 12 17 22 12\"\n  }));\n});\nLayers.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLayers.displayName = 'Layers';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Layers);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/layers.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/layout.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/layout.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Layout = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"9\",\n    x2: \"21\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"21\",\n    x2: \"9\",\n    y2: \"9\"\n  }));\n});\nLayout.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLayout.displayName = 'Layout';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Layout);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/layout.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/life-buoy.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/life-buoy.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar LifeBuoy = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.93\",\n    y1: \"4.93\",\n    x2: \"9.17\",\n    y2: \"9.17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14.83\",\n    y1: \"14.83\",\n    x2: \"19.07\",\n    y2: \"19.07\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14.83\",\n    y1: \"9.17\",\n    x2: \"19.07\",\n    y2: \"4.93\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14.83\",\n    y1: \"9.17\",\n    x2: \"18.36\",\n    y2: \"5.64\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.93\",\n    y1: \"19.07\",\n    x2: \"9.17\",\n    y2: \"14.83\"\n  }));\n});\nLifeBuoy.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLifeBuoy.displayName = 'LifeBuoy';\n/* harmony default export */ __webpack_exports__[\"default\"] = (LifeBuoy);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/life-buoy.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/link-2.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/link-2.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Link2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }));\n});\nLink2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLink2.displayName = 'Link2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Link2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/link-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/link.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/link.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Link = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\n  }));\n});\nLink.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLink.displayName = 'Link';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Link);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/link.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/linkedin.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/linkedin.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Linkedin = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"9\",\n    width: \"4\",\n    height: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"4\",\n    cy: \"4\",\n    r: \"2\"\n  }));\n});\nLinkedin.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLinkedin.displayName = 'Linkedin';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Linkedin);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/linkedin.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/list.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/list.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar List = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"6\",\n    x2: \"21\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"21\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"18\",\n    x2: \"21\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"6\",\n    x2: \"3.01\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"12\",\n    x2: \"3.01\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"18\",\n    x2: \"3.01\",\n    y2: \"18\"\n  }));\n});\nList.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nList.displayName = 'List';\n/* harmony default export */ __webpack_exports__[\"default\"] = (List);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/list.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/loader.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/loader.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Loader = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"2\",\n    x2: \"12\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"18\",\n    x2: \"12\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.93\",\n    y1: \"4.93\",\n    x2: \"7.76\",\n    y2: \"7.76\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16.24\",\n    y1: \"16.24\",\n    x2: \"19.07\",\n    y2: \"19.07\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"12\",\n    x2: \"6\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"12\",\n    x2: \"22\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.93\",\n    y1: \"19.07\",\n    x2: \"7.76\",\n    y2: \"16.24\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16.24\",\n    y1: \"7.76\",\n    x2: \"19.07\",\n    y2: \"4.93\"\n  }));\n});\nLoader.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLoader.displayName = 'Loader';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Loader);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/loader.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/lock.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/lock.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Lock = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"11\",\n    width: \"18\",\n    height: \"11\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M7 11V7a5 5 0 0 1 10 0v4\"\n  }));\n});\nLock.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLock.displayName = 'Lock';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Lock);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/lock.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/log-in.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/log-in.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar LogIn = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"10 17 15 12 10 7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"12\",\n    x2: \"3\",\n    y2: \"12\"\n  }));\n});\nLogIn.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLogIn.displayName = 'LogIn';\n/* harmony default export */ __webpack_exports__[\"default\"] = (LogIn);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/log-in.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/log-out.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/log-out.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar LogOut = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 17 21 12 16 7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"12\",\n    x2: \"9\",\n    y2: \"12\"\n  }));\n});\nLogOut.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nLogOut.displayName = 'LogOut';\n/* harmony default export */ __webpack_exports__[\"default\"] = (LogOut);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/log-out.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/mail.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/mail.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Mail = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"22,6 12,13 2,6\"\n  }));\n});\nMail.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMail.displayName = 'Mail';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Mail);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/mail.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/map-pin.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/map-pin.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MapPin = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"10\",\n    r: \"3\"\n  }));\n});\nMapPin.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMapPin.displayName = 'MapPin';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MapPin);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/map-pin.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/map.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/map.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Map = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"2\",\n    x2: \"8\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"6\",\n    x2: \"16\",\n    y2: \"22\"\n  }));\n});\nMap.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMap.displayName = 'Map';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Map);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/map.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/maximize-2.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/maximize-2.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Maximize2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"15 3 21 3 21 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 21 3 21 3 15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"3\",\n    x2: \"14\",\n    y2: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"21\",\n    x2: \"10\",\n    y2: \"14\"\n  }));\n});\nMaximize2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMaximize2.displayName = 'Maximize2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Maximize2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/maximize-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/maximize.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/maximize.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Maximize = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"\n  }));\n});\nMaximize.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMaximize.displayName = 'Maximize';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Maximize);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/maximize.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/meh.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/meh.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Meh = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"15\",\n    x2: \"16\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"9\",\n    x2: \"9.01\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"9\",\n    x2: \"15.01\",\n    y2: \"9\"\n  }));\n});\nMeh.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMeh.displayName = 'Meh';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Meh);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/meh.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/menu.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/menu.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Menu = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"12\",\n    x2: \"21\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"6\",\n    x2: \"21\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"18\",\n    x2: \"21\",\n    y2: \"18\"\n  }));\n});\nMenu.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMenu.displayName = 'Menu';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Menu);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/menu.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/message-circle.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/message-circle.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MessageCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"\n  }));\n});\nMessageCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMessageCircle.displayName = 'MessageCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MessageCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/message-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/message-square.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/message-square.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MessageSquare = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"\n  }));\n});\nMessageSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMessageSquare.displayName = 'MessageSquare';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MessageSquare);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/message-square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/mic-off.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/mic-off.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MicOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"19\",\n    x2: \"12\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"23\",\n    x2: \"16\",\n    y2: \"23\"\n  }));\n});\nMicOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMicOff.displayName = 'MicOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MicOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/mic-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/mic.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/mic.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Mic = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19 10v2a7 7 0 0 1-14 0v-2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"19\",\n    x2: \"12\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"23\",\n    x2: \"16\",\n    y2: \"23\"\n  }));\n});\nMic.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMic.displayName = 'Mic';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Mic);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/mic.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/minimize-2.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/minimize-2.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Minimize2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"4 14 10 14 10 20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"20 10 14 10 14 4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14\",\n    y1: \"10\",\n    x2: \"21\",\n    y2: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"21\",\n    x2: \"10\",\n    y2: \"14\"\n  }));\n});\nMinimize2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMinimize2.displayName = 'Minimize2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Minimize2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/minimize-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/minimize.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/minimize.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Minimize = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"\n  }));\n});\nMinimize.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMinimize.displayName = 'Minimize';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Minimize);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/minimize.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/minus-circle.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/minus-circle.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MinusCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }));\n});\nMinusCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMinusCircle.displayName = 'MinusCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MinusCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/minus-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/minus-square.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/minus-square.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MinusSquare = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }));\n});\nMinusSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMinusSquare.displayName = 'MinusSquare';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MinusSquare);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/minus-square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/minus.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/minus.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Minus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"5\",\n    y1: \"12\",\n    x2: \"19\",\n    y2: \"12\"\n  }));\n});\nMinus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMinus.displayName = 'Minus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Minus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/minus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/monitor.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/monitor.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Monitor = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"3\",\n    width: \"20\",\n    height: \"14\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"21\",\n    x2: \"16\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"17\",\n    x2: \"12\",\n    y2: \"21\"\n  }));\n});\nMonitor.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMonitor.displayName = 'Monitor';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Monitor);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/monitor.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/moon.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/moon.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Moon = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"\n  }));\n});\nMoon.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMoon.displayName = 'Moon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Moon);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/moon.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/more-horizontal.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/more-horizontal.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MoreHorizontal = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"19\",\n    cy: \"12\",\n    r: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"5\",\n    cy: \"12\",\n    r: \"1\"\n  }));\n});\nMoreHorizontal.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMoreHorizontal.displayName = 'MoreHorizontal';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MoreHorizontal);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/more-horizontal.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/more-vertical.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/more-vertical.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MoreVertical = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"5\",\n    r: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"19\",\n    r: \"1\"\n  }));\n});\nMoreVertical.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMoreVertical.displayName = 'MoreVertical';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MoreVertical);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/more-vertical.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/mouse-pointer.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/mouse-pointer.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar MousePointer = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M13 13l6 6\"\n  }));\n});\nMousePointer.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMousePointer.displayName = 'MousePointer';\n/* harmony default export */ __webpack_exports__[\"default\"] = (MousePointer);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/mouse-pointer.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/move.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/move.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Move = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"5 9 2 12 5 15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"9 5 12 2 15 5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"15 19 12 22 9 19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"19 9 22 12 19 15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"2\",\n    y1: \"12\",\n    x2: \"22\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"2\",\n    x2: \"12\",\n    y2: \"22\"\n  }));\n});\nMove.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMove.displayName = 'Move';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Move);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/move.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/music.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/music.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Music = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9 18V5l12-2v13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"18\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18\",\n    cy: \"16\",\n    r: \"3\"\n  }));\n});\nMusic.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nMusic.displayName = 'Music';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Music);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/music.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/navigation-2.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/navigation-2.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Navigation2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"12 2 19 21 12 17 5 21 12 2\"\n  }));\n});\nNavigation2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nNavigation2.displayName = 'Navigation2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navigation2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/navigation-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/navigation.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/navigation.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Navigation = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"3 11 22 2 13 21 11 13 3 11\"\n  }));\n});\nNavigation.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nNavigation.displayName = 'Navigation';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Navigation);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/navigation.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/octagon.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/octagon.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Octagon = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\n  }));\n});\nOctagon.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nOctagon.displayName = 'Octagon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Octagon);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/octagon.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/package.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/package.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Package = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16.5\",\n    y1: \"9.4\",\n    x2: \"7.5\",\n    y2: \"4.21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"3.27 6.96 12 12.01 20.73 6.96\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"22.08\",\n    x2: \"12\",\n    y2: \"12\"\n  }));\n});\nPackage.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPackage.displayName = 'Package';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Package);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/package.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/paperclip.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/paperclip.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Paperclip = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"\n  }));\n});\nPaperclip.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPaperclip.displayName = 'Paperclip';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Paperclip);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/paperclip.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/pause-circle.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/pause-circle.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PauseCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"15\",\n    x2: \"10\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14\",\n    y1: \"15\",\n    x2: \"14\",\n    y2: \"9\"\n  }));\n});\nPauseCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPauseCircle.displayName = 'PauseCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PauseCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/pause-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/pause.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/pause.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Pause = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"6\",\n    y: \"4\",\n    width: \"4\",\n    height: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"14\",\n    y: \"4\",\n    width: \"4\",\n    height: \"16\"\n  }));\n});\nPause.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPause.displayName = 'Pause';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Pause);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/pause.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/pen-tool.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/pen-tool.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PenTool = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 19l7-7 3 3-7 7-3-3z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M2 2l7.586 7.586\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"11\",\n    cy: \"11\",\n    r: \"2\"\n  }));\n});\nPenTool.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPenTool.displayName = 'PenTool';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PenTool);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/pen-tool.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/percent.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/percent.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Percent = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"19\",\n    y1: \"5\",\n    x2: \"5\",\n    y2: \"19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6.5\",\n    cy: \"6.5\",\n    r: \"2.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"17.5\",\n    cy: \"17.5\",\n    r: \"2.5\"\n  }));\n});\nPercent.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPercent.displayName = 'Percent';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Percent);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/percent.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone-call.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone-call.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PhoneCall = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n  }));\n});\nPhoneCall.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhoneCall.displayName = 'PhoneCall';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PhoneCall);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone-call.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone-forwarded.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone-forwarded.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PhoneForwarded = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"19 1 23 5 19 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"5\",\n    x2: \"23\",\n    y2: \"5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n  }));\n});\nPhoneForwarded.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhoneForwarded.displayName = 'PhoneForwarded';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PhoneForwarded);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone-forwarded.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone-incoming.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone-incoming.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PhoneIncoming = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 2 16 8 22 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"1\",\n    x2: \"16\",\n    y2: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n  }));\n});\nPhoneIncoming.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhoneIncoming.displayName = 'PhoneIncoming';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PhoneIncoming);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone-incoming.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone-missed.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone-missed.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PhoneMissed = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"1\",\n    x2: \"17\",\n    y2: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n  }));\n});\nPhoneMissed.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhoneMissed.displayName = 'PhoneMissed';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PhoneMissed);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone-missed.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone-off.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone-off.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PhoneOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"1\",\n    x2: \"1\",\n    y2: \"23\"\n  }));\n});\nPhoneOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhoneOff.displayName = 'PhoneOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PhoneOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone-outgoing.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone-outgoing.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PhoneOutgoing = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"23 7 23 1 17 1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"16\",\n    y1: \"8\",\n    x2: \"23\",\n    y2: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n  }));\n});\nPhoneOutgoing.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhoneOutgoing.displayName = 'PhoneOutgoing';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PhoneOutgoing);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone-outgoing.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/phone.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/phone.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Phone = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\n  }));\n});\nPhone.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPhone.displayName = 'Phone';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Phone);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/phone.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/pie-chart.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/pie-chart.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PieChart = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21.21 15.89A10 10 0 1 1 8 2.83\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22 12A10 10 0 0 0 12 2v10z\"\n  }));\n});\nPieChart.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPieChart.displayName = 'PieChart';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PieChart);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/pie-chart.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/play-circle.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/play-circle.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PlayCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"10 8 16 12 10 16 10 8\"\n  }));\n});\nPlayCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPlayCircle.displayName = 'PlayCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PlayCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/play-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/play.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/play.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Play = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"5 3 19 12 5 21 5 3\"\n  }));\n});\nPlay.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPlay.displayName = 'Play';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Play);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/play.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/plus-circle.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/plus-circle.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PlusCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }));\n});\nPlusCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPlusCircle.displayName = 'PlusCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PlusCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/plus-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/plus-square.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/plus-square.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar PlusSquare = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"12\",\n    x2: \"16\",\n    y2: \"12\"\n  }));\n});\nPlusSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPlusSquare.displayName = 'PlusSquare';\n/* harmony default export */ __webpack_exports__[\"default\"] = (PlusSquare);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/plus-square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/plus.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/plus.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Plus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"5\",\n    x2: \"12\",\n    y2: \"19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"5\",\n    y1: \"12\",\n    x2: \"19\",\n    y2: \"12\"\n  }));\n});\nPlus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPlus.displayName = 'Plus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Plus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/plus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/pocket.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/pocket.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Pocket = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8 10 12 14 16 10\"\n  }));\n});\nPocket.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPocket.displayName = 'Pocket';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Pocket);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/pocket.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/power.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/power.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Power = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M18.36 6.64a9 9 0 1 1-12.73 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"2\",\n    x2: \"12\",\n    y2: \"12\"\n  }));\n});\nPower.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPower.displayName = 'Power';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Power);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/power.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/printer.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/printer.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Printer = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"6 9 6 2 18 2 18 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"6\",\n    y: \"14\",\n    width: \"12\",\n    height: \"8\"\n  }));\n});\nPrinter.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nPrinter.displayName = 'Printer';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Printer);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/printer.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/radio.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/radio.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Radio = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"\n  }));\n});\nRadio.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRadio.displayName = 'Radio';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Radio);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/radio.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/refresh-ccw.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/refresh-ccw.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar RefreshCcw = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"1 4 1 10 7 10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"23 20 23 14 17 14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"\n  }));\n});\nRefreshCcw.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRefreshCcw.displayName = 'RefreshCcw';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RefreshCcw);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/refresh-ccw.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/refresh-cw.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/refresh-cw.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar RefreshCw = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"23 4 23 10 17 10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"1 20 1 14 7 14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"\n  }));\n});\nRefreshCw.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRefreshCw.displayName = 'RefreshCw';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RefreshCw);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/refresh-cw.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/repeat.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/repeat.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Repeat = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 1 21 5 17 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3 11V9a4 4 0 0 1 4-4h14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 23 3 19 7 15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 13v2a4 4 0 0 1-4 4H3\"\n  }));\n});\nRepeat.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRepeat.displayName = 'Repeat';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Repeat);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/repeat.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/rewind.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/rewind.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Rewind = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"11 19 2 12 11 5 11 19\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"22 19 13 12 22 5 22 19\"\n  }));\n});\nRewind.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRewind.displayName = 'Rewind';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Rewind);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/rewind.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/rotate-ccw.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/rotate-ccw.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar RotateCcw = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"1 4 1 10 7 10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"\n  }));\n});\nRotateCcw.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRotateCcw.displayName = 'RotateCcw';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RotateCcw);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/rotate-ccw.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/rotate-cw.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/rotate-cw.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar RotateCw = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"23 4 23 10 17 10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"\n  }));\n});\nRotateCw.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRotateCw.displayName = 'RotateCw';\n/* harmony default export */ __webpack_exports__[\"default\"] = (RotateCw);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/rotate-cw.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/rss.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/rss.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Rss = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 11a9 9 0 0 1 9 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 4a16 16 0 0 1 16 16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"5\",\n    cy: \"19\",\n    r: \"1\"\n  }));\n});\nRss.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nRss.displayName = 'Rss';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Rss);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/rss.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/save.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/save.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Save = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 21 17 13 7 13 7 21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"7 3 7 8 15 8\"\n  }));\n});\nSave.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSave.displayName = 'Save';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Save);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/save.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/scissors.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/scissors.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Scissors = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"6\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"18\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"20\",\n    y1: \"4\",\n    x2: \"8.12\",\n    y2: \"15.88\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14.47\",\n    y1: \"14.48\",\n    x2: \"20\",\n    y2: \"20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8.12\",\n    y1: \"8.12\",\n    x2: \"12\",\n    y2: \"12\"\n  }));\n});\nScissors.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nScissors.displayName = 'Scissors';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scissors);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/scissors.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/search.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/search.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Search = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"11\",\n    cy: \"11\",\n    r: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"21\",\n    x2: \"16.65\",\n    y2: \"16.65\"\n  }));\n});\nSearch.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSearch.displayName = 'Search';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Search);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/search.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/send.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/send.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Send = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"22\",\n    y1: \"2\",\n    x2: \"11\",\n    y2: \"13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"22 2 15 22 11 13 2 9 22 2\"\n  }));\n});\nSend.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSend.displayName = 'Send';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Send);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/send.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/server.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/server.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Server = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"2\",\n    width: \"20\",\n    height: \"8\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"14\",\n    width: \"20\",\n    height: \"8\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"6\",\n    x2: \"6.01\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"18\",\n    x2: \"6.01\",\n    y2: \"18\"\n  }));\n});\nServer.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nServer.displayName = 'Server';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Server);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/server.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/settings.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/settings.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Settings = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"\n  }));\n});\nSettings.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSettings.displayName = 'Settings';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Settings);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/settings.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/share-2.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/share-2.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Share2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18\",\n    cy: \"5\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"6\",\n    cy: \"12\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18\",\n    cy: \"19\",\n    r: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8.59\",\n    y1: \"13.51\",\n    x2: \"15.42\",\n    y2: \"17.49\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15.41\",\n    y1: \"6.51\",\n    x2: \"8.59\",\n    y2: \"10.49\"\n  }));\n});\nShare2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShare2.displayName = 'Share2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Share2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/share-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/share.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/share.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Share = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 6 12 2 8 6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"2\",\n    x2: \"12\",\n    y2: \"15\"\n  }));\n});\nShare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShare.displayName = 'Share';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Share);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/share.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/shield-off.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/shield-off.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ShieldOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }));\n});\nShieldOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShieldOff.displayName = 'ShieldOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ShieldOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/shield-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/shield.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/shield.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Shield = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\n  }));\n});\nShield.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShield.displayName = 'Shield';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Shield);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/shield.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/shopping-bag.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/shopping-bag.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ShoppingBag = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"3\",\n    y1: \"6\",\n    x2: \"21\",\n    y2: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 10a4 4 0 0 1-8 0\"\n  }));\n});\nShoppingBag.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShoppingBag.displayName = 'ShoppingBag';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ShoppingBag);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/shopping-bag.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/shopping-cart.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/shopping-cart.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ShoppingCart = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"9\",\n    cy: \"21\",\n    r: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"20\",\n    cy: \"21\",\n    r: \"1\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"\n  }));\n});\nShoppingCart.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShoppingCart.displayName = 'ShoppingCart';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ShoppingCart);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/shopping-cart.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/shuffle.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/shuffle.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Shuffle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 3 21 3 21 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"20\",\n    x2: \"21\",\n    y2: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"21 16 21 21 16 21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"15\",\n    x2: \"21\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"4\",\n    x2: \"9\",\n    y2: \"9\"\n  }));\n});\nShuffle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nShuffle.displayName = 'Shuffle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Shuffle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/shuffle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/sidebar.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/sidebar.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Sidebar = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"3\",\n    x2: \"9\",\n    y2: \"21\"\n  }));\n});\nSidebar.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSidebar.displayName = 'Sidebar';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Sidebar);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/sidebar.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/skip-back.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/skip-back.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar SkipBack = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"19 20 9 12 19 4 19 20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"5\",\n    y1: \"19\",\n    x2: \"5\",\n    y2: \"5\"\n  }));\n});\nSkipBack.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSkipBack.displayName = 'SkipBack';\n/* harmony default export */ __webpack_exports__[\"default\"] = (SkipBack);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/skip-back.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/skip-forward.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/skip-forward.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar SkipForward = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"5 4 15 12 5 20 5 4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"19\",\n    y1: \"5\",\n    x2: \"19\",\n    y2: \"19\"\n  }));\n});\nSkipForward.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSkipForward.displayName = 'SkipForward';\n/* harmony default export */ __webpack_exports__[\"default\"] = (SkipForward);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/skip-forward.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/slack.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/slack.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Slack = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"\n  }));\n});\nSlack.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSlack.displayName = 'Slack';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Slack);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/slack.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/slash.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/slash.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Slash = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.93\",\n    y1: \"4.93\",\n    x2: \"19.07\",\n    y2: \"19.07\"\n  }));\n});\nSlash.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSlash.displayName = 'Slash';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Slash);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/slash.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/sliders.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/sliders.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Sliders = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"21\",\n    x2: \"4\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"10\",\n    x2: \"4\",\n    y2: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"21\",\n    x2: \"12\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"8\",\n    x2: \"12\",\n    y2: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"20\",\n    y1: \"21\",\n    x2: \"20\",\n    y2: \"16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"20\",\n    y1: \"12\",\n    x2: \"20\",\n    y2: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"14\",\n    x2: \"7\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"8\",\n    x2: \"15\",\n    y2: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"16\",\n    x2: \"23\",\n    y2: \"16\"\n  }));\n});\nSliders.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSliders.displayName = 'Sliders';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Sliders);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/sliders.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/smartphone.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/smartphone.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Smartphone = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"5\",\n    y: \"2\",\n    width: \"14\",\n    height: \"20\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"18\",\n    x2: \"12.01\",\n    y2: \"18\"\n  }));\n});\nSmartphone.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSmartphone.displayName = 'Smartphone';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Smartphone);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/smartphone.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/smile.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/smile.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Smile = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8 14s1.5 2 4 2 4-2 4-2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"9\",\n    x2: \"9.01\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"9\",\n    x2: \"15.01\",\n    y2: \"9\"\n  }));\n});\nSmile.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSmile.displayName = 'Smile';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Smile);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/smile.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/speaker.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/speaker.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Speaker = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"4\",\n    y: \"2\",\n    width: \"16\",\n    height: \"20\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"14\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"6\",\n    x2: \"12.01\",\n    y2: \"6\"\n  }));\n});\nSpeaker.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSpeaker.displayName = 'Speaker';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Speaker);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/speaker.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/square.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/square.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Square = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }));\n});\nSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSquare.displayName = 'Square';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Square);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/star.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/star.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Star = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\n  }));\n});\nStar.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nStar.displayName = 'Star';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Star);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/star.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/stop-circle.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/stop-circle.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar StopCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"9\",\n    y: \"9\",\n    width: \"6\",\n    height: \"6\"\n  }));\n});\nStopCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nStopCircle.displayName = 'StopCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (StopCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/stop-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/sun.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/sun.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Sun = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"1\",\n    x2: \"12\",\n    y2: \"3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"21\",\n    x2: \"12\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.22\",\n    y1: \"4.22\",\n    x2: \"5.64\",\n    y2: \"5.64\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18.36\",\n    y1: \"18.36\",\n    x2: \"19.78\",\n    y2: \"19.78\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"12\",\n    x2: \"3\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"12\",\n    x2: \"23\",\n    y2: \"12\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.22\",\n    y1: \"19.78\",\n    x2: \"5.64\",\n    y2: \"18.36\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18.36\",\n    y1: \"5.64\",\n    x2: \"19.78\",\n    y2: \"4.22\"\n  }));\n});\nSun.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSun.displayName = 'Sun';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Sun);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/sun.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/sunrise.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/sunrise.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Sunrise = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17 18a5 5 0 0 0-10 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"2\",\n    x2: \"12\",\n    y2: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.22\",\n    y1: \"10.22\",\n    x2: \"5.64\",\n    y2: \"11.64\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"18\",\n    x2: \"3\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"18\",\n    x2: \"23\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18.36\",\n    y1: \"11.64\",\n    x2: \"19.78\",\n    y2: \"10.22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"22\",\n    x2: \"1\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8 6 12 2 16 6\"\n  }));\n});\nSunrise.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSunrise.displayName = 'Sunrise';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Sunrise);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/sunrise.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/sunset.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/sunset.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Sunset = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17 18a5 5 0 0 0-10 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"9\",\n    x2: \"12\",\n    y2: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4.22\",\n    y1: \"10.22\",\n    x2: \"5.64\",\n    y2: \"11.64\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"18\",\n    x2: \"3\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"18\",\n    x2: \"23\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18.36\",\n    y1: \"11.64\",\n    x2: \"19.78\",\n    y2: \"10.22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"22\",\n    x2: \"1\",\n    y2: \"22\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 5 12 9 8 5\"\n  }));\n});\nSunset.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nSunset.displayName = 'Sunset';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Sunset);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/sunset.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/tablet.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/tablet.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Tablet = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"4\",\n    y: \"2\",\n    width: \"16\",\n    height: \"20\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"18\",\n    x2: \"12.01\",\n    y2: \"18\"\n  }));\n});\nTablet.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTablet.displayName = 'Tablet';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Tablet);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/tablet.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/tag.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/tag.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Tag = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"7\",\n    y1: \"7\",\n    x2: \"7.01\",\n    y2: \"7\"\n  }));\n});\nTag.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTag.displayName = 'Tag';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Tag);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/tag.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/target.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/target.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Target = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"2\"\n  }));\n});\nTarget.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTarget.displayName = 'Target';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Target);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/target.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/terminal.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/terminal.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Terminal = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"4 17 10 11 4 5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"19\",\n    x2: \"20\",\n    y2: \"19\"\n  }));\n});\nTerminal.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTerminal.displayName = 'Terminal';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Terminal);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/terminal.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/thermometer.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/thermometer.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Thermometer = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"\n  }));\n});\nThermometer.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nThermometer.displayName = 'Thermometer';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Thermometer);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/thermometer.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/thumbs-down.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/thumbs-down.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ThumbsDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n  }));\n});\nThumbsDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nThumbsDown.displayName = 'ThumbsDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThumbsDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/thumbs-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/thumbs-up.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/thumbs-up.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ThumbsUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n  }));\n});\nThumbsUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nThumbsUp.displayName = 'ThumbsUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ThumbsUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/thumbs-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/toggle-left.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/toggle-left.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ToggleLeft = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"5\",\n    width: \"22\",\n    height: \"14\",\n    rx: \"7\",\n    ry: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"8\",\n    cy: \"12\",\n    r: \"3\"\n  }));\n});\nToggleLeft.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nToggleLeft.displayName = 'ToggleLeft';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ToggleLeft);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/toggle-left.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/toggle-right.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/toggle-right.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ToggleRight = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"5\",\n    width: \"22\",\n    height: \"14\",\n    rx: \"7\",\n    ry: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"16\",\n    cy: \"12\",\n    r: \"3\"\n  }));\n});\nToggleRight.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nToggleRight.displayName = 'ToggleRight';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ToggleRight);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/toggle-right.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/tool.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/tool.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Tool = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"\n  }));\n});\nTool.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTool.displayName = 'Tool';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Tool);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/tool.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/trash-2.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/trash-2.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Trash2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"3 6 5 6 21 6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"10\",\n    y1: \"11\",\n    x2: \"10\",\n    y2: \"17\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"14\",\n    y1: \"11\",\n    x2: \"14\",\n    y2: \"17\"\n  }));\n});\nTrash2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTrash2.displayName = 'Trash2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Trash2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/trash-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/trash.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/trash.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Trash = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"3 6 5 6 21 6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"\n  }));\n});\nTrash.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTrash.displayName = 'Trash';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Trash);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/trash.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/trello.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/trello.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Trello = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"7\",\n    y: \"7\",\n    width: \"3\",\n    height: \"9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"14\",\n    y: \"7\",\n    width: \"3\",\n    height: \"5\"\n  }));\n});\nTrello.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTrello.displayName = 'Trello';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Trello);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/trello.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/trending-down.js":
/*!****************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/trending-down.js ***!
  \****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar TrendingDown = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"23 18 13.5 8.5 8.5 13.5 1 6\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 18 23 18 23 12\"\n  }));\n});\nTrendingDown.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTrendingDown.displayName = 'TrendingDown';\n/* harmony default export */ __webpack_exports__[\"default\"] = (TrendingDown);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/trending-down.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/trending-up.js":
/*!**************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/trending-up.js ***!
  \**************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar TrendingUp = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"23 6 13.5 15.5 8.5 10.5 1 18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 6 23 6 23 12\"\n  }));\n});\nTrendingUp.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTrendingUp.displayName = 'TrendingUp';\n/* harmony default export */ __webpack_exports__[\"default\"] = (TrendingUp);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/trending-up.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/triangle.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/triangle.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Triangle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\n  }));\n});\nTriangle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTriangle.displayName = 'Triangle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Triangle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/triangle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/truck.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/truck.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Truck = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"3\",\n    width: \"15\",\n    height: \"13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"16 8 20 8 23 11 23 16 16 16 16 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"5.5\",\n    cy: \"18.5\",\n    r: \"2.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18.5\",\n    cy: \"18.5\",\n    r: \"2.5\"\n  }));\n});\nTruck.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTruck.displayName = 'Truck';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Truck);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/truck.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/tv.js":
/*!*****************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/tv.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Tv = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"2\",\n    y: \"7\",\n    width: \"20\",\n    height: \"15\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 2 12 7 7 2\"\n  }));\n});\nTv.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTv.displayName = 'Tv';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Tv);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/tv.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/twitch.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/twitch.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Twitch = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\"\n  }));\n});\nTwitch.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTwitch.displayName = 'Twitch';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Twitch);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/twitch.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/twitter.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/twitter.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Twitter = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"\n  }));\n});\nTwitter.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nTwitter.displayName = 'Twitter';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Twitter);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/twitter.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/type.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/type.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Type = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"4 7 4 4 20 4 20 7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"20\",\n    x2: \"15\",\n    y2: \"20\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"4\",\n    x2: \"12\",\n    y2: \"20\"\n  }));\n});\nType.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nType.displayName = 'Type';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Type);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/type.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/umbrella.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/umbrella.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Umbrella = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"\n  }));\n});\nUmbrella.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUmbrella.displayName = 'Umbrella';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Umbrella);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/umbrella.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/underline.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/underline.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Underline = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"4\",\n    y1: \"21\",\n    x2: \"20\",\n    y2: \"21\"\n  }));\n});\nUnderline.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUnderline.displayName = 'Underline';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Underline);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/underline.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/unlock.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/unlock.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Unlock = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"11\",\n    width: \"18\",\n    height: \"11\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M7 11V7a5 5 0 0 1 9.9-1\"\n  }));\n});\nUnlock.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUnlock.displayName = 'Unlock';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Unlock);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/unlock.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/upload-cloud.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/upload-cloud.js ***!
  \***************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar UploadCloud = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 16 12 12 8 16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"12\",\n    x2: \"12\",\n    y2: \"21\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"16 16 12 12 8 16\"\n  }));\n});\nUploadCloud.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUploadCloud.displayName = 'UploadCloud';\n/* harmony default export */ __webpack_exports__[\"default\"] = (UploadCloud);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/upload-cloud.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/upload.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/upload.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Upload = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 8 12 3 7 8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"3\",\n    x2: \"12\",\n    y2: \"15\"\n  }));\n});\nUpload.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUpload.displayName = 'Upload';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Upload);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/upload.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/user-check.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/user-check.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar UserCheck = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"8.5\",\n    cy: \"7\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"17 11 19 13 23 9\"\n  }));\n});\nUserCheck.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUserCheck.displayName = 'UserCheck';\n/* harmony default export */ __webpack_exports__[\"default\"] = (UserCheck);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/user-check.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/user-minus.js":
/*!*************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/user-minus.js ***!
  \*************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar UserMinus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"8.5\",\n    cy: \"7\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"11\",\n    x2: \"17\",\n    y2: \"11\"\n  }));\n});\nUserMinus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUserMinus.displayName = 'UserMinus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (UserMinus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/user-minus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/user-plus.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/user-plus.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar UserPlus = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"8.5\",\n    cy: \"7\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"20\",\n    y1: \"8\",\n    x2: \"20\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"11\",\n    x2: \"17\",\n    y2: \"11\"\n  }));\n});\nUserPlus.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUserPlus.displayName = 'UserPlus';\n/* harmony default export */ __webpack_exports__[\"default\"] = (UserPlus);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/user-plus.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/user-x.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/user-x.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar UserX = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"8.5\",\n    cy: \"7\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"8\",\n    x2: \"23\",\n    y2: \"13\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"8\",\n    x2: \"18\",\n    y2: \"13\"\n  }));\n});\nUserX.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUserX.displayName = 'UserX';\n/* harmony default export */ __webpack_exports__[\"default\"] = (UserX);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/user-x.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/user.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/user.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar User = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"7\",\n    r: \"4\"\n  }));\n});\nUser.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUser.displayName = 'User';\n/* harmony default export */ __webpack_exports__[\"default\"] = (User);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/user.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/users.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/users.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Users = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"9\",\n    cy: \"7\",\n    r: \"4\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M23 21v-2a4 4 0 0 0-3-3.87\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 3.13a4 4 0 0 1 0 7.75\"\n  }));\n});\nUsers.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nUsers.displayName = 'Users';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Users);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/users.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/video-off.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/video-off.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar VideoOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }));\n});\nVideoOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVideoOff.displayName = 'VideoOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (VideoOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/video-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/video.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/video.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Video = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"23 7 16 12 23 17 23 7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"1\",\n    y: \"5\",\n    width: \"15\",\n    height: \"14\",\n    rx: \"2\",\n    ry: \"2\"\n  }));\n});\nVideo.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVideo.displayName = 'Video';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Video);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/video.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/voicemail.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/voicemail.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Voicemail = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"5.5\",\n    cy: \"11.5\",\n    r: \"4.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"18.5\",\n    cy: \"11.5\",\n    r: \"4.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"5.5\",\n    y1: \"16\",\n    x2: \"18.5\",\n    y2: \"16\"\n  }));\n});\nVoicemail.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVoicemail.displayName = 'Voicemail';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Voicemail);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/voicemail.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/volume-1.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/volume-1.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Volume1 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M15.54 8.46a5 5 0 0 1 0 7.07\"\n  }));\n});\nVolume1.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVolume1.displayName = 'Volume1';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Volume1);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/volume-1.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/volume-2.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/volume-2.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Volume2 = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"\n  }));\n});\nVolume2.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVolume2.displayName = 'Volume2';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Volume2);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/volume-2.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/volume-x.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/volume-x.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar VolumeX = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"23\",\n    y1: \"9\",\n    x2: \"17\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"17\",\n    y1: \"9\",\n    x2: \"23\",\n    y2: \"15\"\n  }));\n});\nVolumeX.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVolumeX.displayName = 'VolumeX';\n/* harmony default export */ __webpack_exports__[\"default\"] = (VolumeX);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/volume-x.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/volume.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/volume.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Volume = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\n  }));\n});\nVolume.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nVolume.displayName = 'Volume';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Volume);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/volume.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/watch.js":
/*!********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/watch.js ***!
  \********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Watch = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"7\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12 9 12 12 13.5 13.5\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"\n  }));\n});\nWatch.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nWatch.displayName = 'Watch';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Watch);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/watch.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/wifi-off.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/wifi-off.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar WifiOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M10.71 5.05A16 16 0 0 1 22.58 9\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8.53 16.11a6 6 0 0 1 6.95 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"20\",\n    x2: \"12.01\",\n    y2: \"20\"\n  }));\n});\nWifiOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nWifiOff.displayName = 'WifiOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (WifiOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/wifi-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/wifi.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/wifi.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Wifi = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M5 12.55a11 11 0 0 1 14.08 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M1.42 9a16 16 0 0 1 21.16 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M8.53 16.11a6 6 0 0 1 6.95 0\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"12\",\n    y1: \"20\",\n    x2: \"12.01\",\n    y2: \"20\"\n  }));\n});\nWifi.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nWifi.displayName = 'Wifi';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Wifi);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/wifi.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/wind.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/wind.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Wind = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"\n  }));\n});\nWind.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nWind.displayName = 'Wind';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Wind);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/wind.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/x-circle.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/x-circle.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar XCircle = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"12\",\n    cy: \"12\",\n    r: \"10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"9\",\n    x2: \"9\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"9\",\n    x2: \"15\",\n    y2: \"15\"\n  }));\n});\nXCircle.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nXCircle.displayName = 'XCircle';\n/* harmony default export */ __webpack_exports__[\"default\"] = (XCircle);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/x-circle.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/x-octagon.js":
/*!************************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/x-octagon.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar XOctagon = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"9\",\n    x2: \"9\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"9\",\n    x2: \"15\",\n    y2: \"15\"\n  }));\n});\nXOctagon.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nXOctagon.displayName = 'XOctagon';\n/* harmony default export */ __webpack_exports__[\"default\"] = (XOctagon);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/x-octagon.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/x-square.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/x-square.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar XSquare = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"rect\", {\n    x: \"3\",\n    y: \"3\",\n    width: \"18\",\n    height: \"18\",\n    rx: \"2\",\n    ry: \"2\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"9\",\n    y1: \"9\",\n    x2: \"15\",\n    y2: \"15\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"15\",\n    y1: \"9\",\n    x2: \"9\",\n    y2: \"15\"\n  }));\n});\nXSquare.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nXSquare.displayName = 'XSquare';\n/* harmony default export */ __webpack_exports__[\"default\"] = (XSquare);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/x-square.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/x.js":
/*!****************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/x.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar X = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"18\",\n    y1: \"6\",\n    x2: \"6\",\n    y2: \"18\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"6\",\n    y1: \"6\",\n    x2: \"18\",\n    y2: \"18\"\n  }));\n});\nX.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nX.displayName = 'X';\n/* harmony default export */ __webpack_exports__[\"default\"] = (X);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/x.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/youtube.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/youtube.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Youtube = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"path\", {\n    d: \"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"\n  }));\n});\nYoutube.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nYoutube.displayName = 'Youtube';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Youtube);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/youtube.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/zap-off.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/zap-off.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ZapOff = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"12.41 6.75 13 2 10.57 4.92\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"18.57 12.91 21 10 15.66 10\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polyline\", {\n    points: \"8 8 3 14 12 14 11 22 16 16\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"1\",\n    y1: \"1\",\n    x2: \"23\",\n    y2: \"23\"\n  }));\n});\nZapOff.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nZapOff.displayName = 'ZapOff';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ZapOff);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/zap-off.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/zap.js":
/*!******************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/zap.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar Zap = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"polygon\", {\n    points: \"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"\n  }));\n});\nZap.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nZap.displayName = 'Zap';\n/* harmony default export */ __webpack_exports__[\"default\"] = (Zap);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/zap.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/zoom-in.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/zoom-in.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ZoomIn = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"11\",\n    cy: \"11\",\n    r: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"21\",\n    x2: \"16.65\",\n    y2: \"16.65\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"11\",\n    y1: \"8\",\n    x2: \"11\",\n    y2: \"14\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"11\",\n    x2: \"14\",\n    y2: \"11\"\n  }));\n});\nZoomIn.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nZoomIn.displayName = 'ZoomIn';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ZoomIn);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/zoom-in.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/icons/zoom-out.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-feather/dist/icons/zoom-out.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nvar ZoomOut = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(function (_ref, ref) {\n  var _ref$color = _ref.color,\n      color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"svg\", _extends({\n    ref: ref,\n    xmlns: \"http://www.w3.org/2000/svg\",\n    width: size,\n    height: size,\n    viewBox: \"0 0 24 24\",\n    fill: \"none\",\n    stroke: color,\n    strokeWidth: \"2\",\n    strokeLinecap: \"round\",\n    strokeLinejoin: \"round\"\n  }, rest), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"circle\", {\n    cx: \"11\",\n    cy: \"11\",\n    r: \"8\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"21\",\n    y1: \"21\",\n    x2: \"16.65\",\n    y2: \"16.65\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"line\", {\n    x1: \"8\",\n    y1: \"11\",\n    x2: \"14\",\n    y2: \"11\"\n  }));\n});\nZoomOut.propTypes = {\n  color: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n  size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number])\n};\nZoomOut.displayName = 'ZoomOut';\n/* harmony default export */ __webpack_exports__[\"default\"] = (ZoomOut);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/icons/zoom-out.js?");

/***/ }),

/***/ "./node_modules/react-feather/dist/index.js":
/*!**************************************************!*\
  !*** ./node_modules/react-feather/dist/index.js ***!
  \**************************************************/
/*! exports provided: Activity, Airplay, AlertCircle, AlertOctagon, AlertTriangle, AlignCenter, AlignJustify, AlignLeft, AlignRight, Anchor, Aperture, Archive, ArrowDownCircle, ArrowDownLeft, ArrowDownRight, ArrowDown, ArrowLeftCircle, ArrowLeft, ArrowRightCircle, ArrowRight, ArrowUpCircle, ArrowUpLeft, ArrowUpRight, ArrowUp, AtSign, Award, BarChart2, BarChart, BatteryCharging, Battery, BellOff, Bell, Bluetooth, Bold, BookOpen, Book, Bookmark, Box, Briefcase, Calendar, CameraOff, Camera, Cast, CheckCircle, CheckSquare, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsDown, ChevronsLeft, ChevronsRight, ChevronsUp, Chrome, Circle, Clipboard, Clock, CloudDrizzle, CloudLightning, CloudOff, CloudRain, CloudSnow, Cloud, Code, Codepen, Codesandbox, Coffee, Columns, Command, Compass, Copy, CornerDownLeft, CornerDownRight, CornerLeftDown, CornerLeftUp, CornerRightDown, CornerRightUp, CornerUpLeft, CornerUpRight, Cpu, CreditCard, Crop, Crosshair, Database, Delete, Disc, DivideCircle, DivideSquare, Divide, DollarSign, DownloadCloud, Download, Dribbble, Droplet, Edit2, Edit3, Edit, ExternalLink, EyeOff, Eye, Facebook, FastForward, Feather, Figma, FileMinus, FilePlus, FileText, File, Film, Filter, Flag, FolderMinus, FolderPlus, Folder, Framer, Frown, Gift, GitBranch, GitCommit, GitMerge, GitPullRequest, GitHub, Gitlab, Globe, Grid, HardDrive, Hash, Headphones, Heart, HelpCircle, Hexagon, Home, Image, Inbox, Info, Instagram, Italic, Key, Layers, Layout, LifeBuoy, Link2, Link, Linkedin, List, Loader, Lock, LogIn, LogOut, Mail, MapPin, Map, Maximize2, Maximize, Meh, Menu, MessageCircle, MessageSquare, MicOff, Mic, Minimize2, Minimize, MinusCircle, MinusSquare, Minus, Monitor, Moon, MoreHorizontal, MoreVertical, MousePointer, Move, Music, Navigation2, Navigation, Octagon, Package, Paperclip, PauseCircle, Pause, PenTool, Percent, PhoneCall, PhoneForwarded, PhoneIncoming, PhoneMissed, PhoneOff, PhoneOutgoing, Phone, PieChart, PlayCircle, Play, PlusCircle, PlusSquare, Plus, Pocket, Power, Printer, Radio, RefreshCcw, RefreshCw, Repeat, Rewind, RotateCcw, RotateCw, Rss, Save, Scissors, Search, Send, Server, Settings, Share2, Share, ShieldOff, Shield, ShoppingBag, ShoppingCart, Shuffle, Sidebar, SkipBack, SkipForward, Slack, Slash, Sliders, Smartphone, Smile, Speaker, Square, Star, StopCircle, Sun, Sunrise, Sunset, Tablet, Tag, Target, Terminal, Thermometer, ThumbsDown, ThumbsUp, ToggleLeft, ToggleRight, Tool, Trash2, Trash, Trello, TrendingDown, TrendingUp, Triangle, Truck, Tv, Twitch, Twitter, Type, Umbrella, Underline, Unlock, UploadCloud, Upload, UserCheck, UserMinus, UserPlus, UserX, User, Users, VideoOff, Video, Voicemail, Volume1, Volume2, VolumeX, Volume, Watch, WifiOff, Wifi, Wind, XCircle, XOctagon, XSquare, X, Youtube, ZapOff, Zap, ZoomIn, ZoomOut */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _icons_activity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./icons/activity */ \"./node_modules/react-feather/dist/icons/activity.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Activity\", function() { return _icons_activity__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _icons_airplay__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./icons/airplay */ \"./node_modules/react-feather/dist/icons/airplay.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Airplay\", function() { return _icons_airplay__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _icons_alert_circle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./icons/alert-circle */ \"./node_modules/react-feather/dist/icons/alert-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlertCircle\", function() { return _icons_alert_circle__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _icons_alert_octagon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./icons/alert-octagon */ \"./node_modules/react-feather/dist/icons/alert-octagon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlertOctagon\", function() { return _icons_alert_octagon__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _icons_alert_triangle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./icons/alert-triangle */ \"./node_modules/react-feather/dist/icons/alert-triangle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlertTriangle\", function() { return _icons_alert_triangle__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _icons_align_center__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./icons/align-center */ \"./node_modules/react-feather/dist/icons/align-center.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlignCenter\", function() { return _icons_align_center__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _icons_align_justify__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./icons/align-justify */ \"./node_modules/react-feather/dist/icons/align-justify.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlignJustify\", function() { return _icons_align_justify__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _icons_align_left__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./icons/align-left */ \"./node_modules/react-feather/dist/icons/align-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlignLeft\", function() { return _icons_align_left__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n/* harmony import */ var _icons_align_right__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./icons/align-right */ \"./node_modules/react-feather/dist/icons/align-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AlignRight\", function() { return _icons_align_right__WEBPACK_IMPORTED_MODULE_8__[\"default\"]; });\n\n/* harmony import */ var _icons_anchor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./icons/anchor */ \"./node_modules/react-feather/dist/icons/anchor.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Anchor\", function() { return _icons_anchor__WEBPACK_IMPORTED_MODULE_9__[\"default\"]; });\n\n/* harmony import */ var _icons_aperture__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./icons/aperture */ \"./node_modules/react-feather/dist/icons/aperture.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Aperture\", function() { return _icons_aperture__WEBPACK_IMPORTED_MODULE_10__[\"default\"]; });\n\n/* harmony import */ var _icons_archive__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./icons/archive */ \"./node_modules/react-feather/dist/icons/archive.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Archive\", function() { return _icons_archive__WEBPACK_IMPORTED_MODULE_11__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_down_circle__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./icons/arrow-down-circle */ \"./node_modules/react-feather/dist/icons/arrow-down-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowDownCircle\", function() { return _icons_arrow_down_circle__WEBPACK_IMPORTED_MODULE_12__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_down_left__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./icons/arrow-down-left */ \"./node_modules/react-feather/dist/icons/arrow-down-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowDownLeft\", function() { return _icons_arrow_down_left__WEBPACK_IMPORTED_MODULE_13__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_down_right__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./icons/arrow-down-right */ \"./node_modules/react-feather/dist/icons/arrow-down-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowDownRight\", function() { return _icons_arrow_down_right__WEBPACK_IMPORTED_MODULE_14__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_down__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./icons/arrow-down */ \"./node_modules/react-feather/dist/icons/arrow-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowDown\", function() { return _icons_arrow_down__WEBPACK_IMPORTED_MODULE_15__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_left_circle__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./icons/arrow-left-circle */ \"./node_modules/react-feather/dist/icons/arrow-left-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowLeftCircle\", function() { return _icons_arrow_left_circle__WEBPACK_IMPORTED_MODULE_16__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_left__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./icons/arrow-left */ \"./node_modules/react-feather/dist/icons/arrow-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowLeft\", function() { return _icons_arrow_left__WEBPACK_IMPORTED_MODULE_17__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_right_circle__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./icons/arrow-right-circle */ \"./node_modules/react-feather/dist/icons/arrow-right-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowRightCircle\", function() { return _icons_arrow_right_circle__WEBPACK_IMPORTED_MODULE_18__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_right__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./icons/arrow-right */ \"./node_modules/react-feather/dist/icons/arrow-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowRight\", function() { return _icons_arrow_right__WEBPACK_IMPORTED_MODULE_19__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_up_circle__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./icons/arrow-up-circle */ \"./node_modules/react-feather/dist/icons/arrow-up-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowUpCircle\", function() { return _icons_arrow_up_circle__WEBPACK_IMPORTED_MODULE_20__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_up_left__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./icons/arrow-up-left */ \"./node_modules/react-feather/dist/icons/arrow-up-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowUpLeft\", function() { return _icons_arrow_up_left__WEBPACK_IMPORTED_MODULE_21__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_up_right__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./icons/arrow-up-right */ \"./node_modules/react-feather/dist/icons/arrow-up-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowUpRight\", function() { return _icons_arrow_up_right__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _icons_arrow_up__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./icons/arrow-up */ \"./node_modules/react-feather/dist/icons/arrow-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ArrowUp\", function() { return _icons_arrow_up__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _icons_at_sign__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./icons/at-sign */ \"./node_modules/react-feather/dist/icons/at-sign.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AtSign\", function() { return _icons_at_sign__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _icons_award__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./icons/award */ \"./node_modules/react-feather/dist/icons/award.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Award\", function() { return _icons_award__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n/* harmony import */ var _icons_bar_chart_2__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./icons/bar-chart-2 */ \"./node_modules/react-feather/dist/icons/bar-chart-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BarChart2\", function() { return _icons_bar_chart_2__WEBPACK_IMPORTED_MODULE_26__[\"default\"]; });\n\n/* harmony import */ var _icons_bar_chart__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./icons/bar-chart */ \"./node_modules/react-feather/dist/icons/bar-chart.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BarChart\", function() { return _icons_bar_chart__WEBPACK_IMPORTED_MODULE_27__[\"default\"]; });\n\n/* harmony import */ var _icons_battery_charging__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./icons/battery-charging */ \"./node_modules/react-feather/dist/icons/battery-charging.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BatteryCharging\", function() { return _icons_battery_charging__WEBPACK_IMPORTED_MODULE_28__[\"default\"]; });\n\n/* harmony import */ var _icons_battery__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./icons/battery */ \"./node_modules/react-feather/dist/icons/battery.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Battery\", function() { return _icons_battery__WEBPACK_IMPORTED_MODULE_29__[\"default\"]; });\n\n/* harmony import */ var _icons_bell_off__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./icons/bell-off */ \"./node_modules/react-feather/dist/icons/bell-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BellOff\", function() { return _icons_bell_off__WEBPACK_IMPORTED_MODULE_30__[\"default\"]; });\n\n/* harmony import */ var _icons_bell__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./icons/bell */ \"./node_modules/react-feather/dist/icons/bell.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Bell\", function() { return _icons_bell__WEBPACK_IMPORTED_MODULE_31__[\"default\"]; });\n\n/* harmony import */ var _icons_bluetooth__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./icons/bluetooth */ \"./node_modules/react-feather/dist/icons/bluetooth.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Bluetooth\", function() { return _icons_bluetooth__WEBPACK_IMPORTED_MODULE_32__[\"default\"]; });\n\n/* harmony import */ var _icons_bold__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./icons/bold */ \"./node_modules/react-feather/dist/icons/bold.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Bold\", function() { return _icons_bold__WEBPACK_IMPORTED_MODULE_33__[\"default\"]; });\n\n/* harmony import */ var _icons_book_open__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./icons/book-open */ \"./node_modules/react-feather/dist/icons/book-open.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BookOpen\", function() { return _icons_book_open__WEBPACK_IMPORTED_MODULE_34__[\"default\"]; });\n\n/* harmony import */ var _icons_book__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./icons/book */ \"./node_modules/react-feather/dist/icons/book.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Book\", function() { return _icons_book__WEBPACK_IMPORTED_MODULE_35__[\"default\"]; });\n\n/* harmony import */ var _icons_bookmark__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./icons/bookmark */ \"./node_modules/react-feather/dist/icons/bookmark.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Bookmark\", function() { return _icons_bookmark__WEBPACK_IMPORTED_MODULE_36__[\"default\"]; });\n\n/* harmony import */ var _icons_box__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./icons/box */ \"./node_modules/react-feather/dist/icons/box.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Box\", function() { return _icons_box__WEBPACK_IMPORTED_MODULE_37__[\"default\"]; });\n\n/* harmony import */ var _icons_briefcase__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./icons/briefcase */ \"./node_modules/react-feather/dist/icons/briefcase.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Briefcase\", function() { return _icons_briefcase__WEBPACK_IMPORTED_MODULE_38__[\"default\"]; });\n\n/* harmony import */ var _icons_calendar__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./icons/calendar */ \"./node_modules/react-feather/dist/icons/calendar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Calendar\", function() { return _icons_calendar__WEBPACK_IMPORTED_MODULE_39__[\"default\"]; });\n\n/* harmony import */ var _icons_camera_off__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./icons/camera-off */ \"./node_modules/react-feather/dist/icons/camera-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CameraOff\", function() { return _icons_camera_off__WEBPACK_IMPORTED_MODULE_40__[\"default\"]; });\n\n/* harmony import */ var _icons_camera__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./icons/camera */ \"./node_modules/react-feather/dist/icons/camera.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Camera\", function() { return _icons_camera__WEBPACK_IMPORTED_MODULE_41__[\"default\"]; });\n\n/* harmony import */ var _icons_cast__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./icons/cast */ \"./node_modules/react-feather/dist/icons/cast.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cast\", function() { return _icons_cast__WEBPACK_IMPORTED_MODULE_42__[\"default\"]; });\n\n/* harmony import */ var _icons_check_circle__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./icons/check-circle */ \"./node_modules/react-feather/dist/icons/check-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CheckCircle\", function() { return _icons_check_circle__WEBPACK_IMPORTED_MODULE_43__[\"default\"]; });\n\n/* harmony import */ var _icons_check_square__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./icons/check-square */ \"./node_modules/react-feather/dist/icons/check-square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CheckSquare\", function() { return _icons_check_square__WEBPACK_IMPORTED_MODULE_44__[\"default\"]; });\n\n/* harmony import */ var _icons_check__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./icons/check */ \"./node_modules/react-feather/dist/icons/check.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Check\", function() { return _icons_check__WEBPACK_IMPORTED_MODULE_45__[\"default\"]; });\n\n/* harmony import */ var _icons_chevron_down__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./icons/chevron-down */ \"./node_modules/react-feather/dist/icons/chevron-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronDown\", function() { return _icons_chevron_down__WEBPACK_IMPORTED_MODULE_46__[\"default\"]; });\n\n/* harmony import */ var _icons_chevron_left__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./icons/chevron-left */ \"./node_modules/react-feather/dist/icons/chevron-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronLeft\", function() { return _icons_chevron_left__WEBPACK_IMPORTED_MODULE_47__[\"default\"]; });\n\n/* harmony import */ var _icons_chevron_right__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./icons/chevron-right */ \"./node_modules/react-feather/dist/icons/chevron-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronRight\", function() { return _icons_chevron_right__WEBPACK_IMPORTED_MODULE_48__[\"default\"]; });\n\n/* harmony import */ var _icons_chevron_up__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./icons/chevron-up */ \"./node_modules/react-feather/dist/icons/chevron-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronUp\", function() { return _icons_chevron_up__WEBPACK_IMPORTED_MODULE_49__[\"default\"]; });\n\n/* harmony import */ var _icons_chevrons_down__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./icons/chevrons-down */ \"./node_modules/react-feather/dist/icons/chevrons-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronsDown\", function() { return _icons_chevrons_down__WEBPACK_IMPORTED_MODULE_50__[\"default\"]; });\n\n/* harmony import */ var _icons_chevrons_left__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./icons/chevrons-left */ \"./node_modules/react-feather/dist/icons/chevrons-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronsLeft\", function() { return _icons_chevrons_left__WEBPACK_IMPORTED_MODULE_51__[\"default\"]; });\n\n/* harmony import */ var _icons_chevrons_right__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./icons/chevrons-right */ \"./node_modules/react-feather/dist/icons/chevrons-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronsRight\", function() { return _icons_chevrons_right__WEBPACK_IMPORTED_MODULE_52__[\"default\"]; });\n\n/* harmony import */ var _icons_chevrons_up__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./icons/chevrons-up */ \"./node_modules/react-feather/dist/icons/chevrons-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ChevronsUp\", function() { return _icons_chevrons_up__WEBPACK_IMPORTED_MODULE_53__[\"default\"]; });\n\n/* harmony import */ var _icons_chrome__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./icons/chrome */ \"./node_modules/react-feather/dist/icons/chrome.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Chrome\", function() { return _icons_chrome__WEBPACK_IMPORTED_MODULE_54__[\"default\"]; });\n\n/* harmony import */ var _icons_circle__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./icons/circle */ \"./node_modules/react-feather/dist/icons/circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Circle\", function() { return _icons_circle__WEBPACK_IMPORTED_MODULE_55__[\"default\"]; });\n\n/* harmony import */ var _icons_clipboard__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./icons/clipboard */ \"./node_modules/react-feather/dist/icons/clipboard.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Clipboard\", function() { return _icons_clipboard__WEBPACK_IMPORTED_MODULE_56__[\"default\"]; });\n\n/* harmony import */ var _icons_clock__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./icons/clock */ \"./node_modules/react-feather/dist/icons/clock.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Clock\", function() { return _icons_clock__WEBPACK_IMPORTED_MODULE_57__[\"default\"]; });\n\n/* harmony import */ var _icons_cloud_drizzle__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./icons/cloud-drizzle */ \"./node_modules/react-feather/dist/icons/cloud-drizzle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CloudDrizzle\", function() { return _icons_cloud_drizzle__WEBPACK_IMPORTED_MODULE_58__[\"default\"]; });\n\n/* harmony import */ var _icons_cloud_lightning__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./icons/cloud-lightning */ \"./node_modules/react-feather/dist/icons/cloud-lightning.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CloudLightning\", function() { return _icons_cloud_lightning__WEBPACK_IMPORTED_MODULE_59__[\"default\"]; });\n\n/* harmony import */ var _icons_cloud_off__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./icons/cloud-off */ \"./node_modules/react-feather/dist/icons/cloud-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CloudOff\", function() { return _icons_cloud_off__WEBPACK_IMPORTED_MODULE_60__[\"default\"]; });\n\n/* harmony import */ var _icons_cloud_rain__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./icons/cloud-rain */ \"./node_modules/react-feather/dist/icons/cloud-rain.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CloudRain\", function() { return _icons_cloud_rain__WEBPACK_IMPORTED_MODULE_61__[\"default\"]; });\n\n/* harmony import */ var _icons_cloud_snow__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./icons/cloud-snow */ \"./node_modules/react-feather/dist/icons/cloud-snow.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CloudSnow\", function() { return _icons_cloud_snow__WEBPACK_IMPORTED_MODULE_62__[\"default\"]; });\n\n/* harmony import */ var _icons_cloud__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./icons/cloud */ \"./node_modules/react-feather/dist/icons/cloud.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cloud\", function() { return _icons_cloud__WEBPACK_IMPORTED_MODULE_63__[\"default\"]; });\n\n/* harmony import */ var _icons_code__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./icons/code */ \"./node_modules/react-feather/dist/icons/code.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Code\", function() { return _icons_code__WEBPACK_IMPORTED_MODULE_64__[\"default\"]; });\n\n/* harmony import */ var _icons_codepen__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./icons/codepen */ \"./node_modules/react-feather/dist/icons/codepen.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Codepen\", function() { return _icons_codepen__WEBPACK_IMPORTED_MODULE_65__[\"default\"]; });\n\n/* harmony import */ var _icons_codesandbox__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./icons/codesandbox */ \"./node_modules/react-feather/dist/icons/codesandbox.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Codesandbox\", function() { return _icons_codesandbox__WEBPACK_IMPORTED_MODULE_66__[\"default\"]; });\n\n/* harmony import */ var _icons_coffee__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./icons/coffee */ \"./node_modules/react-feather/dist/icons/coffee.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Coffee\", function() { return _icons_coffee__WEBPACK_IMPORTED_MODULE_67__[\"default\"]; });\n\n/* harmony import */ var _icons_columns__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./icons/columns */ \"./node_modules/react-feather/dist/icons/columns.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Columns\", function() { return _icons_columns__WEBPACK_IMPORTED_MODULE_68__[\"default\"]; });\n\n/* harmony import */ var _icons_command__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./icons/command */ \"./node_modules/react-feather/dist/icons/command.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Command\", function() { return _icons_command__WEBPACK_IMPORTED_MODULE_69__[\"default\"]; });\n\n/* harmony import */ var _icons_compass__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./icons/compass */ \"./node_modules/react-feather/dist/icons/compass.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Compass\", function() { return _icons_compass__WEBPACK_IMPORTED_MODULE_70__[\"default\"]; });\n\n/* harmony import */ var _icons_copy__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./icons/copy */ \"./node_modules/react-feather/dist/icons/copy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Copy\", function() { return _icons_copy__WEBPACK_IMPORTED_MODULE_71__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_down_left__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./icons/corner-down-left */ \"./node_modules/react-feather/dist/icons/corner-down-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerDownLeft\", function() { return _icons_corner_down_left__WEBPACK_IMPORTED_MODULE_72__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_down_right__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./icons/corner-down-right */ \"./node_modules/react-feather/dist/icons/corner-down-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerDownRight\", function() { return _icons_corner_down_right__WEBPACK_IMPORTED_MODULE_73__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_left_down__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./icons/corner-left-down */ \"./node_modules/react-feather/dist/icons/corner-left-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerLeftDown\", function() { return _icons_corner_left_down__WEBPACK_IMPORTED_MODULE_74__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_left_up__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./icons/corner-left-up */ \"./node_modules/react-feather/dist/icons/corner-left-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerLeftUp\", function() { return _icons_corner_left_up__WEBPACK_IMPORTED_MODULE_75__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_right_down__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./icons/corner-right-down */ \"./node_modules/react-feather/dist/icons/corner-right-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerRightDown\", function() { return _icons_corner_right_down__WEBPACK_IMPORTED_MODULE_76__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_right_up__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./icons/corner-right-up */ \"./node_modules/react-feather/dist/icons/corner-right-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerRightUp\", function() { return _icons_corner_right_up__WEBPACK_IMPORTED_MODULE_77__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_up_left__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./icons/corner-up-left */ \"./node_modules/react-feather/dist/icons/corner-up-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerUpLeft\", function() { return _icons_corner_up_left__WEBPACK_IMPORTED_MODULE_78__[\"default\"]; });\n\n/* harmony import */ var _icons_corner_up_right__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./icons/corner-up-right */ \"./node_modules/react-feather/dist/icons/corner-up-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CornerUpRight\", function() { return _icons_corner_up_right__WEBPACK_IMPORTED_MODULE_79__[\"default\"]; });\n\n/* harmony import */ var _icons_cpu__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./icons/cpu */ \"./node_modules/react-feather/dist/icons/cpu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cpu\", function() { return _icons_cpu__WEBPACK_IMPORTED_MODULE_80__[\"default\"]; });\n\n/* harmony import */ var _icons_credit_card__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./icons/credit-card */ \"./node_modules/react-feather/dist/icons/credit-card.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CreditCard\", function() { return _icons_credit_card__WEBPACK_IMPORTED_MODULE_81__[\"default\"]; });\n\n/* harmony import */ var _icons_crop__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./icons/crop */ \"./node_modules/react-feather/dist/icons/crop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Crop\", function() { return _icons_crop__WEBPACK_IMPORTED_MODULE_82__[\"default\"]; });\n\n/* harmony import */ var _icons_crosshair__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./icons/crosshair */ \"./node_modules/react-feather/dist/icons/crosshair.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Crosshair\", function() { return _icons_crosshair__WEBPACK_IMPORTED_MODULE_83__[\"default\"]; });\n\n/* harmony import */ var _icons_database__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./icons/database */ \"./node_modules/react-feather/dist/icons/database.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Database\", function() { return _icons_database__WEBPACK_IMPORTED_MODULE_84__[\"default\"]; });\n\n/* harmony import */ var _icons_delete__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./icons/delete */ \"./node_modules/react-feather/dist/icons/delete.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Delete\", function() { return _icons_delete__WEBPACK_IMPORTED_MODULE_85__[\"default\"]; });\n\n/* harmony import */ var _icons_disc__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./icons/disc */ \"./node_modules/react-feather/dist/icons/disc.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Disc\", function() { return _icons_disc__WEBPACK_IMPORTED_MODULE_86__[\"default\"]; });\n\n/* harmony import */ var _icons_divide_circle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./icons/divide-circle */ \"./node_modules/react-feather/dist/icons/divide-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DivideCircle\", function() { return _icons_divide_circle__WEBPACK_IMPORTED_MODULE_87__[\"default\"]; });\n\n/* harmony import */ var _icons_divide_square__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./icons/divide-square */ \"./node_modules/react-feather/dist/icons/divide-square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DivideSquare\", function() { return _icons_divide_square__WEBPACK_IMPORTED_MODULE_88__[\"default\"]; });\n\n/* harmony import */ var _icons_divide__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./icons/divide */ \"./node_modules/react-feather/dist/icons/divide.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Divide\", function() { return _icons_divide__WEBPACK_IMPORTED_MODULE_89__[\"default\"]; });\n\n/* harmony import */ var _icons_dollar_sign__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./icons/dollar-sign */ \"./node_modules/react-feather/dist/icons/dollar-sign.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DollarSign\", function() { return _icons_dollar_sign__WEBPACK_IMPORTED_MODULE_90__[\"default\"]; });\n\n/* harmony import */ var _icons_download_cloud__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./icons/download-cloud */ \"./node_modules/react-feather/dist/icons/download-cloud.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DownloadCloud\", function() { return _icons_download_cloud__WEBPACK_IMPORTED_MODULE_91__[\"default\"]; });\n\n/* harmony import */ var _icons_download__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./icons/download */ \"./node_modules/react-feather/dist/icons/download.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Download\", function() { return _icons_download__WEBPACK_IMPORTED_MODULE_92__[\"default\"]; });\n\n/* harmony import */ var _icons_dribbble__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./icons/dribbble */ \"./node_modules/react-feather/dist/icons/dribbble.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Dribbble\", function() { return _icons_dribbble__WEBPACK_IMPORTED_MODULE_93__[\"default\"]; });\n\n/* harmony import */ var _icons_droplet__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./icons/droplet */ \"./node_modules/react-feather/dist/icons/droplet.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Droplet\", function() { return _icons_droplet__WEBPACK_IMPORTED_MODULE_94__[\"default\"]; });\n\n/* harmony import */ var _icons_edit_2__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./icons/edit-2 */ \"./node_modules/react-feather/dist/icons/edit-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Edit2\", function() { return _icons_edit_2__WEBPACK_IMPORTED_MODULE_95__[\"default\"]; });\n\n/* harmony import */ var _icons_edit_3__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./icons/edit-3 */ \"./node_modules/react-feather/dist/icons/edit-3.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Edit3\", function() { return _icons_edit_3__WEBPACK_IMPORTED_MODULE_96__[\"default\"]; });\n\n/* harmony import */ var _icons_edit__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./icons/edit */ \"./node_modules/react-feather/dist/icons/edit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Edit\", function() { return _icons_edit__WEBPACK_IMPORTED_MODULE_97__[\"default\"]; });\n\n/* harmony import */ var _icons_external_link__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./icons/external-link */ \"./node_modules/react-feather/dist/icons/external-link.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ExternalLink\", function() { return _icons_external_link__WEBPACK_IMPORTED_MODULE_98__[\"default\"]; });\n\n/* harmony import */ var _icons_eye_off__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./icons/eye-off */ \"./node_modules/react-feather/dist/icons/eye-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EyeOff\", function() { return _icons_eye_off__WEBPACK_IMPORTED_MODULE_99__[\"default\"]; });\n\n/* harmony import */ var _icons_eye__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./icons/eye */ \"./node_modules/react-feather/dist/icons/eye.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Eye\", function() { return _icons_eye__WEBPACK_IMPORTED_MODULE_100__[\"default\"]; });\n\n/* harmony import */ var _icons_facebook__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./icons/facebook */ \"./node_modules/react-feather/dist/icons/facebook.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Facebook\", function() { return _icons_facebook__WEBPACK_IMPORTED_MODULE_101__[\"default\"]; });\n\n/* harmony import */ var _icons_fast_forward__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./icons/fast-forward */ \"./node_modules/react-feather/dist/icons/fast-forward.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FastForward\", function() { return _icons_fast_forward__WEBPACK_IMPORTED_MODULE_102__[\"default\"]; });\n\n/* harmony import */ var _icons_feather__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./icons/feather */ \"./node_modules/react-feather/dist/icons/feather.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Feather\", function() { return _icons_feather__WEBPACK_IMPORTED_MODULE_103__[\"default\"]; });\n\n/* harmony import */ var _icons_figma__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./icons/figma */ \"./node_modules/react-feather/dist/icons/figma.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Figma\", function() { return _icons_figma__WEBPACK_IMPORTED_MODULE_104__[\"default\"]; });\n\n/* harmony import */ var _icons_file_minus__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./icons/file-minus */ \"./node_modules/react-feather/dist/icons/file-minus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FileMinus\", function() { return _icons_file_minus__WEBPACK_IMPORTED_MODULE_105__[\"default\"]; });\n\n/* harmony import */ var _icons_file_plus__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./icons/file-plus */ \"./node_modules/react-feather/dist/icons/file-plus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FilePlus\", function() { return _icons_file_plus__WEBPACK_IMPORTED_MODULE_106__[\"default\"]; });\n\n/* harmony import */ var _icons_file_text__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./icons/file-text */ \"./node_modules/react-feather/dist/icons/file-text.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FileText\", function() { return _icons_file_text__WEBPACK_IMPORTED_MODULE_107__[\"default\"]; });\n\n/* harmony import */ var _icons_file__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./icons/file */ \"./node_modules/react-feather/dist/icons/file.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"File\", function() { return _icons_file__WEBPACK_IMPORTED_MODULE_108__[\"default\"]; });\n\n/* harmony import */ var _icons_film__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./icons/film */ \"./node_modules/react-feather/dist/icons/film.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Film\", function() { return _icons_film__WEBPACK_IMPORTED_MODULE_109__[\"default\"]; });\n\n/* harmony import */ var _icons_filter__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./icons/filter */ \"./node_modules/react-feather/dist/icons/filter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Filter\", function() { return _icons_filter__WEBPACK_IMPORTED_MODULE_110__[\"default\"]; });\n\n/* harmony import */ var _icons_flag__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./icons/flag */ \"./node_modules/react-feather/dist/icons/flag.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Flag\", function() { return _icons_flag__WEBPACK_IMPORTED_MODULE_111__[\"default\"]; });\n\n/* harmony import */ var _icons_folder_minus__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./icons/folder-minus */ \"./node_modules/react-feather/dist/icons/folder-minus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FolderMinus\", function() { return _icons_folder_minus__WEBPACK_IMPORTED_MODULE_112__[\"default\"]; });\n\n/* harmony import */ var _icons_folder_plus__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./icons/folder-plus */ \"./node_modules/react-feather/dist/icons/folder-plus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"FolderPlus\", function() { return _icons_folder_plus__WEBPACK_IMPORTED_MODULE_113__[\"default\"]; });\n\n/* harmony import */ var _icons_folder__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./icons/folder */ \"./node_modules/react-feather/dist/icons/folder.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Folder\", function() { return _icons_folder__WEBPACK_IMPORTED_MODULE_114__[\"default\"]; });\n\n/* harmony import */ var _icons_framer__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./icons/framer */ \"./node_modules/react-feather/dist/icons/framer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Framer\", function() { return _icons_framer__WEBPACK_IMPORTED_MODULE_115__[\"default\"]; });\n\n/* harmony import */ var _icons_frown__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./icons/frown */ \"./node_modules/react-feather/dist/icons/frown.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Frown\", function() { return _icons_frown__WEBPACK_IMPORTED_MODULE_116__[\"default\"]; });\n\n/* harmony import */ var _icons_gift__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./icons/gift */ \"./node_modules/react-feather/dist/icons/gift.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Gift\", function() { return _icons_gift__WEBPACK_IMPORTED_MODULE_117__[\"default\"]; });\n\n/* harmony import */ var _icons_git_branch__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./icons/git-branch */ \"./node_modules/react-feather/dist/icons/git-branch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GitBranch\", function() { return _icons_git_branch__WEBPACK_IMPORTED_MODULE_118__[\"default\"]; });\n\n/* harmony import */ var _icons_git_commit__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./icons/git-commit */ \"./node_modules/react-feather/dist/icons/git-commit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GitCommit\", function() { return _icons_git_commit__WEBPACK_IMPORTED_MODULE_119__[\"default\"]; });\n\n/* harmony import */ var _icons_git_merge__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./icons/git-merge */ \"./node_modules/react-feather/dist/icons/git-merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GitMerge\", function() { return _icons_git_merge__WEBPACK_IMPORTED_MODULE_120__[\"default\"]; });\n\n/* harmony import */ var _icons_git_pull_request__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./icons/git-pull-request */ \"./node_modules/react-feather/dist/icons/git-pull-request.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GitPullRequest\", function() { return _icons_git_pull_request__WEBPACK_IMPORTED_MODULE_121__[\"default\"]; });\n\n/* harmony import */ var _icons_github__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./icons/github */ \"./node_modules/react-feather/dist/icons/github.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GitHub\", function() { return _icons_github__WEBPACK_IMPORTED_MODULE_122__[\"default\"]; });\n\n/* harmony import */ var _icons_gitlab__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./icons/gitlab */ \"./node_modules/react-feather/dist/icons/gitlab.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Gitlab\", function() { return _icons_gitlab__WEBPACK_IMPORTED_MODULE_123__[\"default\"]; });\n\n/* harmony import */ var _icons_globe__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./icons/globe */ \"./node_modules/react-feather/dist/icons/globe.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Globe\", function() { return _icons_globe__WEBPACK_IMPORTED_MODULE_124__[\"default\"]; });\n\n/* harmony import */ var _icons_grid__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./icons/grid */ \"./node_modules/react-feather/dist/icons/grid.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Grid\", function() { return _icons_grid__WEBPACK_IMPORTED_MODULE_125__[\"default\"]; });\n\n/* harmony import */ var _icons_hard_drive__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./icons/hard-drive */ \"./node_modules/react-feather/dist/icons/hard-drive.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HardDrive\", function() { return _icons_hard_drive__WEBPACK_IMPORTED_MODULE_126__[\"default\"]; });\n\n/* harmony import */ var _icons_hash__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./icons/hash */ \"./node_modules/react-feather/dist/icons/hash.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Hash\", function() { return _icons_hash__WEBPACK_IMPORTED_MODULE_127__[\"default\"]; });\n\n/* harmony import */ var _icons_headphones__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./icons/headphones */ \"./node_modules/react-feather/dist/icons/headphones.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Headphones\", function() { return _icons_headphones__WEBPACK_IMPORTED_MODULE_128__[\"default\"]; });\n\n/* harmony import */ var _icons_heart__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./icons/heart */ \"./node_modules/react-feather/dist/icons/heart.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Heart\", function() { return _icons_heart__WEBPACK_IMPORTED_MODULE_129__[\"default\"]; });\n\n/* harmony import */ var _icons_help_circle__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./icons/help-circle */ \"./node_modules/react-feather/dist/icons/help-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HelpCircle\", function() { return _icons_help_circle__WEBPACK_IMPORTED_MODULE_130__[\"default\"]; });\n\n/* harmony import */ var _icons_hexagon__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./icons/hexagon */ \"./node_modules/react-feather/dist/icons/hexagon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Hexagon\", function() { return _icons_hexagon__WEBPACK_IMPORTED_MODULE_131__[\"default\"]; });\n\n/* harmony import */ var _icons_home__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./icons/home */ \"./node_modules/react-feather/dist/icons/home.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Home\", function() { return _icons_home__WEBPACK_IMPORTED_MODULE_132__[\"default\"]; });\n\n/* harmony import */ var _icons_image__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./icons/image */ \"./node_modules/react-feather/dist/icons/image.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Image\", function() { return _icons_image__WEBPACK_IMPORTED_MODULE_133__[\"default\"]; });\n\n/* harmony import */ var _icons_inbox__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./icons/inbox */ \"./node_modules/react-feather/dist/icons/inbox.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Inbox\", function() { return _icons_inbox__WEBPACK_IMPORTED_MODULE_134__[\"default\"]; });\n\n/* harmony import */ var _icons_info__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./icons/info */ \"./node_modules/react-feather/dist/icons/info.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Info\", function() { return _icons_info__WEBPACK_IMPORTED_MODULE_135__[\"default\"]; });\n\n/* harmony import */ var _icons_instagram__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./icons/instagram */ \"./node_modules/react-feather/dist/icons/instagram.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Instagram\", function() { return _icons_instagram__WEBPACK_IMPORTED_MODULE_136__[\"default\"]; });\n\n/* harmony import */ var _icons_italic__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./icons/italic */ \"./node_modules/react-feather/dist/icons/italic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Italic\", function() { return _icons_italic__WEBPACK_IMPORTED_MODULE_137__[\"default\"]; });\n\n/* harmony import */ var _icons_key__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./icons/key */ \"./node_modules/react-feather/dist/icons/key.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Key\", function() { return _icons_key__WEBPACK_IMPORTED_MODULE_138__[\"default\"]; });\n\n/* harmony import */ var _icons_layers__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./icons/layers */ \"./node_modules/react-feather/dist/icons/layers.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Layers\", function() { return _icons_layers__WEBPACK_IMPORTED_MODULE_139__[\"default\"]; });\n\n/* harmony import */ var _icons_layout__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./icons/layout */ \"./node_modules/react-feather/dist/icons/layout.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Layout\", function() { return _icons_layout__WEBPACK_IMPORTED_MODULE_140__[\"default\"]; });\n\n/* harmony import */ var _icons_life_buoy__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./icons/life-buoy */ \"./node_modules/react-feather/dist/icons/life-buoy.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LifeBuoy\", function() { return _icons_life_buoy__WEBPACK_IMPORTED_MODULE_141__[\"default\"]; });\n\n/* harmony import */ var _icons_link_2__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./icons/link-2 */ \"./node_modules/react-feather/dist/icons/link-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Link2\", function() { return _icons_link_2__WEBPACK_IMPORTED_MODULE_142__[\"default\"]; });\n\n/* harmony import */ var _icons_link__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(/*! ./icons/link */ \"./node_modules/react-feather/dist/icons/link.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Link\", function() { return _icons_link__WEBPACK_IMPORTED_MODULE_143__[\"default\"]; });\n\n/* harmony import */ var _icons_linkedin__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(/*! ./icons/linkedin */ \"./node_modules/react-feather/dist/icons/linkedin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Linkedin\", function() { return _icons_linkedin__WEBPACK_IMPORTED_MODULE_144__[\"default\"]; });\n\n/* harmony import */ var _icons_list__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(/*! ./icons/list */ \"./node_modules/react-feather/dist/icons/list.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"List\", function() { return _icons_list__WEBPACK_IMPORTED_MODULE_145__[\"default\"]; });\n\n/* harmony import */ var _icons_loader__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(/*! ./icons/loader */ \"./node_modules/react-feather/dist/icons/loader.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Loader\", function() { return _icons_loader__WEBPACK_IMPORTED_MODULE_146__[\"default\"]; });\n\n/* harmony import */ var _icons_lock__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(/*! ./icons/lock */ \"./node_modules/react-feather/dist/icons/lock.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Lock\", function() { return _icons_lock__WEBPACK_IMPORTED_MODULE_147__[\"default\"]; });\n\n/* harmony import */ var _icons_log_in__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(/*! ./icons/log-in */ \"./node_modules/react-feather/dist/icons/log-in.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LogIn\", function() { return _icons_log_in__WEBPACK_IMPORTED_MODULE_148__[\"default\"]; });\n\n/* harmony import */ var _icons_log_out__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(/*! ./icons/log-out */ \"./node_modules/react-feather/dist/icons/log-out.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LogOut\", function() { return _icons_log_out__WEBPACK_IMPORTED_MODULE_149__[\"default\"]; });\n\n/* harmony import */ var _icons_mail__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(/*! ./icons/mail */ \"./node_modules/react-feather/dist/icons/mail.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Mail\", function() { return _icons_mail__WEBPACK_IMPORTED_MODULE_150__[\"default\"]; });\n\n/* harmony import */ var _icons_map_pin__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(/*! ./icons/map-pin */ \"./node_modules/react-feather/dist/icons/map-pin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MapPin\", function() { return _icons_map_pin__WEBPACK_IMPORTED_MODULE_151__[\"default\"]; });\n\n/* harmony import */ var _icons_map__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(/*! ./icons/map */ \"./node_modules/react-feather/dist/icons/map.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Map\", function() { return _icons_map__WEBPACK_IMPORTED_MODULE_152__[\"default\"]; });\n\n/* harmony import */ var _icons_maximize_2__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(/*! ./icons/maximize-2 */ \"./node_modules/react-feather/dist/icons/maximize-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Maximize2\", function() { return _icons_maximize_2__WEBPACK_IMPORTED_MODULE_153__[\"default\"]; });\n\n/* harmony import */ var _icons_maximize__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(/*! ./icons/maximize */ \"./node_modules/react-feather/dist/icons/maximize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Maximize\", function() { return _icons_maximize__WEBPACK_IMPORTED_MODULE_154__[\"default\"]; });\n\n/* harmony import */ var _icons_meh__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(/*! ./icons/meh */ \"./node_modules/react-feather/dist/icons/meh.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Meh\", function() { return _icons_meh__WEBPACK_IMPORTED_MODULE_155__[\"default\"]; });\n\n/* harmony import */ var _icons_menu__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(/*! ./icons/menu */ \"./node_modules/react-feather/dist/icons/menu.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Menu\", function() { return _icons_menu__WEBPACK_IMPORTED_MODULE_156__[\"default\"]; });\n\n/* harmony import */ var _icons_message_circle__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(/*! ./icons/message-circle */ \"./node_modules/react-feather/dist/icons/message-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MessageCircle\", function() { return _icons_message_circle__WEBPACK_IMPORTED_MODULE_157__[\"default\"]; });\n\n/* harmony import */ var _icons_message_square__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(/*! ./icons/message-square */ \"./node_modules/react-feather/dist/icons/message-square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MessageSquare\", function() { return _icons_message_square__WEBPACK_IMPORTED_MODULE_158__[\"default\"]; });\n\n/* harmony import */ var _icons_mic_off__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(/*! ./icons/mic-off */ \"./node_modules/react-feather/dist/icons/mic-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MicOff\", function() { return _icons_mic_off__WEBPACK_IMPORTED_MODULE_159__[\"default\"]; });\n\n/* harmony import */ var _icons_mic__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(/*! ./icons/mic */ \"./node_modules/react-feather/dist/icons/mic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Mic\", function() { return _icons_mic__WEBPACK_IMPORTED_MODULE_160__[\"default\"]; });\n\n/* harmony import */ var _icons_minimize_2__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(/*! ./icons/minimize-2 */ \"./node_modules/react-feather/dist/icons/minimize-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Minimize2\", function() { return _icons_minimize_2__WEBPACK_IMPORTED_MODULE_161__[\"default\"]; });\n\n/* harmony import */ var _icons_minimize__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(/*! ./icons/minimize */ \"./node_modules/react-feather/dist/icons/minimize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Minimize\", function() { return _icons_minimize__WEBPACK_IMPORTED_MODULE_162__[\"default\"]; });\n\n/* harmony import */ var _icons_minus_circle__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(/*! ./icons/minus-circle */ \"./node_modules/react-feather/dist/icons/minus-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MinusCircle\", function() { return _icons_minus_circle__WEBPACK_IMPORTED_MODULE_163__[\"default\"]; });\n\n/* harmony import */ var _icons_minus_square__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(/*! ./icons/minus-square */ \"./node_modules/react-feather/dist/icons/minus-square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MinusSquare\", function() { return _icons_minus_square__WEBPACK_IMPORTED_MODULE_164__[\"default\"]; });\n\n/* harmony import */ var _icons_minus__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(/*! ./icons/minus */ \"./node_modules/react-feather/dist/icons/minus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Minus\", function() { return _icons_minus__WEBPACK_IMPORTED_MODULE_165__[\"default\"]; });\n\n/* harmony import */ var _icons_monitor__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(/*! ./icons/monitor */ \"./node_modules/react-feather/dist/icons/monitor.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Monitor\", function() { return _icons_monitor__WEBPACK_IMPORTED_MODULE_166__[\"default\"]; });\n\n/* harmony import */ var _icons_moon__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(/*! ./icons/moon */ \"./node_modules/react-feather/dist/icons/moon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Moon\", function() { return _icons_moon__WEBPACK_IMPORTED_MODULE_167__[\"default\"]; });\n\n/* harmony import */ var _icons_more_horizontal__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(/*! ./icons/more-horizontal */ \"./node_modules/react-feather/dist/icons/more-horizontal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MoreHorizontal\", function() { return _icons_more_horizontal__WEBPACK_IMPORTED_MODULE_168__[\"default\"]; });\n\n/* harmony import */ var _icons_more_vertical__WEBPACK_IMPORTED_MODULE_169__ = __webpack_require__(/*! ./icons/more-vertical */ \"./node_modules/react-feather/dist/icons/more-vertical.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MoreVertical\", function() { return _icons_more_vertical__WEBPACK_IMPORTED_MODULE_169__[\"default\"]; });\n\n/* harmony import */ var _icons_mouse_pointer__WEBPACK_IMPORTED_MODULE_170__ = __webpack_require__(/*! ./icons/mouse-pointer */ \"./node_modules/react-feather/dist/icons/mouse-pointer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MousePointer\", function() { return _icons_mouse_pointer__WEBPACK_IMPORTED_MODULE_170__[\"default\"]; });\n\n/* harmony import */ var _icons_move__WEBPACK_IMPORTED_MODULE_171__ = __webpack_require__(/*! ./icons/move */ \"./node_modules/react-feather/dist/icons/move.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Move\", function() { return _icons_move__WEBPACK_IMPORTED_MODULE_171__[\"default\"]; });\n\n/* harmony import */ var _icons_music__WEBPACK_IMPORTED_MODULE_172__ = __webpack_require__(/*! ./icons/music */ \"./node_modules/react-feather/dist/icons/music.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Music\", function() { return _icons_music__WEBPACK_IMPORTED_MODULE_172__[\"default\"]; });\n\n/* harmony import */ var _icons_navigation_2__WEBPACK_IMPORTED_MODULE_173__ = __webpack_require__(/*! ./icons/navigation-2 */ \"./node_modules/react-feather/dist/icons/navigation-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Navigation2\", function() { return _icons_navigation_2__WEBPACK_IMPORTED_MODULE_173__[\"default\"]; });\n\n/* harmony import */ var _icons_navigation__WEBPACK_IMPORTED_MODULE_174__ = __webpack_require__(/*! ./icons/navigation */ \"./node_modules/react-feather/dist/icons/navigation.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Navigation\", function() { return _icons_navigation__WEBPACK_IMPORTED_MODULE_174__[\"default\"]; });\n\n/* harmony import */ var _icons_octagon__WEBPACK_IMPORTED_MODULE_175__ = __webpack_require__(/*! ./icons/octagon */ \"./node_modules/react-feather/dist/icons/octagon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Octagon\", function() { return _icons_octagon__WEBPACK_IMPORTED_MODULE_175__[\"default\"]; });\n\n/* harmony import */ var _icons_package__WEBPACK_IMPORTED_MODULE_176__ = __webpack_require__(/*! ./icons/package */ \"./node_modules/react-feather/dist/icons/package.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Package\", function() { return _icons_package__WEBPACK_IMPORTED_MODULE_176__[\"default\"]; });\n\n/* harmony import */ var _icons_paperclip__WEBPACK_IMPORTED_MODULE_177__ = __webpack_require__(/*! ./icons/paperclip */ \"./node_modules/react-feather/dist/icons/paperclip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Paperclip\", function() { return _icons_paperclip__WEBPACK_IMPORTED_MODULE_177__[\"default\"]; });\n\n/* harmony import */ var _icons_pause_circle__WEBPACK_IMPORTED_MODULE_178__ = __webpack_require__(/*! ./icons/pause-circle */ \"./node_modules/react-feather/dist/icons/pause-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PauseCircle\", function() { return _icons_pause_circle__WEBPACK_IMPORTED_MODULE_178__[\"default\"]; });\n\n/* harmony import */ var _icons_pause__WEBPACK_IMPORTED_MODULE_179__ = __webpack_require__(/*! ./icons/pause */ \"./node_modules/react-feather/dist/icons/pause.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Pause\", function() { return _icons_pause__WEBPACK_IMPORTED_MODULE_179__[\"default\"]; });\n\n/* harmony import */ var _icons_pen_tool__WEBPACK_IMPORTED_MODULE_180__ = __webpack_require__(/*! ./icons/pen-tool */ \"./node_modules/react-feather/dist/icons/pen-tool.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PenTool\", function() { return _icons_pen_tool__WEBPACK_IMPORTED_MODULE_180__[\"default\"]; });\n\n/* harmony import */ var _icons_percent__WEBPACK_IMPORTED_MODULE_181__ = __webpack_require__(/*! ./icons/percent */ \"./node_modules/react-feather/dist/icons/percent.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Percent\", function() { return _icons_percent__WEBPACK_IMPORTED_MODULE_181__[\"default\"]; });\n\n/* harmony import */ var _icons_phone_call__WEBPACK_IMPORTED_MODULE_182__ = __webpack_require__(/*! ./icons/phone-call */ \"./node_modules/react-feather/dist/icons/phone-call.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhoneCall\", function() { return _icons_phone_call__WEBPACK_IMPORTED_MODULE_182__[\"default\"]; });\n\n/* harmony import */ var _icons_phone_forwarded__WEBPACK_IMPORTED_MODULE_183__ = __webpack_require__(/*! ./icons/phone-forwarded */ \"./node_modules/react-feather/dist/icons/phone-forwarded.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhoneForwarded\", function() { return _icons_phone_forwarded__WEBPACK_IMPORTED_MODULE_183__[\"default\"]; });\n\n/* harmony import */ var _icons_phone_incoming__WEBPACK_IMPORTED_MODULE_184__ = __webpack_require__(/*! ./icons/phone-incoming */ \"./node_modules/react-feather/dist/icons/phone-incoming.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhoneIncoming\", function() { return _icons_phone_incoming__WEBPACK_IMPORTED_MODULE_184__[\"default\"]; });\n\n/* harmony import */ var _icons_phone_missed__WEBPACK_IMPORTED_MODULE_185__ = __webpack_require__(/*! ./icons/phone-missed */ \"./node_modules/react-feather/dist/icons/phone-missed.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhoneMissed\", function() { return _icons_phone_missed__WEBPACK_IMPORTED_MODULE_185__[\"default\"]; });\n\n/* harmony import */ var _icons_phone_off__WEBPACK_IMPORTED_MODULE_186__ = __webpack_require__(/*! ./icons/phone-off */ \"./node_modules/react-feather/dist/icons/phone-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhoneOff\", function() { return _icons_phone_off__WEBPACK_IMPORTED_MODULE_186__[\"default\"]; });\n\n/* harmony import */ var _icons_phone_outgoing__WEBPACK_IMPORTED_MODULE_187__ = __webpack_require__(/*! ./icons/phone-outgoing */ \"./node_modules/react-feather/dist/icons/phone-outgoing.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PhoneOutgoing\", function() { return _icons_phone_outgoing__WEBPACK_IMPORTED_MODULE_187__[\"default\"]; });\n\n/* harmony import */ var _icons_phone__WEBPACK_IMPORTED_MODULE_188__ = __webpack_require__(/*! ./icons/phone */ \"./node_modules/react-feather/dist/icons/phone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Phone\", function() { return _icons_phone__WEBPACK_IMPORTED_MODULE_188__[\"default\"]; });\n\n/* harmony import */ var _icons_pie_chart__WEBPACK_IMPORTED_MODULE_189__ = __webpack_require__(/*! ./icons/pie-chart */ \"./node_modules/react-feather/dist/icons/pie-chart.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PieChart\", function() { return _icons_pie_chart__WEBPACK_IMPORTED_MODULE_189__[\"default\"]; });\n\n/* harmony import */ var _icons_play_circle__WEBPACK_IMPORTED_MODULE_190__ = __webpack_require__(/*! ./icons/play-circle */ \"./node_modules/react-feather/dist/icons/play-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PlayCircle\", function() { return _icons_play_circle__WEBPACK_IMPORTED_MODULE_190__[\"default\"]; });\n\n/* harmony import */ var _icons_play__WEBPACK_IMPORTED_MODULE_191__ = __webpack_require__(/*! ./icons/play */ \"./node_modules/react-feather/dist/icons/play.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Play\", function() { return _icons_play__WEBPACK_IMPORTED_MODULE_191__[\"default\"]; });\n\n/* harmony import */ var _icons_plus_circle__WEBPACK_IMPORTED_MODULE_192__ = __webpack_require__(/*! ./icons/plus-circle */ \"./node_modules/react-feather/dist/icons/plus-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PlusCircle\", function() { return _icons_plus_circle__WEBPACK_IMPORTED_MODULE_192__[\"default\"]; });\n\n/* harmony import */ var _icons_plus_square__WEBPACK_IMPORTED_MODULE_193__ = __webpack_require__(/*! ./icons/plus-square */ \"./node_modules/react-feather/dist/icons/plus-square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PlusSquare\", function() { return _icons_plus_square__WEBPACK_IMPORTED_MODULE_193__[\"default\"]; });\n\n/* harmony import */ var _icons_plus__WEBPACK_IMPORTED_MODULE_194__ = __webpack_require__(/*! ./icons/plus */ \"./node_modules/react-feather/dist/icons/plus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Plus\", function() { return _icons_plus__WEBPACK_IMPORTED_MODULE_194__[\"default\"]; });\n\n/* harmony import */ var _icons_pocket__WEBPACK_IMPORTED_MODULE_195__ = __webpack_require__(/*! ./icons/pocket */ \"./node_modules/react-feather/dist/icons/pocket.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Pocket\", function() { return _icons_pocket__WEBPACK_IMPORTED_MODULE_195__[\"default\"]; });\n\n/* harmony import */ var _icons_power__WEBPACK_IMPORTED_MODULE_196__ = __webpack_require__(/*! ./icons/power */ \"./node_modules/react-feather/dist/icons/power.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Power\", function() { return _icons_power__WEBPACK_IMPORTED_MODULE_196__[\"default\"]; });\n\n/* harmony import */ var _icons_printer__WEBPACK_IMPORTED_MODULE_197__ = __webpack_require__(/*! ./icons/printer */ \"./node_modules/react-feather/dist/icons/printer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Printer\", function() { return _icons_printer__WEBPACK_IMPORTED_MODULE_197__[\"default\"]; });\n\n/* harmony import */ var _icons_radio__WEBPACK_IMPORTED_MODULE_198__ = __webpack_require__(/*! ./icons/radio */ \"./node_modules/react-feather/dist/icons/radio.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Radio\", function() { return _icons_radio__WEBPACK_IMPORTED_MODULE_198__[\"default\"]; });\n\n/* harmony import */ var _icons_refresh_ccw__WEBPACK_IMPORTED_MODULE_199__ = __webpack_require__(/*! ./icons/refresh-ccw */ \"./node_modules/react-feather/dist/icons/refresh-ccw.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RefreshCcw\", function() { return _icons_refresh_ccw__WEBPACK_IMPORTED_MODULE_199__[\"default\"]; });\n\n/* harmony import */ var _icons_refresh_cw__WEBPACK_IMPORTED_MODULE_200__ = __webpack_require__(/*! ./icons/refresh-cw */ \"./node_modules/react-feather/dist/icons/refresh-cw.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RefreshCw\", function() { return _icons_refresh_cw__WEBPACK_IMPORTED_MODULE_200__[\"default\"]; });\n\n/* harmony import */ var _icons_repeat__WEBPACK_IMPORTED_MODULE_201__ = __webpack_require__(/*! ./icons/repeat */ \"./node_modules/react-feather/dist/icons/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Repeat\", function() { return _icons_repeat__WEBPACK_IMPORTED_MODULE_201__[\"default\"]; });\n\n/* harmony import */ var _icons_rewind__WEBPACK_IMPORTED_MODULE_202__ = __webpack_require__(/*! ./icons/rewind */ \"./node_modules/react-feather/dist/icons/rewind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Rewind\", function() { return _icons_rewind__WEBPACK_IMPORTED_MODULE_202__[\"default\"]; });\n\n/* harmony import */ var _icons_rotate_ccw__WEBPACK_IMPORTED_MODULE_203__ = __webpack_require__(/*! ./icons/rotate-ccw */ \"./node_modules/react-feather/dist/icons/rotate-ccw.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RotateCcw\", function() { return _icons_rotate_ccw__WEBPACK_IMPORTED_MODULE_203__[\"default\"]; });\n\n/* harmony import */ var _icons_rotate_cw__WEBPACK_IMPORTED_MODULE_204__ = __webpack_require__(/*! ./icons/rotate-cw */ \"./node_modules/react-feather/dist/icons/rotate-cw.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RotateCw\", function() { return _icons_rotate_cw__WEBPACK_IMPORTED_MODULE_204__[\"default\"]; });\n\n/* harmony import */ var _icons_rss__WEBPACK_IMPORTED_MODULE_205__ = __webpack_require__(/*! ./icons/rss */ \"./node_modules/react-feather/dist/icons/rss.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Rss\", function() { return _icons_rss__WEBPACK_IMPORTED_MODULE_205__[\"default\"]; });\n\n/* harmony import */ var _icons_save__WEBPACK_IMPORTED_MODULE_206__ = __webpack_require__(/*! ./icons/save */ \"./node_modules/react-feather/dist/icons/save.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Save\", function() { return _icons_save__WEBPACK_IMPORTED_MODULE_206__[\"default\"]; });\n\n/* harmony import */ var _icons_scissors__WEBPACK_IMPORTED_MODULE_207__ = __webpack_require__(/*! ./icons/scissors */ \"./node_modules/react-feather/dist/icons/scissors.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Scissors\", function() { return _icons_scissors__WEBPACK_IMPORTED_MODULE_207__[\"default\"]; });\n\n/* harmony import */ var _icons_search__WEBPACK_IMPORTED_MODULE_208__ = __webpack_require__(/*! ./icons/search */ \"./node_modules/react-feather/dist/icons/search.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Search\", function() { return _icons_search__WEBPACK_IMPORTED_MODULE_208__[\"default\"]; });\n\n/* harmony import */ var _icons_send__WEBPACK_IMPORTED_MODULE_209__ = __webpack_require__(/*! ./icons/send */ \"./node_modules/react-feather/dist/icons/send.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Send\", function() { return _icons_send__WEBPACK_IMPORTED_MODULE_209__[\"default\"]; });\n\n/* harmony import */ var _icons_server__WEBPACK_IMPORTED_MODULE_210__ = __webpack_require__(/*! ./icons/server */ \"./node_modules/react-feather/dist/icons/server.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Server\", function() { return _icons_server__WEBPACK_IMPORTED_MODULE_210__[\"default\"]; });\n\n/* harmony import */ var _icons_settings__WEBPACK_IMPORTED_MODULE_211__ = __webpack_require__(/*! ./icons/settings */ \"./node_modules/react-feather/dist/icons/settings.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Settings\", function() { return _icons_settings__WEBPACK_IMPORTED_MODULE_211__[\"default\"]; });\n\n/* harmony import */ var _icons_share_2__WEBPACK_IMPORTED_MODULE_212__ = __webpack_require__(/*! ./icons/share-2 */ \"./node_modules/react-feather/dist/icons/share-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Share2\", function() { return _icons_share_2__WEBPACK_IMPORTED_MODULE_212__[\"default\"]; });\n\n/* harmony import */ var _icons_share__WEBPACK_IMPORTED_MODULE_213__ = __webpack_require__(/*! ./icons/share */ \"./node_modules/react-feather/dist/icons/share.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Share\", function() { return _icons_share__WEBPACK_IMPORTED_MODULE_213__[\"default\"]; });\n\n/* harmony import */ var _icons_shield_off__WEBPACK_IMPORTED_MODULE_214__ = __webpack_require__(/*! ./icons/shield-off */ \"./node_modules/react-feather/dist/icons/shield-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ShieldOff\", function() { return _icons_shield_off__WEBPACK_IMPORTED_MODULE_214__[\"default\"]; });\n\n/* harmony import */ var _icons_shield__WEBPACK_IMPORTED_MODULE_215__ = __webpack_require__(/*! ./icons/shield */ \"./node_modules/react-feather/dist/icons/shield.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Shield\", function() { return _icons_shield__WEBPACK_IMPORTED_MODULE_215__[\"default\"]; });\n\n/* harmony import */ var _icons_shopping_bag__WEBPACK_IMPORTED_MODULE_216__ = __webpack_require__(/*! ./icons/shopping-bag */ \"./node_modules/react-feather/dist/icons/shopping-bag.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ShoppingBag\", function() { return _icons_shopping_bag__WEBPACK_IMPORTED_MODULE_216__[\"default\"]; });\n\n/* harmony import */ var _icons_shopping_cart__WEBPACK_IMPORTED_MODULE_217__ = __webpack_require__(/*! ./icons/shopping-cart */ \"./node_modules/react-feather/dist/icons/shopping-cart.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ShoppingCart\", function() { return _icons_shopping_cart__WEBPACK_IMPORTED_MODULE_217__[\"default\"]; });\n\n/* harmony import */ var _icons_shuffle__WEBPACK_IMPORTED_MODULE_218__ = __webpack_require__(/*! ./icons/shuffle */ \"./node_modules/react-feather/dist/icons/shuffle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Shuffle\", function() { return _icons_shuffle__WEBPACK_IMPORTED_MODULE_218__[\"default\"]; });\n\n/* harmony import */ var _icons_sidebar__WEBPACK_IMPORTED_MODULE_219__ = __webpack_require__(/*! ./icons/sidebar */ \"./node_modules/react-feather/dist/icons/sidebar.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Sidebar\", function() { return _icons_sidebar__WEBPACK_IMPORTED_MODULE_219__[\"default\"]; });\n\n/* harmony import */ var _icons_skip_back__WEBPACK_IMPORTED_MODULE_220__ = __webpack_require__(/*! ./icons/skip-back */ \"./node_modules/react-feather/dist/icons/skip-back.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SkipBack\", function() { return _icons_skip_back__WEBPACK_IMPORTED_MODULE_220__[\"default\"]; });\n\n/* harmony import */ var _icons_skip_forward__WEBPACK_IMPORTED_MODULE_221__ = __webpack_require__(/*! ./icons/skip-forward */ \"./node_modules/react-feather/dist/icons/skip-forward.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SkipForward\", function() { return _icons_skip_forward__WEBPACK_IMPORTED_MODULE_221__[\"default\"]; });\n\n/* harmony import */ var _icons_slack__WEBPACK_IMPORTED_MODULE_222__ = __webpack_require__(/*! ./icons/slack */ \"./node_modules/react-feather/dist/icons/slack.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Slack\", function() { return _icons_slack__WEBPACK_IMPORTED_MODULE_222__[\"default\"]; });\n\n/* harmony import */ var _icons_slash__WEBPACK_IMPORTED_MODULE_223__ = __webpack_require__(/*! ./icons/slash */ \"./node_modules/react-feather/dist/icons/slash.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Slash\", function() { return _icons_slash__WEBPACK_IMPORTED_MODULE_223__[\"default\"]; });\n\n/* harmony import */ var _icons_sliders__WEBPACK_IMPORTED_MODULE_224__ = __webpack_require__(/*! ./icons/sliders */ \"./node_modules/react-feather/dist/icons/sliders.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Sliders\", function() { return _icons_sliders__WEBPACK_IMPORTED_MODULE_224__[\"default\"]; });\n\n/* harmony import */ var _icons_smartphone__WEBPACK_IMPORTED_MODULE_225__ = __webpack_require__(/*! ./icons/smartphone */ \"./node_modules/react-feather/dist/icons/smartphone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Smartphone\", function() { return _icons_smartphone__WEBPACK_IMPORTED_MODULE_225__[\"default\"]; });\n\n/* harmony import */ var _icons_smile__WEBPACK_IMPORTED_MODULE_226__ = __webpack_require__(/*! ./icons/smile */ \"./node_modules/react-feather/dist/icons/smile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Smile\", function() { return _icons_smile__WEBPACK_IMPORTED_MODULE_226__[\"default\"]; });\n\n/* harmony import */ var _icons_speaker__WEBPACK_IMPORTED_MODULE_227__ = __webpack_require__(/*! ./icons/speaker */ \"./node_modules/react-feather/dist/icons/speaker.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Speaker\", function() { return _icons_speaker__WEBPACK_IMPORTED_MODULE_227__[\"default\"]; });\n\n/* harmony import */ var _icons_square__WEBPACK_IMPORTED_MODULE_228__ = __webpack_require__(/*! ./icons/square */ \"./node_modules/react-feather/dist/icons/square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Square\", function() { return _icons_square__WEBPACK_IMPORTED_MODULE_228__[\"default\"]; });\n\n/* harmony import */ var _icons_star__WEBPACK_IMPORTED_MODULE_229__ = __webpack_require__(/*! ./icons/star */ \"./node_modules/react-feather/dist/icons/star.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Star\", function() { return _icons_star__WEBPACK_IMPORTED_MODULE_229__[\"default\"]; });\n\n/* harmony import */ var _icons_stop_circle__WEBPACK_IMPORTED_MODULE_230__ = __webpack_require__(/*! ./icons/stop-circle */ \"./node_modules/react-feather/dist/icons/stop-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"StopCircle\", function() { return _icons_stop_circle__WEBPACK_IMPORTED_MODULE_230__[\"default\"]; });\n\n/* harmony import */ var _icons_sun__WEBPACK_IMPORTED_MODULE_231__ = __webpack_require__(/*! ./icons/sun */ \"./node_modules/react-feather/dist/icons/sun.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Sun\", function() { return _icons_sun__WEBPACK_IMPORTED_MODULE_231__[\"default\"]; });\n\n/* harmony import */ var _icons_sunrise__WEBPACK_IMPORTED_MODULE_232__ = __webpack_require__(/*! ./icons/sunrise */ \"./node_modules/react-feather/dist/icons/sunrise.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Sunrise\", function() { return _icons_sunrise__WEBPACK_IMPORTED_MODULE_232__[\"default\"]; });\n\n/* harmony import */ var _icons_sunset__WEBPACK_IMPORTED_MODULE_233__ = __webpack_require__(/*! ./icons/sunset */ \"./node_modules/react-feather/dist/icons/sunset.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Sunset\", function() { return _icons_sunset__WEBPACK_IMPORTED_MODULE_233__[\"default\"]; });\n\n/* harmony import */ var _icons_tablet__WEBPACK_IMPORTED_MODULE_234__ = __webpack_require__(/*! ./icons/tablet */ \"./node_modules/react-feather/dist/icons/tablet.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tablet\", function() { return _icons_tablet__WEBPACK_IMPORTED_MODULE_234__[\"default\"]; });\n\n/* harmony import */ var _icons_tag__WEBPACK_IMPORTED_MODULE_235__ = __webpack_require__(/*! ./icons/tag */ \"./node_modules/react-feather/dist/icons/tag.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tag\", function() { return _icons_tag__WEBPACK_IMPORTED_MODULE_235__[\"default\"]; });\n\n/* harmony import */ var _icons_target__WEBPACK_IMPORTED_MODULE_236__ = __webpack_require__(/*! ./icons/target */ \"./node_modules/react-feather/dist/icons/target.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Target\", function() { return _icons_target__WEBPACK_IMPORTED_MODULE_236__[\"default\"]; });\n\n/* harmony import */ var _icons_terminal__WEBPACK_IMPORTED_MODULE_237__ = __webpack_require__(/*! ./icons/terminal */ \"./node_modules/react-feather/dist/icons/terminal.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Terminal\", function() { return _icons_terminal__WEBPACK_IMPORTED_MODULE_237__[\"default\"]; });\n\n/* harmony import */ var _icons_thermometer__WEBPACK_IMPORTED_MODULE_238__ = __webpack_require__(/*! ./icons/thermometer */ \"./node_modules/react-feather/dist/icons/thermometer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Thermometer\", function() { return _icons_thermometer__WEBPACK_IMPORTED_MODULE_238__[\"default\"]; });\n\n/* harmony import */ var _icons_thumbs_down__WEBPACK_IMPORTED_MODULE_239__ = __webpack_require__(/*! ./icons/thumbs-down */ \"./node_modules/react-feather/dist/icons/thumbs-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThumbsDown\", function() { return _icons_thumbs_down__WEBPACK_IMPORTED_MODULE_239__[\"default\"]; });\n\n/* harmony import */ var _icons_thumbs_up__WEBPACK_IMPORTED_MODULE_240__ = __webpack_require__(/*! ./icons/thumbs-up */ \"./node_modules/react-feather/dist/icons/thumbs-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ThumbsUp\", function() { return _icons_thumbs_up__WEBPACK_IMPORTED_MODULE_240__[\"default\"]; });\n\n/* harmony import */ var _icons_toggle_left__WEBPACK_IMPORTED_MODULE_241__ = __webpack_require__(/*! ./icons/toggle-left */ \"./node_modules/react-feather/dist/icons/toggle-left.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ToggleLeft\", function() { return _icons_toggle_left__WEBPACK_IMPORTED_MODULE_241__[\"default\"]; });\n\n/* harmony import */ var _icons_toggle_right__WEBPACK_IMPORTED_MODULE_242__ = __webpack_require__(/*! ./icons/toggle-right */ \"./node_modules/react-feather/dist/icons/toggle-right.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ToggleRight\", function() { return _icons_toggle_right__WEBPACK_IMPORTED_MODULE_242__[\"default\"]; });\n\n/* harmony import */ var _icons_tool__WEBPACK_IMPORTED_MODULE_243__ = __webpack_require__(/*! ./icons/tool */ \"./node_modules/react-feather/dist/icons/tool.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tool\", function() { return _icons_tool__WEBPACK_IMPORTED_MODULE_243__[\"default\"]; });\n\n/* harmony import */ var _icons_trash_2__WEBPACK_IMPORTED_MODULE_244__ = __webpack_require__(/*! ./icons/trash-2 */ \"./node_modules/react-feather/dist/icons/trash-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Trash2\", function() { return _icons_trash_2__WEBPACK_IMPORTED_MODULE_244__[\"default\"]; });\n\n/* harmony import */ var _icons_trash__WEBPACK_IMPORTED_MODULE_245__ = __webpack_require__(/*! ./icons/trash */ \"./node_modules/react-feather/dist/icons/trash.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Trash\", function() { return _icons_trash__WEBPACK_IMPORTED_MODULE_245__[\"default\"]; });\n\n/* harmony import */ var _icons_trello__WEBPACK_IMPORTED_MODULE_246__ = __webpack_require__(/*! ./icons/trello */ \"./node_modules/react-feather/dist/icons/trello.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Trello\", function() { return _icons_trello__WEBPACK_IMPORTED_MODULE_246__[\"default\"]; });\n\n/* harmony import */ var _icons_trending_down__WEBPACK_IMPORTED_MODULE_247__ = __webpack_require__(/*! ./icons/trending-down */ \"./node_modules/react-feather/dist/icons/trending-down.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TrendingDown\", function() { return _icons_trending_down__WEBPACK_IMPORTED_MODULE_247__[\"default\"]; });\n\n/* harmony import */ var _icons_trending_up__WEBPACK_IMPORTED_MODULE_248__ = __webpack_require__(/*! ./icons/trending-up */ \"./node_modules/react-feather/dist/icons/trending-up.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TrendingUp\", function() { return _icons_trending_up__WEBPACK_IMPORTED_MODULE_248__[\"default\"]; });\n\n/* harmony import */ var _icons_triangle__WEBPACK_IMPORTED_MODULE_249__ = __webpack_require__(/*! ./icons/triangle */ \"./node_modules/react-feather/dist/icons/triangle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Triangle\", function() { return _icons_triangle__WEBPACK_IMPORTED_MODULE_249__[\"default\"]; });\n\n/* harmony import */ var _icons_truck__WEBPACK_IMPORTED_MODULE_250__ = __webpack_require__(/*! ./icons/truck */ \"./node_modules/react-feather/dist/icons/truck.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Truck\", function() { return _icons_truck__WEBPACK_IMPORTED_MODULE_250__[\"default\"]; });\n\n/* harmony import */ var _icons_tv__WEBPACK_IMPORTED_MODULE_251__ = __webpack_require__(/*! ./icons/tv */ \"./node_modules/react-feather/dist/icons/tv.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Tv\", function() { return _icons_tv__WEBPACK_IMPORTED_MODULE_251__[\"default\"]; });\n\n/* harmony import */ var _icons_twitch__WEBPACK_IMPORTED_MODULE_252__ = __webpack_require__(/*! ./icons/twitch */ \"./node_modules/react-feather/dist/icons/twitch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Twitch\", function() { return _icons_twitch__WEBPACK_IMPORTED_MODULE_252__[\"default\"]; });\n\n/* harmony import */ var _icons_twitter__WEBPACK_IMPORTED_MODULE_253__ = __webpack_require__(/*! ./icons/twitter */ \"./node_modules/react-feather/dist/icons/twitter.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Twitter\", function() { return _icons_twitter__WEBPACK_IMPORTED_MODULE_253__[\"default\"]; });\n\n/* harmony import */ var _icons_type__WEBPACK_IMPORTED_MODULE_254__ = __webpack_require__(/*! ./icons/type */ \"./node_modules/react-feather/dist/icons/type.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Type\", function() { return _icons_type__WEBPACK_IMPORTED_MODULE_254__[\"default\"]; });\n\n/* harmony import */ var _icons_umbrella__WEBPACK_IMPORTED_MODULE_255__ = __webpack_require__(/*! ./icons/umbrella */ \"./node_modules/react-feather/dist/icons/umbrella.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Umbrella\", function() { return _icons_umbrella__WEBPACK_IMPORTED_MODULE_255__[\"default\"]; });\n\n/* harmony import */ var _icons_underline__WEBPACK_IMPORTED_MODULE_256__ = __webpack_require__(/*! ./icons/underline */ \"./node_modules/react-feather/dist/icons/underline.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Underline\", function() { return _icons_underline__WEBPACK_IMPORTED_MODULE_256__[\"default\"]; });\n\n/* harmony import */ var _icons_unlock__WEBPACK_IMPORTED_MODULE_257__ = __webpack_require__(/*! ./icons/unlock */ \"./node_modules/react-feather/dist/icons/unlock.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Unlock\", function() { return _icons_unlock__WEBPACK_IMPORTED_MODULE_257__[\"default\"]; });\n\n/* harmony import */ var _icons_upload_cloud__WEBPACK_IMPORTED_MODULE_258__ = __webpack_require__(/*! ./icons/upload-cloud */ \"./node_modules/react-feather/dist/icons/upload-cloud.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UploadCloud\", function() { return _icons_upload_cloud__WEBPACK_IMPORTED_MODULE_258__[\"default\"]; });\n\n/* harmony import */ var _icons_upload__WEBPACK_IMPORTED_MODULE_259__ = __webpack_require__(/*! ./icons/upload */ \"./node_modules/react-feather/dist/icons/upload.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Upload\", function() { return _icons_upload__WEBPACK_IMPORTED_MODULE_259__[\"default\"]; });\n\n/* harmony import */ var _icons_user_check__WEBPACK_IMPORTED_MODULE_260__ = __webpack_require__(/*! ./icons/user-check */ \"./node_modules/react-feather/dist/icons/user-check.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UserCheck\", function() { return _icons_user_check__WEBPACK_IMPORTED_MODULE_260__[\"default\"]; });\n\n/* harmony import */ var _icons_user_minus__WEBPACK_IMPORTED_MODULE_261__ = __webpack_require__(/*! ./icons/user-minus */ \"./node_modules/react-feather/dist/icons/user-minus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UserMinus\", function() { return _icons_user_minus__WEBPACK_IMPORTED_MODULE_261__[\"default\"]; });\n\n/* harmony import */ var _icons_user_plus__WEBPACK_IMPORTED_MODULE_262__ = __webpack_require__(/*! ./icons/user-plus */ \"./node_modules/react-feather/dist/icons/user-plus.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UserPlus\", function() { return _icons_user_plus__WEBPACK_IMPORTED_MODULE_262__[\"default\"]; });\n\n/* harmony import */ var _icons_user_x__WEBPACK_IMPORTED_MODULE_263__ = __webpack_require__(/*! ./icons/user-x */ \"./node_modules/react-feather/dist/icons/user-x.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UserX\", function() { return _icons_user_x__WEBPACK_IMPORTED_MODULE_263__[\"default\"]; });\n\n/* harmony import */ var _icons_user__WEBPACK_IMPORTED_MODULE_264__ = __webpack_require__(/*! ./icons/user */ \"./node_modules/react-feather/dist/icons/user.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"User\", function() { return _icons_user__WEBPACK_IMPORTED_MODULE_264__[\"default\"]; });\n\n/* harmony import */ var _icons_users__WEBPACK_IMPORTED_MODULE_265__ = __webpack_require__(/*! ./icons/users */ \"./node_modules/react-feather/dist/icons/users.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Users\", function() { return _icons_users__WEBPACK_IMPORTED_MODULE_265__[\"default\"]; });\n\n/* harmony import */ var _icons_video_off__WEBPACK_IMPORTED_MODULE_266__ = __webpack_require__(/*! ./icons/video-off */ \"./node_modules/react-feather/dist/icons/video-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VideoOff\", function() { return _icons_video_off__WEBPACK_IMPORTED_MODULE_266__[\"default\"]; });\n\n/* harmony import */ var _icons_video__WEBPACK_IMPORTED_MODULE_267__ = __webpack_require__(/*! ./icons/video */ \"./node_modules/react-feather/dist/icons/video.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Video\", function() { return _icons_video__WEBPACK_IMPORTED_MODULE_267__[\"default\"]; });\n\n/* harmony import */ var _icons_voicemail__WEBPACK_IMPORTED_MODULE_268__ = __webpack_require__(/*! ./icons/voicemail */ \"./node_modules/react-feather/dist/icons/voicemail.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Voicemail\", function() { return _icons_voicemail__WEBPACK_IMPORTED_MODULE_268__[\"default\"]; });\n\n/* harmony import */ var _icons_volume_1__WEBPACK_IMPORTED_MODULE_269__ = __webpack_require__(/*! ./icons/volume-1 */ \"./node_modules/react-feather/dist/icons/volume-1.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Volume1\", function() { return _icons_volume_1__WEBPACK_IMPORTED_MODULE_269__[\"default\"]; });\n\n/* harmony import */ var _icons_volume_2__WEBPACK_IMPORTED_MODULE_270__ = __webpack_require__(/*! ./icons/volume-2 */ \"./node_modules/react-feather/dist/icons/volume-2.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Volume2\", function() { return _icons_volume_2__WEBPACK_IMPORTED_MODULE_270__[\"default\"]; });\n\n/* harmony import */ var _icons_volume_x__WEBPACK_IMPORTED_MODULE_271__ = __webpack_require__(/*! ./icons/volume-x */ \"./node_modules/react-feather/dist/icons/volume-x.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VolumeX\", function() { return _icons_volume_x__WEBPACK_IMPORTED_MODULE_271__[\"default\"]; });\n\n/* harmony import */ var _icons_volume__WEBPACK_IMPORTED_MODULE_272__ = __webpack_require__(/*! ./icons/volume */ \"./node_modules/react-feather/dist/icons/volume.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Volume\", function() { return _icons_volume__WEBPACK_IMPORTED_MODULE_272__[\"default\"]; });\n\n/* harmony import */ var _icons_watch__WEBPACK_IMPORTED_MODULE_273__ = __webpack_require__(/*! ./icons/watch */ \"./node_modules/react-feather/dist/icons/watch.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Watch\", function() { return _icons_watch__WEBPACK_IMPORTED_MODULE_273__[\"default\"]; });\n\n/* harmony import */ var _icons_wifi_off__WEBPACK_IMPORTED_MODULE_274__ = __webpack_require__(/*! ./icons/wifi-off */ \"./node_modules/react-feather/dist/icons/wifi-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WifiOff\", function() { return _icons_wifi_off__WEBPACK_IMPORTED_MODULE_274__[\"default\"]; });\n\n/* harmony import */ var _icons_wifi__WEBPACK_IMPORTED_MODULE_275__ = __webpack_require__(/*! ./icons/wifi */ \"./node_modules/react-feather/dist/icons/wifi.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Wifi\", function() { return _icons_wifi__WEBPACK_IMPORTED_MODULE_275__[\"default\"]; });\n\n/* harmony import */ var _icons_wind__WEBPACK_IMPORTED_MODULE_276__ = __webpack_require__(/*! ./icons/wind */ \"./node_modules/react-feather/dist/icons/wind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Wind\", function() { return _icons_wind__WEBPACK_IMPORTED_MODULE_276__[\"default\"]; });\n\n/* harmony import */ var _icons_x_circle__WEBPACK_IMPORTED_MODULE_277__ = __webpack_require__(/*! ./icons/x-circle */ \"./node_modules/react-feather/dist/icons/x-circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"XCircle\", function() { return _icons_x_circle__WEBPACK_IMPORTED_MODULE_277__[\"default\"]; });\n\n/* harmony import */ var _icons_x_octagon__WEBPACK_IMPORTED_MODULE_278__ = __webpack_require__(/*! ./icons/x-octagon */ \"./node_modules/react-feather/dist/icons/x-octagon.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"XOctagon\", function() { return _icons_x_octagon__WEBPACK_IMPORTED_MODULE_278__[\"default\"]; });\n\n/* harmony import */ var _icons_x_square__WEBPACK_IMPORTED_MODULE_279__ = __webpack_require__(/*! ./icons/x-square */ \"./node_modules/react-feather/dist/icons/x-square.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"XSquare\", function() { return _icons_x_square__WEBPACK_IMPORTED_MODULE_279__[\"default\"]; });\n\n/* harmony import */ var _icons_x__WEBPACK_IMPORTED_MODULE_280__ = __webpack_require__(/*! ./icons/x */ \"./node_modules/react-feather/dist/icons/x.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"X\", function() { return _icons_x__WEBPACK_IMPORTED_MODULE_280__[\"default\"]; });\n\n/* harmony import */ var _icons_youtube__WEBPACK_IMPORTED_MODULE_281__ = __webpack_require__(/*! ./icons/youtube */ \"./node_modules/react-feather/dist/icons/youtube.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Youtube\", function() { return _icons_youtube__WEBPACK_IMPORTED_MODULE_281__[\"default\"]; });\n\n/* harmony import */ var _icons_zap_off__WEBPACK_IMPORTED_MODULE_282__ = __webpack_require__(/*! ./icons/zap-off */ \"./node_modules/react-feather/dist/icons/zap-off.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ZapOff\", function() { return _icons_zap_off__WEBPACK_IMPORTED_MODULE_282__[\"default\"]; });\n\n/* harmony import */ var _icons_zap__WEBPACK_IMPORTED_MODULE_283__ = __webpack_require__(/*! ./icons/zap */ \"./node_modules/react-feather/dist/icons/zap.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Zap\", function() { return _icons_zap__WEBPACK_IMPORTED_MODULE_283__[\"default\"]; });\n\n/* harmony import */ var _icons_zoom_in__WEBPACK_IMPORTED_MODULE_284__ = __webpack_require__(/*! ./icons/zoom-in */ \"./node_modules/react-feather/dist/icons/zoom-in.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ZoomIn\", function() { return _icons_zoom_in__WEBPACK_IMPORTED_MODULE_284__[\"default\"]; });\n\n/* harmony import */ var _icons_zoom_out__WEBPACK_IMPORTED_MODULE_285__ = __webpack_require__(/*! ./icons/zoom-out */ \"./node_modules/react-feather/dist/icons/zoom-out.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ZoomOut\", function() { return _icons_zoom_out__WEBPACK_IMPORTED_MODULE_285__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-feather/dist/index.js?");

/***/ }),

/***/ "./node_modules/react-is/cjs/react-is.development.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-is/cjs/react-is.development.js ***!
  \***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n  (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n  if (typeof object === 'object' && object !== null) {\n    var $$typeof = object.$$typeof;\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        var type = object.type;\n\n        switch (type) {\n          case REACT_ASYNC_MODE_TYPE:\n          case REACT_CONCURRENT_MODE_TYPE:\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n            return type;\n\n          default:\n            var $$typeofType = type && type.$$typeof;\n\n            switch ($$typeofType) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n              case REACT_PROVIDER_TYPE:\n                return $$typeofType;\n\n              default:\n                return $$typeof;\n            }\n\n        }\n\n      case REACT_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n\n  return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n  {\n    if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n    }\n  }\n\n  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n  return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n  return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n  return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n  return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n  return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n  return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n  return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n  return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n  return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n  return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n  })();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-is/cjs/react-is.development.js?");

/***/ }),

/***/ "./node_modules/react-is/index.js":
/*!****************************************!*\
  !*** ./node_modules/react-is/index.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/react-is/cjs/react-is.development.js\");\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-is/index.js?");

/***/ }),

/***/ "./node_modules/react-table/dist/react-table.development.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-table/dist/react-table.development.js ***!
  \******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("(function (global, factory) {\n   true ? factory(exports, __webpack_require__(/*! react */ \"./node_modules/react/index.js\")) :\n  undefined;\n}(this, (function (exports, React) { 'use strict';\n\n  React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n    try {\n      var info = gen[key](arg);\n      var value = info.value;\n    } catch (error) {\n      reject(error);\n      return;\n    }\n\n    if (info.done) {\n      resolve(value);\n    } else {\n      Promise.resolve(value).then(_next, _throw);\n    }\n  }\n\n  function _asyncToGenerator(fn) {\n    return function () {\n      var self = this,\n          args = arguments;\n      return new Promise(function (resolve, reject) {\n        var gen = fn.apply(self, args);\n\n        function _next(value) {\n          asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n        }\n\n        function _throw(err) {\n          asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n        }\n\n        _next(undefined);\n      });\n    };\n  }\n\n  function _extends() {\n    _extends = Object.assign || function (target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n\n      return target;\n    };\n\n    return _extends.apply(this, arguments);\n  }\n\n  function _objectWithoutPropertiesLoose(source, excluded) {\n    if (source == null) return {};\n    var target = {};\n    var sourceKeys = Object.keys(source);\n    var key, i;\n\n    for (i = 0; i < sourceKeys.length; i++) {\n      key = sourceKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      target[key] = source[key];\n    }\n\n    return target;\n  }\n\n  function _toPrimitive(input, hint) {\n    if (typeof input !== \"object\" || input === null) return input;\n    var prim = input[Symbol.toPrimitive];\n\n    if (prim !== undefined) {\n      var res = prim.call(input, hint || \"default\");\n      if (typeof res !== \"object\") return res;\n      throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n    }\n\n    return (hint === \"string\" ? String : Number)(input);\n  }\n\n  function _toPropertyKey(arg) {\n    var key = _toPrimitive(arg, \"string\");\n\n    return typeof key === \"symbol\" ? key : String(key);\n  }\n\n  var renderErr = 'Renderer Error ☝️';\n  var actions = {\n    init: 'init'\n  };\n  var defaultRenderer = function defaultRenderer(_ref) {\n    var _ref$value = _ref.value,\n        value = _ref$value === void 0 ? '' : _ref$value;\n    return value;\n  };\n  var emptyRenderer = function emptyRenderer() {\n    return React.createElement(React.Fragment, null, \"\\xA0\");\n  };\n  var defaultColumn = {\n    Cell: defaultRenderer,\n    width: 150,\n    minWidth: 0,\n    maxWidth: Number.MAX_SAFE_INTEGER\n  };\n\n  function mergeProps() {\n    for (var _len = arguments.length, propList = new Array(_len), _key = 0; _key < _len; _key++) {\n      propList[_key] = arguments[_key];\n    }\n\n    return propList.reduce(function (props, next) {\n      var style = next.style,\n          className = next.className,\n          rest = _objectWithoutPropertiesLoose(next, [\"style\", \"className\"]);\n\n      props = _extends({}, props, {}, rest);\n\n      if (style) {\n        props.style = props.style ? _extends({}, props.style || {}, {}, style || {}) : style;\n      }\n\n      if (className) {\n        props.className = props.className ? props.className + ' ' + className : className;\n      }\n\n      if (props.className === '') {\n        delete props.className;\n      }\n\n      return props;\n    }, {});\n  }\n\n  function handlePropGetter(prevProps, userProps, meta) {\n    // Handle a lambda, pass it the previous props\n    if (typeof userProps === 'function') {\n      return handlePropGetter({}, userProps(prevProps, meta));\n    } // Handle an array, merge each item as separate props\n\n\n    if (Array.isArray(userProps)) {\n      return mergeProps.apply(void 0, [prevProps].concat(userProps));\n    } // Handle an object by default, merge the two objects\n\n\n    return mergeProps(prevProps, userProps);\n  }\n\n  var makePropGetter = function makePropGetter(hooks, meta) {\n    if (meta === void 0) {\n      meta = {};\n    }\n\n    return function (userProps) {\n      if (userProps === void 0) {\n        userProps = {};\n      }\n\n      return [].concat(hooks, [userProps]).reduce(function (prev, next) {\n        return handlePropGetter(prev, next, _extends({}, meta, {\n          userProps: userProps\n        }));\n      }, {});\n    };\n  };\n  var reduceHooks = function reduceHooks(hooks, initial, meta, allowUndefined) {\n    if (meta === void 0) {\n      meta = {};\n    }\n\n    return hooks.reduce(function (prev, next) {\n      var nextValue = next(prev, meta);\n\n      {\n        if (!allowUndefined && typeof nextValue === 'undefined') {\n          console.info(next);\n          throw new Error('React Table: A reducer hook ☝️ just returned undefined! This is not allowed.');\n        }\n      }\n\n      return nextValue;\n    }, initial);\n  };\n  var loopHooks = function loopHooks(hooks, context, meta) {\n    if (meta === void 0) {\n      meta = {};\n    }\n\n    return hooks.forEach(function (hook) {\n      var nextValue = hook(context, meta);\n\n      {\n        if (typeof nextValue !== 'undefined') {\n          console.info(hook, nextValue);\n          throw new Error('React Table: A loop-type hook ☝️ just returned a value! This is not allowed.');\n        }\n      }\n    });\n  };\n  function ensurePluginOrder(plugins, befores, pluginName, afters) {\n    if ( afters) {\n      throw new Error(\"Defining plugins in the \\\"after\\\" section of ensurePluginOrder is no longer supported (see plugin \" + pluginName + \")\");\n    }\n\n    var pluginIndex = plugins.findIndex(function (plugin) {\n      return plugin.pluginName === pluginName;\n    });\n\n    if (pluginIndex === -1) {\n      {\n        throw new Error(\"The plugin \\\"\" + pluginName + \"\\\" was not found in the plugin list!\\nThis usually means you need to need to name your plugin hook by setting the 'pluginName' property of the hook function, eg:\\n\\n  \" + pluginName + \".pluginName = '\" + pluginName + \"'\\n\");\n      }\n    }\n\n    befores.forEach(function (before) {\n      var beforeIndex = plugins.findIndex(function (plugin) {\n        return plugin.pluginName === before;\n      });\n\n      if (beforeIndex > -1 && beforeIndex > pluginIndex) {\n        {\n          throw new Error(\"React Table: The \" + pluginName + \" plugin hook must be placed after the \" + before + \" plugin hook!\");\n        }\n      }\n    });\n  }\n  function functionalUpdate(updater, old) {\n    return typeof updater === 'function' ? updater(old) : updater;\n  }\n  function useGetLatest(obj) {\n    var ref = React.useRef();\n    ref.current = obj;\n    return React.useCallback(function () {\n      return ref.current;\n    }, []);\n  } // SSR has issues with useLayoutEffect still, so use useEffect during SSR\n\n  var safeUseLayoutEffect = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n  function useMountedLayoutEffect(fn, deps) {\n    var mountedRef = React.useRef(false);\n    safeUseLayoutEffect(function () {\n      if (mountedRef.current) {\n        fn();\n      }\n\n      mountedRef.current = true; // eslint-disable-next-line\n    }, deps);\n  }\n  function useAsyncDebounce(defaultFn, defaultWait) {\n    if (defaultWait === void 0) {\n      defaultWait = 0;\n    }\n\n    var debounceRef = React.useRef({});\n    var getDefaultFn = useGetLatest(defaultFn);\n    var getDefaultWait = useGetLatest(defaultWait);\n    return React.useCallback(\n    /*#__PURE__*/\n    function () {\n      var _ref2 = _asyncToGenerator(\n      /*#__PURE__*/\n      regeneratorRuntime.mark(function _callee2() {\n        var _len2,\n            args,\n            _key2,\n            _args2 = arguments;\n\n        return regeneratorRuntime.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                for (_len2 = _args2.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n                  args[_key2] = _args2[_key2];\n                }\n\n                if (!debounceRef.current.promise) {\n                  debounceRef.current.promise = new Promise(function (resolve, reject) {\n                    debounceRef.current.resolve = resolve;\n                    debounceRef.current.reject = reject;\n                  });\n                }\n\n                if (debounceRef.current.timeout) {\n                  clearTimeout(debounceRef.current.timeout);\n                }\n\n                debounceRef.current.timeout = setTimeout(\n                /*#__PURE__*/\n                _asyncToGenerator(\n                /*#__PURE__*/\n                regeneratorRuntime.mark(function _callee() {\n                  return regeneratorRuntime.wrap(function _callee$(_context) {\n                    while (1) {\n                      switch (_context.prev = _context.next) {\n                        case 0:\n                          delete debounceRef.current.timeout;\n                          _context.prev = 1;\n                          _context.t0 = debounceRef.current;\n                          _context.next = 5;\n                          return getDefaultFn().apply(void 0, args);\n\n                        case 5:\n                          _context.t1 = _context.sent;\n\n                          _context.t0.resolve.call(_context.t0, _context.t1);\n\n                          _context.next = 12;\n                          break;\n\n                        case 9:\n                          _context.prev = 9;\n                          _context.t2 = _context[\"catch\"](1);\n                          debounceRef.current.reject(_context.t2);\n\n                        case 12:\n                          _context.prev = 12;\n                          delete debounceRef.current.promise;\n                          return _context.finish(12);\n\n                        case 15:\n                        case \"end\":\n                          return _context.stop();\n                      }\n                    }\n                  }, _callee, null, [[1, 9, 12, 15]]);\n                })), getDefaultWait());\n                return _context2.abrupt(\"return\", debounceRef.current.promise);\n\n              case 5:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2);\n      }));\n\n      return function () {\n        return _ref2.apply(this, arguments);\n      };\n    }(), [getDefaultFn, getDefaultWait]);\n  }\n  function makeRenderer(instance, column, meta) {\n    if (meta === void 0) {\n      meta = {};\n    }\n\n    return function (type, userProps) {\n      if (userProps === void 0) {\n        userProps = {};\n      }\n\n      var Comp = typeof type === 'string' ? column[type] : type;\n\n      if (typeof Comp === 'undefined') {\n        console.info(column);\n        throw new Error(renderErr);\n      }\n\n      return flexRender(Comp, _extends({}, instance, {\n        column: column\n      }, meta, {}, userProps));\n    };\n  }\n  function flexRender(Comp, props) {\n    return isReactComponent(Comp) ? React.createElement(Comp, props) : Comp;\n  }\n\n  function isReactComponent(component) {\n    return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n  }\n\n  function isClassComponent(component) {\n    return typeof component === 'function' && function () {\n      var proto = Object.getPrototypeOf(component);\n      return proto.prototype && proto.prototype.isReactComponent;\n    }();\n  }\n\n  function isExoticComponent(component) {\n    return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n  }\n\n  function linkColumnStructure(columns, parent, depth) {\n    if (depth === void 0) {\n      depth = 0;\n    }\n\n    return columns.map(function (column) {\n      column = _extends({}, column, {\n        parent: parent,\n        depth: depth\n      });\n      assignColumnAccessor(column);\n\n      if (column.columns) {\n        column.columns = linkColumnStructure(column.columns, column, depth + 1);\n      }\n\n      return column;\n    });\n  }\n  function flattenColumns(columns) {\n    return flattenBy(columns, 'columns');\n  }\n  function assignColumnAccessor(column) {\n    // First check for string accessor\n    var id = column.id,\n        accessor = column.accessor,\n        Header = column.Header;\n\n    if (typeof accessor === 'string') {\n      id = id || accessor;\n      var accessorPath = accessor.split('.');\n\n      accessor = function accessor(row) {\n        return getBy(row, accessorPath);\n      };\n    }\n\n    if (!id && typeof Header === 'string' && Header) {\n      id = Header;\n    }\n\n    if (!id && column.columns) {\n      console.error(column);\n      throw new Error('A column ID (or unique \"Header\" value) is required!');\n    }\n\n    if (!id) {\n      console.error(column);\n      throw new Error('A column ID (or string accessor) is required!');\n    }\n\n    Object.assign(column, {\n      id: id,\n      accessor: accessor\n    });\n    return column;\n  }\n  function decorateColumn(column, userDefaultColumn) {\n    if (!userDefaultColumn) {\n      throw new Error();\n    }\n\n    Object.assign(column, _extends({\n      // Make sure there is a fallback header, just in case\n      Header: emptyRenderer,\n      Footer: emptyRenderer\n    }, defaultColumn, {}, userDefaultColumn, {}, column));\n    Object.assign(column, {\n      originalWidth: column.width\n    });\n    return column;\n  } // Build the header groups from the bottom up\n\n  function makeHeaderGroups(allColumns, defaultColumn, additionalHeaderProperties) {\n    if (additionalHeaderProperties === void 0) {\n      additionalHeaderProperties = function additionalHeaderProperties() {\n        return {};\n      };\n    }\n\n    var headerGroups = [];\n    var scanColumns = allColumns;\n    var uid = 0;\n\n    var getUID = function getUID() {\n      return uid++;\n    };\n\n    var _loop = function _loop() {\n      // The header group we are creating\n      var headerGroup = {\n        headers: []\n      }; // The parent columns we're going to scan next\n\n      var parentColumns = [];\n      var hasParents = scanColumns.some(function (d) {\n        return d.parent;\n      }); // Scan each column for parents\n\n      scanColumns.forEach(function (column) {\n        // What is the latest (last) parent column?\n        var latestParentColumn = [].concat(parentColumns).reverse()[0];\n        var newParent;\n\n        if (hasParents) {\n          // If the column has a parent, add it if necessary\n          if (column.parent) {\n            newParent = _extends({}, column.parent, {\n              originalId: column.parent.id,\n              id: column.parent.id + \"_\" + getUID(),\n              headers: [column]\n            }, additionalHeaderProperties(column));\n          } else {\n            // If other columns have parents, we'll need to add a place holder if necessary\n            var originalId = column.id + \"_placeholder\";\n            newParent = decorateColumn(_extends({\n              originalId: originalId,\n              id: column.id + \"_placeholder_\" + getUID(),\n              placeholderOf: column,\n              headers: [column]\n            }, additionalHeaderProperties(column)), defaultColumn);\n          } // If the resulting parent columns are the same, just add\n          // the column and increment the header span\n\n\n          if (latestParentColumn && latestParentColumn.originalId === newParent.originalId) {\n            latestParentColumn.headers.push(column);\n          } else {\n            parentColumns.push(newParent);\n          }\n        }\n\n        headerGroup.headers.push(column);\n      });\n      headerGroups.push(headerGroup); // Start scanning the parent columns\n\n      scanColumns = parentColumns;\n    };\n\n    while (scanColumns.length) {\n      _loop();\n    }\n\n    return headerGroups.reverse();\n  }\n  var pathObjCache = new Map();\n  function getBy(obj, path, def) {\n    if (!path) {\n      return obj;\n    }\n\n    var cacheKey = typeof path === 'function' ? path : JSON.stringify(path);\n\n    var pathObj = pathObjCache.get(cacheKey) || function () {\n      var pathObj = makePathArray(path);\n      pathObjCache.set(cacheKey, pathObj);\n      return pathObj;\n    }();\n\n    var val;\n\n    try {\n      val = pathObj.reduce(function (cursor, pathPart) {\n        return cursor[pathPart];\n      }, obj);\n    } catch (e) {// continue regardless of error\n    }\n\n    return typeof val !== 'undefined' ? val : def;\n  }\n  function getFirstDefined() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    for (var i = 0; i < args.length; i += 1) {\n      if (typeof args[i] !== 'undefined') {\n        return args[i];\n      }\n    }\n  }\n  function isFunction(a) {\n    if (typeof a === 'function') {\n      return a;\n    }\n  }\n  function flattenBy(arr, key) {\n    var flat = [];\n\n    var recurse = function recurse(arr) {\n      arr.forEach(function (d) {\n        if (!d[key]) {\n          flat.push(d);\n        } else {\n          recurse(d[key]);\n        }\n      });\n    };\n\n    recurse(arr);\n    return flat;\n  }\n  function expandRows(rows, _ref) {\n    var manualExpandedKey = _ref.manualExpandedKey,\n        expanded = _ref.expanded,\n        _ref$expandSubRows = _ref.expandSubRows,\n        expandSubRows = _ref$expandSubRows === void 0 ? true : _ref$expandSubRows;\n    var expandedRows = [];\n\n    var handleRow = function handleRow(row, addToExpandedRows) {\n      if (addToExpandedRows === void 0) {\n        addToExpandedRows = true;\n      }\n\n      row.isExpanded = row.original && row.original[manualExpandedKey] || expanded[row.id];\n      row.canExpand = row.subRows && !!row.subRows.length;\n\n      if (addToExpandedRows) {\n        expandedRows.push(row);\n      }\n\n      if (row.subRows && row.subRows.length && row.isExpanded) {\n        row.subRows.forEach(function (row) {\n          return handleRow(row, expandSubRows);\n        });\n      }\n    };\n\n    rows.forEach(function (row) {\n      return handleRow(row);\n    });\n    return expandedRows;\n  }\n  function getFilterMethod(filter, userFilterTypes, filterTypes) {\n    return isFunction(filter) || userFilterTypes[filter] || filterTypes[filter] || filterTypes.text;\n  }\n  function shouldAutoRemoveFilter(autoRemove, value, column) {\n    return autoRemove ? autoRemove(value, column) : typeof value === 'undefined';\n  }\n  function unpreparedAccessWarning() {\n    throw new Error('React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.');\n  }\n  var passiveSupported = null;\n  function passiveEventSupported() {\n    // memoize support to avoid adding multiple test events\n    if (typeof passiveSupported === 'boolean') return passiveSupported;\n    var supported = false;\n\n    try {\n      var options = {\n        get passive() {\n          supported = true;\n          return false;\n        }\n\n      };\n      window.addEventListener('test', null, options);\n      window.removeEventListener('test', null, options);\n    } catch (err) {\n      supported = false;\n    }\n\n    passiveSupported = supported;\n    return passiveSupported;\n  } //\n\n  var reOpenBracket = /\\[/g;\n  var reCloseBracket = /\\]/g;\n\n  function makePathArray(obj) {\n    return flattenDeep(obj) // remove all periods in parts\n    .map(function (d) {\n      return String(d).replace('.', '_');\n    }) // join parts using period\n    .join('.') // replace brackets with periods\n    .replace(reOpenBracket, '.').replace(reCloseBracket, '') // split it back out on periods\n    .split('.');\n  }\n\n  function flattenDeep(arr, newArr) {\n    if (newArr === void 0) {\n      newArr = [];\n    }\n\n    if (!Array.isArray(arr)) {\n      newArr.push(arr);\n    } else {\n      for (var i = 0; i < arr.length; i += 1) {\n        flattenDeep(arr[i], newArr);\n      }\n    }\n\n    return newArr;\n  }\n\n  var defaultGetTableProps = function defaultGetTableProps(props) {\n    return _extends({\n      role: 'table'\n    }, props);\n  };\n\n  var defaultGetTableBodyProps = function defaultGetTableBodyProps(props) {\n    return _extends({\n      role: 'rowgroup'\n    }, props);\n  };\n\n  var defaultGetHeaderProps = function defaultGetHeaderProps(props, _ref) {\n    var column = _ref.column;\n    return _extends({\n      key: \"header_\" + column.id,\n      colSpan: column.totalVisibleHeaderCount,\n      role: 'columnheader'\n    }, props);\n  };\n\n  var defaultGetFooterProps = function defaultGetFooterProps(props, _ref2) {\n    var column = _ref2.column;\n    return _extends({\n      key: \"footer_\" + column.id,\n      colSpan: column.totalVisibleHeaderCount\n    }, props);\n  };\n\n  var defaultGetHeaderGroupProps = function defaultGetHeaderGroupProps(props, _ref3) {\n    var index = _ref3.index;\n    return _extends({\n      key: \"headerGroup_\" + index,\n      role: 'row'\n    }, props);\n  };\n\n  var defaultGetFooterGroupProps = function defaultGetFooterGroupProps(props, _ref4) {\n    var index = _ref4.index;\n    return _extends({\n      key: \"footerGroup_\" + index\n    }, props);\n  };\n\n  var defaultGetRowProps = function defaultGetRowProps(props, _ref5) {\n    var row = _ref5.row;\n    return _extends({\n      key: \"row_\" + row.id,\n      role: 'row'\n    }, props);\n  };\n\n  var defaultGetCellProps = function defaultGetCellProps(props, _ref6) {\n    var cell = _ref6.cell;\n    return _extends({\n      key: \"cell_\" + cell.row.id + \"_\" + cell.column.id,\n      role: 'cell'\n    }, props);\n  };\n\n  function makeDefaultPluginHooks() {\n    return {\n      useOptions: [],\n      stateReducers: [],\n      useControlledState: [],\n      columns: [],\n      columnsDeps: [],\n      allColumns: [],\n      allColumnsDeps: [],\n      accessValue: [],\n      materializedColumns: [],\n      materializedColumnsDeps: [],\n      useInstanceAfterData: [],\n      visibleColumns: [],\n      visibleColumnsDeps: [],\n      headerGroups: [],\n      headerGroupsDeps: [],\n      useInstanceBeforeDimensions: [],\n      useInstance: [],\n      prepareRow: [],\n      getTableProps: [defaultGetTableProps],\n      getTableBodyProps: [defaultGetTableBodyProps],\n      getHeaderGroupProps: [defaultGetHeaderGroupProps],\n      getFooterGroupProps: [defaultGetFooterGroupProps],\n      getHeaderProps: [defaultGetHeaderProps],\n      getFooterProps: [defaultGetFooterProps],\n      getRowProps: [defaultGetRowProps],\n      getCellProps: [defaultGetCellProps],\n      useFinalInstance: []\n    };\n  }\n\n  actions.resetHiddenColumns = 'resetHiddenColumns';\n  actions.toggleHideColumn = 'toggleHideColumn';\n  actions.setHiddenColumns = 'setHiddenColumns';\n  actions.toggleHideAllColumns = 'toggleHideAllColumns';\n  var useColumnVisibility = function useColumnVisibility(hooks) {\n    hooks.getToggleHiddenProps = [defaultGetToggleHiddenProps];\n    hooks.getToggleHideAllColumnsProps = [defaultGetToggleHideAllColumnsProps];\n    hooks.stateReducers.push(reducer);\n    hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions);\n    hooks.headerGroupsDeps.push(function (deps, _ref) {\n      var instance = _ref.instance;\n      return [].concat(deps, [instance.state.hiddenColumns]);\n    });\n    hooks.useInstance.push(useInstance);\n  };\n  useColumnVisibility.pluginName = 'useColumnVisibility';\n\n  var defaultGetToggleHiddenProps = function defaultGetToggleHiddenProps(props, _ref2) {\n    var column = _ref2.column;\n    return [props, {\n      onChange: function onChange(e) {\n        column.toggleHidden(!e.target.checked);\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      checked: column.isVisible,\n      title: 'Toggle Column Visible'\n    }];\n  };\n\n  var defaultGetToggleHideAllColumnsProps = function defaultGetToggleHideAllColumnsProps(props, _ref3) {\n    var instance = _ref3.instance;\n    return [props, {\n      onChange: function onChange(e) {\n        instance.toggleHideAllColumns(!e.target.checked);\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      checked: !instance.allColumnsHidden && !instance.state.hiddenColumns.length,\n      title: 'Toggle All Columns Hidden',\n      indeterminate: !instance.allColumnsHidden && instance.state.hiddenColumns.length\n    }];\n  };\n\n  function reducer(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        hiddenColumns: []\n      }, state);\n    }\n\n    if (action.type === actions.resetHiddenColumns) {\n      return _extends({}, state, {\n        hiddenColumns: instance.initialState.hiddenColumns || []\n      });\n    }\n\n    if (action.type === actions.toggleHideColumn) {\n      var should = typeof action.value !== 'undefined' ? action.value : !state.hiddenColumns.includes(action.columnId);\n      var hiddenColumns = should ? [].concat(state.hiddenColumns, [action.columnId]) : state.hiddenColumns.filter(function (d) {\n        return d !== action.columnId;\n      });\n      return _extends({}, state, {\n        hiddenColumns: hiddenColumns\n      });\n    }\n\n    if (action.type === actions.setHiddenColumns) {\n      return _extends({}, state, {\n        hiddenColumns: functionalUpdate(action.value, state.hiddenColumns)\n      });\n    }\n\n    if (action.type === actions.toggleHideAllColumns) {\n      var shouldAll = typeof action.value !== 'undefined' ? action.value : !state.hiddenColumns.length;\n      return _extends({}, state, {\n        hiddenColumns: shouldAll ? instance.allColumns.map(function (d) {\n          return d.id;\n        }) : []\n      });\n    }\n  }\n\n  function useInstanceBeforeDimensions(instance) {\n    var headers = instance.headers,\n        hiddenColumns = instance.state.hiddenColumns;\n    var isMountedRef = React.useRef(false);\n\n    if (!isMountedRef.current) ;\n\n    var handleColumn = function handleColumn(column, parentVisible) {\n      column.isVisible = parentVisible && !hiddenColumns.includes(column.id);\n      var totalVisibleHeaderCount = 0;\n\n      if (column.headers && column.headers.length) {\n        column.headers.forEach(function (subColumn) {\n          return totalVisibleHeaderCount += handleColumn(subColumn, column.isVisible);\n        });\n      } else {\n        totalVisibleHeaderCount = column.isVisible ? 1 : 0;\n      }\n\n      column.totalVisibleHeaderCount = totalVisibleHeaderCount;\n      return totalVisibleHeaderCount;\n    };\n\n    var totalVisibleHeaderCount = 0;\n    headers.forEach(function (subHeader) {\n      return totalVisibleHeaderCount += handleColumn(subHeader, true);\n    });\n  }\n\n  function useInstance(instance) {\n    var columns = instance.columns,\n        flatHeaders = instance.flatHeaders,\n        dispatch = instance.dispatch,\n        allColumns = instance.allColumns,\n        getHooks = instance.getHooks,\n        hiddenColumns = instance.state.hiddenColumns,\n        _instance$autoResetHi = instance.autoResetHiddenColumns,\n        autoResetHiddenColumns = _instance$autoResetHi === void 0 ? true : _instance$autoResetHi;\n    var getInstance = useGetLatest(instance);\n    var allColumnsHidden = allColumns.length === hiddenColumns.length;\n    var toggleHideColumn = React.useCallback(function (columnId, value) {\n      return dispatch({\n        type: actions.toggleHideColumn,\n        columnId: columnId,\n        value: value\n      });\n    }, [dispatch]);\n    var setHiddenColumns = React.useCallback(function (value) {\n      return dispatch({\n        type: actions.setHiddenColumns,\n        value: value\n      });\n    }, [dispatch]);\n    var toggleHideAllColumns = React.useCallback(function (value) {\n      return dispatch({\n        type: actions.toggleHideAllColumns,\n        value: value\n      });\n    }, [dispatch]);\n    var getToggleHideAllColumnsProps = makePropGetter(getHooks().getToggleHideAllColumnsProps, {\n      instance: getInstance()\n    });\n    flatHeaders.forEach(function (column) {\n      column.toggleHidden = function (value) {\n        dispatch({\n          type: actions.toggleHideColumn,\n          columnId: column.id,\n          value: value\n        });\n      };\n\n      column.getToggleHiddenProps = makePropGetter(getHooks().getToggleHiddenProps, {\n        instance: getInstance(),\n        column: column\n      });\n    });\n    var getAutoResetHiddenColumns = useGetLatest(autoResetHiddenColumns);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetHiddenColumns()) {\n        dispatch({\n          type: actions.resetHiddenColumns\n        });\n      }\n    }, [dispatch, columns]);\n    Object.assign(instance, {\n      allColumnsHidden: allColumnsHidden,\n      toggleHideColumn: toggleHideColumn,\n      setHiddenColumns: setHiddenColumns,\n      toggleHideAllColumns: toggleHideAllColumns,\n      getToggleHideAllColumnsProps: getToggleHideAllColumnsProps\n    });\n  }\n\n  var defaultInitialState = {};\n  var defaultColumnInstance = {};\n\n  var defaultReducer = function defaultReducer(state, action, prevState) {\n    return state;\n  };\n\n  var defaultGetSubRows = function defaultGetSubRows(row, index) {\n    return row.subRows || [];\n  };\n\n  var defaultGetRowId = function defaultGetRowId(row, index, parent) {\n    return \"\" + (parent ? [parent.id, index].join('.') : index);\n  };\n\n  var defaultUseControlledState = function defaultUseControlledState(d) {\n    return d;\n  };\n\n  function applyDefaults(props) {\n    var _props$initialState = props.initialState,\n        initialState = _props$initialState === void 0 ? defaultInitialState : _props$initialState,\n        _props$defaultColumn = props.defaultColumn,\n        defaultColumn = _props$defaultColumn === void 0 ? defaultColumnInstance : _props$defaultColumn,\n        _props$getSubRows = props.getSubRows,\n        getSubRows = _props$getSubRows === void 0 ? defaultGetSubRows : _props$getSubRows,\n        _props$getRowId = props.getRowId,\n        getRowId = _props$getRowId === void 0 ? defaultGetRowId : _props$getRowId,\n        _props$stateReducer = props.stateReducer,\n        stateReducer = _props$stateReducer === void 0 ? defaultReducer : _props$stateReducer,\n        _props$useControlledS = props.useControlledState,\n        useControlledState = _props$useControlledS === void 0 ? defaultUseControlledState : _props$useControlledS,\n        rest = _objectWithoutPropertiesLoose(props, [\"initialState\", \"defaultColumn\", \"getSubRows\", \"getRowId\", \"stateReducer\", \"useControlledState\"]);\n\n    return _extends({}, rest, {\n      initialState: initialState,\n      defaultColumn: defaultColumn,\n      getSubRows: getSubRows,\n      getRowId: getRowId,\n      stateReducer: stateReducer,\n      useControlledState: useControlledState\n    });\n  }\n\n  var useTable = function useTable(props) {\n    for (var _len = arguments.length, plugins = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      plugins[_key - 1] = arguments[_key];\n    }\n\n    // Apply default props\n    props = applyDefaults(props); // Add core plugins\n\n    plugins = [useColumnVisibility].concat(plugins); // Create the table instance\n\n    var instanceRef = React.useRef({}); // Create a getter for the instance (helps avoid a lot of potential memory leaks)\n\n    var getInstance = useGetLatest(instanceRef.current); // Assign the props, plugins and hooks to the instance\n\n    Object.assign(getInstance(), _extends({}, props, {\n      plugins: plugins,\n      hooks: makeDefaultPluginHooks()\n    })); // Allow plugins to register hooks as early as possible\n\n    plugins.filter(Boolean).forEach(function (plugin) {\n      plugin(getInstance().hooks);\n    }); // Consume all hooks and make a getter for them\n\n    var getHooks = useGetLatest(getInstance().hooks);\n    getInstance().getHooks = getHooks;\n    delete getInstance().hooks; // Allow useOptions hooks to modify the options coming into the table\n\n    Object.assign(getInstance(), reduceHooks(getHooks().useOptions, applyDefaults(props)));\n\n    var _getInstance = getInstance(),\n        data = _getInstance.data,\n        userColumns = _getInstance.columns,\n        initialState = _getInstance.initialState,\n        defaultColumn = _getInstance.defaultColumn,\n        getSubRows = _getInstance.getSubRows,\n        getRowId = _getInstance.getRowId,\n        stateReducer = _getInstance.stateReducer,\n        useControlledState = _getInstance.useControlledState; // Setup user reducer ref\n\n\n    var getStateReducer = useGetLatest(stateReducer); // Build the reducer\n\n    var reducer = React.useCallback(function (state, action) {\n      // Detect invalid actions\n      if (!action.type) {\n        console.info({\n          action: action\n        });\n        throw new Error('Unknown Action 👆');\n      } // Reduce the state from all plugin reducers\n\n\n      return [].concat(getHooks().stateReducers, Array.isArray(getStateReducer()) ? getStateReducer() : [getStateReducer()]).reduce(function (s, handler) {\n        return handler(s, action, state, getInstance()) || s;\n      }, state);\n    }, [getHooks, getStateReducer, getInstance]); // Start the reducer\n\n    var _React$useReducer = React.useReducer(reducer, undefined, function () {\n      return reducer(initialState, {\n        type: actions.init\n      });\n    }),\n        reducerState = _React$useReducer[0],\n        dispatch = _React$useReducer[1]; // Allow the user to control the final state with hooks\n\n\n    var state = reduceHooks([].concat(getHooks().useControlledState, [useControlledState]), reducerState, {\n      instance: getInstance()\n    });\n    Object.assign(getInstance(), {\n      state: state,\n      dispatch: dispatch\n    }); // Decorate All the columns\n\n    var columns = React.useMemo(function () {\n      return linkColumnStructure(reduceHooks(getHooks().columns, userColumns, {\n        instance: getInstance()\n      }));\n    }, [getHooks, getInstance, userColumns].concat(reduceHooks(getHooks().columnsDeps, [], {\n      instance: getInstance()\n    })));\n    getInstance().columns = columns; // Get the flat list of all columns and allow hooks to decorate\n    // those columns (and trigger this memoization via deps)\n\n    var allColumns = React.useMemo(function () {\n      return reduceHooks(getHooks().allColumns, flattenColumns(columns), {\n        instance: getInstance()\n      }).map(assignColumnAccessor);\n    }, [columns, getHooks, getInstance].concat(reduceHooks(getHooks().allColumnsDeps, [], {\n      instance: getInstance()\n    })));\n    getInstance().allColumns = allColumns; // Access the row model using initial columns\n\n    var _React$useMemo = React.useMemo(function () {\n      var rows = [];\n      var flatRows = [];\n      var rowsById = {};\n      var allColumnsQueue = [].concat(allColumns);\n\n      while (allColumnsQueue.length) {\n        var column = allColumnsQueue.shift();\n        accessRowsForColumn({\n          data: data,\n          rows: rows,\n          flatRows: flatRows,\n          rowsById: rowsById,\n          column: column,\n          getRowId: getRowId,\n          getSubRows: getSubRows,\n          accessValueHooks: getHooks().accessValue,\n          getInstance: getInstance\n        });\n      }\n\n      return [rows, flatRows, rowsById];\n    }, [allColumns, data, getRowId, getSubRows, getHooks, getInstance]),\n        rows = _React$useMemo[0],\n        flatRows = _React$useMemo[1],\n        rowsById = _React$useMemo[2];\n\n    Object.assign(getInstance(), {\n      rows: rows,\n      initialRows: [].concat(rows),\n      flatRows: flatRows,\n      rowsById: rowsById // materializedColumns,\n\n    });\n    loopHooks(getHooks().useInstanceAfterData, getInstance()); // Get the flat list of all columns AFTER the rows\n    // have been access, and allow hooks to decorate\n    // those columns (and trigger this memoization via deps)\n\n    var visibleColumns = React.useMemo(function () {\n      return reduceHooks(getHooks().visibleColumns, allColumns, {\n        instance: getInstance()\n      }).map(function (d) {\n        return decorateColumn(d, defaultColumn);\n      });\n    }, [getHooks, allColumns, getInstance, defaultColumn].concat(reduceHooks(getHooks().visibleColumnsDeps, [], {\n      instance: getInstance()\n    }))); // Combine new visible columns with all columns\n\n    allColumns = React.useMemo(function () {\n      var columns = [].concat(visibleColumns);\n      allColumns.forEach(function (column) {\n        if (!columns.find(function (d) {\n          return d.id === column.id;\n        })) {\n          columns.push(column);\n        }\n      });\n      return columns;\n    }, [allColumns, visibleColumns]);\n    getInstance().allColumns = allColumns;\n\n    {\n      var duplicateColumns = allColumns.filter(function (column, i) {\n        return allColumns.findIndex(function (d) {\n          return d.id === column.id;\n        }) !== i;\n      });\n\n      if (duplicateColumns.length) {\n        console.info(allColumns);\n        throw new Error(\"Duplicate columns were found with ids: \\\"\" + duplicateColumns.map(function (d) {\n          return d.id;\n        }).join(', ') + \"\\\" in the columns array above\");\n      }\n    } // Make the headerGroups\n\n\n    var headerGroups = React.useMemo(function () {\n      return reduceHooks(getHooks().headerGroups, makeHeaderGroups(visibleColumns, defaultColumn), getInstance());\n    }, [getHooks, visibleColumns, defaultColumn, getInstance].concat(reduceHooks(getHooks().headerGroupsDeps, [], {\n      instance: getInstance()\n    })));\n    getInstance().headerGroups = headerGroups; // Get the first level of headers\n\n    var headers = React.useMemo(function () {\n      return headerGroups.length ? headerGroups[0].headers : [];\n    }, [headerGroups]);\n    getInstance().headers = headers; // Provide a flat header list for utilities\n\n    getInstance().flatHeaders = headerGroups.reduce(function (all, headerGroup) {\n      return [].concat(all, headerGroup.headers);\n    }, []);\n    loopHooks(getHooks().useInstanceBeforeDimensions, getInstance()); // Filter columns down to visible ones\n\n    var visibleColumnsDep = visibleColumns.filter(function (d) {\n      return d.isVisible;\n    }).map(function (d) {\n      return d.id;\n    }).sort().join('_');\n    visibleColumns = React.useMemo(function () {\n      return visibleColumns.filter(function (d) {\n        return d.isVisible;\n      });\n    }, // eslint-disable-next-line react-hooks/exhaustive-deps\n    [visibleColumns, visibleColumnsDep]);\n    getInstance().visibleColumns = visibleColumns; // Header Visibility is needed by this point\n\n    var _calculateHeaderWidth = calculateHeaderWidths(headers),\n        totalColumnsMinWidth = _calculateHeaderWidth[0],\n        totalColumnsWidth = _calculateHeaderWidth[1],\n        totalColumnsMaxWidth = _calculateHeaderWidth[2];\n\n    getInstance().totalColumnsMinWidth = totalColumnsMinWidth;\n    getInstance().totalColumnsWidth = totalColumnsWidth;\n    getInstance().totalColumnsMaxWidth = totalColumnsMaxWidth;\n    loopHooks(getHooks().useInstance, getInstance()) // Each materialized header needs to be assigned a render function and other\n    // prop getter properties here.\n    ;\n    [].concat(getInstance().flatHeaders, getInstance().allColumns).forEach(function (column) {\n      // Give columns/headers rendering power\n      column.render = makeRenderer(getInstance(), column); // Give columns/headers a default getHeaderProps\n\n      column.getHeaderProps = makePropGetter(getHooks().getHeaderProps, {\n        instance: getInstance(),\n        column: column\n      }); // Give columns/headers a default getFooterProps\n\n      column.getFooterProps = makePropGetter(getHooks().getFooterProps, {\n        instance: getInstance(),\n        column: column\n      });\n    });\n    getInstance().headerGroups = React.useMemo(function () {\n      return headerGroups.filter(function (headerGroup, i) {\n        // Filter out any headers and headerGroups that don't have visible columns\n        headerGroup.headers = headerGroup.headers.filter(function (column) {\n          var recurse = function recurse(headers) {\n            return headers.filter(function (column) {\n              if (column.headers) {\n                return recurse(column.headers);\n              }\n\n              return column.isVisible;\n            }).length;\n          };\n\n          if (column.headers) {\n            return recurse(column.headers);\n          }\n\n          return column.isVisible;\n        }); // Give headerGroups getRowProps\n\n        if (headerGroup.headers.length) {\n          headerGroup.getHeaderGroupProps = makePropGetter(getHooks().getHeaderGroupProps, {\n            instance: getInstance(),\n            headerGroup: headerGroup,\n            index: i\n          });\n          headerGroup.getFooterGroupProps = makePropGetter(getHooks().getFooterGroupProps, {\n            instance: getInstance(),\n            headerGroup: headerGroup,\n            index: i\n          });\n          return true;\n        }\n\n        return false;\n      });\n    }, [headerGroups, getInstance, getHooks]);\n    getInstance().footerGroups = [].concat(getInstance().headerGroups).reverse(); // The prepareRow function is absolutely necessary and MUST be called on\n    // any rows the user wishes to be displayed.\n\n    getInstance().prepareRow = React.useCallback(function (row) {\n      row.getRowProps = makePropGetter(getHooks().getRowProps, {\n        instance: getInstance(),\n        row: row\n      }); // Build the visible cells for each row\n\n      row.allCells = allColumns.map(function (column) {\n        var value = row.values[column.id];\n        var cell = {\n          column: column,\n          row: row,\n          value: value\n        }; // Give each cell a getCellProps base\n\n        cell.getCellProps = makePropGetter(getHooks().getCellProps, {\n          instance: getInstance(),\n          cell: cell\n        }); // Give each cell a renderer function (supports multiple renderers)\n\n        cell.render = makeRenderer(getInstance(), column, {\n          row: row,\n          cell: cell,\n          value: value\n        });\n        return cell;\n      });\n      row.cells = visibleColumns.map(function (column) {\n        return row.allCells.find(function (cell) {\n          return cell.column.id === column.id;\n        });\n      }); // need to apply any row specific hooks (useExpanded requires this)\n\n      loopHooks(getHooks().prepareRow, row, {\n        instance: getInstance()\n      });\n    }, [getHooks, getInstance, allColumns, visibleColumns]);\n    getInstance().getTableProps = makePropGetter(getHooks().getTableProps, {\n      instance: getInstance()\n    });\n    getInstance().getTableBodyProps = makePropGetter(getHooks().getTableBodyProps, {\n      instance: getInstance()\n    });\n    loopHooks(getHooks().useFinalInstance, getInstance());\n    return getInstance();\n  };\n\n  function calculateHeaderWidths(headers, left) {\n    if (left === void 0) {\n      left = 0;\n    }\n\n    var sumTotalMinWidth = 0;\n    var sumTotalWidth = 0;\n    var sumTotalMaxWidth = 0;\n    var sumTotalFlexWidth = 0;\n    headers.forEach(function (header) {\n      var subHeaders = header.headers;\n      header.totalLeft = left;\n\n      if (subHeaders && subHeaders.length) {\n        var _calculateHeaderWidth2 = calculateHeaderWidths(subHeaders, left),\n            totalMinWidth = _calculateHeaderWidth2[0],\n            totalWidth = _calculateHeaderWidth2[1],\n            totalMaxWidth = _calculateHeaderWidth2[2],\n            totalFlexWidth = _calculateHeaderWidth2[3];\n\n        header.totalMinWidth = totalMinWidth;\n        header.totalWidth = totalWidth;\n        header.totalMaxWidth = totalMaxWidth;\n        header.totalFlexWidth = totalFlexWidth;\n      } else {\n        header.totalMinWidth = header.minWidth;\n        header.totalWidth = Math.min(Math.max(header.minWidth, header.width), header.maxWidth);\n        header.totalMaxWidth = header.maxWidth;\n        header.totalFlexWidth = header.canResize ? header.totalWidth : 0;\n      }\n\n      if (header.isVisible) {\n        left += header.totalWidth;\n        sumTotalMinWidth += header.totalMinWidth;\n        sumTotalWidth += header.totalWidth;\n        sumTotalMaxWidth += header.totalMaxWidth;\n        sumTotalFlexWidth += header.totalFlexWidth;\n      }\n    });\n    return [sumTotalMinWidth, sumTotalWidth, sumTotalMaxWidth, sumTotalFlexWidth];\n  }\n\n  function accessRowsForColumn(_ref) {\n    var data = _ref.data,\n        rows = _ref.rows,\n        flatRows = _ref.flatRows,\n        rowsById = _ref.rowsById,\n        column = _ref.column,\n        getRowId = _ref.getRowId,\n        getSubRows = _ref.getSubRows,\n        accessValueHooks = _ref.accessValueHooks,\n        getInstance = _ref.getInstance;\n\n    // Access the row's data column-by-column\n    // We do it this way so we can incrementally add materialized\n    // columns after the first pass and avoid excessive looping\n    var accessRow = function accessRow(originalRow, rowIndex, depth, parent, parentRows) {\n      if (depth === void 0) {\n        depth = 0;\n      }\n\n      // Keep the original reference around\n      var original = originalRow;\n      var id = getRowId(originalRow, rowIndex, parent);\n      var row = rowsById[id]; // If the row hasn't been created, let's make it\n\n      if (!row) {\n        row = {\n          id: id,\n          original: original,\n          index: rowIndex,\n          depth: depth,\n          cells: [{}] // This is a dummy cell\n\n        }; // Override common array functions (and the dummy cell's getCellProps function)\n        // to show an error if it is accessed without calling prepareRow\n\n        row.cells.map = unpreparedAccessWarning;\n        row.cells.filter = unpreparedAccessWarning;\n        row.cells.forEach = unpreparedAccessWarning;\n        row.cells[0].getCellProps = unpreparedAccessWarning; // Create the cells and values\n\n        row.values = {}; // Push this row into the parentRows array\n\n        parentRows.push(row); // Keep track of every row in a flat array\n\n        flatRows.push(row); // Also keep track of every row by its ID\n\n        rowsById[id] = row; // Get the original subrows\n\n        row.originalSubRows = getSubRows(originalRow, rowIndex); // Then recursively access them\n\n        if (row.originalSubRows) {\n          var subRows = [];\n          row.originalSubRows.forEach(function (d, i) {\n            return accessRow(d, i, depth + 1, row, subRows);\n          }); // Keep the new subRows array on the row\n\n          row.subRows = subRows;\n        }\n      } else if (row.subRows) {\n        // If the row exists, then it's already been accessed\n        // Keep recursing, but don't worry about passing the\n        // accumlator array (those rows already exist)\n        row.originalSubRows.forEach(function (d, i) {\n          return accessRow(d, i, depth + 1, row);\n        });\n      } // If the column has an accessor, use it to get a value\n\n\n      if (column.accessor) {\n        row.values[column.id] = column.accessor(originalRow, rowIndex, row);\n      } // Allow plugins to manipulate the column value\n\n\n      row.values[column.id] = reduceHooks(accessValueHooks, row.values[column.id], {\n        row: row,\n        column: column,\n        instance: getInstance()\n      }, true);\n    };\n\n    data.forEach(function (originalRow, rowIndex) {\n      return accessRow(originalRow, rowIndex, 0, undefined, rows);\n    });\n  }\n\n  actions.resetExpanded = 'resetExpanded';\n  actions.toggleRowExpanded = 'toggleRowExpanded';\n  actions.toggleAllRowsExpanded = 'toggleAllRowsExpanded';\n  var useExpanded = function useExpanded(hooks) {\n    hooks.getToggleAllRowsExpandedProps = [defaultGetToggleAllRowsExpandedProps];\n    hooks.getToggleRowExpandedProps = [defaultGetToggleRowExpandedProps];\n    hooks.stateReducers.push(reducer$1);\n    hooks.useInstance.push(useInstance$1);\n    hooks.prepareRow.push(prepareRow);\n  };\n  useExpanded.pluginName = 'useExpanded';\n\n  var defaultGetToggleAllRowsExpandedProps = function defaultGetToggleAllRowsExpandedProps(props, _ref) {\n    var instance = _ref.instance;\n    return [props, {\n      onClick: function onClick(e) {\n        instance.toggleAllRowsExpanded();\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      title: 'Toggle All Rows Expanded'\n    }];\n  };\n\n  var defaultGetToggleRowExpandedProps = function defaultGetToggleRowExpandedProps(props, _ref2) {\n    var row = _ref2.row;\n    return [props, {\n      onClick: function onClick() {\n        row.toggleRowExpanded();\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      title: 'Toggle Row Expanded'\n    }];\n  }; // Reducer\n\n\n  function reducer$1(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        expanded: {}\n      }, state);\n    }\n\n    if (action.type === actions.resetExpanded) {\n      return _extends({}, state, {\n        expanded: instance.initialState.expanded || {}\n      });\n    }\n\n    if (action.type === actions.toggleAllRowsExpanded) {\n      var value = action.value;\n      var isAllRowsExpanded = instance.isAllRowsExpanded,\n          rowsById = instance.rowsById;\n      var expandAll = typeof value !== 'undefined' ? value : !isAllRowsExpanded;\n\n      if (expandAll) {\n        var expanded = {};\n        Object.keys(rowsById).forEach(function (rowId) {\n          expanded[rowId] = true;\n        });\n        return _extends({}, state, {\n          expanded: expanded\n        });\n      }\n\n      return _extends({}, state, {\n        expanded: {}\n      });\n    }\n\n    if (action.type === actions.toggleRowExpanded) {\n      var id = action.id,\n          setExpanded = action.value;\n      var exists = state.expanded[id];\n      var shouldExist = typeof setExpanded !== 'undefined' ? setExpanded : !exists;\n\n      if (!exists && shouldExist) {\n        var _extends2;\n\n        return _extends({}, state, {\n          expanded: _extends({}, state.expanded, (_extends2 = {}, _extends2[id] = true, _extends2))\n        });\n      } else if (exists && !shouldExist) {\n        var _state$expanded = state.expanded,\n            _ = _state$expanded[id],\n            rest = _objectWithoutPropertiesLoose(_state$expanded, [id].map(_toPropertyKey));\n\n        return _extends({}, state, {\n          expanded: rest\n        });\n      } else {\n        return state;\n      }\n    }\n  }\n\n  function useInstance$1(instance) {\n    var data = instance.data,\n        rows = instance.rows,\n        rowsById = instance.rowsById,\n        _instance$manualExpan = instance.manualExpandedKey,\n        manualExpandedKey = _instance$manualExpan === void 0 ? 'expanded' : _instance$manualExpan,\n        _instance$paginateExp = instance.paginateExpandedRows,\n        paginateExpandedRows = _instance$paginateExp === void 0 ? true : _instance$paginateExp,\n        _instance$expandSubRo = instance.expandSubRows,\n        expandSubRows = _instance$expandSubRo === void 0 ? true : _instance$expandSubRo,\n        _instance$autoResetEx = instance.autoResetExpanded,\n        autoResetExpanded = _instance$autoResetEx === void 0 ? true : _instance$autoResetEx,\n        getHooks = instance.getHooks,\n        plugins = instance.plugins,\n        expanded = instance.state.expanded,\n        dispatch = instance.dispatch;\n    ensurePluginOrder(plugins, ['useSortBy', 'useGroupBy', 'usePivotColumns', 'useGlobalFilter'], 'useExpanded');\n    var getAutoResetExpanded = useGetLatest(autoResetExpanded);\n    var isAllRowsExpanded = Boolean(Object.keys(rowsById).length && Object.keys(expanded).length);\n\n    if (isAllRowsExpanded) {\n      if (Object.keys(rowsById).some(function (id) {\n        return !expanded[id];\n      })) {\n        isAllRowsExpanded = false;\n      }\n    } // Bypass any effects from firing when this changes\n\n\n    useMountedLayoutEffect(function () {\n      if (getAutoResetExpanded()) {\n        dispatch({\n          type: actions.resetExpanded\n        });\n      }\n    }, [dispatch, data]);\n    var toggleRowExpanded = React.useCallback(function (id, value) {\n      dispatch({\n        type: actions.toggleRowExpanded,\n        id: id,\n        value: value\n      });\n    }, [dispatch]);\n    var toggleAllRowsExpanded = React.useCallback(function (value) {\n      return dispatch({\n        type: actions.toggleAllRowsExpanded,\n        value: value\n      });\n    }, [dispatch]);\n    var expandedRows = React.useMemo(function () {\n      if (paginateExpandedRows) {\n        return expandRows(rows, {\n          manualExpandedKey: manualExpandedKey,\n          expanded: expanded,\n          expandSubRows: expandSubRows\n        });\n      }\n\n      return rows;\n    }, [paginateExpandedRows, rows, manualExpandedKey, expanded, expandSubRows]);\n    var expandedDepth = React.useMemo(function () {\n      return findExpandedDepth(expanded);\n    }, [expanded]);\n    var getInstance = useGetLatest(instance);\n    var getToggleAllRowsExpandedProps = makePropGetter(getHooks().getToggleAllRowsExpandedProps, {\n      instance: getInstance()\n    });\n    Object.assign(instance, {\n      preExpandedRows: rows,\n      expandedRows: expandedRows,\n      rows: expandedRows,\n      expandedDepth: expandedDepth,\n      isAllRowsExpanded: isAllRowsExpanded,\n      toggleRowExpanded: toggleRowExpanded,\n      toggleAllRowsExpanded: toggleAllRowsExpanded,\n      getToggleAllRowsExpandedProps: getToggleAllRowsExpandedProps\n    });\n  }\n\n  function prepareRow(row, _ref3) {\n    var getHooks = _ref3.instance.getHooks,\n        instance = _ref3.instance;\n\n    row.toggleRowExpanded = function (set) {\n      return instance.toggleRowExpanded(row.id, set);\n    };\n\n    row.getToggleRowExpandedProps = makePropGetter(getHooks().getToggleRowExpandedProps, {\n      instance: instance,\n      row: row\n    });\n  }\n\n  function findExpandedDepth(expanded) {\n    var maxDepth = 0;\n    Object.keys(expanded).forEach(function (id) {\n      var splitId = id.split('.');\n      maxDepth = Math.max(maxDepth, splitId.length);\n    });\n    return maxDepth;\n  }\n\n  var text = function text(rows, ids, filterValue) {\n    rows = rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return String(rowValue).toLowerCase().includes(String(filterValue).toLowerCase());\n      });\n    });\n    return rows;\n  };\n\n  text.autoRemove = function (val) {\n    return !val;\n  };\n\n  var exactText = function exactText(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue !== undefined ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase() : true;\n      });\n    });\n  };\n\n  exactText.autoRemove = function (val) {\n    return !val;\n  };\n\n  var exactTextCase = function exactTextCase(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue !== undefined ? String(rowValue) === String(filterValue) : true;\n      });\n    });\n  };\n\n  exactTextCase.autoRemove = function (val) {\n    return !val;\n  };\n\n  var includes = function includes(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue.includes(filterValue);\n      });\n    });\n  };\n\n  includes.autoRemove = function (val) {\n    return !val || !val.length;\n  };\n\n  var includesAll = function includesAll(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue && rowValue.length && filterValue.every(function (val) {\n          return rowValue.includes(val);\n        });\n      });\n    });\n  };\n\n  includesAll.autoRemove = function (val) {\n    return !val || !val.length;\n  };\n\n  var includesSome = function includesSome(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue && rowValue.length && filterValue.some(function (val) {\n          return rowValue.includes(val);\n        });\n      });\n    });\n  };\n\n  includesSome.autoRemove = function (val) {\n    return !val || !val.length;\n  };\n\n  var includesValue = function includesValue(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return filterValue.includes(rowValue);\n      });\n    });\n  };\n\n  includesValue.autoRemove = function (val) {\n    return !val || !val.length;\n  };\n\n  var exact = function exact(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue === filterValue;\n      });\n    });\n  };\n\n  exact.autoRemove = function (val) {\n    return typeof val === 'undefined';\n  };\n\n  var equals = function equals(rows, ids, filterValue) {\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id]; // eslint-disable-next-line eqeqeq\n\n        return rowValue == filterValue;\n      });\n    });\n  };\n\n  equals.autoRemove = function (val) {\n    return val == null;\n  };\n\n  var between = function between(rows, ids, filterValue) {\n    var _ref = filterValue || [],\n        min = _ref[0],\n        max = _ref[1];\n\n    min = typeof min === 'number' ? min : -Infinity;\n    max = typeof max === 'number' ? max : Infinity;\n\n    if (min > max) {\n      var temp = min;\n      min = max;\n      max = temp;\n    }\n\n    return rows.filter(function (row) {\n      return ids.some(function (id) {\n        var rowValue = row.values[id];\n        return rowValue >= min && rowValue <= max;\n      });\n    });\n  };\n\n  between.autoRemove = function (val) {\n    return !val || typeof val[0] !== 'number' && typeof val[1] !== 'number';\n  };\n\n  var filterTypes = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    text: text,\n    exactText: exactText,\n    exactTextCase: exactTextCase,\n    includes: includes,\n    includesAll: includesAll,\n    includesSome: includesSome,\n    includesValue: includesValue,\n    exact: exact,\n    equals: equals,\n    between: between\n  });\n\n  actions.resetFilters = 'resetFilters';\n  actions.setFilter = 'setFilter';\n  actions.setAllFilters = 'setAllFilters';\n  var useFilters = function useFilters(hooks) {\n    hooks.stateReducers.push(reducer$2);\n    hooks.useInstance.push(useInstance$2);\n  };\n  useFilters.pluginName = 'useFilters';\n\n  function reducer$2(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        filters: []\n      }, state);\n    }\n\n    if (action.type === actions.resetFilters) {\n      return _extends({}, state, {\n        filters: instance.initialState.filters || []\n      });\n    }\n\n    if (action.type === actions.setFilter) {\n      var columnId = action.columnId,\n          filterValue = action.filterValue;\n      var allColumns = instance.allColumns,\n          userFilterTypes = instance.filterTypes;\n      var column = allColumns.find(function (d) {\n        return d.id === columnId;\n      });\n\n      if (!column) {\n        throw new Error(\"React-Table: Could not find a column with id: \" + columnId);\n      }\n\n      var filterMethod = getFilterMethod(column.filter, userFilterTypes || {}, filterTypes);\n      var previousfilter = state.filters.find(function (d) {\n        return d.id === columnId;\n      });\n      var newFilter = functionalUpdate(filterValue, previousfilter && previousfilter.value); //\n\n      if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter, column)) {\n        return _extends({}, state, {\n          filters: state.filters.filter(function (d) {\n            return d.id !== columnId;\n          })\n        });\n      }\n\n      if (previousfilter) {\n        return _extends({}, state, {\n          filters: state.filters.map(function (d) {\n            if (d.id === columnId) {\n              return {\n                id: columnId,\n                value: newFilter\n              };\n            }\n\n            return d;\n          })\n        });\n      }\n\n      return _extends({}, state, {\n        filters: [].concat(state.filters, [{\n          id: columnId,\n          value: newFilter\n        }])\n      });\n    }\n\n    if (action.type === actions.setAllFilters) {\n      var filters = action.filters;\n      var _allColumns = instance.allColumns,\n          _userFilterTypes = instance.filterTypes;\n      return _extends({}, state, {\n        // Filter out undefined values\n        filters: functionalUpdate(filters, state.filters).filter(function (filter) {\n          var column = _allColumns.find(function (d) {\n            return d.id === filter.id;\n          });\n\n          var filterMethod = getFilterMethod(column.filter, _userFilterTypes || {}, filterTypes);\n\n          if (shouldAutoRemoveFilter(filterMethod.autoRemove, filter.value, column)) {\n            return false;\n          }\n\n          return true;\n        })\n      });\n    }\n  }\n\n  function useInstance$2(instance) {\n    var data = instance.data,\n        rows = instance.rows,\n        flatRows = instance.flatRows,\n        rowsById = instance.rowsById,\n        allColumns = instance.allColumns,\n        userFilterTypes = instance.filterTypes,\n        manualFilters = instance.manualFilters,\n        _instance$defaultCanF = instance.defaultCanFilter,\n        defaultCanFilter = _instance$defaultCanF === void 0 ? false : _instance$defaultCanF,\n        disableFilters = instance.disableFilters,\n        filters = instance.state.filters,\n        dispatch = instance.dispatch,\n        _instance$autoResetFi = instance.autoResetFilters,\n        autoResetFilters = _instance$autoResetFi === void 0 ? true : _instance$autoResetFi;\n    var setFilter = React.useCallback(function (columnId, filterValue) {\n      dispatch({\n        type: actions.setFilter,\n        columnId: columnId,\n        filterValue: filterValue\n      });\n    }, [dispatch]);\n    var setAllFilters = React.useCallback(function (filters) {\n      dispatch({\n        type: actions.setAllFilters,\n        filters: filters\n      });\n    }, [dispatch]);\n    allColumns.forEach(function (column) {\n      var id = column.id,\n          accessor = column.accessor,\n          columnDefaultCanFilter = column.defaultCanFilter,\n          columnDisableFilters = column.disableFilters; // Determine if a column is filterable\n\n      column.canFilter = accessor ? getFirstDefined(columnDisableFilters === true ? false : undefined, disableFilters === true ? false : undefined, true) : getFirstDefined(columnDefaultCanFilter, defaultCanFilter, false); // Provide the column a way of updating the filter value\n\n      column.setFilter = function (val) {\n        return setFilter(column.id, val);\n      }; // Provide the current filter value to the column for\n      // convenience\n\n\n      var found = filters.find(function (d) {\n        return d.id === id;\n      });\n      column.filterValue = found && found.value;\n    });\n\n    var _React$useMemo = React.useMemo(function () {\n      if (manualFilters || !filters.length) {\n        return [rows, flatRows, rowsById];\n      }\n\n      var filteredFlatRows = [];\n      var filteredRowsById = {}; // Filters top level and nested rows\n\n      var filterRows = function filterRows(rows, depth) {\n        if (depth === void 0) {\n          depth = 0;\n        }\n\n        var filteredRows = rows;\n        filteredRows = filters.reduce(function (filteredSoFar, _ref) {\n          var columnId = _ref.id,\n              filterValue = _ref.value;\n          // Find the filters column\n          var column = allColumns.find(function (d) {\n            return d.id === columnId;\n          });\n\n          if (!column) {\n            return filteredSoFar;\n          }\n\n          if (depth === 0) {\n            column.preFilteredRows = filteredSoFar;\n          }\n\n          var filterMethod = getFilterMethod(column.filter, userFilterTypes || {}, filterTypes);\n\n          if (!filterMethod) {\n            console.warn(\"Could not find a valid 'column.filter' for column with the ID: \" + column.id + \".\");\n            return filteredSoFar;\n          } // Pass the rows, id, filterValue and column to the filterMethod\n          // to get the filtered rows back\n\n\n          column.filteredRows = filterMethod(filteredSoFar, [columnId], filterValue);\n          return column.filteredRows;\n        }, rows); // Apply the filter to any subRows\n        // We technically could do this recursively in the above loop,\n        // but that would severely hinder the API for the user, since they\n        // would be required to do that recursion in some scenarios\n\n        filteredRows.forEach(function (row) {\n          filteredFlatRows.push(row);\n          filteredRowsById[row.id] = row;\n\n          if (!row.subRows) {\n            return;\n          }\n\n          row.subRows = row.subRows && row.subRows.length > 0 ? filterRows(row.subRows, depth + 1) : row.subRows;\n        });\n        return filteredRows;\n      };\n\n      return [filterRows(rows), filteredFlatRows, filteredRowsById];\n    }, [manualFilters, filters, rows, flatRows, rowsById, allColumns, userFilterTypes]),\n        filteredRows = _React$useMemo[0],\n        filteredFlatRows = _React$useMemo[1],\n        filteredRowsById = _React$useMemo[2];\n\n    React.useMemo(function () {\n      // Now that each filtered column has it's partially filtered rows,\n      // lets assign the final filtered rows to all of the other columns\n      var nonFilteredColumns = allColumns.filter(function (column) {\n        return !filters.find(function (d) {\n          return d.id === column.id;\n        });\n      }); // This essentially enables faceted filter options to be built easily\n      // using every column's preFilteredRows value\n\n      nonFilteredColumns.forEach(function (column) {\n        column.preFilteredRows = filteredRows;\n        column.filteredRows = filteredRows;\n      });\n    }, [filteredRows, filters, allColumns]);\n    var getAutoResetFilters = useGetLatest(autoResetFilters);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetFilters()) {\n        dispatch({\n          type: actions.resetFilters\n        });\n      }\n    }, [dispatch, manualFilters ? null : data]);\n    Object.assign(instance, {\n      preFilteredRows: rows,\n      preFilteredFlatRows: flatRows,\n      preFilteredRowsById: rowsById,\n      filteredRows: filteredRows,\n      filteredFlatRows: filteredFlatRows,\n      filteredRowsById: filteredRowsById,\n      rows: filteredRows,\n      flatRows: filteredFlatRows,\n      rowsById: filteredRowsById,\n      setFilter: setFilter,\n      setAllFilters: setAllFilters\n    });\n  }\n\n  actions.resetGlobalFilter = 'resetGlobalFilter';\n  actions.setGlobalFilter = 'setGlobalFilter';\n  var useGlobalFilter = function useGlobalFilter(hooks) {\n    hooks.stateReducers.push(reducer$3);\n    hooks.useInstance.push(useInstance$3);\n  };\n  useGlobalFilter.pluginName = 'useGlobalFilter';\n\n  function reducer$3(state, action, previousState, instance) {\n    if (action.type === actions.resetGlobalFilter) {\n      return _extends({}, state, {\n        globalFilter: instance.initialState.globalFilter || undefined\n      });\n    }\n\n    if (action.type === actions.setGlobalFilter) {\n      var filterValue = action.filterValue;\n      var userFilterTypes = instance.userFilterTypes;\n      var filterMethod = getFilterMethod(instance.globalFilter, userFilterTypes || {}, filterTypes);\n      var newFilter = functionalUpdate(filterValue, state.globalFilter); //\n\n      if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter)) {\n        var globalFilter = state.globalFilter,\n            stateWithoutGlobalFilter = _objectWithoutPropertiesLoose(state, [\"globalFilter\"]);\n\n        return stateWithoutGlobalFilter;\n      }\n\n      return _extends({}, state, {\n        globalFilter: newFilter\n      });\n    }\n  }\n\n  function useInstance$3(instance) {\n    var data = instance.data,\n        rows = instance.rows,\n        flatRows = instance.flatRows,\n        rowsById = instance.rowsById,\n        allColumns = instance.allColumns,\n        userFilterTypes = instance.filterTypes,\n        globalFilter = instance.globalFilter,\n        manualGlobalFilter = instance.manualGlobalFilter,\n        globalFilterValue = instance.state.globalFilter,\n        dispatch = instance.dispatch,\n        _instance$autoResetGl = instance.autoResetGlobalFilter,\n        autoResetGlobalFilter = _instance$autoResetGl === void 0 ? true : _instance$autoResetGl,\n        disableGlobalFilter = instance.disableGlobalFilter;\n    var setGlobalFilter = React.useCallback(function (filterValue) {\n      dispatch({\n        type: actions.setGlobalFilter,\n        filterValue: filterValue\n      });\n    }, [dispatch]); // TODO: Create a filter cache for incremental high speed multi-filtering\n    // This gets pretty complicated pretty fast, since you have to maintain a\n    // cache for each row group (top-level rows, and each row's recursive subrows)\n    // This would make multi-filtering a lot faster though. Too far?\n\n    var _React$useMemo = React.useMemo(function () {\n      if (manualGlobalFilter || typeof globalFilterValue === 'undefined') {\n        return [rows, flatRows, rowsById];\n      }\n\n      var filteredFlatRows = [];\n      var filteredRowsById = {};\n      var filterMethod = getFilterMethod(globalFilter, userFilterTypes || {}, filterTypes);\n\n      if (!filterMethod) {\n        console.warn(\"Could not find a valid 'globalFilter' option.\");\n        return rows;\n      }\n\n      allColumns.forEach(function (column) {\n        var columnDisableGlobalFilter = column.disableGlobalFilter;\n        column.canFilter = getFirstDefined(columnDisableGlobalFilter === true ? false : undefined, disableGlobalFilter === true ? false : undefined, true);\n      });\n      var filterableColumns = allColumns.filter(function (c) {\n        return c.canFilter === true;\n      }); // Filters top level and nested rows\n\n      var filterRows = function filterRows(filteredRows) {\n        filteredRows = filterMethod(filteredRows, filterableColumns.map(function (d) {\n          return d.id;\n        }), globalFilterValue);\n        filteredRows.forEach(function (row) {\n          filteredFlatRows.push(row);\n          filteredRowsById[row.id] = row;\n          row.subRows = row.subRows && row.subRows.length ? filterRows(row.subRows) : row.subRows;\n        });\n        return filteredRows;\n      };\n\n      return [filterRows(rows), filteredFlatRows, filteredRowsById];\n    }, [manualGlobalFilter, globalFilterValue, globalFilter, userFilterTypes, allColumns, rows, flatRows, rowsById, disableGlobalFilter]),\n        globalFilteredRows = _React$useMemo[0],\n        globalFilteredFlatRows = _React$useMemo[1],\n        globalFilteredRowsById = _React$useMemo[2];\n\n    var getAutoResetGlobalFilter = useGetLatest(autoResetGlobalFilter);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetGlobalFilter()) {\n        dispatch({\n          type: actions.resetGlobalFilter\n        });\n      }\n    }, [dispatch, manualGlobalFilter ? null : data]);\n    Object.assign(instance, {\n      preGlobalFilteredRows: rows,\n      preGlobalFilteredFlatRows: flatRows,\n      preGlobalFilteredRowsById: rowsById,\n      globalFilteredRows: globalFilteredRows,\n      globalFilteredFlatRows: globalFilteredFlatRows,\n      globalFilteredRowsById: globalFilteredRowsById,\n      rows: globalFilteredRows,\n      flatRows: globalFilteredFlatRows,\n      rowsById: globalFilteredRowsById,\n      setGlobalFilter: setGlobalFilter,\n      disableGlobalFilter: disableGlobalFilter\n    });\n  }\n\n  function sum(values, aggregatedValues) {\n    // It's faster to just add the aggregations together instead of\n    // process leaf nodes individually\n    return aggregatedValues.reduce(function (sum, next) {\n      return sum + (typeof next === 'number' ? next : 0);\n    }, 0);\n  }\n  function min(values) {\n    var min = values[0] || 0;\n    values.forEach(function (value) {\n      if (typeof value === 'number') {\n        min = Math.min(min, value);\n      }\n    });\n    return min;\n  }\n  function max(values) {\n    var max = values[0] || 0;\n    values.forEach(function (value) {\n      if (typeof value === 'number') {\n        max = Math.max(max, value);\n      }\n    });\n    return max;\n  }\n  function minMax(values) {\n    var min = values[0] || 0;\n    var max = values[0] || 0;\n    values.forEach(function (value) {\n      if (typeof value === 'number') {\n        min = Math.min(min, value);\n        max = Math.max(max, value);\n      }\n    });\n    return min + \"..\" + max;\n  }\n  function average(values) {\n    return sum(null, values) / values.length;\n  }\n  function median(values) {\n    if (!values.length) {\n      return null;\n    }\n\n    var mid = Math.floor(values.length / 2);\n    var nums = [].concat(values).sort(function (a, b) {\n      return a - b;\n    });\n    return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n  }\n  function unique(values) {\n    return Array.from(new Set(values).values());\n  }\n  function uniqueCount(values) {\n    return new Set(values).size;\n  }\n  function count(values) {\n    return values.length;\n  }\n\n  var aggregations = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    sum: sum,\n    min: min,\n    max: max,\n    minMax: minMax,\n    average: average,\n    median: median,\n    unique: unique,\n    uniqueCount: uniqueCount,\n    count: count\n  });\n\n  var emptyArray = [];\n  var emptyObject = {}; // Actions\n\n  actions.resetGroupBy = 'resetGroupBy';\n  actions.setGroupBy = 'setGroupBy';\n  actions.toggleGroupBy = 'toggleGroupBy';\n  var useGroupBy = function useGroupBy(hooks) {\n    hooks.getGroupByToggleProps = [defaultGetGroupByToggleProps];\n    hooks.stateReducers.push(reducer$4);\n    hooks.visibleColumnsDeps.push(function (deps, _ref) {\n      var instance = _ref.instance;\n      return [].concat(deps, [instance.state.groupBy]);\n    });\n    hooks.visibleColumns.push(visibleColumns);\n    hooks.useInstance.push(useInstance$4);\n    hooks.prepareRow.push(prepareRow$1);\n  };\n  useGroupBy.pluginName = 'useGroupBy';\n\n  var defaultGetGroupByToggleProps = function defaultGetGroupByToggleProps(props, _ref2) {\n    var header = _ref2.header;\n    return [props, {\n      onClick: header.canGroupBy ? function (e) {\n        e.persist();\n        header.toggleGroupBy();\n      } : undefined,\n      style: {\n        cursor: header.canGroupBy ? 'pointer' : undefined\n      },\n      title: 'Toggle GroupBy'\n    }];\n  }; // Reducer\n\n\n  function reducer$4(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        groupBy: []\n      }, state);\n    }\n\n    if (action.type === actions.resetGroupBy) {\n      return _extends({}, state, {\n        groupBy: instance.initialState.groupBy || []\n      });\n    }\n\n    if (action.type === actions.setGroupBy) {\n      var value = action.value;\n      return _extends({}, state, {\n        groupBy: value\n      });\n    }\n\n    if (action.type === actions.toggleGroupBy) {\n      var columnId = action.columnId,\n          setGroupBy = action.value;\n      var resolvedGroupBy = typeof setGroupBy !== 'undefined' ? setGroupBy : !state.groupBy.includes(columnId);\n\n      if (resolvedGroupBy) {\n        return _extends({}, state, {\n          groupBy: [].concat(state.groupBy, [columnId])\n        });\n      }\n\n      return _extends({}, state, {\n        groupBy: state.groupBy.filter(function (d) {\n          return d !== columnId;\n        })\n      });\n    }\n  }\n\n  function visibleColumns(columns, _ref3) {\n    var groupBy = _ref3.instance.state.groupBy;\n    // Sort grouped columns to the start of the column list\n    // before the headers are built\n    var groupByColumns = groupBy.map(function (g) {\n      return columns.find(function (col) {\n        return col.id === g;\n      });\n    }).filter(Boolean);\n    var nonGroupByColumns = columns.filter(function (col) {\n      return !groupBy.includes(col.id);\n    });\n    columns = [].concat(groupByColumns, nonGroupByColumns);\n    columns.forEach(function (column) {\n      column.isGrouped = groupBy.includes(column.id);\n      column.groupedIndex = groupBy.indexOf(column.id);\n    });\n    return columns;\n  }\n\n  var defaultUserAggregations = {};\n\n  function useInstance$4(instance) {\n    var data = instance.data,\n        rows = instance.rows,\n        flatRows = instance.flatRows,\n        rowsById = instance.rowsById,\n        allColumns = instance.allColumns,\n        flatHeaders = instance.flatHeaders,\n        _instance$groupByFn = instance.groupByFn,\n        groupByFn = _instance$groupByFn === void 0 ? defaultGroupByFn : _instance$groupByFn,\n        manualGroupBy = instance.manualGroupBy,\n        _instance$aggregation = instance.aggregations,\n        userAggregations = _instance$aggregation === void 0 ? defaultUserAggregations : _instance$aggregation,\n        plugins = instance.plugins,\n        groupBy = instance.state.groupBy,\n        dispatch = instance.dispatch,\n        _instance$autoResetGr = instance.autoResetGroupBy,\n        autoResetGroupBy = _instance$autoResetGr === void 0 ? true : _instance$autoResetGr,\n        disableGroupBy = instance.disableGroupBy,\n        defaultCanGroupBy = instance.defaultCanGroupBy,\n        getHooks = instance.getHooks;\n    ensurePluginOrder(plugins, ['useColumnOrder', 'useFilters'], 'useGroupBy');\n    var getInstance = useGetLatest(instance);\n    allColumns.forEach(function (column) {\n      var accessor = column.accessor,\n          defaultColumnGroupBy = column.defaultGroupBy,\n          columnDisableGroupBy = column.disableGroupBy;\n      column.canGroupBy = accessor ? getFirstDefined(column.canGroupBy, columnDisableGroupBy === true ? false : undefined, disableGroupBy === true ? false : undefined, true) : getFirstDefined(column.canGroupBy, defaultColumnGroupBy, defaultCanGroupBy, false);\n\n      if (column.canGroupBy) {\n        column.toggleGroupBy = function () {\n          return instance.toggleGroupBy(column.id);\n        };\n      }\n\n      column.Aggregated = column.Aggregated || column.Cell;\n    });\n    var toggleGroupBy = React.useCallback(function (columnId, value) {\n      dispatch({\n        type: actions.toggleGroupBy,\n        columnId: columnId,\n        value: value\n      });\n    }, [dispatch]);\n    var setGroupBy = React.useCallback(function (value) {\n      dispatch({\n        type: actions.setGroupBy,\n        value: value\n      });\n    }, [dispatch]);\n    flatHeaders.forEach(function (header) {\n      header.getGroupByToggleProps = makePropGetter(getHooks().getGroupByToggleProps, {\n        instance: getInstance(),\n        header: header\n      });\n    });\n\n    var _React$useMemo = React.useMemo(function () {\n      if (manualGroupBy || !groupBy.length) {\n        return [rows, flatRows, rowsById, emptyArray, emptyObject, flatRows, rowsById];\n      } // Ensure that the list of filtered columns exist\n\n\n      var existingGroupBy = groupBy.filter(function (g) {\n        return allColumns.find(function (col) {\n          return col.id === g;\n        });\n      }); // Find the columns that can or are aggregating\n      // Uses each column to aggregate rows into a single value\n\n      var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {\n        var values = {};\n        allColumns.forEach(function (column) {\n          // Don't aggregate columns that are in the groupBy\n          if (existingGroupBy.includes(column.id)) {\n            values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;\n            return;\n          } // Aggregate the values\n\n\n          var aggregateFn = typeof column.aggregate === 'function' ? column.aggregate : userAggregations[column.aggregate] || aggregations[column.aggregate];\n\n          if (aggregateFn) {\n            // Get the columnValues to aggregate\n            var groupedValues = groupedRows.map(function (row) {\n              return row.values[column.id];\n            }); // Get the columnValues to aggregate\n\n            var leafValues = leafRows.map(function (row) {\n              var columnValue = row.values[column.id];\n\n              if (!depth && column.aggregateValue) {\n                var aggregateValueFn = typeof column.aggregateValue === 'function' ? column.aggregateValue : userAggregations[column.aggregateValue] || aggregations[column.aggregateValue];\n\n                if (!aggregateValueFn) {\n                  console.info({\n                    column: column\n                  });\n                  throw new Error(\"React Table: Invalid column.aggregateValue option for column listed above\");\n                }\n\n                columnValue = aggregateValueFn(columnValue, row, column);\n              }\n\n              return columnValue;\n            });\n            values[column.id] = aggregateFn(leafValues, groupedValues);\n          } else if (column.aggregate) {\n            console.info({\n              column: column\n            });\n            throw new Error(\"React Table: Invalid column.aggregate option for column listed above\");\n          } else {\n            values[column.id] = null;\n          }\n        });\n        return values;\n      };\n\n      var groupedFlatRows = [];\n      var groupedRowsById = {};\n      var onlyGroupedFlatRows = [];\n      var onlyGroupedRowsById = {};\n      var nonGroupedFlatRows = [];\n      var nonGroupedRowsById = {}; // Recursively group the data\n\n      var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {\n        if (depth === void 0) {\n          depth = 0;\n        }\n\n        // This is the last level, just return the rows\n        if (depth === existingGroupBy.length) {\n          return rows;\n        }\n\n        var columnId = existingGroupBy[depth]; // Group the rows together for this level\n\n        var rowGroupsMap = groupByFn(rows, columnId); // Peform aggregations for each group\n\n        var aggregatedGroupedRows = Object.entries(rowGroupsMap).map(function (_ref4, index) {\n          var groupByVal = _ref4[0],\n              groupedRows = _ref4[1];\n          var id = columnId + \":\" + groupByVal;\n          id = parentId ? parentId + \">\" + id : id; // First, Recurse to group sub rows before aggregation\n\n          var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group\n\n          var leafRows = depth ? flattenBy(groupedRows, 'leafRows') : groupedRows;\n          var values = aggregateRowsToValues(leafRows, groupedRows, depth);\n          var row = {\n            id: id,\n            isGrouped: true,\n            groupByID: columnId,\n            groupByVal: groupByVal,\n            values: values,\n            subRows: subRows,\n            leafRows: leafRows,\n            depth: depth,\n            index: index\n          };\n          subRows.forEach(function (subRow) {\n            groupedFlatRows.push(subRow);\n            groupedRowsById[subRow.id] = subRow;\n\n            if (subRow.isGrouped) {\n              onlyGroupedFlatRows.push(subRow);\n              onlyGroupedRowsById[subRow.id] = subRow;\n            } else {\n              nonGroupedFlatRows.push(subRow);\n              nonGroupedRowsById[subRow.id] = subRow;\n            }\n          });\n          return row;\n        });\n        return aggregatedGroupedRows;\n      };\n\n      var groupedRows = groupUpRecursively(rows);\n      groupedRows.forEach(function (subRow) {\n        groupedFlatRows.push(subRow);\n        groupedRowsById[subRow.id] = subRow;\n\n        if (subRow.isGrouped) {\n          onlyGroupedFlatRows.push(subRow);\n          onlyGroupedRowsById[subRow.id] = subRow;\n        } else {\n          nonGroupedFlatRows.push(subRow);\n          nonGroupedRowsById[subRow.id] = subRow;\n        }\n      }); // Assign the new data\n\n      return [groupedRows, groupedFlatRows, groupedRowsById, onlyGroupedFlatRows, onlyGroupedRowsById, nonGroupedFlatRows, nonGroupedRowsById];\n    }, [manualGroupBy, groupBy, rows, flatRows, rowsById, allColumns, userAggregations, groupByFn]),\n        groupedRows = _React$useMemo[0],\n        groupedFlatRows = _React$useMemo[1],\n        groupedRowsById = _React$useMemo[2],\n        onlyGroupedFlatRows = _React$useMemo[3],\n        onlyGroupedRowsById = _React$useMemo[4],\n        nonGroupedFlatRows = _React$useMemo[5],\n        nonGroupedRowsById = _React$useMemo[6];\n\n    var getAutoResetGroupBy = useGetLatest(autoResetGroupBy);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetGroupBy()) {\n        dispatch({\n          type: actions.resetGroupBy\n        });\n      }\n    }, [dispatch, manualGroupBy ? null : data]);\n    Object.assign(instance, {\n      preGroupedRows: rows,\n      preGroupedFlatRow: flatRows,\n      preGroupedRowsById: rowsById,\n      groupedRows: groupedRows,\n      groupedFlatRows: groupedFlatRows,\n      groupedRowsById: groupedRowsById,\n      onlyGroupedFlatRows: onlyGroupedFlatRows,\n      onlyGroupedRowsById: onlyGroupedRowsById,\n      nonGroupedFlatRows: nonGroupedFlatRows,\n      nonGroupedRowsById: nonGroupedRowsById,\n      rows: groupedRows,\n      flatRows: groupedFlatRows,\n      rowsById: groupedRowsById,\n      toggleGroupBy: toggleGroupBy,\n      setGroupBy: setGroupBy\n    });\n  }\n\n  function prepareRow$1(row) {\n    row.allCells.forEach(function (cell) {\n      var _row$subRows;\n\n      // Grouped cells are in the groupBy and the pivot cell for the row\n      cell.isGrouped = cell.column.isGrouped && cell.column.id === row.groupByID; // Placeholder cells are any columns in the groupBy that are not grouped\n\n      cell.isPlaceholder = !cell.isGrouped && cell.column.isGrouped; // Aggregated cells are not grouped, not repeated, but still have subRows\n\n      cell.isAggregated = !cell.isGrouped && !cell.isPlaceholder && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length);\n    });\n  }\n\n  function defaultGroupByFn(rows, columnId) {\n    return rows.reduce(function (prev, row, i) {\n      // TODO: Might want to implement a key serializer here so\n      // irregular column values can still be grouped if needed?\n      var resKey = \"\" + row.values[columnId];\n      prev[resKey] = Array.isArray(prev[resKey]) ? prev[resKey] : [];\n      prev[resKey].push(row);\n      return prev;\n    }, {});\n  }\n\n  var reSplitAlphaNumeric = /([0-9]+)/gm; // Mixed sorting is slow, but very inclusive of many edge cases.\n  // It handles numbers, mixed alphanumeric combinations, and even\n  // null, undefined, and Infinity\n\n  var alphanumeric = function alphanumeric(rowA, rowB, columnId) {\n    var a = getRowValueByColumnID(rowA, columnId);\n    var b = getRowValueByColumnID(rowB, columnId); // Force to strings (or \"\" for unsupported types)\n\n    a = toString(a);\n    b = toString(b); // Split on number groups, but keep the delimiter\n    // Then remove falsey split values\n\n    a = a.split(reSplitAlphaNumeric).filter(Boolean);\n    b = b.split(reSplitAlphaNumeric).filter(Boolean); // While\n\n    while (a.length && b.length) {\n      var aa = a.shift();\n      var bb = b.shift();\n      var an = parseInt(aa, 10);\n      var bn = parseInt(bb, 10);\n      var combo = [an, bn].sort(); // Both are string\n\n      if (isNaN(combo[0])) {\n        if (aa > bb) {\n          return 1;\n        }\n\n        if (bb > aa) {\n          return -1;\n        }\n\n        continue;\n      } // One is a string, one is a number\n\n\n      if (isNaN(combo[1])) {\n        return isNaN(an) ? -1 : 1;\n      } // Both are numbers\n\n\n      if (an > bn) {\n        return 1;\n      }\n\n      if (bn > an) {\n        return -1;\n      }\n    }\n\n    return a.length - b.length;\n  };\n  function datetime(rowA, rowB, columnId) {\n    var a = getRowValueByColumnID(rowA, columnId);\n    var b = getRowValueByColumnID(rowB, columnId);\n    a = a.getTime();\n    b = b.getTime();\n    return compareBasic(a, b);\n  }\n  function basic(rowA, rowB, columnId) {\n    var a = getRowValueByColumnID(rowA, columnId);\n    var b = getRowValueByColumnID(rowB, columnId);\n    return compareBasic(a, b);\n  } // Utils\n\n  function compareBasic(a, b) {\n    return a === b ? 0 : a > b ? 1 : -1;\n  }\n\n  function getRowValueByColumnID(row, columnId) {\n    return row.values[columnId];\n  }\n\n  function toString(a) {\n    if (typeof a === 'number') {\n      if (isNaN(a) || a === Infinity || a === -Infinity) {\n        return '';\n      }\n\n      return String(a);\n    }\n\n    if (typeof a === 'string') {\n      return a;\n    }\n\n    return '';\n  }\n\n  var sortTypes = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    alphanumeric: alphanumeric,\n    datetime: datetime,\n    basic: basic\n  });\n\n  actions.resetSortBy = 'resetSortBy';\n  actions.setSortBy = 'setSortBy';\n  actions.toggleSortBy = 'toggleSortBy';\n  actions.clearSortBy = 'clearSortBy';\n  defaultColumn.sortType = 'alphanumeric';\n  defaultColumn.sortDescFirst = false;\n  var useSortBy = function useSortBy(hooks) {\n    hooks.getSortByToggleProps = [defaultGetSortByToggleProps];\n    hooks.stateReducers.push(reducer$5);\n    hooks.useInstance.push(useInstance$5);\n  };\n  useSortBy.pluginName = 'useSortBy';\n\n  var defaultGetSortByToggleProps = function defaultGetSortByToggleProps(props, _ref) {\n    var instance = _ref.instance,\n        column = _ref.column;\n    var _instance$isMultiSort = instance.isMultiSortEvent,\n        isMultiSortEvent = _instance$isMultiSort === void 0 ? function (e) {\n      return e.shiftKey;\n    } : _instance$isMultiSort;\n    return [props, {\n      onClick: column.canSort ? function (e) {\n        e.persist();\n        column.toggleSortBy(undefined, !instance.disableMultiSort && isMultiSortEvent(e));\n      } : undefined,\n      style: {\n        cursor: column.canSort ? 'pointer' : undefined\n      },\n      title: column.canSort ? 'Toggle SortBy' : undefined\n    }];\n  }; // Reducer\n\n\n  function reducer$5(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        sortBy: []\n      }, state);\n    }\n\n    if (action.type === actions.resetSortBy) {\n      return _extends({}, state, {\n        sortBy: instance.initialState.sortBy || []\n      });\n    }\n\n    if (action.type === actions.clearSortBy) {\n      var sortBy = state.sortBy;\n      var newSortBy = sortBy.filter(function (d) {\n        return d.id !== action.columnId;\n      });\n      return _extends({}, state, {\n        sortBy: newSortBy\n      });\n    }\n\n    if (action.type === actions.setSortBy) {\n      var _sortBy = action.sortBy;\n      return _extends({}, state, {\n        sortBy: _sortBy\n      });\n    }\n\n    if (action.type === actions.toggleSortBy) {\n      var columnId = action.columnId,\n          desc = action.desc,\n          multi = action.multi;\n      var allColumns = instance.allColumns,\n          disableMultiSort = instance.disableMultiSort,\n          disableSortRemove = instance.disableSortRemove,\n          disableMultiRemove = instance.disableMultiRemove,\n          _instance$maxMultiSor = instance.maxMultiSortColCount,\n          maxMultiSortColCount = _instance$maxMultiSor === void 0 ? Number.MAX_SAFE_INTEGER : _instance$maxMultiSor;\n      var _sortBy2 = state.sortBy; // Find the column for this columnId\n\n      var column = allColumns.find(function (d) {\n        return d.id === columnId;\n      });\n      var sortDescFirst = column.sortDescFirst; // Find any existing sortBy for this column\n\n      var existingSortBy = _sortBy2.find(function (d) {\n        return d.id === columnId;\n      });\n\n      var existingIndex = _sortBy2.findIndex(function (d) {\n        return d.id === columnId;\n      });\n\n      var hasDescDefined = typeof desc !== 'undefined' && desc !== null;\n      var _newSortBy = []; // What should we do with this sort action?\n\n      var sortAction;\n\n      if (!disableMultiSort && multi) {\n        if (existingSortBy) {\n          sortAction = 'toggle';\n        } else {\n          sortAction = 'add';\n        }\n      } else {\n        // Normal mode\n        if (existingIndex !== _sortBy2.length - 1 || _sortBy2.length !== 1) {\n          sortAction = 'replace';\n        } else if (existingSortBy) {\n          sortAction = 'toggle';\n        } else {\n          sortAction = 'replace';\n        }\n      } // Handle toggle states that will remove the sortBy\n\n\n      if (sortAction === 'toggle' && // Must be toggling\n      !disableSortRemove && // If disableSortRemove, disable in general\n      !hasDescDefined && ( // Must not be setting desc\n      multi ? !disableMultiRemove : true) && ( // If multi, don't allow if disableMultiRemove\n      existingSortBy && // Finally, detect if it should indeed be removed\n      existingSortBy.desc && !sortDescFirst || !existingSortBy.desc && sortDescFirst)) {\n        sortAction = 'remove';\n      }\n\n      if (sortAction === 'replace') {\n        _newSortBy = [{\n          id: columnId,\n          desc: hasDescDefined ? desc : sortDescFirst\n        }];\n      } else if (sortAction === 'add') {\n        _newSortBy = [].concat(_sortBy2, [{\n          id: columnId,\n          desc: hasDescDefined ? desc : sortDescFirst\n        }]); // Take latest n columns\n\n        _newSortBy.splice(0, _newSortBy.length - maxMultiSortColCount);\n      } else if (sortAction === 'toggle') {\n        // This flips (or sets) the\n        _newSortBy = _sortBy2.map(function (d) {\n          if (d.id === columnId) {\n            return _extends({}, d, {\n              desc: hasDescDefined ? desc : !existingSortBy.desc\n            });\n          }\n\n          return d;\n        });\n      } else if (sortAction === 'remove') {\n        _newSortBy = _sortBy2.filter(function (d) {\n          return d.id !== columnId;\n        });\n      }\n\n      return _extends({}, state, {\n        sortBy: _newSortBy\n      });\n    }\n  }\n\n  function useInstance$5(instance) {\n    var data = instance.data,\n        rows = instance.rows,\n        flatRows = instance.flatRows,\n        allColumns = instance.allColumns,\n        _instance$orderByFn = instance.orderByFn,\n        orderByFn = _instance$orderByFn === void 0 ? defaultOrderByFn : _instance$orderByFn,\n        userSortTypes = instance.sortTypes,\n        manualSortBy = instance.manualSortBy,\n        defaultCanSort = instance.defaultCanSort,\n        disableSortBy = instance.disableSortBy,\n        flatHeaders = instance.flatHeaders,\n        sortBy = instance.state.sortBy,\n        dispatch = instance.dispatch,\n        plugins = instance.plugins,\n        getHooks = instance.getHooks,\n        _instance$autoResetSo = instance.autoResetSortBy,\n        autoResetSortBy = _instance$autoResetSo === void 0 ? true : _instance$autoResetSo;\n    ensurePluginOrder(plugins, ['useFilters', 'useGlobalFilter', 'useGroupBy', 'usePivotColumns'], 'useSortBy');\n    var setSortBy = React.useCallback(function (sortBy) {\n      dispatch({\n        type: actions.setSortBy,\n        sortBy: sortBy\n      });\n    }, [dispatch]); // Updates sorting based on a columnId, desc flag and multi flag\n\n    var toggleSortBy = React.useCallback(function (columnId, desc, multi) {\n      dispatch({\n        type: actions.toggleSortBy,\n        columnId: columnId,\n        desc: desc,\n        multi: multi\n      });\n    }, [dispatch]); // use reference to avoid memory leak in #1608\n\n    var getInstance = useGetLatest(instance); // Add the getSortByToggleProps method to columns and headers\n\n    flatHeaders.forEach(function (column) {\n      var accessor = column.accessor,\n          defaultColumnCanSort = column.canSort,\n          columnDisableSortBy = column.disableSortBy,\n          id = column.id;\n      var canSort = accessor ? getFirstDefined(columnDisableSortBy === true ? false : undefined, disableSortBy === true ? false : undefined, true) : getFirstDefined(defaultCanSort, defaultColumnCanSort, false);\n      column.canSort = canSort;\n\n      if (column.canSort) {\n        column.toggleSortBy = function (desc, multi) {\n          return toggleSortBy(column.id, desc, multi);\n        };\n\n        column.clearSortBy = function () {\n          dispatch({\n            type: actions.clearSortBy,\n            columnId: column.id\n          });\n        };\n      }\n\n      column.getSortByToggleProps = makePropGetter(getHooks().getSortByToggleProps, {\n        instance: getInstance(),\n        column: column\n      });\n      var columnSort = sortBy.find(function (d) {\n        return d.id === id;\n      });\n      column.isSorted = !!columnSort;\n      column.sortedIndex = sortBy.findIndex(function (d) {\n        return d.id === id;\n      });\n      column.isSortedDesc = column.isSorted ? columnSort.desc : undefined;\n    });\n\n    var _React$useMemo = React.useMemo(function () {\n      if (manualSortBy || !sortBy.length) {\n        return [rows, flatRows];\n      }\n\n      var sortedFlatRows = []; // Filter out sortBys that correspond to non existing columns\n\n      var availableSortBy = sortBy.filter(function (sort) {\n        return allColumns.find(function (col) {\n          return col.id === sort.id;\n        });\n      });\n\n      var sortData = function sortData(rows) {\n        // Use the orderByFn to compose multiple sortBy's together.\n        // This will also perform a stable sorting using the row index\n        // if needed.\n        var sortedData = orderByFn(rows, availableSortBy.map(function (sort) {\n          // Support custom sorting methods for each column\n          var column = allColumns.find(function (d) {\n            return d.id === sort.id;\n          });\n\n          if (!column) {\n            throw new Error(\"React-Table: Could not find a column with id: \" + sort.id + \" while sorting\");\n          }\n\n          var sortType = column.sortType; // Look up sortBy functions in this order:\n          // column function\n          // column string lookup on user sortType\n          // column string lookup on built-in sortType\n          // default function\n          // default string lookup on user sortType\n          // default string lookup on built-in sortType\n\n          var sortMethod = isFunction(sortType) || (userSortTypes || {})[sortType] || sortTypes[sortType];\n\n          if (!sortMethod) {\n            throw new Error(\"React-Table: Could not find a valid sortType of '\" + sortType + \"' for column '\" + sort.id + \"'.\");\n          } // Return the correct sortFn.\n          // This function should always return in ascending order\n\n\n          return function (a, b) {\n            return sortMethod(a, b, sort.id, sort.desc);\n          };\n        }), // Map the directions\n        availableSortBy.map(function (sort) {\n          // Detect and use the sortInverted option\n          var column = allColumns.find(function (d) {\n            return d.id === sort.id;\n          });\n\n          if (column && column.sortInverted) {\n            return sort.desc;\n          }\n\n          return !sort.desc;\n        })); // If there are sub-rows, sort them\n\n        sortedData.forEach(function (row) {\n          sortedFlatRows.push(row);\n\n          if (!row.subRows || row.subRows.length === 0) {\n            return;\n          }\n\n          row.subRows = sortData(row.subRows);\n        });\n        return sortedData;\n      };\n\n      return [sortData(rows), sortedFlatRows];\n    }, [manualSortBy, sortBy, rows, flatRows, allColumns, orderByFn, userSortTypes]),\n        sortedRows = _React$useMemo[0],\n        sortedFlatRows = _React$useMemo[1];\n\n    var getAutoResetSortBy = useGetLatest(autoResetSortBy);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetSortBy()) {\n        dispatch({\n          type: actions.resetSortBy\n        });\n      }\n    }, [manualSortBy ? null : data]);\n    Object.assign(instance, {\n      preSortedRows: rows,\n      preSortedFlatRows: flatRows,\n      sortedRows: sortedRows,\n      sortedFlatRows: sortedFlatRows,\n      rows: sortedRows,\n      flatRows: sortedFlatRows,\n      setSortBy: setSortBy,\n      toggleSortBy: toggleSortBy\n    });\n  }\n\n  function defaultOrderByFn(arr, funcs, dirs) {\n    return [].concat(arr).sort(function (rowA, rowB) {\n      for (var i = 0; i < funcs.length; i += 1) {\n        var sortFn = funcs[i];\n        var desc = dirs[i] === false || dirs[i] === 'desc';\n        var sortInt = sortFn(rowA, rowB);\n\n        if (sortInt !== 0) {\n          return desc ? -sortInt : sortInt;\n        }\n      }\n\n      return dirs[0] ? rowA.index - rowB.index : rowB.index - rowA.index;\n    });\n  }\n\n  var pluginName = 'usePagination'; // Actions\n\n  actions.resetPage = 'resetPage';\n  actions.gotoPage = 'gotoPage';\n  actions.setPageSize = 'setPageSize';\n  var usePagination = function usePagination(hooks) {\n    hooks.stateReducers.push(reducer$6);\n    hooks.useInstance.push(useInstance$6);\n  };\n  usePagination.pluginName = pluginName;\n\n  function reducer$6(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        pageSize: 10,\n        pageIndex: 0\n      }, state);\n    }\n\n    if (action.type === actions.resetPage) {\n      return _extends({}, state, {\n        pageIndex: instance.initialState.pageIndex || 0\n      });\n    }\n\n    if (action.type === actions.gotoPage) {\n      var pageCount = instance.pageCount,\n          page = instance.page;\n      var newPageIndex = functionalUpdate(action.pageIndex, state.pageIndex);\n      var canNavigate = false;\n\n      if (newPageIndex > state.pageIndex) {\n        // next page\n        canNavigate = pageCount === -1 ? page.length >= state.pageSize : newPageIndex <= pageCount;\n      } else if (newPageIndex < state.pageIndex) {\n        // prev page\n        canNavigate = newPageIndex > -1;\n      }\n\n      if (!canNavigate) {\n        return state;\n      }\n\n      return _extends({}, state, {\n        pageIndex: newPageIndex\n      });\n    }\n\n    if (action.type === actions.setPageSize) {\n      var pageSize = action.pageSize;\n      var topRowIndex = state.pageSize * state.pageIndex;\n      var pageIndex = Math.floor(topRowIndex / pageSize);\n      return _extends({}, state, {\n        pageIndex: pageIndex,\n        pageSize: pageSize\n      });\n    }\n  }\n\n  function useInstance$6(instance) {\n    var rows = instance.rows,\n        _instance$autoResetPa = instance.autoResetPage,\n        autoResetPage = _instance$autoResetPa === void 0 ? true : _instance$autoResetPa,\n        _instance$manualExpan = instance.manualExpandedKey,\n        manualExpandedKey = _instance$manualExpan === void 0 ? 'expanded' : _instance$manualExpan,\n        plugins = instance.plugins,\n        userPageCount = instance.pageCount,\n        _instance$paginateExp = instance.paginateExpandedRows,\n        paginateExpandedRows = _instance$paginateExp === void 0 ? true : _instance$paginateExp,\n        _instance$expandSubRo = instance.expandSubRows,\n        expandSubRows = _instance$expandSubRo === void 0 ? true : _instance$expandSubRo,\n        _instance$state = instance.state,\n        pageSize = _instance$state.pageSize,\n        pageIndex = _instance$state.pageIndex,\n        expanded = _instance$state.expanded,\n        globalFilter = _instance$state.globalFilter,\n        filters = _instance$state.filters,\n        groupBy = _instance$state.groupBy,\n        sortBy = _instance$state.sortBy,\n        dispatch = instance.dispatch,\n        data = instance.data,\n        manualPagination = instance.manualPagination;\n    ensurePluginOrder(plugins, ['useGlobalFilter', 'useFilters', 'useGroupBy', 'useSortBy', 'useExpanded'], 'usePagination');\n    var getAutoResetPage = useGetLatest(autoResetPage);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetPage()) {\n        dispatch({\n          type: actions.resetPage\n        });\n      }\n    }, [dispatch, manualPagination ? null : data, globalFilter, filters, groupBy, sortBy]);\n    var pageCount = manualPagination ? userPageCount : Math.ceil(rows.length / pageSize);\n    var pageOptions = React.useMemo(function () {\n      return pageCount > 0 ? [].concat(new Array(pageCount)).fill(null).map(function (d, i) {\n        return i;\n      }) : [];\n    }, [pageCount]);\n    var page = React.useMemo(function () {\n      var page;\n\n      if (manualPagination) {\n        page = rows;\n      } else {\n        var pageStart = pageSize * pageIndex;\n        var pageEnd = pageStart + pageSize;\n        page = rows.slice(pageStart, pageEnd);\n      }\n\n      if (paginateExpandedRows) {\n        return page;\n      }\n\n      return expandRows(page, {\n        manualExpandedKey: manualExpandedKey,\n        expanded: expanded,\n        expandSubRows: expandSubRows\n      });\n    }, [expandSubRows, expanded, manualExpandedKey, manualPagination, pageIndex, pageSize, paginateExpandedRows, rows]);\n    var canPreviousPage = pageIndex > 0;\n    var canNextPage = pageCount === -1 ? page.length >= pageSize : pageIndex < pageCount - 1;\n    var gotoPage = React.useCallback(function (pageIndex) {\n      dispatch({\n        type: actions.gotoPage,\n        pageIndex: pageIndex\n      });\n    }, [dispatch]);\n    var previousPage = React.useCallback(function () {\n      return gotoPage(function (old) {\n        return old - 1;\n      });\n    }, [gotoPage]);\n    var nextPage = React.useCallback(function () {\n      return gotoPage(function (old) {\n        return old + 1;\n      });\n    }, [gotoPage]);\n    var setPageSize = React.useCallback(function (pageSize) {\n      dispatch({\n        type: actions.setPageSize,\n        pageSize: pageSize\n      });\n    }, [dispatch]);\n    Object.assign(instance, {\n      pageOptions: pageOptions,\n      pageCount: pageCount,\n      page: page,\n      canPreviousPage: canPreviousPage,\n      canNextPage: canNextPage,\n      gotoPage: gotoPage,\n      previousPage: previousPage,\n      nextPage: nextPage,\n      setPageSize: setPageSize\n    });\n  }\n\n  actions.resetPivot = 'resetPivot';\n  actions.togglePivot = 'togglePivot';\n  var _UNSTABLE_usePivotColumns = function _UNSTABLE_usePivotColumns(hooks) {\n    hooks.getPivotToggleProps = [defaultGetPivotToggleProps];\n    hooks.stateReducers.push(reducer$7);\n    hooks.useInstanceAfterData.push(useInstanceAfterData);\n    hooks.allColumns.push(allColumns);\n    hooks.accessValue.push(accessValue);\n    hooks.materializedColumns.push(materializedColumns);\n    hooks.materializedColumnsDeps.push(materializedColumnsDeps);\n    hooks.visibleColumns.push(visibleColumns$1);\n    hooks.visibleColumnsDeps.push(visibleColumnsDeps);\n    hooks.useInstance.push(useInstance$7);\n    hooks.prepareRow.push(prepareRow$2);\n  };\n  _UNSTABLE_usePivotColumns.pluginName = 'usePivotColumns';\n  var defaultPivotColumns = [];\n\n  var defaultGetPivotToggleProps = function defaultGetPivotToggleProps(props, _ref) {\n    var header = _ref.header;\n    return [props, {\n      onClick: header.canPivot ? function (e) {\n        e.persist();\n        header.togglePivot();\n      } : undefined,\n      style: {\n        cursor: header.canPivot ? 'pointer' : undefined\n      },\n      title: 'Toggle Pivot'\n    }];\n  }; // Reducer\n\n\n  function reducer$7(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        pivotColumns: defaultPivotColumns\n      }, state);\n    }\n\n    if (action.type === actions.resetPivot) {\n      return _extends({}, state, {\n        pivotColumns: instance.initialState.pivotColumns || defaultPivotColumns\n      });\n    }\n\n    if (action.type === actions.togglePivot) {\n      var columnId = action.columnId,\n          setPivot = action.value;\n      var resolvedPivot = typeof setPivot !== 'undefined' ? setPivot : !state.pivotColumns.includes(columnId);\n\n      if (resolvedPivot) {\n        return _extends({}, state, {\n          pivotColumns: [].concat(state.pivotColumns, [columnId])\n        });\n      }\n\n      return _extends({}, state, {\n        pivotColumns: state.pivotColumns.filter(function (d) {\n          return d !== columnId;\n        })\n      });\n    }\n  }\n\n  function useInstanceAfterData(instance) {\n    instance.allColumns.forEach(function (column) {\n      column.isPivotSource = instance.state.pivotColumns.includes(column.id);\n    });\n  }\n\n  function allColumns(columns, _ref2) {\n    var instance = _ref2.instance;\n    columns.forEach(function (column) {\n      column.isPivotSource = instance.state.pivotColumns.includes(column.id);\n      column.uniqueValues = new Set();\n    });\n    return columns;\n  }\n\n  function accessValue(value, _ref3) {\n    var column = _ref3.column;\n\n    if (column.uniqueValues && typeof value !== 'undefined') {\n      column.uniqueValues.add(value);\n    }\n\n    return value;\n  }\n\n  function materializedColumns(materialized, _ref4) {\n    var instance = _ref4.instance;\n    var allColumns = instance.allColumns,\n        state = instance.state;\n\n    if (!state.pivotColumns.length || !state.groupBy || !state.groupBy.length) {\n      return materialized;\n    }\n\n    var pivotColumns = state.pivotColumns.map(function (id) {\n      return allColumns.find(function (d) {\n        return d.id === id;\n      });\n    }).filter(Boolean);\n    var sourceColumns = allColumns.filter(function (d) {\n      return !d.isPivotSource && !state.groupBy.includes(d.id) && !state.pivotColumns.includes(d.id);\n    });\n\n    var buildPivotColumns = function buildPivotColumns(depth, parent, pivotFilters) {\n      if (depth === void 0) {\n        depth = 0;\n      }\n\n      if (pivotFilters === void 0) {\n        pivotFilters = [];\n      }\n\n      var pivotColumn = pivotColumns[depth];\n\n      if (!pivotColumn) {\n        return sourceColumns.map(function (sourceColumn) {\n          // TODO: We could offer support here for renesting pivoted\n          // columns inside copies of their header groups. For now,\n          // that seems like it would be (1) overkill on nesting, considering\n          // you already get nesting for every pivot level and (2)\n          // really hard. :)\n          return _extends({}, sourceColumn, {\n            canPivot: false,\n            isPivoted: true,\n            parent: parent,\n            depth: depth,\n            id: \"\" + (parent ? parent.id + \".\" + sourceColumn.id : sourceColumn.id),\n            accessor: function accessor(originalRow, i, row) {\n              if (pivotFilters.every(function (filter) {\n                return filter(row);\n              })) {\n                return row.values[sourceColumn.id];\n              }\n            }\n          });\n        });\n      }\n\n      var uniqueValues = Array.from(pivotColumn.uniqueValues).sort();\n      return uniqueValues.map(function (uniqueValue) {\n        var columnGroup = _extends({}, pivotColumn, {\n          Header: pivotColumn.PivotHeader || typeof pivotColumn.header === 'string' ? pivotColumn.Header + \": \" + uniqueValue : uniqueValue,\n          isPivotGroup: true,\n          parent: parent,\n          depth: depth,\n          id: parent ? parent.id + \".\" + pivotColumn.id + \".\" + uniqueValue : pivotColumn.id + \".\" + uniqueValue,\n          pivotValue: uniqueValue\n        });\n\n        columnGroup.columns = buildPivotColumns(depth + 1, columnGroup, [].concat(pivotFilters, [function (row) {\n          return row.values[pivotColumn.id] === uniqueValue;\n        }]));\n        return columnGroup;\n      });\n    };\n\n    var newMaterialized = flattenColumns(buildPivotColumns());\n    return [].concat(materialized, newMaterialized);\n  }\n\n  function materializedColumnsDeps(deps, _ref5) {\n    var _ref5$instance$state = _ref5.instance.state,\n        pivotColumns = _ref5$instance$state.pivotColumns,\n        groupBy = _ref5$instance$state.groupBy;\n    return [].concat(deps, [pivotColumns, groupBy]);\n  }\n\n  function visibleColumns$1(visibleColumns, _ref6) {\n    var state = _ref6.instance.state;\n    visibleColumns = visibleColumns.filter(function (d) {\n      return !d.isPivotSource;\n    });\n\n    if (state.pivotColumns.length && state.groupBy && state.groupBy.length) {\n      visibleColumns = visibleColumns.filter(function (column) {\n        return column.isGrouped || column.isPivoted;\n      });\n    }\n\n    return visibleColumns;\n  }\n\n  function visibleColumnsDeps(deps, _ref7) {\n    var instance = _ref7.instance;\n    return [].concat(deps, [instance.state.pivotColumns, instance.state.groupBy]);\n  }\n\n  function useInstance$7(instance) {\n    var columns = instance.columns,\n        allColumns = instance.allColumns,\n        flatHeaders = instance.flatHeaders,\n        getHooks = instance.getHooks,\n        plugins = instance.plugins,\n        dispatch = instance.dispatch,\n        _instance$autoResetPi = instance.autoResetPivot,\n        autoResetPivot = _instance$autoResetPi === void 0 ? true : _instance$autoResetPi,\n        manaulPivot = instance.manaulPivot,\n        disablePivot = instance.disablePivot,\n        defaultCanPivot = instance.defaultCanPivot;\n    ensurePluginOrder(plugins, ['useGroupBy'], 'usePivotColumns');\n    var getInstance = useGetLatest(instance);\n    allColumns.forEach(function (column) {\n      var accessor = column.accessor,\n          defaultColumnPivot = column.defaultPivot,\n          columnDisablePivot = column.disablePivot;\n      column.canPivot = accessor ? getFirstDefined(column.canPivot, columnDisablePivot === true ? false : undefined, disablePivot === true ? false : undefined, true) : getFirstDefined(column.canPivot, defaultColumnPivot, defaultCanPivot, false);\n\n      if (column.canPivot) {\n        column.togglePivot = function () {\n          return instance.togglePivot(column.id);\n        };\n      }\n\n      column.Aggregated = column.Aggregated || column.Cell;\n    });\n\n    var togglePivot = function togglePivot(columnId, value) {\n      dispatch({\n        type: actions.togglePivot,\n        columnId: columnId,\n        value: value\n      });\n    };\n\n    flatHeaders.forEach(function (header) {\n      header.getPivotToggleProps = makePropGetter(getHooks().getPivotToggleProps, {\n        instance: getInstance(),\n        header: header\n      });\n    });\n    var getAutoResetPivot = useGetLatest(autoResetPivot);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetPivot()) {\n        dispatch({\n          type: actions.resetPivot\n        });\n      }\n    }, [dispatch, manaulPivot ? null : columns]);\n    Object.assign(instance, {\n      togglePivot: togglePivot\n    });\n  }\n\n  function prepareRow$2(row) {\n    row.allCells.forEach(function (cell) {\n      // Grouped cells are in the pivotColumns and the pivot cell for the row\n      cell.isPivoted = cell.column.isPivoted;\n    });\n  }\n\n  var pluginName$1 = 'useRowSelect'; // Actions\n\n  actions.resetSelectedRows = 'resetSelectedRows';\n  actions.toggleAllRowsSelected = 'toggleAllRowsSelected';\n  actions.toggleRowSelected = 'toggleRowSelected';\n  actions.toggleAllPageRowsSelected = 'toggleAllPageRowsSelected';\n  var useRowSelect = function useRowSelect(hooks) {\n    hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];\n    hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];\n    hooks.getToggleAllPageRowsSelectedProps = [defaultGetToggleAllPageRowsSelectedProps];\n    hooks.stateReducers.push(reducer$8);\n    hooks.useInstance.push(useInstance$8);\n    hooks.prepareRow.push(prepareRow$3);\n  };\n  useRowSelect.pluginName = pluginName$1;\n\n  var defaultGetToggleRowSelectedProps = function defaultGetToggleRowSelectedProps(props, _ref) {\n    var instance = _ref.instance,\n        row = _ref.row;\n    var _instance$manualRowSe = instance.manualRowSelectedKey,\n        manualRowSelectedKey = _instance$manualRowSe === void 0 ? 'isSelected' : _instance$manualRowSe;\n    var checked = false;\n\n    if (row.original && row.original[manualRowSelectedKey]) {\n      checked = true;\n    } else {\n      checked = row.isSelected;\n    }\n\n    return [props, {\n      onChange: function onChange(e) {\n        row.toggleRowSelected(e.target.checked);\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      checked: checked,\n      title: 'Toggle Row Selected',\n      indeterminate: row.isSomeSelected\n    }];\n  };\n\n  var defaultGetToggleAllRowsSelectedProps = function defaultGetToggleAllRowsSelectedProps(props, _ref2) {\n    var instance = _ref2.instance;\n    return [props, {\n      onChange: function onChange(e) {\n        instance.toggleAllRowsSelected(e.target.checked);\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      checked: instance.isAllRowsSelected,\n      title: 'Toggle All Rows Selected',\n      indeterminate: Boolean(!instance.isAllRowsSelected && Object.keys(instance.state.selectedRowIds).length)\n    }];\n  };\n\n  var defaultGetToggleAllPageRowsSelectedProps = function defaultGetToggleAllPageRowsSelectedProps(props, _ref3) {\n    var instance = _ref3.instance;\n    return [props, {\n      onChange: function onChange(e) {\n        instance.toggleAllPageRowsSelected(e.target.checked);\n      },\n      style: {\n        cursor: 'pointer'\n      },\n      checked: instance.isAllPageRowsSelected,\n      title: 'Toggle All Current Page Rows Selected',\n      indeterminate: Boolean(!instance.isAllPageRowsSelected && instance.page.some(function (_ref4) {\n        var id = _ref4.id;\n        return instance.state.selectedRowIds[id];\n      }))\n    }];\n  }; // eslint-disable-next-line max-params\n\n\n  function reducer$8(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        selectedRowIds: {}\n      }, state);\n    }\n\n    if (action.type === actions.resetSelectedRows) {\n      return _extends({}, state, {\n        selectedRowIds: instance.initialState.selectedRowIds || {}\n      });\n    }\n\n    if (action.type === actions.toggleAllRowsSelected) {\n      var setSelected = action.value;\n      var isAllRowsSelected = instance.isAllRowsSelected,\n          rowsById = instance.rowsById,\n          _instance$nonGroupedR = instance.nonGroupedRowsById,\n          nonGroupedRowsById = _instance$nonGroupedR === void 0 ? rowsById : _instance$nonGroupedR;\n      var selectAll = typeof setSelected !== 'undefined' ? setSelected : !isAllRowsSelected; // Only remove/add the rows that are visible on the screen\n      //  Leave all the other rows that are selected alone.\n\n      var selectedRowIds = Object.assign({}, state.selectedRowIds);\n\n      if (selectAll) {\n        Object.keys(nonGroupedRowsById).forEach(function (rowId) {\n          selectedRowIds[rowId] = true;\n        });\n      } else {\n        Object.keys(nonGroupedRowsById).forEach(function (rowId) {\n          delete selectedRowIds[rowId];\n        });\n      }\n\n      return _extends({}, state, {\n        selectedRowIds: selectedRowIds\n      });\n    }\n\n    if (action.type === actions.toggleRowSelected) {\n      var id = action.id,\n          _setSelected = action.value;\n      var _rowsById = instance.rowsById,\n          _instance$selectSubRo = instance.selectSubRows,\n          selectSubRows = _instance$selectSubRo === void 0 ? true : _instance$selectSubRo,\n          getSubRows = instance.getSubRows;\n      var isSelected = state.selectedRowIds[id];\n      var shouldExist = typeof _setSelected !== 'undefined' ? _setSelected : !isSelected;\n\n      if (isSelected === shouldExist) {\n        return state;\n      }\n\n      var newSelectedRowIds = _extends({}, state.selectedRowIds);\n\n      var handleRowById = function handleRowById(id) {\n        var row = _rowsById[id];\n\n        if (!row.isGrouped) {\n          if (shouldExist) {\n            newSelectedRowIds[id] = true;\n          } else {\n            delete newSelectedRowIds[id];\n          }\n        }\n\n        if (selectSubRows && getSubRows(row)) {\n          return getSubRows(row).forEach(function (row) {\n            return handleRowById(row.id);\n          });\n        }\n      };\n\n      handleRowById(id);\n      return _extends({}, state, {\n        selectedRowIds: newSelectedRowIds\n      });\n    }\n\n    if (action.type === actions.toggleAllPageRowsSelected) {\n      var _setSelected2 = action.value;\n\n      var page = instance.page,\n          _rowsById2 = instance.rowsById,\n          _instance$selectSubRo2 = instance.selectSubRows,\n          _selectSubRows = _instance$selectSubRo2 === void 0 ? true : _instance$selectSubRo2,\n          isAllPageRowsSelected = instance.isAllPageRowsSelected,\n          _getSubRows = instance.getSubRows;\n\n      var _selectAll = typeof _setSelected2 !== 'undefined' ? _setSelected2 : !isAllPageRowsSelected;\n\n      var _newSelectedRowIds = _extends({}, state.selectedRowIds);\n\n      var _handleRowById = function _handleRowById(id) {\n        var row = _rowsById2[id];\n\n        if (!row.isGrouped) {\n          if (_selectAll) {\n            _newSelectedRowIds[id] = true;\n          } else {\n            delete _newSelectedRowIds[id];\n          }\n        }\n\n        if (_selectSubRows && _getSubRows(row)) {\n          return _getSubRows(row).forEach(function (row) {\n            return _handleRowById(row.id);\n          });\n        }\n      };\n\n      page.forEach(function (row) {\n        return _handleRowById(row.id);\n      });\n      return _extends({}, state, {\n        selectedRowIds: _newSelectedRowIds\n      });\n    }\n\n    return state;\n  }\n\n  function useInstance$8(instance) {\n    var data = instance.data,\n        rows = instance.rows,\n        getHooks = instance.getHooks,\n        plugins = instance.plugins,\n        rowsById = instance.rowsById,\n        _instance$nonGroupedR2 = instance.nonGroupedRowsById,\n        nonGroupedRowsById = _instance$nonGroupedR2 === void 0 ? rowsById : _instance$nonGroupedR2,\n        _instance$autoResetSe = instance.autoResetSelectedRows,\n        autoResetSelectedRows = _instance$autoResetSe === void 0 ? true : _instance$autoResetSe,\n        selectedRowIds = instance.state.selectedRowIds,\n        _instance$selectSubRo3 = instance.selectSubRows,\n        selectSubRows = _instance$selectSubRo3 === void 0 ? true : _instance$selectSubRo3,\n        dispatch = instance.dispatch,\n        page = instance.page,\n        getSubRows = instance.getSubRows;\n    ensurePluginOrder(plugins, ['useFilters', 'useGroupBy', 'useSortBy', 'useExpanded', 'usePagination'], 'useRowSelect');\n    var selectedFlatRows = React.useMemo(function () {\n      var selectedFlatRows = [];\n      rows.forEach(function (row) {\n        var isSelected = selectSubRows ? getRowIsSelected(row, selectedRowIds, getSubRows) : !!selectedRowIds[row.id];\n        row.isSelected = !!isSelected;\n        row.isSomeSelected = isSelected === null;\n\n        if (isSelected) {\n          selectedFlatRows.push(row);\n        }\n      });\n      return selectedFlatRows;\n    }, [rows, selectSubRows, selectedRowIds, getSubRows]);\n    var isAllRowsSelected = Boolean(Object.keys(nonGroupedRowsById).length && Object.keys(selectedRowIds).length);\n    var isAllPageRowsSelected = isAllRowsSelected;\n\n    if (isAllRowsSelected) {\n      if (Object.keys(nonGroupedRowsById).some(function (id) {\n        return !selectedRowIds[id];\n      })) {\n        isAllRowsSelected = false;\n      }\n    }\n\n    if (!isAllRowsSelected) {\n      if (page && page.length && page.some(function (_ref5) {\n        var id = _ref5.id;\n        return !selectedRowIds[id];\n      })) {\n        isAllPageRowsSelected = false;\n      }\n    }\n\n    var getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetSelectedRows()) {\n        dispatch({\n          type: actions.resetSelectedRows\n        });\n      }\n    }, [dispatch, data]);\n    var toggleAllRowsSelected = React.useCallback(function (value) {\n      return dispatch({\n        type: actions.toggleAllRowsSelected,\n        value: value\n      });\n    }, [dispatch]);\n    var toggleAllPageRowsSelected = React.useCallback(function (value) {\n      return dispatch({\n        type: actions.toggleAllPageRowsSelected,\n        value: value\n      });\n    }, [dispatch]);\n    var toggleRowSelected = React.useCallback(function (id, value) {\n      return dispatch({\n        type: actions.toggleRowSelected,\n        id: id,\n        value: value\n      });\n    }, [dispatch]);\n    var getInstance = useGetLatest(instance);\n    var getToggleAllRowsSelectedProps = makePropGetter(getHooks().getToggleAllRowsSelectedProps, {\n      instance: getInstance()\n    });\n    var getToggleAllPageRowsSelectedProps = makePropGetter(getHooks().getToggleAllPageRowsSelectedProps, {\n      instance: getInstance()\n    });\n    Object.assign(instance, {\n      selectedFlatRows: selectedFlatRows,\n      isAllRowsSelected: isAllRowsSelected,\n      isAllPageRowsSelected: isAllPageRowsSelected,\n      toggleRowSelected: toggleRowSelected,\n      toggleAllRowsSelected: toggleAllRowsSelected,\n      getToggleAllRowsSelectedProps: getToggleAllRowsSelectedProps,\n      getToggleAllPageRowsSelectedProps: getToggleAllPageRowsSelectedProps,\n      toggleAllPageRowsSelected: toggleAllPageRowsSelected\n    });\n  }\n\n  function prepareRow$3(row, _ref6) {\n    var instance = _ref6.instance;\n\n    row.toggleRowSelected = function (set) {\n      return instance.toggleRowSelected(row.id, set);\n    };\n\n    row.getToggleRowSelectedProps = makePropGetter(instance.getHooks().getToggleRowSelectedProps, {\n      instance: instance,\n      row: row\n    });\n  }\n\n  function getRowIsSelected(row, selectedRowIds, getSubRows) {\n    if (selectedRowIds[row.id]) {\n      return true;\n    }\n\n    var subRows = getSubRows(row);\n\n    if (subRows && subRows.length) {\n      var allChildrenSelected = true;\n      var someSelected = false;\n      subRows.forEach(function (subRow) {\n        // Bail out early if we know both of these\n        if (someSelected && !allChildrenSelected) {\n          return;\n        }\n\n        if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n          someSelected = true;\n        } else {\n          allChildrenSelected = false;\n        }\n      });\n      return allChildrenSelected ? true : someSelected ? null : false;\n    }\n\n    return false;\n  }\n\n  var defaultInitialRowStateAccessor = function defaultInitialRowStateAccessor(row) {\n    return {};\n  };\n\n  var defaultInitialCellStateAccessor = function defaultInitialCellStateAccessor(cell) {\n    return {};\n  }; // Actions\n\n\n  actions.setRowState = 'setRowState';\n  actions.setCellState = 'setCellState';\n  actions.resetRowState = 'resetRowState';\n  var useRowState = function useRowState(hooks) {\n    hooks.stateReducers.push(reducer$9);\n    hooks.useInstance.push(useInstance$9);\n    hooks.prepareRow.push(prepareRow$4);\n  };\n  useRowState.pluginName = 'useRowState';\n\n  function reducer$9(state, action, previousState, instance) {\n    var _instance$initialRowS = instance.initialRowStateAccessor,\n        initialRowStateAccessor = _instance$initialRowS === void 0 ? defaultInitialRowStateAccessor : _instance$initialRowS,\n        _instance$initialCell = instance.initialCellStateAccessor,\n        initialCellStateAccessor = _instance$initialCell === void 0 ? defaultInitialCellStateAccessor : _instance$initialCell,\n        rowsById = instance.rowsById;\n\n    if (action.type === actions.init) {\n      return _extends({\n        rowState: {}\n      }, state);\n    }\n\n    if (action.type === actions.resetRowState) {\n      return _extends({}, state, {\n        rowState: instance.initialState.rowState || {}\n      });\n    }\n\n    if (action.type === actions.setRowState) {\n      var _extends2;\n\n      var rowId = action.rowId,\n          value = action.value;\n      var oldRowState = typeof state.rowState[rowId] !== 'undefined' ? state.rowState[rowId] : initialRowStateAccessor(rowsById[rowId]);\n      return _extends({}, state, {\n        rowState: _extends({}, state.rowState, (_extends2 = {}, _extends2[rowId] = functionalUpdate(value, oldRowState), _extends2))\n      });\n    }\n\n    if (action.type === actions.setCellState) {\n      var _oldRowState$cellStat, _rowsById$_rowId, _rowsById$_rowId$cell, _extends3, _extends4;\n\n      var _rowId = action.rowId,\n          columnId = action.columnId,\n          _value = action.value;\n\n      var _oldRowState = typeof state.rowState[_rowId] !== 'undefined' ? state.rowState[_rowId] : initialRowStateAccessor(rowsById[_rowId]);\n\n      var oldCellState = typeof (_oldRowState == null ? void 0 : (_oldRowState$cellStat = _oldRowState.cellState) == null ? void 0 : _oldRowState$cellStat[columnId]) !== 'undefined' ? _oldRowState.cellState[columnId] : initialCellStateAccessor((_rowsById$_rowId = rowsById[_rowId]) == null ? void 0 : (_rowsById$_rowId$cell = _rowsById$_rowId.cells) == null ? void 0 : _rowsById$_rowId$cell.find(function (cell) {\n        return cell.column.id === columnId;\n      }));\n      return _extends({}, state, {\n        rowState: _extends({}, state.rowState, (_extends4 = {}, _extends4[_rowId] = _extends({}, _oldRowState, {\n          cellState: _extends({}, _oldRowState.cellState || {}, (_extends3 = {}, _extends3[columnId] = functionalUpdate(_value, oldCellState), _extends3))\n        }), _extends4))\n      });\n    }\n  }\n\n  function useInstance$9(instance) {\n    var _instance$autoResetRo = instance.autoResetRowState,\n        autoResetRowState = _instance$autoResetRo === void 0 ? true : _instance$autoResetRo,\n        data = instance.data,\n        dispatch = instance.dispatch;\n    var setRowState = React.useCallback(function (rowId, value) {\n      return dispatch({\n        type: actions.setRowState,\n        rowId: rowId,\n        value: value\n      });\n    }, [dispatch]);\n    var setCellState = React.useCallback(function (rowId, columnId, value) {\n      return dispatch({\n        type: actions.setCellState,\n        rowId: rowId,\n        columnId: columnId,\n        value: value\n      });\n    }, [dispatch]);\n    var getAutoResetRowState = useGetLatest(autoResetRowState);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetRowState()) {\n        dispatch({\n          type: actions.resetRowState\n        });\n      }\n    }, [data]);\n    Object.assign(instance, {\n      setRowState: setRowState,\n      setCellState: setCellState\n    });\n  }\n\n  function prepareRow$4(row, _ref) {\n    var instance = _ref.instance;\n    var _instance$initialRowS2 = instance.initialRowStateAccessor,\n        initialRowStateAccessor = _instance$initialRowS2 === void 0 ? defaultInitialRowStateAccessor : _instance$initialRowS2,\n        _instance$initialCell2 = instance.initialCellStateAccessor,\n        initialCellStateAccessor = _instance$initialCell2 === void 0 ? defaultInitialCellStateAccessor : _instance$initialCell2,\n        rowState = instance.state.rowState;\n\n    if (row) {\n      row.state = typeof rowState[row.id] !== 'undefined' ? rowState[row.id] : initialRowStateAccessor(row);\n\n      row.setState = function (updater) {\n        return instance.setRowState(row.id, updater);\n      };\n\n      row.cells.forEach(function (cell) {\n        if (!row.state.cellState) {\n          row.state.cellState = {};\n        }\n\n        cell.state = typeof row.state.cellState[cell.column.id] !== 'undefined' ? row.state.cellState[cell.column.id] : initialCellStateAccessor(cell);\n\n        cell.setState = function (updater) {\n          return instance.setCellState(row.id, cell.column.id, updater);\n        };\n      });\n    }\n  }\n\n  actions.resetColumnOrder = 'resetColumnOrder';\n  actions.setColumnOrder = 'setColumnOrder';\n  var useColumnOrder = function useColumnOrder(hooks) {\n    hooks.stateReducers.push(reducer$a);\n    hooks.visibleColumnsDeps.push(function (deps, _ref) {\n      var instance = _ref.instance;\n      return [].concat(deps, [instance.state.columnOrder]);\n    });\n    hooks.visibleColumns.push(visibleColumns$2);\n    hooks.useInstance.push(useInstance$a);\n  };\n  useColumnOrder.pluginName = 'useColumnOrder';\n\n  function reducer$a(state, action, previousState, instance) {\n    if (action.type === actions.init) {\n      return _extends({\n        columnOrder: []\n      }, state);\n    }\n\n    if (action.type === actions.resetColumnOrder) {\n      return _extends({}, state, {\n        columnOrder: instance.initialState.columnOrder || []\n      });\n    }\n\n    if (action.type === actions.setColumnOrder) {\n      return _extends({}, state, {\n        columnOrder: functionalUpdate(action.columnOrder, state.columnOrder)\n      });\n    }\n  }\n\n  function visibleColumns$2(columns, _ref2) {\n    var columnOrder = _ref2.instance.state.columnOrder;\n\n    // If there is no order, return the normal columns\n    if (!columnOrder || !columnOrder.length) {\n      return columns;\n    }\n\n    var columnOrderCopy = [].concat(columnOrder); // If there is an order, make a copy of the columns\n\n    var columnsCopy = [].concat(columns); // And make a new ordered array of the columns\n\n    var columnsInOrder = []; // Loop over the columns and place them in order into the new array\n\n    var _loop = function _loop() {\n      var targetColumnId = columnOrderCopy.shift();\n      var foundIndex = columnsCopy.findIndex(function (d) {\n        return d.id === targetColumnId;\n      });\n\n      if (foundIndex > -1) {\n        columnsInOrder.push(columnsCopy.splice(foundIndex, 1)[0]);\n      }\n    };\n\n    while (columnsCopy.length && columnOrderCopy.length) {\n      _loop();\n    } // If there are any columns left, add them to the end\n\n\n    return [].concat(columnsInOrder, columnsCopy);\n  }\n\n  function useInstance$a(instance) {\n    var dispatch = instance.dispatch;\n    instance.setColumnOrder = React.useCallback(function (columnOrder) {\n      return dispatch({\n        type: actions.setColumnOrder,\n        columnOrder: columnOrder\n      });\n    }, [dispatch]);\n  }\n\n  defaultColumn.canResize = true; // Actions\n\n  actions.columnStartResizing = 'columnStartResizing';\n  actions.columnResizing = 'columnResizing';\n  actions.columnDoneResizing = 'columnDoneResizing';\n  actions.resetResize = 'resetResize';\n  var useResizeColumns = function useResizeColumns(hooks) {\n    hooks.getResizerProps = [defaultGetResizerProps];\n    hooks.getHeaderProps.push({\n      style: {\n        position: 'relative'\n      }\n    });\n    hooks.stateReducers.push(reducer$b);\n    hooks.useInstance.push(useInstance$b);\n    hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions$1);\n  };\n\n  var defaultGetResizerProps = function defaultGetResizerProps(props, _ref) {\n    var instance = _ref.instance,\n        header = _ref.header;\n    var dispatch = instance.dispatch;\n\n    var onResizeStart = function onResizeStart(e, header) {\n      var isTouchEvent = false;\n\n      if (e.type === 'touchstart') {\n        // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n        if (e.touches && e.touches.length > 1) {\n          return;\n        }\n\n        isTouchEvent = true;\n      }\n\n      var headersToResize = getLeafHeaders(header);\n      var headerIdWidths = headersToResize.map(function (d) {\n        return [d.id, d.totalWidth];\n      });\n      var clientX = isTouchEvent ? Math.round(e.touches[0].clientX) : e.clientX;\n\n      var dispatchMove = function dispatchMove(clientXPos) {\n        dispatch({\n          type: actions.columnResizing,\n          clientX: clientXPos\n        });\n      };\n\n      var dispatchEnd = function dispatchEnd() {\n        return dispatch({\n          type: actions.columnDoneResizing\n        });\n      };\n\n      var handlersAndEvents = {\n        mouse: {\n          moveEvent: 'mousemove',\n          moveHandler: function moveHandler(e) {\n            return dispatchMove(e.clientX);\n          },\n          upEvent: 'mouseup',\n          upHandler: function upHandler(e) {\n            document.removeEventListener('mousemove', handlersAndEvents.mouse.moveHandler);\n            document.removeEventListener('mouseup', handlersAndEvents.mouse.upHandler);\n            dispatchEnd();\n          }\n        },\n        touch: {\n          moveEvent: 'touchmove',\n          moveHandler: function moveHandler(e) {\n            if (e.cancelable) {\n              e.preventDefault();\n              e.stopPropagation();\n            }\n\n            dispatchMove(e.touches[0].clientX);\n            return false;\n          },\n          upEvent: 'touchend',\n          upHandler: function upHandler(e) {\n            document.removeEventListener(handlersAndEvents.touch.moveEvent, handlersAndEvents.touch.moveHandler);\n            document.removeEventListener(handlersAndEvents.touch.upEvent, handlersAndEvents.touch.moveHandler);\n            dispatchEnd();\n          }\n        }\n      };\n      var events = isTouchEvent ? handlersAndEvents.touch : handlersAndEvents.mouse;\n      var passiveIfSupported = passiveEventSupported() ? {\n        passive: false\n      } : false;\n      document.addEventListener(events.moveEvent, events.moveHandler, passiveIfSupported);\n      document.addEventListener(events.upEvent, events.upHandler, passiveIfSupported);\n      dispatch({\n        type: actions.columnStartResizing,\n        columnId: header.id,\n        columnWidth: header.totalWidth,\n        headerIdWidths: headerIdWidths,\n        clientX: clientX\n      });\n    };\n\n    return [props, {\n      onMouseDown: function onMouseDown(e) {\n        return e.persist() || onResizeStart(e, header);\n      },\n      onTouchStart: function onTouchStart(e) {\n        return e.persist() || onResizeStart(e, header);\n      },\n      style: {\n        cursor: 'col-resize'\n      },\n      draggable: false,\n      role: 'separator'\n    }];\n  };\n\n  useResizeColumns.pluginName = 'useResizeColumns';\n\n  function reducer$b(state, action) {\n    if (action.type === actions.init) {\n      return _extends({\n        columnResizing: {\n          columnWidths: {}\n        }\n      }, state);\n    }\n\n    if (action.type === actions.resetResize) {\n      return _extends({}, state, {\n        columnResizing: {\n          columnWidths: {}\n        }\n      });\n    }\n\n    if (action.type === actions.columnStartResizing) {\n      var clientX = action.clientX,\n          columnId = action.columnId,\n          columnWidth = action.columnWidth,\n          headerIdWidths = action.headerIdWidths;\n      return _extends({}, state, {\n        columnResizing: _extends({}, state.columnResizing, {\n          startX: clientX,\n          headerIdWidths: headerIdWidths,\n          columnWidth: columnWidth,\n          isResizingColumn: columnId\n        })\n      });\n    }\n\n    if (action.type === actions.columnResizing) {\n      var _clientX = action.clientX;\n\n      var _state$columnResizing = state.columnResizing,\n          startX = _state$columnResizing.startX,\n          _columnWidth = _state$columnResizing.columnWidth,\n          _state$columnResizing2 = _state$columnResizing.headerIdWidths,\n          _headerIdWidths = _state$columnResizing2 === void 0 ? [] : _state$columnResizing2;\n\n      var deltaX = _clientX - startX;\n      var percentageDeltaX = deltaX / _columnWidth;\n      var newColumnWidths = {};\n\n      _headerIdWidths.forEach(function (_ref2) {\n        var headerId = _ref2[0],\n            headerWidth = _ref2[1];\n        newColumnWidths[headerId] = Math.max(headerWidth + headerWidth * percentageDeltaX, 0);\n      });\n\n      return _extends({}, state, {\n        columnResizing: _extends({}, state.columnResizing, {\n          columnWidths: _extends({}, state.columnResizing.columnWidths, {}, newColumnWidths)\n        })\n      });\n    }\n\n    if (action.type === actions.columnDoneResizing) {\n      return _extends({}, state, {\n        columnResizing: _extends({}, state.columnResizing, {\n          startX: null,\n          isResizingColumn: null\n        })\n      });\n    }\n  }\n\n  var useInstanceBeforeDimensions$1 = function useInstanceBeforeDimensions(instance) {\n    var flatHeaders = instance.flatHeaders,\n        disableResizing = instance.disableResizing,\n        getHooks = instance.getHooks,\n        columnResizing = instance.state.columnResizing;\n    var getInstance = useGetLatest(instance);\n    flatHeaders.forEach(function (header) {\n      var canResize = getFirstDefined(header.disableResizing === true ? false : undefined, disableResizing === true ? false : undefined, true);\n      header.canResize = canResize;\n      header.width = columnResizing.columnWidths[header.id] || header.originalWidth || header.width;\n      header.isResizing = columnResizing.isResizingColumn === header.id;\n\n      if (canResize) {\n        header.getResizerProps = makePropGetter(getHooks().getResizerProps, {\n          instance: getInstance(),\n          header: header\n        });\n      }\n    });\n  };\n\n  function useInstance$b(instance) {\n    var plugins = instance.plugins,\n        dispatch = instance.dispatch,\n        _instance$autoResetRe = instance.autoResetResize,\n        autoResetResize = _instance$autoResetRe === void 0 ? true : _instance$autoResetRe,\n        columns = instance.columns;\n    ensurePluginOrder(plugins, ['useAbsoluteLayout'], 'useResizeColumns');\n    var getAutoResetResize = useGetLatest(autoResetResize);\n    useMountedLayoutEffect(function () {\n      if (getAutoResetResize()) {\n        dispatch({\n          type: actions.resetResize\n        });\n      }\n    }, [columns]);\n    var resetResizing = React.useCallback(function () {\n      return dispatch({\n        type: actions.resetResize\n      });\n    }, [dispatch]);\n    Object.assign(instance, {\n      resetResizing: resetResizing\n    });\n  }\n\n  function getLeafHeaders(header) {\n    var leafHeaders = [];\n\n    var recurseHeader = function recurseHeader(header) {\n      if (header.columns && header.columns.length) {\n        header.columns.map(recurseHeader);\n      }\n\n      leafHeaders.push(header);\n    };\n\n    recurseHeader(header);\n    return leafHeaders;\n  }\n\n  var cellStyles = {\n    position: 'absolute',\n    top: 0\n  };\n  var useAbsoluteLayout = function useAbsoluteLayout(hooks) {\n    hooks.getTableBodyProps.push(getRowStyles);\n    hooks.getRowProps.push(getRowStyles);\n    hooks.getHeaderGroupProps.push(getRowStyles);\n    hooks.getFooterGroupProps.push(getRowStyles);\n    hooks.getHeaderProps.push(function (props, _ref) {\n      var column = _ref.column;\n      return [props, {\n        style: _extends({}, cellStyles, {\n          left: column.totalLeft + \"px\",\n          width: column.totalWidth + \"px\"\n        })\n      }];\n    });\n    hooks.getCellProps.push(function (props, _ref2) {\n      var cell = _ref2.cell;\n      return [props, {\n        style: _extends({}, cellStyles, {\n          left: cell.column.totalLeft + \"px\",\n          width: cell.column.totalWidth + \"px\"\n        })\n      }];\n    });\n    hooks.getFooterProps.push(function (props, _ref3) {\n      var column = _ref3.column;\n      return [props, {\n        style: _extends({}, cellStyles, {\n          left: column.totalLeft + \"px\",\n          width: column.totalWidth + \"px\"\n        })\n      }];\n    });\n  };\n  useAbsoluteLayout.pluginName = 'useAbsoluteLayout';\n\n  var getRowStyles = function getRowStyles(props, _ref4) {\n    var instance = _ref4.instance;\n    return [props, {\n      style: {\n        position: 'relative',\n        width: instance.totalColumnsWidth + \"px\"\n      }\n    }];\n  };\n\n  var cellStyles$1 = {\n    display: 'inline-block',\n    boxSizing: 'border-box'\n  };\n\n  var getRowStyles$1 = function getRowStyles(props, _ref) {\n    var instance = _ref.instance;\n    return [props, {\n      style: {\n        display: 'flex',\n        width: instance.totalColumnsWidth + \"px\"\n      }\n    }];\n  };\n\n  var useBlockLayout = function useBlockLayout(hooks) {\n    hooks.getRowProps.push(getRowStyles$1);\n    hooks.getHeaderGroupProps.push(getRowStyles$1);\n    hooks.getFooterGroupProps.push(getRowStyles$1);\n    hooks.getHeaderProps.push(function (props, _ref2) {\n      var column = _ref2.column;\n      return [props, {\n        style: _extends({}, cellStyles$1, {\n          width: column.totalWidth + \"px\"\n        })\n      }];\n    });\n    hooks.getCellProps.push(function (props, _ref3) {\n      var cell = _ref3.cell;\n      return [props, {\n        style: _extends({}, cellStyles$1, {\n          width: cell.column.totalWidth + \"px\"\n        })\n      }];\n    });\n    hooks.getFooterProps.push(function (props, _ref4) {\n      var column = _ref4.column;\n      return [props, {\n        style: _extends({}, cellStyles$1, {\n          width: column.totalWidth + \"px\"\n        })\n      }];\n    });\n  };\n  useBlockLayout.pluginName = 'useBlockLayout';\n\n  function useFlexLayout(hooks) {\n    hooks.getTableProps.push(getTableProps);\n    hooks.getRowProps.push(getRowStyles$2);\n    hooks.getHeaderGroupProps.push(getRowStyles$2);\n    hooks.getFooterGroupProps.push(getRowStyles$2);\n    hooks.getHeaderProps.push(getHeaderProps);\n    hooks.getCellProps.push(getCellProps);\n    hooks.getFooterProps.push(getFooterProps);\n  }\n  useFlexLayout.pluginName = 'useFlexLayout';\n\n  var getTableProps = function getTableProps(props, _ref) {\n    var instance = _ref.instance;\n    return [props, {\n      style: {\n        minWidth: instance.totalColumnsMinWidth + \"px\"\n      }\n    }];\n  };\n\n  var getRowStyles$2 = function getRowStyles(props, _ref2) {\n    var instance = _ref2.instance;\n    return [props, {\n      style: {\n        display: 'flex',\n        flex: '1 0 auto',\n        minWidth: instance.totalColumnsMinWidth + \"px\"\n      }\n    }];\n  };\n\n  var getHeaderProps = function getHeaderProps(props, _ref3) {\n    var column = _ref3.column;\n    return [props, {\n      style: {\n        boxSizing: 'border-box',\n        flex: column.totalFlexWidth ? column.totalFlexWidth + \" 0 auto\" : undefined,\n        minWidth: column.totalMinWidth + \"px\",\n        width: column.totalWidth + \"px\"\n      }\n    }];\n  };\n\n  var getCellProps = function getCellProps(props, _ref4) {\n    var cell = _ref4.cell;\n    return [props, {\n      style: {\n        boxSizing: 'border-box',\n        flex: cell.column.totalFlexWidth + \" 0 auto\",\n        minWidth: cell.column.totalMinWidth + \"px\",\n        width: cell.column.totalWidth + \"px\"\n      }\n    }];\n  };\n\n  var getFooterProps = function getFooterProps(props, _ref5) {\n    var column = _ref5.column;\n    return [props, {\n      style: {\n        boxSizing: 'border-box',\n        flex: column.totalFlexWidth ? column.totalFlexWidth + \" 0 auto\" : undefined,\n        minWidth: column.totalMinWidth + \"px\",\n        width: column.totalWidth + \"px\"\n      }\n    }];\n  };\n\n  function useGridLayout(hooks) {\n    hooks.stateReducers.push(reducer$c);\n    hooks.getTableProps.push(getTableProps$1);\n    hooks.getHeaderProps.push(getHeaderProps$1);\n  }\n  useGridLayout.pluginName = 'useGridLayout';\n\n  var getTableProps$1 = function getTableProps(props, _ref) {\n    var instance = _ref.instance;\n    return [props, {\n      style: {\n        display: \"grid\",\n        gridTemplateColumns: instance.state.gridLayout.columnWidths.map(function (w) {\n          return w;\n        }).join(\" \")\n      }\n    }];\n  };\n\n  var getHeaderProps$1 = function getHeaderProps(props, _ref2) {\n    var column = _ref2.column;\n    return [props, {\n      id: \"header-cell-\" + column.id,\n      style: {\n        position: \"sticky\" //enables a scroll wrapper to be placed around the table and have sticky headers\n\n      }\n    }];\n  };\n\n  function reducer$c(state, action, previousState, instance) {\n    if (action.type === \"init\") {\n      return _extends({\n        gridLayout: {\n          columnWidths: instance.columns.map(function () {\n            return \"auto\";\n          })\n        }\n      }, state);\n    }\n\n    if (action.type === \"columnStartResizing\") {\n      var columnId = action.columnId;\n      var columnIndex = instance.visibleColumns.findIndex(function (col) {\n        return col.id === columnId;\n      });\n      var elWidth = getElementWidth(columnId);\n\n      if (elWidth !== undefined) {\n        return _extends({}, state, {\n          gridLayout: _extends({}, state.gridLayout, {\n            columnId: columnId,\n            columnIndex: columnIndex,\n            startingWidth: elWidth\n          })\n        });\n      } else {\n        return state;\n      }\n    }\n\n    if (action.type === \"columnResizing\") {\n      var _state$gridLayout = state.gridLayout,\n          _columnIndex = _state$gridLayout.columnIndex,\n          startingWidth = _state$gridLayout.startingWidth,\n          columnWidths = _state$gridLayout.columnWidths;\n      var change = state.columnResizing.startX - action.clientX;\n      var newWidth = startingWidth - change;\n      var columnWidthsCopy = [].concat(columnWidths);\n      columnWidthsCopy[_columnIndex] = newWidth + \"px\";\n      return _extends({}, state, {\n        gridLayout: _extends({}, state.gridLayout, {\n          columnWidths: columnWidthsCopy\n        })\n      });\n    }\n  }\n\n  function getElementWidth(columnId) {\n    var _document$getElementB;\n\n    var width = (_document$getElementB = document.getElementById(\"header-cell-\" + columnId)) == null ? void 0 : _document$getElementB.offsetWidth;\n\n    if (width !== undefined) {\n      return width;\n    }\n  }\n\n  exports._UNSTABLE_usePivotColumns = _UNSTABLE_usePivotColumns;\n  exports.actions = actions;\n  exports.defaultColumn = defaultColumn;\n  exports.defaultGroupByFn = defaultGroupByFn;\n  exports.defaultOrderByFn = defaultOrderByFn;\n  exports.defaultRenderer = defaultRenderer;\n  exports.emptyRenderer = emptyRenderer;\n  exports.ensurePluginOrder = ensurePluginOrder;\n  exports.flexRender = flexRender;\n  exports.functionalUpdate = functionalUpdate;\n  exports.loopHooks = loopHooks;\n  exports.makePropGetter = makePropGetter;\n  exports.makeRenderer = makeRenderer;\n  exports.reduceHooks = reduceHooks;\n  exports.safeUseLayoutEffect = safeUseLayoutEffect;\n  exports.useAbsoluteLayout = useAbsoluteLayout;\n  exports.useAsyncDebounce = useAsyncDebounce;\n  exports.useBlockLayout = useBlockLayout;\n  exports.useColumnOrder = useColumnOrder;\n  exports.useExpanded = useExpanded;\n  exports.useFilters = useFilters;\n  exports.useFlexLayout = useFlexLayout;\n  exports.useGetLatest = useGetLatest;\n  exports.useGlobalFilter = useGlobalFilter;\n  exports.useGridLayout = useGridLayout;\n  exports.useGroupBy = useGroupBy;\n  exports.useMountedLayoutEffect = useMountedLayoutEffect;\n  exports.usePagination = usePagination;\n  exports.useResizeColumns = useResizeColumns;\n  exports.useRowSelect = useRowSelect;\n  exports.useRowState = useRowState;\n  exports.useSortBy = useSortBy;\n  exports.useTable = useTable;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=react-table.development.js.map\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-table/dist/react-table.development.js?");

/***/ }),

/***/ "./node_modules/react-table/index.js":
/*!*******************************************!*\
  !*** ./node_modules/react-table/index.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("if (false) {} else {\n  module.exports = __webpack_require__(/*! ./dist/react-table.development.js */ \"./node_modules/react-table/dist/react-table.development.js\")\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-table/index.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/CSSTransition.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/CSSTransition.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var dom_helpers_addClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! dom-helpers/addClass */ \"./node_modules/dom-helpers/esm/addClass.js\");\n/* harmony import */ var dom_helpers_removeClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dom-helpers/removeClass */ \"./node_modules/dom-helpers/esm/removeClass.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _Transition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Transition */ \"./node_modules/react-transition-group/esm/Transition.js\");\n/* harmony import */ var _utils_PropTypes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-transition-group/esm/utils/PropTypes.js\");\n\n\n\n\n\n\n\n\n\n\nvar _addClass = function addClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return Object(dom_helpers_addClass__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(node, c);\n  });\n};\n\nvar removeClass = function removeClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return Object(dom_helpers_removeClass__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(node, c);\n  });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n *         <div>\n *           {\"I'll receive my-node-* classes\"}\n *         </div>\n *       </CSSTransition>\n *       <button type=\"button\" onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n *   opacity: 0;\n * }\n * .my-node-enter-active {\n *   opacity: 1;\n *   transition: opacity 200ms;\n * }\n * .my-node-exit {\n *   opacity: 1;\n * }\n * .my-node-exit-active {\n *   opacity: 0;\n *   transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(CSSTransition, _React$Component);\n\n  function CSSTransition() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n    _this.appliedClasses = {\n      appear: {},\n      enter: {},\n      exit: {}\n    };\n\n    _this.onEnter = function (maybeNode, maybeAppearing) {\n      var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n          node = _this$resolveArgument[0],\n          appearing = _this$resolveArgument[1];\n\n      _this.removeClasses(node, 'exit');\n\n      _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(maybeNode, maybeAppearing);\n      }\n    };\n\n    _this.onEntering = function (maybeNode, maybeAppearing) {\n      var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n          node = _this$resolveArgument2[0],\n          appearing = _this$resolveArgument2[1];\n\n      var type = appearing ? 'appear' : 'enter';\n\n      _this.addClass(node, type, 'active');\n\n      if (_this.props.onEntering) {\n        _this.props.onEntering(maybeNode, maybeAppearing);\n      }\n    };\n\n    _this.onEntered = function (maybeNode, maybeAppearing) {\n      var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n          node = _this$resolveArgument3[0],\n          appearing = _this$resolveArgument3[1];\n\n      var type = appearing ? 'appear' : 'enter';\n\n      _this.removeClasses(node, type);\n\n      _this.addClass(node, type, 'done');\n\n      if (_this.props.onEntered) {\n        _this.props.onEntered(maybeNode, maybeAppearing);\n      }\n    };\n\n    _this.onExit = function (maybeNode) {\n      var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n          node = _this$resolveArgument4[0];\n\n      _this.removeClasses(node, 'appear');\n\n      _this.removeClasses(node, 'enter');\n\n      _this.addClass(node, 'exit', 'base');\n\n      if (_this.props.onExit) {\n        _this.props.onExit(maybeNode);\n      }\n    };\n\n    _this.onExiting = function (maybeNode) {\n      var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n          node = _this$resolveArgument5[0];\n\n      _this.addClass(node, 'exit', 'active');\n\n      if (_this.props.onExiting) {\n        _this.props.onExiting(maybeNode);\n      }\n    };\n\n    _this.onExited = function (maybeNode) {\n      var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n          node = _this$resolveArgument6[0];\n\n      _this.removeClasses(node, 'exit');\n\n      _this.addClass(node, 'exit', 'done');\n\n      if (_this.props.onExited) {\n        _this.props.onExited(maybeNode);\n      }\n    };\n\n    _this.resolveArguments = function (maybeNode, maybeAppearing) {\n      return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n      : [maybeNode, maybeAppearing];\n    };\n\n    _this.getClassNames = function (type) {\n      var classNames = _this.props.classNames;\n      var isStringClassNames = typeof classNames === 'string';\n      var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n      var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n      var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n      var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n      return {\n        baseClassName: baseClassName,\n        activeClassName: activeClassName,\n        doneClassName: doneClassName\n      };\n    };\n\n    return _this;\n  }\n\n  var _proto = CSSTransition.prototype;\n\n  _proto.addClass = function addClass(node, type, phase) {\n    var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n    var _this$getClassNames = this.getClassNames('enter'),\n        doneClassName = _this$getClassNames.doneClassName;\n\n    if (type === 'appear' && phase === 'done' && doneClassName) {\n      className += \" \" + doneClassName;\n    } // This is for to force a repaint,\n    // which is necessary in order to transition styles when adding a class name.\n\n\n    if (phase === 'active') {\n      /* eslint-disable no-unused-expressions */\n      node && node.scrollTop;\n    }\n\n    if (className) {\n      this.appliedClasses[type][phase] = className;\n\n      _addClass(node, className);\n    }\n  };\n\n  _proto.removeClasses = function removeClasses(node, type) {\n    var _this$appliedClasses$ = this.appliedClasses[type],\n        baseClassName = _this$appliedClasses$.base,\n        activeClassName = _this$appliedClasses$.active,\n        doneClassName = _this$appliedClasses$.done;\n    this.appliedClasses[type] = {};\n\n    if (baseClassName) {\n      removeClass(node, baseClassName);\n    }\n\n    if (activeClassName) {\n      removeClass(node, activeClassName);\n    }\n\n    if (doneClassName) {\n      removeClass(node, doneClassName);\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        _ = _this$props.classNames,\n        props = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_this$props, [\"classNames\"]);\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(_Transition__WEBPACK_IMPORTED_MODULE_7__[\"default\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n      onEnter: this.onEnter,\n      onEntered: this.onEntered,\n      onEntering: this.onEntering,\n      onExit: this.onExit,\n      onExiting: this.onExiting,\n      onExited: this.onExited\n    }));\n  };\n\n  return CSSTransition;\n}(react__WEBPACK_IMPORTED_MODULE_6___default.a.Component);\n\nCSSTransition.defaultProps = {\n  classNames: ''\n};\nCSSTransition.propTypes =  true ? Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, _Transition__WEBPACK_IMPORTED_MODULE_7__[\"default\"].propTypes, {\n  /**\n   * The animation classNames applied to the component as it appears, enters,\n   * exits or has finished the transition. A single name can be provided, which\n   * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n   *\n   * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n   * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n   * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n   *\n   * A few details to note about how these classes are applied:\n   *\n   * 1. They are _joined_ with the ones that are already defined on the child\n   *    component, so if you want to add some base styles, you can use\n   *    `className` without worrying that it will be overridden.\n   *\n   * 2. If the transition component mounts with `in={false}`, no classes are\n   *    applied yet. You might be expecting `*-exit-done`, but if you think\n   *    about it, a component cannot finish exiting if it hasn't entered yet.\n   *\n   * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n   *    allows you to define different behavior for when appearing is done and\n   *    when regular entering is done, using selectors like\n   *    `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n   *    an epic entrance animation when element first appears in the DOM using\n   *    [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n   *    simply use `fade-enter-done` for defining both cases.\n   *\n   * Each individual classNames can also be specified independently like:\n   *\n   * ```js\n   * classNames={{\n   *  appear: 'my-appear',\n   *  appearActive: 'my-active-appear',\n   *  appearDone: 'my-done-appear',\n   *  enter: 'my-enter',\n   *  enterActive: 'my-active-enter',\n   *  enterDone: 'my-done-enter',\n   *  exit: 'my-exit',\n   *  exitActive: 'my-active-exit',\n   *  exitDone: 'my-done-exit',\n   * }}\n   * ```\n   *\n   * If you want to set these classes using CSS Modules:\n   *\n   * ```js\n   * import styles from './styles.css';\n   * ```\n   *\n   * you might want to use camelCase in your CSS file, that way could simply\n   * spread them instead of listing them one by one:\n   *\n   * ```js\n   * classNames={{ ...styles }}\n   * ```\n   *\n   * @type {string | {\n   *  appear?: string,\n   *  appearActive?: string,\n   *  appearDone?: string,\n   *  enter?: string,\n   *  enterActive?: string,\n   *  enterDone?: string,\n   *  exit?: string,\n   *  exitActive?: string,\n   *  exitDone?: string,\n   * }}\n   */\n  classNames: _utils_PropTypes__WEBPACK_IMPORTED_MODULE_8__[\"classNamesShape\"],\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n   * applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter-active' or\n   * 'appear-active' class is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or\n   * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' class is\n   * applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' classes\n   * are **removed** and the `exit-done` class is added to the DOM node.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func\n}) : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (CSSTransition);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/CSSTransition.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/ReplaceTransition.js":
/*!**********************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/ReplaceTransition.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _TransitionGroup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TransitionGroup */ \"./node_modules/react-transition-group/esm/TransitionGroup.js\");\n\n\n\n\n\n\n/**\n * The `<ReplaceTransition>` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * <ReplaceTransition in>\n *   <Fade><div>I appear first</div></Fade>\n *   <Fade><div>I replace the above</div></Fade>\n * </ReplaceTransition>\n * ```\n */\n\nvar ReplaceTransition = /*#__PURE__*/function (_React$Component) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(ReplaceTransition, _React$Component);\n\n  function ReplaceTransition() {\n    var _this;\n\n    for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n      _args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n    _this.handleEnter = function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return _this.handleLifecycle('onEnter', 0, args);\n    };\n\n    _this.handleEntering = function () {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      return _this.handleLifecycle('onEntering', 0, args);\n    };\n\n    _this.handleEntered = function () {\n      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n        args[_key4] = arguments[_key4];\n      }\n\n      return _this.handleLifecycle('onEntered', 0, args);\n    };\n\n    _this.handleExit = function () {\n      for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n        args[_key5] = arguments[_key5];\n      }\n\n      return _this.handleLifecycle('onExit', 1, args);\n    };\n\n    _this.handleExiting = function () {\n      for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n        args[_key6] = arguments[_key6];\n      }\n\n      return _this.handleLifecycle('onExiting', 1, args);\n    };\n\n    _this.handleExited = function () {\n      for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n        args[_key7] = arguments[_key7];\n      }\n\n      return _this.handleLifecycle('onExited', 1, args);\n    };\n\n    return _this;\n  }\n\n  var _proto = ReplaceTransition.prototype;\n\n  _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n    var _child$props;\n\n    var children = this.props.children;\n    var child = react__WEBPACK_IMPORTED_MODULE_3___default.a.Children.toArray(children)[idx];\n    if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n\n    if (this.props[handler]) {\n      var maybeNode = child.props.nodeRef ? undefined : react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.findDOMNode(this);\n      this.props[handler](maybeNode);\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        children = _this$props.children,\n        inProp = _this$props.in,\n        props = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_this$props, [\"children\", \"in\"]);\n\n    var _React$Children$toArr = react__WEBPACK_IMPORTED_MODULE_3___default.a.Children.toArray(children),\n        first = _React$Children$toArr[0],\n        second = _React$Children$toArr[1];\n\n    delete props.onEnter;\n    delete props.onEntering;\n    delete props.onEntered;\n    delete props.onExit;\n    delete props.onExiting;\n    delete props.onExited;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_TransitionGroup__WEBPACK_IMPORTED_MODULE_5__[\"default\"], props, inProp ? react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(first, {\n      key: 'first',\n      onEnter: this.handleEnter,\n      onEntering: this.handleEntering,\n      onEntered: this.handleEntered\n    }) : react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(second, {\n      key: 'second',\n      onEnter: this.handleExit,\n      onEntering: this.handleExiting,\n      onEntered: this.handleExited\n    }));\n  };\n\n  return ReplaceTransition;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\nReplaceTransition.propTypes =  true ? {\n  in: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n  children: function children(props, propName) {\n    if (react__WEBPACK_IMPORTED_MODULE_3___default.a.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n    return null;\n  }\n} : undefined;\n/* harmony default export */ __webpack_exports__[\"default\"] = (ReplaceTransition);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/ReplaceTransition.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/SwitchTransition.js":
/*!*********************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/SwitchTransition.js ***!
  \*********************************************************************/
/*! exports provided: modes, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modes\", function() { return modes; });\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Transition__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Transition */ \"./node_modules/react-transition-group/esm/Transition.js\");\n/* harmony import */ var _TransitionGroupContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TransitionGroupContext */ \"./node_modules/react-transition-group/esm/TransitionGroupContext.js\");\n\n\nvar _leaveRenders, _enterRenders;\n\n\n\n\n\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n  if (oldChildren === newChildren) return false;\n\n  if (react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(oldChildren) && react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nvar modes = {\n  out: 'out-in',\n  in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n  return function () {\n    var _element$props;\n\n    element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n    cb();\n  };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n  var current = _ref.current,\n      changeState = _ref.changeState;\n  return react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(current, {\n    in: false,\n    onExited: callHook(current, 'onExited', function () {\n      changeState(_Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERING\"], null);\n    })\n  });\n}, _leaveRenders[modes.in] = function (_ref2) {\n  var current = _ref2.current,\n      changeState = _ref2.changeState,\n      children = _ref2.children;\n  return [current, react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(children, {\n    in: true,\n    onEntered: callHook(children, 'onEntered', function () {\n      changeState(_Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERING\"]);\n    })\n  })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n  var children = _ref3.children,\n      changeState = _ref3.changeState;\n  return react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(children, {\n    in: true,\n    onEntered: callHook(children, 'onEntered', function () {\n      changeState(_Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERED\"], react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(children, {\n        in: true\n      }));\n    })\n  });\n}, _enterRenders[modes.in] = function (_ref4) {\n  var current = _ref4.current,\n      children = _ref4.children,\n      changeState = _ref4.changeState;\n  return [react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(current, {\n    in: false,\n    onExited: callHook(current, 'onExited', function () {\n      changeState(_Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERED\"], react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(children, {\n        in: true\n      }));\n    })\n  }), react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(children, {\n    in: true\n  })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n *  const [state, setState] = useState(false);\n *  return (\n *    <SwitchTransition>\n *      <CSSTransition\n *        key={state ? \"Goodbye, world!\" : \"Hello, world!\"}\n *        addEndListener={(node, done) => node.addEventListener(\"transitionend\", done, false)}\n *        classNames='fade'\n *      >\n *        <button onClick={() => setState(state => !state)}>\n *          {state ? \"Goodbye, world!\" : \"Hello, world!\"}\n *        </button>\n *      </CSSTransition>\n *    </SwitchTransition>\n *  );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n *    opacity: 0;\n * }\n * .fade-exit{\n *    opacity: 1;\n * }\n * .fade-enter-active{\n *    opacity: 1;\n * }\n * .fade-exit-active{\n *    opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n *    transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(SwitchTransition, _React$Component);\n\n  function SwitchTransition() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n    _this.state = {\n      status: _Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERED\"],\n      current: null\n    };\n    _this.appeared = false;\n\n    _this.changeState = function (status, current) {\n      if (current === void 0) {\n        current = _this.state.current;\n      }\n\n      _this.setState({\n        status: status,\n        current: current\n      });\n    };\n\n    return _this;\n  }\n\n  var _proto = SwitchTransition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.appeared = true;\n  };\n\n  SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n    if (props.children == null) {\n      return {\n        current: null\n      };\n    }\n\n    if (state.status === _Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERING\"] && props.mode === modes.in) {\n      return {\n        status: _Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERING\"]\n      };\n    }\n\n    if (state.current && areChildrenDifferent(state.current, props.children)) {\n      return {\n        status: _Transition__WEBPACK_IMPORTED_MODULE_3__[\"EXITING\"]\n      };\n    }\n\n    return {\n      current: react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(props.children, {\n        in: true\n      })\n    };\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        children = _this$props.children,\n        mode = _this$props.mode,\n        _this$state = this.state,\n        status = _this$state.status,\n        current = _this$state.current;\n    var data = {\n      children: children,\n      current: current,\n      changeState: this.changeState,\n      status: status\n    };\n    var component;\n\n    switch (status) {\n      case _Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERING\"]:\n        component = enterRenders[mode](data);\n        break;\n\n      case _Transition__WEBPACK_IMPORTED_MODULE_3__[\"EXITING\"]:\n        component = leaveRenders[mode](data);\n        break;\n\n      case _Transition__WEBPACK_IMPORTED_MODULE_3__[\"ENTERED\"]:\n        component = current;\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_TransitionGroupContext__WEBPACK_IMPORTED_MODULE_4__[\"default\"].Provider, {\n      value: {\n        isMounting: !this.appeared\n      }\n    }, component);\n  };\n\n  return SwitchTransition;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\nSwitchTransition.propTypes =  true ? {\n  /**\n   * Transition modes.\n   * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n   * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n   *\n   * @type {'out-in'|'in-out'}\n   */\n  mode: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([modes.in, modes.out]),\n\n  /**\n   * Any `Transition` or `CSSTransition` component.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.element.isRequired])\n} : undefined;\nSwitchTransition.defaultProps = {\n  mode: modes.out\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (SwitchTransition);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/SwitchTransition.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/Transition.js":
/*!***************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/Transition.js ***!
  \***************************************************************/
/*! exports provided: UNMOUNTED, EXITED, ENTERING, ENTERED, EXITING, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNMOUNTED\", function() { return UNMOUNTED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXITED\", function() { return EXITED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ENTERING\", function() { return ENTERING; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ENTERED\", function() { return ENTERED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EXITING\", function() { return EXITING; });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"./node_modules/react-transition-group/esm/config.js\");\n/* harmony import */ var _utils_PropTypes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/PropTypes */ \"./node_modules/react-transition-group/esm/utils/PropTypes.js\");\n/* harmony import */ var _TransitionGroupContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./TransitionGroupContext */ \"./node_modules/react-transition-group/esm/TransitionGroupContext.js\");\n\n\n\n\n\n\n\n\nvar UNMOUNTED = 'unmounted';\nvar EXITED = 'exited';\nvar ENTERING = 'entering';\nvar ENTERED = 'entered';\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  } // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n  ;\n\n  var _proto = Transition.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      if (nextStatus === ENTERING) {\n        this.performEnter(mounting);\n      } else {\n        this.performExit();\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n\n    var _ref2 = this.props.nodeRef ? [appearing] : [react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.findDOMNode(this), appearing],\n        maybeNode = _ref2[0],\n        maybeAppearing = _ref2[1];\n\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || _config__WEBPACK_IMPORTED_MODULE_5__[\"default\"].disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onEnter(maybeNode, maybeAppearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(maybeNode, maybeAppearing);\n\n      _this2.onTransitionEnd(enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(maybeNode, maybeAppearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit() {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts();\n    var maybeNode = this.props.nodeRef ? undefined : react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.findDOMNode(this); // no exit animation skip right to EXITED\n\n    if (!exit || _config__WEBPACK_IMPORTED_MODULE_5__[\"default\"].disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(maybeNode);\n      });\n      return;\n    }\n\n    this.props.onExit(maybeNode);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(maybeNode);\n\n      _this3.onTransitionEnd(timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(maybeNode);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n    this.setNextCallback(handler);\n    var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom__WEBPACK_IMPORTED_MODULE_4___default.a.findDOMNode(this);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n          maybeNode = _ref3[0],\n          maybeNextCallback = _ref3[1];\n\n      this.props.addEndListener(maybeNode, maybeNextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        _in = _this$props.in,\n        _mountOnEnter = _this$props.mountOnEnter,\n        _unmountOnExit = _this$props.unmountOnExit,\n        _appear = _this$props.appear,\n        _enter = _this$props.enter,\n        _exit = _this$props.exit,\n        _timeout = _this$props.timeout,\n        _addEndListener = _this$props.addEndListener,\n        _onEnter = _this$props.onEnter,\n        _onEntering = _this$props.onEntering,\n        _onEntered = _this$props.onEntered,\n        _onExit = _this$props.onExit,\n        _onExiting = _this$props.onExiting,\n        _onExited = _this$props.onExited,\n        _nodeRef = _this$props.nodeRef,\n        childProps = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n    return (\n      /*#__PURE__*/\n      // allows for nested Transitions\n      react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_TransitionGroupContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Provider, {\n        value: null\n      }, typeof children === 'function' ? children(status, childProps) : react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(react__WEBPACK_IMPORTED_MODULE_3___default.a.Children.only(children), childProps))\n    );\n  };\n\n  return Transition;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\nTransition.contextType = _TransitionGroupContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nTransition.propTypes =  true ? {\n  /**\n   * A React reference to DOM element that need to transition:\n   * https://stackoverflow.com/a/51127130/4671932\n   *\n   *   - When `nodeRef` prop is used, `node` is not passed to callback functions\n   *      (e.g. `onEnter`) because user already has direct access to the node.\n   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n   *     `nodeRef` need to be provided to `Transition` with changed `key` prop\n   *     (see\n   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n   */\n  nodeRef: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.shape({\n    current: typeof Element === 'undefined' ? prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.any : prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.instanceOf(Element)\n  }),\n\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * By default the child component does not perform the enter transition when\n   * it first mounts, regardless of the value of `in`. If you want this\n   * behavior, set both `appear` and `in` to `true`.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_6__[\"timeoutsShape\"];\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. Timeouts are still used as a fallback if provided.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func\n} : undefined; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Transition);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/Transition.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/TransitionGroup.js":
/*!********************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/TransitionGroup.js ***!
  \********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _TransitionGroupContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./TransitionGroupContext */ \"./node_modules/react-transition-group/esm/TransitionGroupContext.js\");\n/* harmony import */ var _utils_ChildMapping__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/ChildMapping */ \"./node_modules/react-transition-group/esm/utils/ChildMapping.js\");\n\n\n\n\n\n\n\n\n\nvar values = Object.values || function (obj) {\n  return Object.keys(obj).map(function (k) {\n    return obj[k];\n  });\n};\n\nvar defaultProps = {\n  component: 'div',\n  childFactory: function childFactory(child) {\n    return child;\n  }\n};\n/**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>`  does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n  Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(TransitionGroup, _React$Component);\n\n  function TransitionGroup(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n\n    var handleExited = _this.handleExited.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_this)); // Initial children should all be entering, dependent on appear\n\n\n    _this.state = {\n      contextValue: {\n        isMounting: true\n      },\n      handleExited: handleExited,\n      firstRender: true\n    };\n    return _this;\n  }\n\n  var _proto = TransitionGroup.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.mounted = true;\n    this.setState({\n      contextValue: {\n        isMounting: false\n      }\n    });\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.mounted = false;\n  };\n\n  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n    var prevChildMapping = _ref.children,\n        handleExited = _ref.handleExited,\n        firstRender = _ref.firstRender;\n    return {\n      children: firstRender ? Object(_utils_ChildMapping__WEBPACK_IMPORTED_MODULE_7__[\"getInitialChildMapping\"])(nextProps, handleExited) : Object(_utils_ChildMapping__WEBPACK_IMPORTED_MODULE_7__[\"getNextChildMapping\"])(nextProps, prevChildMapping, handleExited),\n      firstRender: false\n    };\n  } // node is `undefined` when user provided `nodeRef` prop\n  ;\n\n  _proto.handleExited = function handleExited(child, node) {\n    var currentChildMapping = Object(_utils_ChildMapping__WEBPACK_IMPORTED_MODULE_7__[\"getChildMapping\"])(this.props.children);\n    if (child.key in currentChildMapping) return;\n\n    if (child.props.onExited) {\n      child.props.onExited(node);\n    }\n\n    if (this.mounted) {\n      this.setState(function (state) {\n        var children = Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, state.children);\n\n        delete children[child.key];\n        return {\n          children: children\n        };\n      });\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        Component = _this$props.component,\n        childFactory = _this$props.childFactory,\n        props = Object(_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_this$props, [\"component\", \"childFactory\"]);\n\n    var contextValue = this.state.contextValue;\n    var children = values(this.state.children).map(childFactory);\n    delete props.appear;\n    delete props.enter;\n    delete props.exit;\n\n    if (Component === null) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_TransitionGroupContext__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n        value: contextValue\n      }, children);\n    }\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_TransitionGroupContext__WEBPACK_IMPORTED_MODULE_6__[\"default\"].Provider, {\n      value: contextValue\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(Component, props, children));\n  };\n\n  return TransitionGroup;\n}(react__WEBPACK_IMPORTED_MODULE_5___default.a.Component);\n\nTransitionGroup.propTypes =  true ? {\n  /**\n   * `<TransitionGroup>` renders a `<div>` by default. You can change this\n   * behavior by providing a `component` prop.\n   * If you use React v16+ and would like to avoid a wrapping `<div>` element\n   * you can pass in `component={null}`. This is useful if the wrapping div\n   * borks your css styles.\n   */\n  component: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.any,\n\n  /**\n   * A set of `<Transition>` components, that are toggled `in` and out as they\n   * leave. the `<TransitionGroup>` will inject specific transition props, so\n   * remember to spread them through if you are wrapping the `<Transition>` as\n   * with our `<Fade>` example.\n   *\n   * While this component is meant for multiple `Transition` or `CSSTransition`\n   * children, sometimes you may want to have a single transition child with\n   * content that you want to be transitioned out and in when you change it\n   * (e.g. routes, images etc.) In that case you can change the `key` prop of\n   * the transition child as you change its content, this will cause\n   * `TransitionGroup` to transition the child out and back in.\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.node,\n\n  /**\n   * A convenience prop that enables or disables appear animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  appear: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * A convenience prop that enables or disables enter animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  enter: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * A convenience prop that enables or disables exit animations\n   * for all children. Note that specifying this will override any defaults set\n   * on individual children Transitions.\n   */\n  exit: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n  /**\n   * You may need to apply reactive updates to a child as it is exiting.\n   * This is generally done by using `cloneElement` however in the case of an exiting\n   * child the element has already been removed and not accessible to the consumer.\n   *\n   * If you do need to update a child as it leaves you can provide a `childFactory`\n   * to wrap every child, even the ones that are leaving.\n   *\n   * @type Function(child: ReactElement) -> ReactElement\n   */\n  childFactory: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func\n} : undefined;\nTransitionGroup.defaultProps = defaultProps;\n/* harmony default export */ __webpack_exports__[\"default\"] = (TransitionGroup);\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/TransitionGroup.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/TransitionGroupContext.js":
/*!***************************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/TransitionGroupContext.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext(null));\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/TransitionGroupContext.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/config.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-transition-group/esm/config.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n  disabled: false\n});\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/config.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/react-transition-group/esm/index.js ***!
  \**********************************************************/
/*! exports provided: CSSTransition, ReplaceTransition, SwitchTransition, TransitionGroup, Transition, config */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _CSSTransition__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CSSTransition */ \"./node_modules/react-transition-group/esm/CSSTransition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CSSTransition\", function() { return _CSSTransition__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _ReplaceTransition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ReplaceTransition */ \"./node_modules/react-transition-group/esm/ReplaceTransition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ReplaceTransition\", function() { return _ReplaceTransition__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _SwitchTransition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SwitchTransition */ \"./node_modules/react-transition-group/esm/SwitchTransition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SwitchTransition\", function() { return _SwitchTransition__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _TransitionGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TransitionGroup */ \"./node_modules/react-transition-group/esm/TransitionGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TransitionGroup\", function() { return _TransitionGroup__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony import */ var _Transition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Transition */ \"./node_modules/react-transition-group/esm/Transition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Transition\", function() { return _Transition__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"./node_modules/react-transition-group/esm/config.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return _config__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/index.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/utils/ChildMapping.js":
/*!***********************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/utils/ChildMapping.js ***!
  \***********************************************************************/
/*! exports provided: getChildMapping, mergeChildMappings, getInitialChildMapping, getNextChildMapping */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getChildMapping\", function() { return getChildMapping; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeChildMappings\", function() { return mergeChildMappings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getInitialChildMapping\", function() { return getInitialChildMapping; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getNextChildMapping\", function() { return getNextChildMapping; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nfunction getChildMapping(children, mapFn) {\n  var mapper = function mapper(child) {\n    return mapFn && Object(react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"])(child) ? mapFn(child) : child;\n  };\n\n  var result = Object.create(null);\n  if (children) react__WEBPACK_IMPORTED_MODULE_0__[\"Children\"].map(children, function (c) {\n    return c;\n  }).forEach(function (child) {\n    // run the map function here instead so that the key is the computed one\n    result[child.key] = mapper(child);\n  });\n  return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nfunction mergeChildMappings(prev, next) {\n  prev = prev || {};\n  next = next || {};\n\n  function getValueForKey(key) {\n    return key in next ? next[key] : prev[key];\n  } // For each key of `next`, the list of keys to insert before that key in\n  // the combined list\n\n\n  var nextKeysPending = Object.create(null);\n  var pendingKeys = [];\n\n  for (var prevKey in prev) {\n    if (prevKey in next) {\n      if (pendingKeys.length) {\n        nextKeysPending[prevKey] = pendingKeys;\n        pendingKeys = [];\n      }\n    } else {\n      pendingKeys.push(prevKey);\n    }\n  }\n\n  var i;\n  var childMapping = {};\n\n  for (var nextKey in next) {\n    if (nextKeysPending[nextKey]) {\n      for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n        var pendingNextKey = nextKeysPending[nextKey][i];\n        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n      }\n    }\n\n    childMapping[nextKey] = getValueForKey(nextKey);\n  } // Finally, add the keys which didn't appear before any key in `next`\n\n\n  for (i = 0; i < pendingKeys.length; i++) {\n    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n  }\n\n  return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n  return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n  return getChildMapping(props.children, function (child) {\n    return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"])(child, {\n      onExited: onExited.bind(null, child),\n      in: true,\n      appear: getProp(child, 'appear', props),\n      enter: getProp(child, 'enter', props),\n      exit: getProp(child, 'exit', props)\n    });\n  });\n}\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n  var nextChildMapping = getChildMapping(nextProps.children);\n  var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n  Object.keys(children).forEach(function (key) {\n    var child = children[key];\n    if (!Object(react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"])(child)) return;\n    var hasPrev = (key in prevChildMapping);\n    var hasNext = (key in nextChildMapping);\n    var prevChild = prevChildMapping[key];\n    var isLeaving = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"])(prevChild) && !prevChild.props.in; // item is new (entering)\n\n    if (hasNext && (!hasPrev || isLeaving)) {\n      // console.log('entering', key)\n      children[key] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"])(child, {\n        onExited: onExited.bind(null, child),\n        in: true,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    } else if (!hasNext && hasPrev && !isLeaving) {\n      // item is old (exiting)\n      // console.log('leaving', key)\n      children[key] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"])(child, {\n        in: false\n      });\n    } else if (hasNext && hasPrev && Object(react__WEBPACK_IMPORTED_MODULE_0__[\"isValidElement\"])(prevChild)) {\n      // item hasn't changed transition states\n      // copy over the last transition props;\n      // console.log('unchanged', key)\n      children[key] = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"cloneElement\"])(child, {\n        onExited: onExited.bind(null, child),\n        in: prevChild.props.in,\n        exit: getProp(child, 'exit', nextProps),\n        enter: getProp(child, 'enter', nextProps)\n      });\n    }\n  });\n  return children;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/utils/ChildMapping.js?");

/***/ }),

/***/ "./node_modules/react-transition-group/esm/utils/PropTypes.js":
/*!********************************************************************!*\
  !*** ./node_modules/react-transition-group/esm/utils/PropTypes.js ***!
  \********************************************************************/
/*! exports provided: timeoutsShape, classNamesShape */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeoutsShape\", function() { return timeoutsShape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"classNamesShape\", function() { return classNamesShape; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n\nvar timeoutsShape =  true ? prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n  enter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n  exit: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n  appear: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number\n}).isRequired]) : undefined;\nvar classNamesShape =  true ? prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n  enter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  exit: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  active: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string\n}), prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n  enter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  enterDone: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  enterActive: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  exit: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  exitDone: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  exitActive: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string\n})]) : undefined;\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-transition-group/esm/utils/PropTypes.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/Vega.js":
/*!*********************************************!*\
  !*** ./node_modules/react-vega/esm/Vega.js ***!
  \*********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return Vega; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_shallowEqual__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/shallowEqual */ \"./node_modules/react-vega/esm/utils/shallowEqual.js\");\n/* harmony import */ var _utils_updateMultipleDatasetsInView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/updateMultipleDatasetsInView */ \"./node_modules/react-vega/esm/utils/updateMultipleDatasetsInView.js\");\n/* harmony import */ var _VegaEmbed__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VegaEmbed */ \"./node_modules/react-vega/esm/VegaEmbed.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ \"./node_modules/react-vega/esm/constants.js\");\n\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\nconst EMPTY = {};\nclass Vega extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent {\n  constructor(...args) {\n    super(...args);\n\n    _defineProperty(this, \"vegaEmbed\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef());\n\n    _defineProperty(this, \"handleNewView\", view => {\n      this.update();\n      const {\n        onNewView = _constants__WEBPACK_IMPORTED_MODULE_5__[\"NOOP\"]\n      } = this.props;\n      onNewView(view);\n    });\n  }\n\n  componentDidMount() {\n    this.update();\n  }\n\n  componentDidUpdate(prevProps) {\n    if (!Object(_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this.props.data, prevProps.data)) {\n      this.update();\n    }\n  }\n\n  update() {\n    const {\n      data\n    } = this.props;\n\n    if (this.vegaEmbed.current && data && Object.keys(data).length > 0) {\n      this.vegaEmbed.current.modifyView(view => {\n        Object(_utils_updateMultipleDatasetsInView__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(view, data);\n        view.resize().run();\n      });\n    }\n  }\n\n  render() {\n    const {\n      data,\n      ...restProps\n    } = this.props;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_VegaEmbed__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({\n      ref: this.vegaEmbed\n    }, restProps, {\n      onNewView: this.handleNewView\n    }));\n  }\n\n}\n\n_defineProperty(Vega, \"defaultProps\", {\n  data: EMPTY\n});\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/Vega.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/VegaEmbed.js":
/*!**************************************************!*\
  !*** ./node_modules/react-vega/esm/VegaEmbed.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VegaEmbed; });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var vega_embed__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-embed */ \"./node_modules/vega-embed/build/vega-embed.module.js\");\n/* harmony import */ var _utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/shallowEqual */ \"./node_modules/react-vega/esm/utils/shallowEqual.js\");\n/* harmony import */ var _utils_getUniqueFieldNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/getUniqueFieldNames */ \"./node_modules/react-vega/esm/utils/getUniqueFieldNames.js\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ \"./node_modules/react-vega/esm/constants.js\");\n/* harmony import */ var _utils_addSignalListenersToView__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/addSignalListenersToView */ \"./node_modules/react-vega/esm/utils/addSignalListenersToView.js\");\n/* harmony import */ var _utils_computeSpecChanges__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/computeSpecChanges */ \"./node_modules/react-vega/esm/utils/computeSpecChanges.js\");\n/* harmony import */ var _utils_removeSignalListenersFromView__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/removeSignalListenersFromView */ \"./node_modules/react-vega/esm/utils/removeSignalListenersFromView.js\");\n/* harmony import */ var _utils_combineSpecWithDimension__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/combineSpecWithDimension */ \"./node_modules/react-vega/esm/utils/combineSpecWithDimension.js\");\n\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\n\nclass VegaEmbed extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent {\n  constructor(...args) {\n    super(...args);\n\n    _defineProperty(this, \"containerRef\", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createRef());\n\n    _defineProperty(this, \"viewPromise\", void 0);\n\n    _defineProperty(this, \"handleError\", error => {\n      const {\n        onError = _constants__WEBPACK_IMPORTED_MODULE_5__[\"NOOP\"]\n      } = this.props;\n      onError(error); // eslint-disable-next-line no-console\n\n      console.warn(error);\n      return undefined;\n    });\n\n    _defineProperty(this, \"modifyView\", action => {\n      if (this.viewPromise) {\n        this.viewPromise.then(view => {\n          if (view) {\n            action(view);\n          }\n\n          return true;\n        }).catch(this.handleError);\n      }\n    });\n  }\n\n  componentDidMount() {\n    this.createView();\n  }\n\n  componentDidUpdate(prevProps) {\n    const fieldSet = Object(_utils_getUniqueFieldNames__WEBPACK_IMPORTED_MODULE_4__[\"default\"])([this.props, prevProps]);\n    fieldSet.delete('className');\n    fieldSet.delete('signalListeners');\n    fieldSet.delete('spec');\n    fieldSet.delete('style');\n    fieldSet.delete('width');\n    fieldSet.delete('height'); // Only create a new view if necessary\n\n    if (Array.from(fieldSet).some(f => this.props[f] !== prevProps[f])) {\n      this.clearView();\n      this.createView();\n    } else {\n      const specChanges = Object(_utils_computeSpecChanges__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(Object(_utils_combineSpecWithDimension__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this.props), Object(_utils_combineSpecWithDimension__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(prevProps));\n      const {\n        signalListeners: newSignalListeners\n      } = this.props;\n      const {\n        signalListeners: oldSignalListeners\n      } = prevProps;\n\n      if (specChanges) {\n        if (specChanges.isExpensive) {\n          this.clearView();\n          this.createView();\n        } else {\n          const areSignalListenersChanged = !Object(_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(newSignalListeners, oldSignalListeners);\n          this.modifyView(view => {\n            if (specChanges.width !== false) {\n              view.width(specChanges.width);\n            }\n\n            if (specChanges.height !== false) {\n              view.height(specChanges.height);\n            }\n\n            if (areSignalListenersChanged) {\n              if (oldSignalListeners) {\n                Object(_utils_removeSignalListenersFromView__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(view, oldSignalListeners);\n              }\n\n              if (newSignalListeners) {\n                Object(_utils_addSignalListenersToView__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(view, newSignalListeners);\n              }\n            }\n\n            view.run();\n          });\n        }\n      } else if (!Object(_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(newSignalListeners, oldSignalListeners)) {\n        this.modifyView(view => {\n          if (oldSignalListeners) {\n            Object(_utils_removeSignalListenersFromView__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(view, oldSignalListeners);\n          }\n\n          if (newSignalListeners) {\n            Object(_utils_addSignalListenersToView__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(view, newSignalListeners);\n          }\n\n          view.run();\n        });\n      }\n    }\n  }\n\n  componentWillUnmount() {\n    this.clearView();\n  }\n\n  createView() {\n    const {\n      spec,\n      onNewView,\n      signalListeners = {},\n      width,\n      height,\n      ...options\n    } = this.props;\n\n    if (this.containerRef.current) {\n      const finalSpec = Object(_utils_combineSpecWithDimension__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(this.props);\n      this.viewPromise = Object(vega_embed__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this.containerRef.current, finalSpec, options).then(({\n        view\n      }) => {\n        if (Object(_utils_addSignalListenersToView__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(view, signalListeners)) {\n          view.run();\n        }\n\n        return view;\n      }).catch(this.handleError);\n\n      if (onNewView) {\n        this.modifyView(onNewView);\n      }\n    }\n  }\n\n  clearView() {\n    this.modifyView(view => {\n      view.finalize();\n    });\n    this.viewPromise = undefined;\n    return this;\n  }\n\n  render() {\n    const {\n      className,\n      style\n    } = this.props; // Create the container Vega draws inside\n\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n      ref: this.containerRef,\n      className: className,\n      style: style\n    });\n  }\n\n}\n\n_defineProperty(VegaEmbed, \"propTypes\", {\n  className: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.string,\n  onError: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func\n});\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/VegaEmbed.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/VegaLite.js":
/*!*************************************************!*\
  !*** ./node_modules/react-vega/esm/VegaLite.js ***!
  \*************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return VegaLite; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Vega__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Vega */ \"./node_modules/react-vega/esm/Vega.js\");\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\n\n\n\n/**\n * Syntactic sugar for using vega-lite with Vega\n * @param props\n */\nfunction VegaLite(props) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Vega__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({}, props, {\n    mode: \"vega-lite\"\n  }));\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/VegaLite.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/constants.js":
/*!**************************************************!*\
  !*** ./node_modules/react-vega/esm/constants.js ***!
  \**************************************************/
/*! exports provided: NOOP */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NOOP\", function() { return NOOP; });\n// eslint-disable-next-line import/prefer-default-export\nconst NOOP = () => {};\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/constants.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/createClassFromSpec.js":
/*!************************************************************!*\
  !*** ./node_modules/react-vega/esm/createClassFromSpec.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return createClassFromSpec; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Vega__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Vega */ \"./node_modules/react-vega/esm/Vega.js\");\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\nfunction createClassFromSpec({\n  mode,\n  spec\n}) {\n  class FixedVegaChart extends react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent {\n    render() {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Vega__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({\n        mode: mode,\n        spec: spec\n      }, this.props));\n    }\n\n  }\n\n  _defineProperty(FixedVegaChart, \"getSpec\", function getSpec() {\n    return spec;\n  });\n\n  return FixedVegaChart;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/createClassFromSpec.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/index.js":
/*!**********************************************!*\
  !*** ./node_modules/react-vega/esm/index.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Vega__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Vega */ \"./node_modules/react-vega/esm/Vega.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Vega\", function() { return _Vega__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _VegaLite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VegaLite */ \"./node_modules/react-vega/esm/VegaLite.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"VegaLite\", function() { return _VegaLite__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _createClassFromSpec__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createClassFromSpec */ \"./node_modules/react-vega/esm/createClassFromSpec.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createClassFromSpec\", function() { return _createClassFromSpec__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ \"./node_modules/react-vega/esm/types/index.js\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"Vega\",\"VegaLite\",\"createClassFromSpec\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _types__WEBPACK_IMPORTED_MODULE_3__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n\n\n // Export types\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/index.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/types/index.js":
/*!****************************************************!*\
  !*** ./node_modules/react-vega/esm/types/index.js ***!
  \****************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _reExport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reExport */ \"./node_modules/react-vega/esm/types/reExport.js\");\n/* harmony import */ var _reExport__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reExport__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _reExport__WEBPACK_IMPORTED_MODULE_0__) if([\"default\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _reExport__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/** Vega View object */\n\n/** Handler of view actions */\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/types/index.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/types/reExport.js":
/*!*******************************************************!*\
  !*** ./node_modules/react-vega/esm/types/reExport.js ***!
  \*******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/types/reExport.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/addSignalListenersToView.js":
/*!***********************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/addSignalListenersToView.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return addSignalListenersToView; });\nfunction addSignalListenersToView(view, signalListeners) {\n  const signalNames = Object.keys(signalListeners);\n  signalNames.forEach(signalName => {\n    try {\n      view.addSignalListener(signalName, signalListeners[signalName]);\n    } catch (error) {\n      // eslint-disable-next-line no-console\n      console.warn('Cannot add invalid signal listener.', error);\n    }\n  });\n  return signalNames.length > 0;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/addSignalListenersToView.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/combineSpecWithDimension.js":
/*!***********************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/combineSpecWithDimension.js ***!
  \***********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return combineSpecWithDimension; });\nfunction combineSpecWithDimension(props) {\n  const {\n    spec,\n    width,\n    height\n  } = props;\n\n  if (typeof width !== 'undefined' && typeof height !== 'undefined') {\n    return { ...spec,\n      width,\n      height\n    };\n  }\n\n  if (typeof width !== 'undefined') {\n    return { ...spec,\n      width\n    };\n  }\n\n  if (typeof height !== 'undefined') {\n    return { ...spec,\n      height\n    };\n  }\n\n  return spec;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/combineSpecWithDimension.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/computeSpecChanges.js":
/*!*****************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/computeSpecChanges.js ***!
  \*****************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return computeSpecChanges; });\n/* harmony import */ var fast_deep_equal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-deep-equal */ \"./node_modules/fast-deep-equal/index.js\");\n/* harmony import */ var fast_deep_equal__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_deep_equal__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _getUniqueFieldNames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getUniqueFieldNames */ \"./node_modules/react-vega/esm/utils/getUniqueFieldNames.js\");\n\n\nfunction computeSpecChanges(newSpec, oldSpec) {\n  if (newSpec === oldSpec) return false;\n  const changes = {\n    width: false,\n    height: false,\n    isExpensive: false\n  };\n  const fieldNames = Object(_getUniqueFieldNames__WEBPACK_IMPORTED_MODULE_1__[\"default\"])([newSpec, oldSpec]);\n\n  if (fieldNames.has('width') && (!('width' in newSpec) || !('width' in oldSpec) || newSpec.width !== oldSpec.width)) {\n    if ('width' in newSpec && typeof newSpec.width === 'number') {\n      changes.width = newSpec.width;\n    } else {\n      changes.isExpensive = true;\n    }\n  }\n\n  if (fieldNames.has('height') && (!('height' in newSpec) || !('height' in oldSpec) || newSpec.height !== oldSpec.height)) {\n    if ('height' in newSpec && typeof newSpec.height === 'number') {\n      changes.height = newSpec.height;\n    } else {\n      changes.isExpensive = true;\n    }\n  } // Delete cheap fields\n\n\n  fieldNames.delete('width');\n  fieldNames.delete('height');\n\n  if ([...fieldNames].some(field => !(field in newSpec) || !(field in oldSpec) || !fast_deep_equal__WEBPACK_IMPORTED_MODULE_0___default()(newSpec[field], oldSpec[field]))) {\n    changes.isExpensive = true;\n  }\n\n  return changes.width !== false || changes.height !== false || changes.isExpensive ? changes : false;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/computeSpecChanges.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/getUniqueFieldNames.js":
/*!******************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/getUniqueFieldNames.js ***!
  \******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getUniqueFieldNames; });\nfunction getUniqueFieldNames(objects) {\n  const fields = new Set();\n  objects.forEach(o => {\n    Object.keys(o).forEach(field => {\n      fields.add(field);\n    });\n  });\n  return fields;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/getUniqueFieldNames.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/isFunction.js":
/*!*********************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/isFunction.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return isFunction; });\nfunction isFunction(functionToCheck) {\n  const getType = {};\n  return !!functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/isFunction.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/removeSignalListenersFromView.js":
/*!****************************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/removeSignalListenersFromView.js ***!
  \****************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return removeSignalListenersFromView; });\nfunction removeSignalListenersFromView(view, signalListeners) {\n  const signalNames = Object.keys(signalListeners);\n  signalNames.forEach(signalName => {\n    try {\n      view.removeSignalListener(signalName, signalListeners[signalName]);\n    } catch (error) {\n      // eslint-disable-next-line no-console\n      console.warn('Cannot remove invalid signal listener.', error);\n    }\n  });\n  return signalNames.length > 0;\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/removeSignalListenersFromView.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/shallowEqual.js":
/*!***********************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/shallowEqual.js ***!
  \***********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return shallowEqual; });\nconst EMPTY = {};\nfunction shallowEqual(a = EMPTY, b = EMPTY) {\n  const aKeys = Object.keys(a);\n  const bKeys = Object.keys(b);\n  return a === b || aKeys.length === bKeys.length && aKeys.every(key => a[key] === b[key]);\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/shallowEqual.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/updateMultipleDatasetsInView.js":
/*!***************************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/updateMultipleDatasetsInView.js ***!
  \***************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return updateMultipleDatasetsInView; });\n/* harmony import */ var _updateSingleDatasetInView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSingleDatasetInView */ \"./node_modules/react-vega/esm/utils/updateSingleDatasetInView.js\");\n\nfunction updateMultipleDatasetsInView(view, data) {\n  Object.keys(data).forEach(name => {\n    Object(_updateSingleDatasetInView__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(view, name, data[name]);\n  });\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/updateMultipleDatasetsInView.js?");

/***/ }),

/***/ "./node_modules/react-vega/esm/utils/updateSingleDatasetInView.js":
/*!************************************************************************!*\
  !*** ./node_modules/react-vega/esm/utils/updateSingleDatasetInView.js ***!
  \************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return updateSingleDatasetInView; });\n/* harmony import */ var vega_embed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-embed */ \"./node_modules/vega-embed/build/vega-embed.module.js\");\n/* harmony import */ var _isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isFunction */ \"./node_modules/react-vega/esm/utils/isFunction.js\");\n\n\nfunction updateSingleDatasetInView(view, name, value) {\n  if (value) {\n    if (Object(_isFunction__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n      value(view.data(name));\n    } else {\n      view.change(name, vega_embed__WEBPACK_IMPORTED_MODULE_0__[\"vega\"].changeset().remove(() => true).insert(value));\n    }\n  }\n}\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react-vega/esm/utils/updateSingleDatasetInView.js?");

/***/ }),

/***/ "./node_modules/react/cjs/react.development.js":
/*!*****************************************************!*\
  !*** ./node_modules/react/cjs/react.development.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/** @license React v16.13.1\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n  (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\nvar checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nvar ReactVersion = '16.13.1';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n  suspense: null\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\nfunction describeComponentFrame (name, source, ownerName) {\n  var sourceInfo = '';\n\n  if (source) {\n    var path = source.fileName;\n    var fileName = path.replace(BEFORE_SLASH_RE, '');\n\n    {\n      // In DEV, include code for a common special case:\n      // prefer \"folder/index.js\" instead of just \"index.js\".\n      if (/^index\\./.test(fileName)) {\n        var match = path.match(BEFORE_SLASH_RE);\n\n        if (match) {\n          var pathBeforeSlash = match[1];\n\n          if (pathBeforeSlash) {\n            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n            fileName = folderName + '/' + fileName;\n          }\n        }\n      }\n    }\n\n    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n  } else if (ownerName) {\n    sourceInfo = ' (created by ' + ownerName + ')';\n  }\n\n  return '\\n    in ' + (name || 'Unknown') + sourceInfo;\n}\n\nvar Resolved = 1;\nfunction refineResolvedLazyComponent(lazyComponent) {\n  return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var functionName = innerType.displayName || innerType.name || '';\n  return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getComponentName(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return \"Profiler\";\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        return 'Context.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        return 'Context.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        return getComponentName(type.type);\n\n      case REACT_BLOCK_TYPE:\n        return getComponentName(type.render);\n\n      case REACT_LAZY_TYPE:\n        {\n          var thenable = type;\n          var resolvedThenable = refineResolvedLazyComponent(thenable);\n\n          if (resolvedThenable) {\n            return getComponentName(resolvedThenable);\n          }\n\n          break;\n        }\n    }\n  }\n\n  return null;\n}\n\nvar ReactDebugCurrentFrame = {};\nvar currentlyValidatingElement = null;\nfunction setCurrentlyValidatingElement(element) {\n  {\n    currentlyValidatingElement = element;\n  }\n}\n\n{\n  // Stack implementation injected by the current renderer.\n  ReactDebugCurrentFrame.getCurrentStack = null;\n\n  ReactDebugCurrentFrame.getStackAddendum = function () {\n    var stack = ''; // Add an extra top frame while an element is being validated\n\n    if (currentlyValidatingElement) {\n      var name = getComponentName(currentlyValidatingElement.type);\n      var owner = currentlyValidatingElement._owner;\n      stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));\n    } // Delegate to the injected renderer-specific implementation\n\n\n    var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n    if (impl) {\n      stack += impl() || '';\n    }\n\n    return stack;\n  };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n  current: false\n};\n\nvar ReactSharedInternals = {\n  ReactCurrentDispatcher: ReactCurrentDispatcher,\n  ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n  ReactCurrentOwner: ReactCurrentOwner,\n  IsSomeRendererActing: IsSomeRendererActing,\n  // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n  assign: _assign\n};\n\n{\n  _assign(ReactSharedInternals, {\n    // These should not be included in production.\n    ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n    // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n    // TODO: remove in React 17.0.\n    ReactComponentTreeHook: {}\n  });\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n  {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    printWarning('warn', format, args);\n  }\n}\nfunction error(format) {\n  {\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    printWarning('error', format, args);\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var hasExistingStack = args.length > 0 && typeof args[args.length - 1] === 'string' && args[args.length - 1].indexOf('\\n    in') === 0;\n\n    if (!hasExistingStack) {\n      var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n      var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n      if (stack !== '') {\n        format += '%s';\n        args = args.concat([stack]);\n      }\n    }\n\n    var argsWithFormat = args.map(function (item) {\n      return '' + item;\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      throw new Error(message);\n    } catch (x) {}\n  }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n  {\n    var _constructor = publicInstance.constructor;\n    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n    var warningKey = componentName + \".\" + callerName;\n\n    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n      return;\n    }\n\n    error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n    didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n  }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance, callback, callerName) {\n    warnNoop(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n    warnNoop(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} Name of the calling function in the public API.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n    warnNoop(publicInstance, 'setState');\n  }\n};\n\nvar emptyObject = {};\n\n{\n  Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context; // If a component has string refs, we will assign a different object later.\n\n  this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n  // renderer.\n\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n  if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n    {\n      throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n    }\n  }\n\n  this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n  var deprecatedAPIs = {\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n  };\n\n  var defineDeprecationWarning = function (methodName, info) {\n    Object.defineProperty(Component.prototype, methodName, {\n      get: function () {\n        warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n        return undefined;\n      }\n    });\n  };\n\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context; // If a component has string refs, we will assign a different object later.\n\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n  var refObject = {\n    current: null\n  };\n\n  {\n    Object.seal(refObject);\n  }\n\n  return refObject;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  var warnAboutAccessingKey = function () {\n    {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n      }\n    }\n  };\n\n  warnAboutAccessingKey.isReactWarning = true;\n  Object.defineProperty(props, 'key', {\n    get: warnAboutAccessingKey,\n    configurable: true\n  });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  var warnAboutAccessingRef = function () {\n    {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n      }\n    }\n  };\n\n  warnAboutAccessingRef.isReactWarning = true;\n  Object.defineProperty(props, 'ref', {\n    get: warnAboutAccessingRef,\n    configurable: true\n  });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n      var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://fb.me/react-strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n  var propName; // Reserved names are extracted\n\n  var props = {};\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      ref = config.ref;\n\n      {\n        warnIfStringRefCannotBeAutoConverted(config);\n      }\n    }\n\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  } // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n\n    {\n      if (Object.freeze) {\n        Object.freeze(childArray);\n      }\n    }\n\n    props.children = childArray;\n  } // Resolve default props\n\n\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  {\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n  return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n  if (!!(element === null || element === undefined)) {\n    {\n      throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n    }\n  }\n\n  var propName; // Original props are copied\n\n  var props = _assign({}, element.props); // Reserved names are extracted\n\n\n  var key = element.key;\n  var ref = element.ref; // Self is preserved since the owner is preserved.\n\n  var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n\n  var source = element._source; // Owner will be preserved, unless ref is overridden\n\n  var owner = element._owner;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    } // Remaining properties override existing props\n\n\n    var defaultProps;\n\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  } // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n  var escapeRegex = /[=:]/g;\n  var escaperLookup = {\n    '=': '=0',\n    ':': '=2'\n  };\n  var escapedString = ('' + key).replace(escapeRegex, function (match) {\n    return escaperLookup[match];\n  });\n  return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\nvar POOL_SIZE = 10;\nvar traverseContextPool = [];\n\nfunction getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {\n  if (traverseContextPool.length) {\n    var traverseContext = traverseContextPool.pop();\n    traverseContext.result = mapResult;\n    traverseContext.keyPrefix = keyPrefix;\n    traverseContext.func = mapFunction;\n    traverseContext.context = mapContext;\n    traverseContext.count = 0;\n    return traverseContext;\n  } else {\n    return {\n      result: mapResult,\n      keyPrefix: keyPrefix,\n      func: mapFunction,\n      context: mapContext,\n      count: 0\n    };\n  }\n}\n\nfunction releaseTraverseContext(traverseContext) {\n  traverseContext.result = null;\n  traverseContext.keyPrefix = null;\n  traverseContext.func = null;\n  traverseContext.context = null;\n  traverseContext.count = 0;\n\n  if (traverseContextPool.length < POOL_SIZE) {\n    traverseContextPool.push(traverseContext);\n  }\n}\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\n\n\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  var invokeCallback = false;\n\n  if (children === null) {\n    invokeCallback = true;\n  } else {\n    switch (type) {\n      case 'string':\n      case 'number':\n        invokeCallback = true;\n        break;\n\n      case 'object':\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = true;\n        }\n\n    }\n  }\n\n  if (invokeCallback) {\n    callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n\n    if (typeof iteratorFn === 'function') {\n\n      {\n        // Warn about using Maps as children\n        if (iteratorFn === children.entries) {\n          if (!didWarnAboutMaps) {\n            warn('Using Maps as children is deprecated and will be removed in ' + 'a future major release. Consider converting children to ' + 'an array of keyed ReactElements instead.');\n          }\n\n          didWarnAboutMaps = true;\n        }\n      }\n\n      var iterator = iteratorFn.call(children);\n      var step;\n      var ii = 0;\n\n      while (!(step = iterator.next()).done) {\n        child = step.value;\n        nextName = nextNamePrefix + getComponentKey(child, ii++);\n        subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n\n      {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();\n      }\n\n      var childrenString = '' + children;\n\n      {\n        {\n          throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \").\" + addendum );\n        }\n      }\n    }\n  }\n\n  return subtreeCount;\n}\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\n\n\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getComponentKey(component, index) {\n  // Do some typechecking here since we call this blindly. We want to ensure\n  // that we don't block potential future ES APIs.\n  if (typeof component === 'object' && component !== null && component.key != null) {\n    // Explicit key\n    return escape(component.key);\n  } // Implicit key determined by the index in the set\n\n\n  return index.toString(36);\n}\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func,\n      context = bookKeeping.context;\n  func.call(context, child, bookKeeping.count++);\n}\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\n\n\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n\n  var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  releaseTraverseContext(traverseContext);\n}\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result,\n      keyPrefix = bookKeeping.keyPrefix,\n      func = bookKeeping.func,\n      context = bookKeeping.context;\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) {\n      return c;\n    });\n  } else if (mappedChild != null) {\n    if (isValidElement(mappedChild)) {\n      mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n    }\n\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n\n  var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  releaseTraverseContext(traverseContext);\n}\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\n\n\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n  return traverseAllChildren(children, function () {\n    return null;\n  }, null);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, function (child) {\n    return child;\n  });\n  return result;\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n  if (!isValidElement(children)) {\n    {\n      throw Error( \"React.Children.only expected to receive a single React element child.\" );\n    }\n  }\n\n  return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n  if (calculateChangedBits === undefined) {\n    calculateChangedBits = null;\n  } else {\n    {\n      if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n        error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n      }\n    }\n  }\n\n  var context = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    _calculateChangedBits: calculateChangedBits,\n    // As a workaround to support multiple concurrent renderers, we categorize\n    // some renderers as primary and others as secondary. We only expect\n    // there to be two concurrent renderers at most: React Native (primary) and\n    // Fabric (secondary); React DOM (primary) and React ART (secondary).\n    // Secondary renderers store their context values on separate fields.\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    // Used to track how many concurrent renderers this context currently\n    // supports within in a single renderer. Such as parallel server rendering.\n    _threadCount: 0,\n    // These are circular\n    Provider: null,\n    Consumer: null\n  };\n  context.Provider = {\n    $$typeof: REACT_PROVIDER_TYPE,\n    _context: context\n  };\n  var hasWarnedAboutUsingNestedContextConsumers = false;\n  var hasWarnedAboutUsingConsumerProvider = false;\n\n  {\n    // A separate object, but proxies back to the original context object for\n    // backwards compatibility. It has a different $$typeof, so we can properly\n    // warn for the incorrect usage of Context as a Consumer.\n    var Consumer = {\n      $$typeof: REACT_CONTEXT_TYPE,\n      _context: context,\n      _calculateChangedBits: context._calculateChangedBits\n    }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n    Object.defineProperties(Consumer, {\n      Provider: {\n        get: function () {\n          if (!hasWarnedAboutUsingConsumerProvider) {\n            hasWarnedAboutUsingConsumerProvider = true;\n\n            error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n          }\n\n          return context.Provider;\n        },\n        set: function (_Provider) {\n          context.Provider = _Provider;\n        }\n      },\n      _currentValue: {\n        get: function () {\n          return context._currentValue;\n        },\n        set: function (_currentValue) {\n          context._currentValue = _currentValue;\n        }\n      },\n      _currentValue2: {\n        get: function () {\n          return context._currentValue2;\n        },\n        set: function (_currentValue2) {\n          context._currentValue2 = _currentValue2;\n        }\n      },\n      _threadCount: {\n        get: function () {\n          return context._threadCount;\n        },\n        set: function (_threadCount) {\n          context._threadCount = _threadCount;\n        }\n      },\n      Consumer: {\n        get: function () {\n          if (!hasWarnedAboutUsingNestedContextConsumers) {\n            hasWarnedAboutUsingNestedContextConsumers = true;\n\n            error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n          }\n\n          return context.Consumer;\n        }\n      }\n    }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n    context.Consumer = Consumer;\n  }\n\n  {\n    context._currentRenderer = null;\n    context._currentRenderer2 = null;\n  }\n\n  return context;\n}\n\nfunction lazy(ctor) {\n  var lazyType = {\n    $$typeof: REACT_LAZY_TYPE,\n    _ctor: ctor,\n    // React uses these fields to store the result.\n    _status: -1,\n    _result: null\n  };\n\n  {\n    // In production, this would just set it on the object.\n    var defaultProps;\n    var propTypes;\n    Object.defineProperties(lazyType, {\n      defaultProps: {\n        configurable: true,\n        get: function () {\n          return defaultProps;\n        },\n        set: function (newDefaultProps) {\n          error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n          defaultProps = newDefaultProps; // Match production behavior more closely:\n\n          Object.defineProperty(lazyType, 'defaultProps', {\n            enumerable: true\n          });\n        }\n      },\n      propTypes: {\n        configurable: true,\n        get: function () {\n          return propTypes;\n        },\n        set: function (newPropTypes) {\n          error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n          propTypes = newPropTypes; // Match production behavior more closely:\n\n          Object.defineProperty(lazyType, 'propTypes', {\n            enumerable: true\n          });\n        }\n      }\n    });\n  }\n\n  return lazyType;\n}\n\nfunction forwardRef(render) {\n  {\n    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n      error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n    } else if (typeof render !== 'function') {\n      error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n    } else {\n      if (render.length !== 0 && render.length !== 2) {\n        error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n      }\n    }\n\n    if (render != null) {\n      if (render.defaultProps != null || render.propTypes != null) {\n        error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n      }\n    }\n  }\n\n  return {\n    $$typeof: REACT_FORWARD_REF_TYPE,\n    render: render\n  };\n}\n\nfunction isValidElementType(type) {\n  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction memo(type, compare) {\n  {\n    if (!isValidElementType(type)) {\n      error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n    }\n  }\n\n  return {\n    $$typeof: REACT_MEMO_TYPE,\n    type: type,\n    compare: compare === undefined ? null : compare\n  };\n}\n\nfunction resolveDispatcher() {\n  var dispatcher = ReactCurrentDispatcher.current;\n\n  if (!(dispatcher !== null)) {\n    {\n      throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.\" );\n    }\n  }\n\n  return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n  var dispatcher = resolveDispatcher();\n\n  {\n    if (unstable_observedBits !== undefined) {\n      error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://fb.me/rules-of-hooks' : '');\n    } // TODO: add a more generic warning for invalid values.\n\n\n    if (Context._context !== undefined) {\n      var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n      // and nobody should be using this in existing code.\n\n      if (realContext.Consumer === Context) {\n        error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n      } else if (realContext.Provider === Context) {\n        error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n      }\n    }\n  }\n\n  return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n  {\n    var dispatcher = resolveDispatcher();\n    return dispatcher.useDebugValue(value, formatterFn);\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = getComponentName(ReactCurrentOwner.current.type);\n\n    if (name) {\n      return '\\n\\nCheck the render method of `' + name + '`.';\n    }\n  }\n\n  return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  if (source !== undefined) {\n    var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n    var lineNumber = source.lineNumber;\n    return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n  }\n\n  return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n  if (elementProps !== null && elementProps !== undefined) {\n    return getSourceInfoErrorAddendum(elementProps.__source);\n  }\n\n  return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  var info = getDeclarationErrorAddendum();\n\n  if (!info) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n    if (parentName) {\n      info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n    }\n  }\n\n  return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n\n  element._store.validated = true;\n  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n    return;\n  }\n\n  ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n\n  var childOwner = '';\n\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n  }\n\n  setCurrentlyValidatingElement(element);\n\n  {\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner);\n  }\n\n  setCurrentlyValidatingElement(null);\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n\n      if (isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n\n    if (typeof iteratorFn === 'function') {\n      // Entry iterators used to provide implicit keys,\n      // but now we print a separate warning for them later.\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n\n        while (!(step = iterator.next()).done) {\n          if (isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var name = getComponentName(type);\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      setCurrentlyValidatingElement(element);\n      checkPropTypes(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum);\n      setCurrentlyValidatingElement(null);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true;\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    setCurrentlyValidatingElement(fragment);\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n    }\n\n    setCurrentlyValidatingElement(null);\n  }\n}\nfunction createElementWithValidation(type, props, children) {\n  var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n  // succeed and there will likely be errors in render.\n\n  if (!validType) {\n    var info = '';\n\n    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n      info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n    }\n\n    var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n    if (sourceInfo) {\n      info += sourceInfo;\n    } else {\n      info += getDeclarationErrorAddendum();\n    }\n\n    var typeString;\n\n    if (type === null) {\n      typeString = 'null';\n    } else if (Array.isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n      info = ' Did you accidentally export a JSX literal instead of a component?';\n    } else {\n      typeString = typeof type;\n    }\n\n    {\n      error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n  }\n\n  var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n  // TODO: Drop this when these are no longer allowed as the type argument.\n\n  if (element == null) {\n    return element;\n  } // Skip key warning if the type isn't valid since our key validation logic\n  // doesn't expect a non-string/function type and can throw confusing errors.\n  // We don't want exception behavior to differ between dev and prod.\n  // (Rendering will throw with a helpful message and as soon as the type is\n  // fixed, the key warnings will appear.)\n\n\n  if (validType) {\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], type);\n    }\n  }\n\n  if (type === REACT_FRAGMENT_TYPE) {\n    validateFragmentProps(element);\n  } else {\n    validatePropTypes(element);\n  }\n\n  return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n  var validatedFactory = createElementWithValidation.bind(null, type);\n  validatedFactory.type = type;\n\n  {\n    if (!didWarnAboutDeprecatedCreateFactory) {\n      didWarnAboutDeprecatedCreateFactory = true;\n\n      warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n    } // Legacy hook: remove it\n\n\n    Object.defineProperty(validatedFactory, 'type', {\n      enumerable: false,\n      get: function () {\n        warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n        Object.defineProperty(this, 'type', {\n          value: type\n        });\n        return type;\n      }\n    });\n  }\n\n  return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n  var newElement = cloneElement.apply(this, arguments);\n\n  for (var i = 2; i < arguments.length; i++) {\n    validateChildKeys(arguments[i], newElement.type);\n  }\n\n  validatePropTypes(newElement);\n  return newElement;\n}\n\n{\n\n  try {\n    var frozenObject = Object.freeze({});\n    var testMap = new Map([[frozenObject, null]]);\n    var testSet = new Set([frozenObject]); // This is necessary for Rollup to not consider these unused.\n    // https://github.com/rollup/rollup/issues/1771\n    // TODO: we can remove these if Rollup fixes the bug.\n\n    testMap.set(0, 0);\n    testSet.add(0);\n  } catch (e) {\n  }\n}\n\nvar createElement$1 =  createElementWithValidation ;\nvar cloneElement$1 =  cloneElementWithValidation ;\nvar createFactory =  createFactoryWithValidation ;\nvar Children = {\n  map: mapChildren,\n  forEach: forEachChildren,\n  count: countChildren,\n  toArray: toArray,\n  only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useEffect = useEffect;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.version = ReactVersion;\n  })();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react/cjs/react.development.js?");

/***/ }),

/***/ "./node_modules/react/index.js":
/*!*************************************!*\
  !*** ./node_modules/react/index.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/react/index.js?");

/***/ }),

/***/ "./node_modules/regenerator-runtime/runtime.js":
/*!*****************************************************!*\
  !*** ./node_modules/regenerator-runtime/runtime.js ***!
  \*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n   true ? module.exports : undefined\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/regenerator-runtime/runtime.js?");

/***/ }),

/***/ "./node_modules/scheduler/cjs/scheduler-tracing.development.js":
/*!*********************************************************************!*\
  !*** ./node_modules/scheduler/cjs/scheduler-tracing.development.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/** @license React v0.19.1\n * scheduler-tracing.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n  (function() {\n'use strict';\n\nvar DEFAULT_THREAD_ID = 0; // Counters used to generate unique IDs.\n\nvar interactionIDCounter = 0;\nvar threadIDCounter = 0; // Set of currently traced interactions.\n// Interactions \"stack\"–\n// Meaning that newly traced interactions are appended to the previously active set.\n// When an interaction goes out of scope, the previous set (if any) is restored.\n\nexports.__interactionsRef = null; // Listener(s) to notify when interactions begin and end.\n\nexports.__subscriberRef = null;\n\n{\n  exports.__interactionsRef = {\n    current: new Set()\n  };\n  exports.__subscriberRef = {\n    current: null\n  };\n}\nfunction unstable_clear(callback) {\n\n  var prevInteractions = exports.__interactionsRef.current;\n  exports.__interactionsRef.current = new Set();\n\n  try {\n    return callback();\n  } finally {\n    exports.__interactionsRef.current = prevInteractions;\n  }\n}\nfunction unstable_getCurrent() {\n  {\n    return exports.__interactionsRef.current;\n  }\n}\nfunction unstable_getThreadID() {\n  return ++threadIDCounter;\n}\nfunction unstable_trace(name, timestamp, callback) {\n  var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;\n\n  var interaction = {\n    __count: 1,\n    id: interactionIDCounter++,\n    name: name,\n    timestamp: timestamp\n  };\n  var prevInteractions = exports.__interactionsRef.current; // Traced interactions should stack/accumulate.\n  // To do that, clone the current interactions.\n  // The previous set will be restored upon completion.\n\n  var interactions = new Set(prevInteractions);\n  interactions.add(interaction);\n  exports.__interactionsRef.current = interactions;\n  var subscriber = exports.__subscriberRef.current;\n  var returnValue;\n\n  try {\n    if (subscriber !== null) {\n      subscriber.onInteractionTraced(interaction);\n    }\n  } finally {\n    try {\n      if (subscriber !== null) {\n        subscriber.onWorkStarted(interactions, threadID);\n      }\n    } finally {\n      try {\n        returnValue = callback();\n      } finally {\n        exports.__interactionsRef.current = prevInteractions;\n\n        try {\n          if (subscriber !== null) {\n            subscriber.onWorkStopped(interactions, threadID);\n          }\n        } finally {\n          interaction.__count--; // If no async work was scheduled for this interaction,\n          // Notify subscribers that it's completed.\n\n          if (subscriber !== null && interaction.__count === 0) {\n            subscriber.onInteractionScheduledWorkCompleted(interaction);\n          }\n        }\n      }\n    }\n  }\n\n  return returnValue;\n}\nfunction unstable_wrap(callback) {\n  var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;\n\n  var wrappedInteractions = exports.__interactionsRef.current;\n  var subscriber = exports.__subscriberRef.current;\n\n  if (subscriber !== null) {\n    subscriber.onWorkScheduled(wrappedInteractions, threadID);\n  } // Update the pending async work count for the current interactions.\n  // Update after calling subscribers in case of error.\n\n\n  wrappedInteractions.forEach(function (interaction) {\n    interaction.__count++;\n  });\n  var hasRun = false;\n\n  function wrapped() {\n    var prevInteractions = exports.__interactionsRef.current;\n    exports.__interactionsRef.current = wrappedInteractions;\n    subscriber = exports.__subscriberRef.current;\n\n    try {\n      var returnValue;\n\n      try {\n        if (subscriber !== null) {\n          subscriber.onWorkStarted(wrappedInteractions, threadID);\n        }\n      } finally {\n        try {\n          returnValue = callback.apply(undefined, arguments);\n        } finally {\n          exports.__interactionsRef.current = prevInteractions;\n\n          if (subscriber !== null) {\n            subscriber.onWorkStopped(wrappedInteractions, threadID);\n          }\n        }\n      }\n\n      return returnValue;\n    } finally {\n      if (!hasRun) {\n        // We only expect a wrapped function to be executed once,\n        // But in the event that it's executed more than once–\n        // Only decrement the outstanding interaction counts once.\n        hasRun = true; // Update pending async counts for all wrapped interactions.\n        // If this was the last scheduled async work for any of them,\n        // Mark them as completed.\n\n        wrappedInteractions.forEach(function (interaction) {\n          interaction.__count--;\n\n          if (subscriber !== null && interaction.__count === 0) {\n            subscriber.onInteractionScheduledWorkCompleted(interaction);\n          }\n        });\n      }\n    }\n  }\n\n  wrapped.cancel = function cancel() {\n    subscriber = exports.__subscriberRef.current;\n\n    try {\n      if (subscriber !== null) {\n        subscriber.onWorkCanceled(wrappedInteractions, threadID);\n      }\n    } finally {\n      // Update pending async counts for all wrapped interactions.\n      // If this was the last scheduled async work for any of them,\n      // Mark them as completed.\n      wrappedInteractions.forEach(function (interaction) {\n        interaction.__count--;\n\n        if (subscriber && interaction.__count === 0) {\n          subscriber.onInteractionScheduledWorkCompleted(interaction);\n        }\n      });\n    }\n  };\n\n  return wrapped;\n}\n\nvar subscribers = null;\n\n{\n  subscribers = new Set();\n}\n\nfunction unstable_subscribe(subscriber) {\n  {\n    subscribers.add(subscriber);\n\n    if (subscribers.size === 1) {\n      exports.__subscriberRef.current = {\n        onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,\n        onInteractionTraced: onInteractionTraced,\n        onWorkCanceled: onWorkCanceled,\n        onWorkScheduled: onWorkScheduled,\n        onWorkStarted: onWorkStarted,\n        onWorkStopped: onWorkStopped\n      };\n    }\n  }\n}\nfunction unstable_unsubscribe(subscriber) {\n  {\n    subscribers.delete(subscriber);\n\n    if (subscribers.size === 0) {\n      exports.__subscriberRef.current = null;\n    }\n  }\n}\n\nfunction onInteractionTraced(interaction) {\n  var didCatchError = false;\n  var caughtError = null;\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onInteractionTraced(interaction);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onInteractionScheduledWorkCompleted(interaction) {\n  var didCatchError = false;\n  var caughtError = null;\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onInteractionScheduledWorkCompleted(interaction);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkScheduled(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkScheduled(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkStarted(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkStarted(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkStopped(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkStopped(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkCanceled(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkCanceled(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nexports.unstable_clear = unstable_clear;\nexports.unstable_getCurrent = unstable_getCurrent;\nexports.unstable_getThreadID = unstable_getThreadID;\nexports.unstable_subscribe = unstable_subscribe;\nexports.unstable_trace = unstable_trace;\nexports.unstable_unsubscribe = unstable_unsubscribe;\nexports.unstable_wrap = unstable_wrap;\n  })();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/scheduler/cjs/scheduler-tracing.development.js?");

/***/ }),

/***/ "./node_modules/scheduler/cjs/scheduler.development.js":
/*!*************************************************************!*\
  !*** ./node_modules/scheduler/cjs/scheduler.development.js ***!
  \*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/** @license React v0.19.1\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n  (function() {\n'use strict';\n\nvar enableSchedulerDebugging = false;\nvar enableProfiling = true;\n\nvar requestHostCallback;\nvar requestHostTimeout;\nvar cancelHostTimeout;\nvar shouldYieldToHost;\nvar requestPaint;\n\nif ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' || // Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n  // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n  // fallback to a naive implementation.\n  var _callback = null;\n  var _timeoutID = null;\n\n  var _flushCallback = function () {\n    if (_callback !== null) {\n      try {\n        var currentTime = exports.unstable_now();\n        var hasRemainingTime = true;\n\n        _callback(hasRemainingTime, currentTime);\n\n        _callback = null;\n      } catch (e) {\n        setTimeout(_flushCallback, 0);\n        throw e;\n      }\n    }\n  };\n\n  var initialTime = Date.now();\n\n  exports.unstable_now = function () {\n    return Date.now() - initialTime;\n  };\n\n  requestHostCallback = function (cb) {\n    if (_callback !== null) {\n      // Protect against re-entrancy.\n      setTimeout(requestHostCallback, 0, cb);\n    } else {\n      _callback = cb;\n      setTimeout(_flushCallback, 0);\n    }\n  };\n\n  requestHostTimeout = function (cb, ms) {\n    _timeoutID = setTimeout(cb, ms);\n  };\n\n  cancelHostTimeout = function () {\n    clearTimeout(_timeoutID);\n  };\n\n  shouldYieldToHost = function () {\n    return false;\n  };\n\n  requestPaint = exports.unstable_forceFrameRate = function () {};\n} else {\n  // Capture local references to native APIs, in case a polyfill overrides them.\n  var performance = window.performance;\n  var _Date = window.Date;\n  var _setTimeout = window.setTimeout;\n  var _clearTimeout = window.clearTimeout;\n\n  if (typeof console !== 'undefined') {\n    // TODO: Scheduler no longer requires these methods to be polyfilled. But\n    // maybe we want to continue warning if they don't exist, to preserve the\n    // option to rely on it in the future?\n    var requestAnimationFrame = window.requestAnimationFrame;\n    var cancelAnimationFrame = window.cancelAnimationFrame; // TODO: Remove fb.me link\n\n    if (typeof requestAnimationFrame !== 'function') {\n      // Using console['error'] to evade Babel and ESLint\n      console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n    }\n\n    if (typeof cancelAnimationFrame !== 'function') {\n      // Using console['error'] to evade Babel and ESLint\n      console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n    }\n  }\n\n  if (typeof performance === 'object' && typeof performance.now === 'function') {\n    exports.unstable_now = function () {\n      return performance.now();\n    };\n  } else {\n    var _initialTime = _Date.now();\n\n    exports.unstable_now = function () {\n      return _Date.now() - _initialTime;\n    };\n  }\n\n  var isMessageLoopRunning = false;\n  var scheduledHostCallback = null;\n  var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n  // thread, like user events. By default, it yields multiple times per frame.\n  // It does not attempt to align with frame boundaries, since most tasks don't\n  // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n  var yieldInterval = 5;\n  var deadline = 0; // TODO: Make this configurable\n\n  {\n    // `isInputPending` is not available. Since we have no way of knowing if\n    // there's pending input, always yield at the end of the frame.\n    shouldYieldToHost = function () {\n      return exports.unstable_now() >= deadline;\n    }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n    requestPaint = function () {};\n  }\n\n  exports.unstable_forceFrameRate = function (fps) {\n    if (fps < 0 || fps > 125) {\n      // Using console['error'] to evade Babel and ESLint\n      console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing framerates higher than 125 fps is not unsupported');\n      return;\n    }\n\n    if (fps > 0) {\n      yieldInterval = Math.floor(1000 / fps);\n    } else {\n      // reset the framerate\n      yieldInterval = 5;\n    }\n  };\n\n  var performWorkUntilDeadline = function () {\n    if (scheduledHostCallback !== null) {\n      var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n      // cycle. This means there's always time remaining at the beginning of\n      // the message event.\n\n      deadline = currentTime + yieldInterval;\n      var hasTimeRemaining = true;\n\n      try {\n        var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n        if (!hasMoreWork) {\n          isMessageLoopRunning = false;\n          scheduledHostCallback = null;\n        } else {\n          // If there's more work, schedule the next message event at the end\n          // of the preceding one.\n          port.postMessage(null);\n        }\n      } catch (error) {\n        // If a scheduler task throws, exit the current browser task so the\n        // error can be observed.\n        port.postMessage(null);\n        throw error;\n      }\n    } else {\n      isMessageLoopRunning = false;\n    } // Yielding to the browser will give it a chance to paint, so we can\n  };\n\n  var channel = new MessageChannel();\n  var port = channel.port2;\n  channel.port1.onmessage = performWorkUntilDeadline;\n\n  requestHostCallback = function (callback) {\n    scheduledHostCallback = callback;\n\n    if (!isMessageLoopRunning) {\n      isMessageLoopRunning = true;\n      port.postMessage(null);\n    }\n  };\n\n  requestHostTimeout = function (callback, ms) {\n    taskTimeoutID = _setTimeout(function () {\n      callback(exports.unstable_now());\n    }, ms);\n  };\n\n  cancelHostTimeout = function () {\n    _clearTimeout(taskTimeoutID);\n\n    taskTimeoutID = -1;\n  };\n}\n\nfunction push(heap, node) {\n  var index = heap.length;\n  heap.push(node);\n  siftUp(heap, node, index);\n}\nfunction peek(heap) {\n  var first = heap[0];\n  return first === undefined ? null : first;\n}\nfunction pop(heap) {\n  var first = heap[0];\n\n  if (first !== undefined) {\n    var last = heap.pop();\n\n    if (last !== first) {\n      heap[0] = last;\n      siftDown(heap, last, 0);\n    }\n\n    return first;\n  } else {\n    return null;\n  }\n}\n\nfunction siftUp(heap, node, i) {\n  var index = i;\n\n  while (true) {\n    var parentIndex = index - 1 >>> 1;\n    var parent = heap[parentIndex];\n\n    if (parent !== undefined && compare(parent, node) > 0) {\n      // The parent is larger. Swap positions.\n      heap[parentIndex] = node;\n      heap[index] = parent;\n      index = parentIndex;\n    } else {\n      // The parent is smaller. Exit.\n      return;\n    }\n  }\n}\n\nfunction siftDown(heap, node, i) {\n  var index = i;\n  var length = heap.length;\n\n  while (index < length) {\n    var leftIndex = (index + 1) * 2 - 1;\n    var left = heap[leftIndex];\n    var rightIndex = leftIndex + 1;\n    var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n    if (left !== undefined && compare(left, node) < 0) {\n      if (right !== undefined && compare(right, left) < 0) {\n        heap[index] = right;\n        heap[rightIndex] = node;\n        index = rightIndex;\n      } else {\n        heap[index] = left;\n        heap[leftIndex] = node;\n        index = leftIndex;\n      }\n    } else if (right !== undefined && compare(right, node) < 0) {\n      heap[index] = right;\n      heap[rightIndex] = node;\n      index = rightIndex;\n    } else {\n      // Neither child is smaller. Exit.\n      return;\n    }\n  }\n}\n\nfunction compare(a, b) {\n  // Compare sort index first, then task id.\n  var diff = a.sortIndex - b.sortIndex;\n  return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar NoPriority = 0;\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nvar runIdCounter = 0;\nvar mainThreadIdCounter = 0;\nvar profilingStateSize = 4;\nvar sharedProfilingBuffer =  // $FlowFixMe Flow doesn't know about SharedArrayBuffer\ntypeof SharedArrayBuffer === 'function' ? new SharedArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : // $FlowFixMe Flow doesn't know about ArrayBuffer\ntypeof ArrayBuffer === 'function' ? new ArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : null // Don't crash the init path on IE9\n;\nvar profilingState =  sharedProfilingBuffer !== null ? new Int32Array(sharedProfilingBuffer) : []; // We can't read this but it helps save bytes for null checks\n\nvar PRIORITY = 0;\nvar CURRENT_TASK_ID = 1;\nvar CURRENT_RUN_ID = 2;\nvar QUEUE_SIZE = 3;\n\n{\n  profilingState[PRIORITY] = NoPriority; // This is maintained with a counter, because the size of the priority queue\n  // array might include canceled tasks.\n\n  profilingState[QUEUE_SIZE] = 0;\n  profilingState[CURRENT_TASK_ID] = 0;\n} // Bytes per element is 4\n\n\nvar INITIAL_EVENT_LOG_SIZE = 131072;\nvar MAX_EVENT_LOG_SIZE = 524288; // Equivalent to 2 megabytes\n\nvar eventLogSize = 0;\nvar eventLogBuffer = null;\nvar eventLog = null;\nvar eventLogIndex = 0;\nvar TaskStartEvent = 1;\nvar TaskCompleteEvent = 2;\nvar TaskErrorEvent = 3;\nvar TaskCancelEvent = 4;\nvar TaskRunEvent = 5;\nvar TaskYieldEvent = 6;\nvar SchedulerSuspendEvent = 7;\nvar SchedulerResumeEvent = 8;\n\nfunction logEvent(entries) {\n  if (eventLog !== null) {\n    var offset = eventLogIndex;\n    eventLogIndex += entries.length;\n\n    if (eventLogIndex + 1 > eventLogSize) {\n      eventLogSize *= 2;\n\n      if (eventLogSize > MAX_EVENT_LOG_SIZE) {\n        // Using console['error'] to evade Babel and ESLint\n        console['error'](\"Scheduler Profiling: Event log exceeded maximum size. Don't \" + 'forget to call `stopLoggingProfilingEvents()`.');\n        stopLoggingProfilingEvents();\n        return;\n      }\n\n      var newEventLog = new Int32Array(eventLogSize * 4);\n      newEventLog.set(eventLog);\n      eventLogBuffer = newEventLog.buffer;\n      eventLog = newEventLog;\n    }\n\n    eventLog.set(entries, offset);\n  }\n}\n\nfunction startLoggingProfilingEvents() {\n  eventLogSize = INITIAL_EVENT_LOG_SIZE;\n  eventLogBuffer = new ArrayBuffer(eventLogSize * 4);\n  eventLog = new Int32Array(eventLogBuffer);\n  eventLogIndex = 0;\n}\nfunction stopLoggingProfilingEvents() {\n  var buffer = eventLogBuffer;\n  eventLogSize = 0;\n  eventLogBuffer = null;\n  eventLog = null;\n  eventLogIndex = 0;\n  return buffer;\n}\nfunction markTaskStart(task, ms) {\n  {\n    profilingState[QUEUE_SIZE]++;\n\n    if (eventLog !== null) {\n      // performance.now returns a float, representing milliseconds. When the\n      // event is logged, it's coerced to an int. Convert to microseconds to\n      // maintain extra degrees of precision.\n      logEvent([TaskStartEvent, ms * 1000, task.id, task.priorityLevel]);\n    }\n  }\n}\nfunction markTaskCompleted(task, ms) {\n  {\n    profilingState[PRIORITY] = NoPriority;\n    profilingState[CURRENT_TASK_ID] = 0;\n    profilingState[QUEUE_SIZE]--;\n\n    if (eventLog !== null) {\n      logEvent([TaskCompleteEvent, ms * 1000, task.id]);\n    }\n  }\n}\nfunction markTaskCanceled(task, ms) {\n  {\n    profilingState[QUEUE_SIZE]--;\n\n    if (eventLog !== null) {\n      logEvent([TaskCancelEvent, ms * 1000, task.id]);\n    }\n  }\n}\nfunction markTaskErrored(task, ms) {\n  {\n    profilingState[PRIORITY] = NoPriority;\n    profilingState[CURRENT_TASK_ID] = 0;\n    profilingState[QUEUE_SIZE]--;\n\n    if (eventLog !== null) {\n      logEvent([TaskErrorEvent, ms * 1000, task.id]);\n    }\n  }\n}\nfunction markTaskRun(task, ms) {\n  {\n    runIdCounter++;\n    profilingState[PRIORITY] = task.priorityLevel;\n    profilingState[CURRENT_TASK_ID] = task.id;\n    profilingState[CURRENT_RUN_ID] = runIdCounter;\n\n    if (eventLog !== null) {\n      logEvent([TaskRunEvent, ms * 1000, task.id, runIdCounter]);\n    }\n  }\n}\nfunction markTaskYield(task, ms) {\n  {\n    profilingState[PRIORITY] = NoPriority;\n    profilingState[CURRENT_TASK_ID] = 0;\n    profilingState[CURRENT_RUN_ID] = 0;\n\n    if (eventLog !== null) {\n      logEvent([TaskYieldEvent, ms * 1000, task.id, runIdCounter]);\n    }\n  }\n}\nfunction markSchedulerSuspended(ms) {\n  {\n    mainThreadIdCounter++;\n\n    if (eventLog !== null) {\n      logEvent([SchedulerSuspendEvent, ms * 1000, mainThreadIdCounter]);\n    }\n  }\n}\nfunction markSchedulerUnsuspended(ms) {\n  {\n    if (eventLog !== null) {\n      logEvent([SchedulerResumeEvent, ms * 1000, mainThreadIdCounter]);\n    }\n  }\n}\n\n/* eslint-disable no-var */\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction advanceTimers(currentTime) {\n  // Check for tasks that are no longer delayed and add them to the queue.\n  var timer = peek(timerQueue);\n\n  while (timer !== null) {\n    if (timer.callback === null) {\n      // Timer was cancelled.\n      pop(timerQueue);\n    } else if (timer.startTime <= currentTime) {\n      // Timer fired. Transfer to the task queue.\n      pop(timerQueue);\n      timer.sortIndex = timer.expirationTime;\n      push(taskQueue, timer);\n\n      {\n        markTaskStart(timer, currentTime);\n        timer.isQueued = true;\n      }\n    } else {\n      // Remaining timers are pending.\n      return;\n    }\n\n    timer = peek(timerQueue);\n  }\n}\n\nfunction handleTimeout(currentTime) {\n  isHostTimeoutScheduled = false;\n  advanceTimers(currentTime);\n\n  if (!isHostCallbackScheduled) {\n    if (peek(taskQueue) !== null) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    } else {\n      var firstTimer = peek(timerQueue);\n\n      if (firstTimer !== null) {\n        requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n      }\n    }\n  }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n  {\n    markSchedulerUnsuspended(initialTime);\n  } // We'll need a host callback the next time work is scheduled.\n\n\n  isHostCallbackScheduled = false;\n\n  if (isHostTimeoutScheduled) {\n    // We scheduled a timeout but it's no longer needed. Cancel it.\n    isHostTimeoutScheduled = false;\n    cancelHostTimeout();\n  }\n\n  isPerformingWork = true;\n  var previousPriorityLevel = currentPriorityLevel;\n\n  try {\n    if (enableProfiling) {\n      try {\n        return workLoop(hasTimeRemaining, initialTime);\n      } catch (error) {\n        if (currentTask !== null) {\n          var currentTime = exports.unstable_now();\n          markTaskErrored(currentTask, currentTime);\n          currentTask.isQueued = false;\n        }\n\n        throw error;\n      }\n    } else {\n      // No catch in prod codepath.\n      return workLoop(hasTimeRemaining, initialTime);\n    }\n  } finally {\n    currentTask = null;\n    currentPriorityLevel = previousPriorityLevel;\n    isPerformingWork = false;\n\n    {\n      var _currentTime = exports.unstable_now();\n\n      markSchedulerSuspended(_currentTime);\n    }\n  }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n  var currentTime = initialTime;\n  advanceTimers(currentTime);\n  currentTask = peek(taskQueue);\n\n  while (currentTask !== null && !(enableSchedulerDebugging )) {\n    if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n      // This currentTask hasn't expired, and we've reached the deadline.\n      break;\n    }\n\n    var callback = currentTask.callback;\n\n    if (callback !== null) {\n      currentTask.callback = null;\n      currentPriorityLevel = currentTask.priorityLevel;\n      var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n      markTaskRun(currentTask, currentTime);\n      var continuationCallback = callback(didUserCallbackTimeout);\n      currentTime = exports.unstable_now();\n\n      if (typeof continuationCallback === 'function') {\n        currentTask.callback = continuationCallback;\n        markTaskYield(currentTask, currentTime);\n      } else {\n        {\n          markTaskCompleted(currentTask, currentTime);\n          currentTask.isQueued = false;\n        }\n\n        if (currentTask === peek(taskQueue)) {\n          pop(taskQueue);\n        }\n      }\n\n      advanceTimers(currentTime);\n    } else {\n      pop(taskQueue);\n    }\n\n    currentTask = peek(taskQueue);\n  } // Return whether there's additional work\n\n\n  if (currentTask !== null) {\n    return true;\n  } else {\n    var firstTimer = peek(timerQueue);\n\n    if (firstTimer !== null) {\n      requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n    }\n\n    return false;\n  }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n  switch (priorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n    case LowPriority:\n    case IdlePriority:\n      break;\n\n    default:\n      priorityLevel = NormalPriority;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_next(eventHandler) {\n  var priorityLevel;\n\n  switch (currentPriorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n      // Shift down to normal priority\n      priorityLevel = NormalPriority;\n      break;\n\n    default:\n      // Anything lower than normal priority should remain at the current level.\n      priorityLevel = currentPriorityLevel;\n      break;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_wrapCallback(callback) {\n  var parentPriorityLevel = currentPriorityLevel;\n  return function () {\n    // This is a fork of runWithPriority, inlined for performance.\n    var previousPriorityLevel = currentPriorityLevel;\n    currentPriorityLevel = parentPriorityLevel;\n\n    try {\n      return callback.apply(this, arguments);\n    } finally {\n      currentPriorityLevel = previousPriorityLevel;\n    }\n  };\n}\n\nfunction timeoutForPriorityLevel(priorityLevel) {\n  switch (priorityLevel) {\n    case ImmediatePriority:\n      return IMMEDIATE_PRIORITY_TIMEOUT;\n\n    case UserBlockingPriority:\n      return USER_BLOCKING_PRIORITY;\n\n    case IdlePriority:\n      return IDLE_PRIORITY;\n\n    case LowPriority:\n      return LOW_PRIORITY_TIMEOUT;\n\n    case NormalPriority:\n    default:\n      return NORMAL_PRIORITY_TIMEOUT;\n  }\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n  var currentTime = exports.unstable_now();\n  var startTime;\n  var timeout;\n\n  if (typeof options === 'object' && options !== null) {\n    var delay = options.delay;\n\n    if (typeof delay === 'number' && delay > 0) {\n      startTime = currentTime + delay;\n    } else {\n      startTime = currentTime;\n    }\n\n    timeout = typeof options.timeout === 'number' ? options.timeout : timeoutForPriorityLevel(priorityLevel);\n  } else {\n    timeout = timeoutForPriorityLevel(priorityLevel);\n    startTime = currentTime;\n  }\n\n  var expirationTime = startTime + timeout;\n  var newTask = {\n    id: taskIdCounter++,\n    callback: callback,\n    priorityLevel: priorityLevel,\n    startTime: startTime,\n    expirationTime: expirationTime,\n    sortIndex: -1\n  };\n\n  {\n    newTask.isQueued = false;\n  }\n\n  if (startTime > currentTime) {\n    // This is a delayed task.\n    newTask.sortIndex = startTime;\n    push(timerQueue, newTask);\n\n    if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n      // All tasks are delayed, and this is the task with the earliest delay.\n      if (isHostTimeoutScheduled) {\n        // Cancel an existing timeout.\n        cancelHostTimeout();\n      } else {\n        isHostTimeoutScheduled = true;\n      } // Schedule a timeout.\n\n\n      requestHostTimeout(handleTimeout, startTime - currentTime);\n    }\n  } else {\n    newTask.sortIndex = expirationTime;\n    push(taskQueue, newTask);\n\n    {\n      markTaskStart(newTask, currentTime);\n      newTask.isQueued = true;\n    } // Schedule a host callback, if needed. If we're already performing work,\n    // wait until the next time we yield.\n\n\n    if (!isHostCallbackScheduled && !isPerformingWork) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    }\n  }\n\n  return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n  if (!isHostCallbackScheduled && !isPerformingWork) {\n    isHostCallbackScheduled = true;\n    requestHostCallback(flushWork);\n  }\n}\n\nfunction unstable_getFirstCallbackNode() {\n  return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n  {\n    if (task.isQueued) {\n      var currentTime = exports.unstable_now();\n      markTaskCanceled(task, currentTime);\n      task.isQueued = false;\n    }\n  } // Null out the callback to indicate the task has been canceled. (Can't\n  // remove from the queue because you can't remove arbitrary nodes from an\n  // array based heap, only the first one.)\n\n\n  task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n  return currentPriorityLevel;\n}\n\nfunction unstable_shouldYield() {\n  var currentTime = exports.unstable_now();\n  advanceTimers(currentTime);\n  var firstTask = peek(taskQueue);\n  return firstTask !== currentTask && currentTask !== null && firstTask !== null && firstTask.callback !== null && firstTask.startTime <= currentTime && firstTask.expirationTime < currentTask.expirationTime || shouldYieldToHost();\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling =  {\n  startLoggingProfilingEvents: startLoggingProfilingEvents,\n  stopLoggingProfilingEvents: stopLoggingProfilingEvents,\n  sharedProfilingBuffer: sharedProfilingBuffer\n} ;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_shouldYield = unstable_shouldYield;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n  })();\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/scheduler/cjs/scheduler.development.js?");

/***/ }),

/***/ "./node_modules/scheduler/index.js":
/*!*****************************************!*\
  !*** ./node_modules/scheduler/index.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"./node_modules/scheduler/cjs/scheduler.development.js\");\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/scheduler/index.js?");

/***/ }),

/***/ "./node_modules/scheduler/tracing.js":
/*!*******************************************!*\
  !*** ./node_modules/scheduler/tracing.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/scheduler-tracing.development.js */ \"./node_modules/scheduler/cjs/scheduler-tracing.development.js\");\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/scheduler/tracing.js?");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar isOldIE = function isOldIE() {\n  var memo;\n  return function memorize() {\n    if (typeof memo === 'undefined') {\n      // Test for IE <= 9 as proposed by Browserhacks\n      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n      // Tests for existence of standard globals is to allow style-loader\n      // to operate correctly into non-standard environments\n      // @see https://github.com/webpack-contrib/style-loader/issues/177\n      memo = Boolean(window && document && document.all && !window.atob);\n    }\n\n    return memo;\n  };\n}();\n\nvar getTarget = function getTarget() {\n  var memo = {};\n  return function memorize(target) {\n    if (typeof memo[target] === 'undefined') {\n      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n        try {\n          // This will throw an exception if access to iframe is blocked\n          // due to cross-origin restrictions\n          styleTarget = styleTarget.contentDocument.head;\n        } catch (e) {\n          // istanbul ignore next\n          styleTarget = null;\n        }\n      }\n\n      memo[target] = styleTarget;\n    }\n\n    return memo[target];\n  };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDom.length; i++) {\n    if (stylesInDom[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var index = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3]\n    };\n\n    if (index !== -1) {\n      stylesInDom[index].references++;\n      stylesInDom[index].updater(obj);\n    } else {\n      stylesInDom.push({\n        identifier: identifier,\n        updater: addStyle(obj, options),\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction insertStyleElement(options) {\n  var style = document.createElement('style');\n  var attributes = options.attributes || {};\n\n  if (typeof attributes.nonce === 'undefined') {\n    var nonce =  true ? __webpack_require__.nc : undefined;\n\n    if (nonce) {\n      attributes.nonce = nonce;\n    }\n  }\n\n  Object.keys(attributes).forEach(function (key) {\n    style.setAttribute(key, attributes[key]);\n  });\n\n  if (typeof options.insert === 'function') {\n    options.insert(style);\n  } else {\n    var target = getTarget(options.insert || 'head');\n\n    if (!target) {\n      throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n    }\n\n    target.appendChild(style);\n  }\n\n  return style;\n}\n\nfunction removeStyleElement(style) {\n  // istanbul ignore if\n  if (style.parentNode === null) {\n    return false;\n  }\n\n  style.parentNode.removeChild(style);\n}\n/* istanbul ignore next  */\n\n\nvar replaceText = function replaceText() {\n  var textStore = [];\n  return function replace(index, replacement) {\n    textStore[index] = replacement;\n    return textStore.filter(Boolean).join('\\n');\n  };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n  var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n  /* istanbul ignore if  */\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = replaceText(index, css);\n  } else {\n    var cssNode = document.createTextNode(css);\n    var childNodes = style.childNodes;\n\n    if (childNodes[index]) {\n      style.removeChild(childNodes[index]);\n    }\n\n    if (childNodes.length) {\n      style.insertBefore(cssNode, childNodes[index]);\n    } else {\n      style.appendChild(cssNode);\n    }\n  }\n}\n\nfunction applyToTag(style, options, obj) {\n  var css = obj.css;\n  var media = obj.media;\n  var sourceMap = obj.sourceMap;\n\n  if (media) {\n    style.setAttribute('media', media);\n  } else {\n    style.removeAttribute('media');\n  }\n\n  if (sourceMap && typeof btoa !== 'undefined') {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    while (style.firstChild) {\n      style.removeChild(style.firstChild);\n    }\n\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n  var style;\n  var update;\n  var remove;\n\n  if (options.singleton) {\n    var styleIndex = singletonCounter++;\n    style = singleton || (singleton = insertStyleElement(options));\n    update = applyToSingletonTag.bind(null, style, styleIndex, false);\n    remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n  } else {\n    style = insertStyleElement(options);\n    update = applyToTag.bind(null, style, options);\n\n    remove = function remove() {\n      removeStyleElement(style);\n    };\n  }\n\n  update(obj);\n  return function updateStyle(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n        return;\n      }\n\n      update(obj = newObj);\n    } else {\n      remove();\n    }\n  };\n}\n\nmodule.exports = function (list, options) {\n  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n  // tags it will allow on a page\n\n  if (!options.singleton && typeof options.singleton !== 'boolean') {\n    options.singleton = isOldIE();\n  }\n\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    if (Object.prototype.toString.call(newList) !== '[object Array]') {\n      return;\n    }\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDom[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDom[_index].references === 0) {\n        stylesInDom[_index].updater();\n\n        stylesInDom.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};\n\n//# sourceURL=webpack://opencleanVis/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");

/***/ }),

/***/ "./node_modules/tiny-warning/dist/tiny-warning.esm.js":
/*!************************************************************!*\
  !*** ./node_modules/tiny-warning/dist/tiny-warning.esm.js ***!
  \************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\nvar isProduction = \"development\" === 'production';\nfunction warning(condition, message) {\n  if (!isProduction) {\n    if (condition) {\n      return;\n    }\n\n    var text = \"Warning: \" + message;\n\n    if (typeof console !== 'undefined') {\n      console.warn(text);\n    }\n\n    try {\n      throw Error(text);\n    } catch (x) {}\n  }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (warning);\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/tiny-warning/dist/tiny-warning.esm.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/bbox.js":
/*!**************************************************!*\
  !*** ./node_modules/topojson-client/src/bbox.js ***!
  \**************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transform.js */ \"./node_modules/topojson-client/src/transform.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(topology) {\n  var t = Object(_transform_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(topology.transform), key,\n      x0 = Infinity, y0 = x0, x1 = -x0, y1 = -x0;\n\n  function bboxPoint(p) {\n    p = t(p);\n    if (p[0] < x0) x0 = p[0];\n    if (p[0] > x1) x1 = p[0];\n    if (p[1] < y0) y0 = p[1];\n    if (p[1] > y1) y1 = p[1];\n  }\n\n  function bboxGeometry(o) {\n    switch (o.type) {\n      case \"GeometryCollection\": o.geometries.forEach(bboxGeometry); break;\n      case \"Point\": bboxPoint(o.coordinates); break;\n      case \"MultiPoint\": o.coordinates.forEach(bboxPoint); break;\n    }\n  }\n\n  topology.arcs.forEach(function(arc) {\n    var i = -1, n = arc.length, p;\n    while (++i < n) {\n      p = t(arc[i], i);\n      if (p[0] < x0) x0 = p[0];\n      if (p[0] > x1) x1 = p[0];\n      if (p[1] < y0) y0 = p[1];\n      if (p[1] > y1) y1 = p[1];\n    }\n  });\n\n  for (key in topology.objects) {\n    bboxGeometry(topology.objects[key]);\n  }\n\n  return [x0, y0, x1, y1];\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/bbox.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/bisect.js":
/*!****************************************************!*\
  !*** ./node_modules/topojson-client/src/bisect.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(a, x) {\n  var lo = 0, hi = a.length;\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n    if (a[mid] < x) lo = mid + 1;\n    else hi = mid;\n  }\n  return lo;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/bisect.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/feature.js":
/*!*****************************************************!*\
  !*** ./node_modules/topojson-client/src/feature.js ***!
  \*****************************************************/
/*! exports provided: default, object */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"object\", function() { return object; });\n/* harmony import */ var _reverse_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reverse.js */ \"./node_modules/topojson-client/src/reverse.js\");\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.js */ \"./node_modules/topojson-client/src/transform.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(topology, o) {\n  if (typeof o === \"string\") o = topology.objects[o];\n  return o.type === \"GeometryCollection\"\n      ? {type: \"FeatureCollection\", features: o.geometries.map(function(o) { return feature(topology, o); })}\n      : feature(topology, o);\n});\n\nfunction feature(topology, o) {\n  var id = o.id,\n      bbox = o.bbox,\n      properties = o.properties == null ? {} : o.properties,\n      geometry = object(topology, o);\n  return id == null && bbox == null ? {type: \"Feature\", properties: properties, geometry: geometry}\n      : bbox == null ? {type: \"Feature\", id: id, properties: properties, geometry: geometry}\n      : {type: \"Feature\", id: id, bbox: bbox, properties: properties, geometry: geometry};\n}\n\nfunction object(topology, o) {\n  var transformPoint = Object(_transform_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(topology.transform),\n      arcs = topology.arcs;\n\n  function arc(i, points) {\n    if (points.length) points.pop();\n    for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {\n      points.push(transformPoint(a[k], k));\n    }\n    if (i < 0) Object(_reverse_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(points, n);\n  }\n\n  function point(p) {\n    return transformPoint(p);\n  }\n\n  function line(arcs) {\n    var points = [];\n    for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points);\n    if (points.length < 2) points.push(points[0]); // This should never happen per the specification.\n    return points;\n  }\n\n  function ring(arcs) {\n    var points = line(arcs);\n    while (points.length < 4) points.push(points[0]); // This may happen if an arc has only two points.\n    return points;\n  }\n\n  function polygon(arcs) {\n    return arcs.map(ring);\n  }\n\n  function geometry(o) {\n    var type = o.type, coordinates;\n    switch (type) {\n      case \"GeometryCollection\": return {type: type, geometries: o.geometries.map(geometry)};\n      case \"Point\": coordinates = point(o.coordinates); break;\n      case \"MultiPoint\": coordinates = o.coordinates.map(point); break;\n      case \"LineString\": coordinates = line(o.arcs); break;\n      case \"MultiLineString\": coordinates = o.arcs.map(line); break;\n      case \"Polygon\": coordinates = polygon(o.arcs); break;\n      case \"MultiPolygon\": coordinates = o.arcs.map(polygon); break;\n      default: return null;\n    }\n    return {type: type, coordinates: coordinates};\n  }\n\n  return geometry(o);\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/feature.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/identity.js":
/*!******************************************************!*\
  !*** ./node_modules/topojson-client/src/identity.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(x) {\n  return x;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/identity.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/index.js":
/*!***************************************************!*\
  !*** ./node_modules/topojson-client/src/index.js ***!
  \***************************************************/
/*! exports provided: bbox, feature, mesh, meshArcs, merge, mergeArcs, neighbors, quantize, transform, untransform */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bbox_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bbox.js */ \"./node_modules/topojson-client/src/bbox.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bbox\", function() { return _bbox_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _feature_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./feature.js */ \"./node_modules/topojson-client/src/feature.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"feature\", function() { return _feature_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _mesh_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mesh.js */ \"./node_modules/topojson-client/src/mesh.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mesh\", function() { return _mesh_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"meshArcs\", function() { return _mesh_js__WEBPACK_IMPORTED_MODULE_2__[\"meshArcs\"]; });\n\n/* harmony import */ var _merge_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./merge.js */ \"./node_modules/topojson-client/src/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeArcs\", function() { return _merge_js__WEBPACK_IMPORTED_MODULE_3__[\"mergeArcs\"]; });\n\n/* harmony import */ var _neighbors_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./neighbors.js */ \"./node_modules/topojson-client/src/neighbors.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"neighbors\", function() { return _neighbors_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]; });\n\n/* harmony import */ var _quantize_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./quantize.js */ \"./node_modules/topojson-client/src/quantize.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantize\", function() { return _quantize_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]; });\n\n/* harmony import */ var _transform_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./transform.js */ \"./node_modules/topojson-client/src/transform.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transform\", function() { return _transform_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]; });\n\n/* harmony import */ var _untransform_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./untransform.js */ \"./node_modules/topojson-client/src/untransform.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"untransform\", function() { return _untransform_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/index.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/merge.js":
/*!***************************************************!*\
  !*** ./node_modules/topojson-client/src/merge.js ***!
  \***************************************************/
/*! exports provided: default, mergeArcs */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeArcs\", function() { return mergeArcs; });\n/* harmony import */ var _feature_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./feature.js */ \"./node_modules/topojson-client/src/feature.js\");\n/* harmony import */ var _stitch_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stitch.js */ \"./node_modules/topojson-client/src/stitch.js\");\n\n\n\nfunction planarRingArea(ring) {\n  var i = -1, n = ring.length, a, b = ring[n - 1], area = 0;\n  while (++i < n) a = b, b = ring[i], area += a[0] * b[1] - a[1] * b[0];\n  return Math.abs(area); // Note: doubled area!\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(topology) {\n  return Object(_feature_js__WEBPACK_IMPORTED_MODULE_0__[\"object\"])(topology, mergeArcs.apply(this, arguments));\n});\n\nfunction mergeArcs(topology, objects) {\n  var polygonsByArc = {},\n      polygons = [],\n      groups = [];\n\n  objects.forEach(geometry);\n\n  function geometry(o) {\n    switch (o.type) {\n      case \"GeometryCollection\": o.geometries.forEach(geometry); break;\n      case \"Polygon\": extract(o.arcs); break;\n      case \"MultiPolygon\": o.arcs.forEach(extract); break;\n    }\n  }\n\n  function extract(polygon) {\n    polygon.forEach(function(ring) {\n      ring.forEach(function(arc) {\n        (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);\n      });\n    });\n    polygons.push(polygon);\n  }\n\n  function area(ring) {\n    return planarRingArea(Object(_feature_js__WEBPACK_IMPORTED_MODULE_0__[\"object\"])(topology, {type: \"Polygon\", arcs: [ring]}).coordinates[0]);\n  }\n\n  polygons.forEach(function(polygon) {\n    if (!polygon._) {\n      var group = [],\n          neighbors = [polygon];\n      polygon._ = 1;\n      groups.push(group);\n      while (polygon = neighbors.pop()) {\n        group.push(polygon);\n        polygon.forEach(function(ring) {\n          ring.forEach(function(arc) {\n            polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) {\n              if (!polygon._) {\n                polygon._ = 1;\n                neighbors.push(polygon);\n              }\n            });\n          });\n        });\n      }\n    }\n  });\n\n  polygons.forEach(function(polygon) {\n    delete polygon._;\n  });\n\n  return {\n    type: \"MultiPolygon\",\n    arcs: groups.map(function(polygons) {\n      var arcs = [], n;\n\n      // Extract the exterior (unique) arcs.\n      polygons.forEach(function(polygon) {\n        polygon.forEach(function(ring) {\n          ring.forEach(function(arc) {\n            if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {\n              arcs.push(arc);\n            }\n          });\n        });\n      });\n\n      // Stitch the arcs into one or more rings.\n      arcs = Object(_stitch_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(topology, arcs);\n\n      // If more than one ring is returned,\n      // at most one of these rings can be the exterior;\n      // choose the one with the greatest absolute area.\n      if ((n = arcs.length) > 1) {\n        for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {\n          if ((ki = area(arcs[i])) > k) {\n            t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;\n          }\n        }\n      }\n\n      return arcs;\n    }).filter(function(arcs) {\n      return arcs.length > 0;\n    })\n  };\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/merge.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/mesh.js":
/*!**************************************************!*\
  !*** ./node_modules/topojson-client/src/mesh.js ***!
  \**************************************************/
/*! exports provided: default, meshArcs */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"meshArcs\", function() { return meshArcs; });\n/* harmony import */ var _feature_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./feature.js */ \"./node_modules/topojson-client/src/feature.js\");\n/* harmony import */ var _stitch_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stitch.js */ \"./node_modules/topojson-client/src/stitch.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(topology) {\n  return Object(_feature_js__WEBPACK_IMPORTED_MODULE_0__[\"object\"])(topology, meshArcs.apply(this, arguments));\n});\n\nfunction meshArcs(topology, object, filter) {\n  var arcs, i, n;\n  if (arguments.length > 1) arcs = extractArcs(topology, object, filter);\n  else for (i = 0, arcs = new Array(n = topology.arcs.length); i < n; ++i) arcs[i] = i;\n  return {type: \"MultiLineString\", arcs: Object(_stitch_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(topology, arcs)};\n}\n\nfunction extractArcs(topology, object, filter) {\n  var arcs = [],\n      geomsByArc = [],\n      geom;\n\n  function extract0(i) {\n    var j = i < 0 ? ~i : i;\n    (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom});\n  }\n\n  function extract1(arcs) {\n    arcs.forEach(extract0);\n  }\n\n  function extract2(arcs) {\n    arcs.forEach(extract1);\n  }\n\n  function extract3(arcs) {\n    arcs.forEach(extract2);\n  }\n\n  function geometry(o) {\n    switch (geom = o, o.type) {\n      case \"GeometryCollection\": o.geometries.forEach(geometry); break;\n      case \"LineString\": extract1(o.arcs); break;\n      case \"MultiLineString\": case \"Polygon\": extract2(o.arcs); break;\n      case \"MultiPolygon\": extract3(o.arcs); break;\n    }\n  }\n\n  geometry(object);\n\n  geomsByArc.forEach(filter == null\n      ? function(geoms) { arcs.push(geoms[0].i); }\n      : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); });\n\n  return arcs;\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/mesh.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/neighbors.js":
/*!*******************************************************!*\
  !*** ./node_modules/topojson-client/src/neighbors.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bisect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bisect.js */ \"./node_modules/topojson-client/src/bisect.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(objects) {\n  var indexesByArc = {}, // arc index -> array of object indexes\n      neighbors = objects.map(function() { return []; });\n\n  function line(arcs, i) {\n    arcs.forEach(function(a) {\n      if (a < 0) a = ~a;\n      var o = indexesByArc[a];\n      if (o) o.push(i);\n      else indexesByArc[a] = [i];\n    });\n  }\n\n  function polygon(arcs, i) {\n    arcs.forEach(function(arc) { line(arc, i); });\n  }\n\n  function geometry(o, i) {\n    if (o.type === \"GeometryCollection\") o.geometries.forEach(function(o) { geometry(o, i); });\n    else if (o.type in geometryType) geometryType[o.type](o.arcs, i);\n  }\n\n  var geometryType = {\n    LineString: line,\n    MultiLineString: polygon,\n    Polygon: polygon,\n    MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); }\n  };\n\n  objects.forEach(geometry);\n\n  for (var i in indexesByArc) {\n    for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {\n      for (var k = j + 1; k < m; ++k) {\n        var ij = indexes[j], ik = indexes[k], n;\n        if ((n = neighbors[ij])[i = Object(_bisect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(n, ik)] !== ik) n.splice(i, 0, ik);\n        if ((n = neighbors[ik])[i = Object(_bisect_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(n, ij)] !== ij) n.splice(i, 0, ij);\n      }\n    }\n  }\n\n  return neighbors;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/neighbors.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/quantize.js":
/*!******************************************************!*\
  !*** ./node_modules/topojson-client/src/quantize.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _bbox_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bbox.js */ \"./node_modules/topojson-client/src/bbox.js\");\n/* harmony import */ var _untransform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./untransform.js */ \"./node_modules/topojson-client/src/untransform.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(topology, transform) {\n  if (topology.transform) throw new Error(\"already quantized\");\n\n  if (!transform || !transform.scale) {\n    if (!((n = Math.floor(transform)) >= 2)) throw new Error(\"n must be ≥2\");\n    box = topology.bbox || Object(_bbox_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(topology);\n    var x0 = box[0], y0 = box[1], x1 = box[2], y1 = box[3], n;\n    transform = {scale: [x1 - x0 ? (x1 - x0) / (n - 1) : 1, y1 - y0 ? (y1 - y0) / (n - 1) : 1], translate: [x0, y0]};\n  } else {\n    box = topology.bbox;\n  }\n\n  var t = Object(_untransform_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(transform), box, key, inputs = topology.objects, outputs = {};\n\n  function quantizePoint(point) {\n    return t(point);\n  }\n\n  function quantizeGeometry(input) {\n    var output;\n    switch (input.type) {\n      case \"GeometryCollection\": output = {type: \"GeometryCollection\", geometries: input.geometries.map(quantizeGeometry)}; break;\n      case \"Point\": output = {type: \"Point\", coordinates: quantizePoint(input.coordinates)}; break;\n      case \"MultiPoint\": output = {type: \"MultiPoint\", coordinates: input.coordinates.map(quantizePoint)}; break;\n      default: return input;\n    }\n    if (input.id != null) output.id = input.id;\n    if (input.bbox != null) output.bbox = input.bbox;\n    if (input.properties != null) output.properties = input.properties;\n    return output;\n  }\n\n  function quantizeArc(input) {\n    var i = 0, j = 1, n = input.length, p, output = new Array(n); // pessimistic\n    output[0] = t(input[0], 0);\n    while (++i < n) if ((p = t(input[i], i))[0] || p[1]) output[j++] = p; // non-coincident points\n    if (j === 1) output[j++] = [0, 0]; // an arc must have at least two points\n    output.length = j;\n    return output;\n  }\n\n  for (key in inputs) outputs[key] = quantizeGeometry(inputs[key]);\n\n  return {\n    type: \"Topology\",\n    bbox: box,\n    transform: transform,\n    objects: outputs,\n    arcs: topology.arcs.map(quantizeArc)\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/quantize.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/reverse.js":
/*!*****************************************************!*\
  !*** ./node_modules/topojson-client/src/reverse.js ***!
  \*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(array, n) {\n  var t, j = array.length, i = j - n;\n  while (i < --j) t = array[i], array[i++] = array[j], array[j] = t;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/reverse.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/stitch.js":
/*!****************************************************!*\
  !*** ./node_modules/topojson-client/src/stitch.js ***!
  \****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(topology, arcs) {\n  var stitchedArcs = {},\n      fragmentByStart = {},\n      fragmentByEnd = {},\n      fragments = [],\n      emptyIndex = -1;\n\n  // Stitch empty arcs first, since they may be subsumed by other arcs.\n  arcs.forEach(function(i, j) {\n    var arc = topology.arcs[i < 0 ? ~i : i], t;\n    if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n      t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n    }\n  });\n\n  arcs.forEach(function(i) {\n    var e = ends(i),\n        start = e[0],\n        end = e[1],\n        f, g;\n\n    if (f = fragmentByEnd[start]) {\n      delete fragmentByEnd[f.end];\n      f.push(i);\n      f.end = end;\n      if (g = fragmentByStart[end]) {\n        delete fragmentByStart[g.start];\n        var fg = g === f ? f : f.concat(g);\n        fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n      } else {\n        fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n      }\n    } else if (f = fragmentByStart[end]) {\n      delete fragmentByStart[f.start];\n      f.unshift(i);\n      f.start = start;\n      if (g = fragmentByEnd[start]) {\n        delete fragmentByEnd[g.end];\n        var gf = g === f ? f : g.concat(f);\n        fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n      } else {\n        fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n      }\n    } else {\n      f = [i];\n      fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n    }\n  });\n\n  function ends(i) {\n    var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1;\n    if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; });\n    else p1 = arc[arc.length - 1];\n    return i < 0 ? [p1, p0] : [p0, p1];\n  }\n\n  function flush(fragmentByEnd, fragmentByStart) {\n    for (var k in fragmentByEnd) {\n      var f = fragmentByEnd[k];\n      delete fragmentByStart[f.start];\n      delete f.start;\n      delete f.end;\n      f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; });\n      fragments.push(f);\n    }\n  }\n\n  flush(fragmentByEnd, fragmentByStart);\n  flush(fragmentByStart, fragmentByEnd);\n  arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); });\n\n  return fragments;\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/stitch.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/transform.js":
/*!*******************************************************!*\
  !*** ./node_modules/topojson-client/src/transform.js ***!
  \*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/topojson-client/src/identity.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(transform) {\n  if (transform == null) return _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n  var x0,\n      y0,\n      kx = transform.scale[0],\n      ky = transform.scale[1],\n      dx = transform.translate[0],\n      dy = transform.translate[1];\n  return function(input, i) {\n    if (!i) x0 = y0 = 0;\n    var j = 2, n = input.length, output = new Array(n);\n    output[0] = (x0 += input[0]) * kx + dx;\n    output[1] = (y0 += input[1]) * ky + dy;\n    while (j < n) output[j] = input[j], ++j;\n    return output;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/transform.js?");

/***/ }),

/***/ "./node_modules/topojson-client/src/untransform.js":
/*!*********************************************************!*\
  !*** ./node_modules/topojson-client/src/untransform.js ***!
  \*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"./node_modules/topojson-client/src/identity.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(transform) {\n  if (transform == null) return _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n  var x0,\n      y0,\n      kx = transform.scale[0],\n      ky = transform.scale[1],\n      dx = transform.translate[0],\n      dy = transform.translate[1];\n  return function(input, i) {\n    if (!i) x0 = y0 = 0;\n    var j = 2,\n        n = input.length,\n        output = new Array(n),\n        x1 = Math.round((input[0] - dx) / kx),\n        y1 = Math.round((input[1] - dy) / ky);\n    output[0] = x1 - x0, x0 = x1;\n    output[1] = y1 - y0, y0 = y1;\n    while (j < n) output[j] = input[j], ++j;\n    return output;\n  };\n});\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/topojson-client/src/untransform.js?");

/***/ }),

/***/ "./node_modules/vega-canvas/index.browser.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-canvas/index.browser.js ***!
  \***************************************************/
/*! exports provided: domCanvas, canvas, image */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _src_domCanvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/domCanvas */ \"./node_modules/vega-canvas/src/domCanvas.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"domCanvas\", function() { return _src_domCanvas__WEBPACK_IMPORTED_MODULE_0__[\"domCanvas\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"canvas\", function() { return _src_domCanvas__WEBPACK_IMPORTED_MODULE_0__[\"domCanvas\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"image\", function() { return _src_domCanvas__WEBPACK_IMPORTED_MODULE_0__[\"domImage\"]; });\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-canvas/index.browser.js?");

/***/ }),

/***/ "./node_modules/vega-canvas/src/domCanvas.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-canvas/src/domCanvas.js ***!
  \***************************************************/
/*! exports provided: domCanvas, domImage */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domCanvas\", function() { return domCanvas; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domImage\", function() { return domImage; });\nfunction domCanvas(w, h) {\n  if (typeof document !== 'undefined' && document.createElement) {\n    const c = document.createElement('canvas');\n    if (c && c.getContext) {\n      c.width = w;\n      c.height = h;\n      return c;\n    }\n  }\n  return null;\n}\n\nconst domImage = () =>\n  typeof Image !== 'undefined' ? Image : null;\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-canvas/src/domCanvas.js?");

/***/ }),

/***/ "./node_modules/vega-crossfilter/build/vega-crossfilter.module.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-crossfilter/build/vega-crossfilter.module.js ***!
  \************************************************************************/
/*! exports provided: crossfilter, resolvefilter */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"crossfilter\", function() { return CrossFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resolvefilter\", function() { return ResolveFilter; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\nconst array8 = n => new Uint8Array(n);\nconst array16 = n => new Uint16Array(n);\nconst array32 = n => new Uint32Array(n);\n\n/**\n * Maintains CrossFilter state.\n */\n\nfunction Bitmaps() {\n  let width = 8,\n      data = [],\n      seen = array32(0),\n      curr = array(0, width),\n      prev = array(0, width);\n  return {\n    data: () => data,\n    seen: () => seen = lengthen(seen, data.length),\n\n    add(array) {\n      for (let i = 0, j = data.length, n = array.length, t; i < n; ++i) {\n        t = array[i];\n        t._index = j++;\n        data.push(t);\n      }\n    },\n\n    remove(num, map) {\n      // map: index -> boolean (true => remove)\n      const n = data.length,\n            copy = Array(n - num),\n            reindex = data; // reuse old data array for index map\n\n      let t, i, j; // seek forward to first removal\n\n      for (i = 0; !map[i] && i < n; ++i) {\n        copy[i] = data[i];\n        reindex[i] = i;\n      } // condense arrays\n\n\n      for (j = i; i < n; ++i) {\n        t = data[i];\n\n        if (!map[i]) {\n          reindex[i] = j;\n          curr[j] = curr[i];\n          prev[j] = prev[i];\n          copy[j] = t;\n          t._index = j++;\n        } else {\n          reindex[i] = -1;\n        }\n\n        curr[i] = 0; // clear unused bits\n      }\n\n      data = copy;\n      return reindex;\n    },\n\n    size: () => data.length,\n    curr: () => curr,\n    prev: () => prev,\n    reset: k => prev[k] = curr[k],\n    all: () => width < 0x101 ? 0xff : width < 0x10001 ? 0xffff : 0xffffffff,\n\n    set(k, one) {\n      curr[k] |= one;\n    },\n\n    clear(k, one) {\n      curr[k] &= ~one;\n    },\n\n    resize(n, m) {\n      const k = curr.length;\n\n      if (n > k || m > width) {\n        width = Math.max(m, width);\n        curr = array(n, width, curr);\n        prev = array(n, width);\n      }\n    }\n\n  };\n}\n\nfunction lengthen(array, length, copy) {\n  if (array.length >= length) return array;\n  copy = copy || new array.constructor(length);\n  copy.set(array);\n  return copy;\n}\n\nfunction array(n, m, array) {\n  const copy = (m < 0x101 ? array8 : m < 0x10001 ? array16 : array32)(n);\n  if (array) copy.set(array);\n  return copy;\n}\n\nfunction Dimension (index, i, query) {\n  const bit = 1 << i;\n  return {\n    one: bit,\n    zero: ~bit,\n    range: query.slice(),\n    bisect: index.bisect,\n    index: index.index,\n    size: index.size,\n\n    onAdd(added, curr) {\n      const dim = this,\n            range = dim.bisect(dim.range, added.value),\n            idx = added.index,\n            lo = range[0],\n            hi = range[1],\n            n1 = idx.length;\n      let i;\n\n      for (i = 0; i < lo; ++i) curr[idx[i]] |= bit;\n\n      for (i = hi; i < n1; ++i) curr[idx[i]] |= bit;\n\n      return dim;\n    }\n\n  };\n}\n\n/**\n * Maintains a list of values, sorted by key.\n */\n\nfunction SortedIndex() {\n  let index = array32(0),\n      value = [],\n      size = 0;\n\n  function insert(key, data, base) {\n    if (!data.length) return [];\n    const n0 = size,\n          n1 = data.length,\n          addi = array32(n1);\n    let addv = Array(n1),\n        oldv,\n        oldi,\n        i;\n\n    for (i = 0; i < n1; ++i) {\n      addv[i] = key(data[i]);\n      addi[i] = i;\n    }\n\n    addv = sort(addv, addi);\n\n    if (n0) {\n      oldv = value;\n      oldi = index;\n      value = Array(n0 + n1);\n      index = array32(n0 + n1);\n      merge(base, oldv, oldi, n0, addv, addi, n1, value, index);\n    } else {\n      if (base > 0) for (i = 0; i < n1; ++i) {\n        addi[i] += base;\n      }\n      value = addv;\n      index = addi;\n    }\n\n    size = n0 + n1;\n    return {\n      index: addi,\n      value: addv\n    };\n  }\n\n  function remove(num, map) {\n    // map: index -> remove\n    const n = size;\n    let idx, i, j; // seek forward to first removal\n\n    for (i = 0; !map[index[i]] && i < n; ++i); // condense index and value arrays\n\n\n    for (j = i; i < n; ++i) {\n      if (!map[idx = index[i]]) {\n        index[j] = idx;\n        value[j] = value[i];\n        ++j;\n      }\n    }\n\n    size = n - num;\n  }\n\n  function reindex(map) {\n    for (let i = 0, n = size; i < n; ++i) {\n      index[i] = map[index[i]];\n    }\n  }\n\n  function bisect(range, array) {\n    let n;\n\n    if (array) {\n      n = array.length;\n    } else {\n      array = value;\n      n = size;\n    }\n\n    return [Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisectLeft\"])(array, range[0], 0, n), Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"bisectRight\"])(array, range[1], 0, n)];\n  }\n\n  return {\n    insert: insert,\n    remove: remove,\n    bisect: bisect,\n    reindex: reindex,\n    index: () => index,\n    size: () => size\n  };\n}\n\nfunction sort(values, index) {\n  values.sort.call(index, (a, b) => {\n    const x = values[a],\n          y = values[b];\n    return x < y ? -1 : x > y ? 1 : 0;\n  });\n  return Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"permute\"])(values, index);\n}\n\nfunction merge(base, value0, index0, n0, value1, index1, n1, value, index) {\n  let i0 = 0,\n      i1 = 0,\n      i;\n\n  for (i = 0; i0 < n0 && i1 < n1; ++i) {\n    if (value0[i0] < value1[i1]) {\n      value[i] = value0[i0];\n      index[i] = index0[i0++];\n    } else {\n      value[i] = value1[i1];\n      index[i] = index1[i1++] + base;\n    }\n  }\n\n  for (; i0 < n0; ++i0, ++i) {\n    value[i] = value0[i0];\n    index[i] = index0[i0];\n  }\n\n  for (; i1 < n1; ++i1, ++i) {\n    value[i] = value1[i1];\n    index[i] = index1[i1] + base;\n  }\n}\n\n/**\n * An indexed multi-dimensional filter.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *>} params.fields - An array of dimension accessors to filter.\n * @param {Array} params.query - An array of per-dimension range queries.\n */\n\nfunction CrossFilter(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, Bitmaps(), params);\n  this._indices = null;\n  this._dims = null;\n}\nCrossFilter.Definition = {\n  'type': 'CrossFilter',\n  'metadata': {},\n  'params': [{\n    'name': 'fields',\n    'type': 'field',\n    'array': true,\n    'required': true\n  }, {\n    'name': 'query',\n    'type': 'array',\n    'array': true,\n    'required': true,\n    'content': {\n      'type': 'number',\n      'array': true,\n      'length': 2\n    }\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(CrossFilter, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    if (!this._dims) {\n      return this.init(_, pulse);\n    } else {\n      var init = _.modified('fields') || _.fields.some(f => pulse.modified(f.fields));\n\n      return init ? this.reinit(_, pulse) : this.eval(_, pulse);\n    }\n  },\n\n  init(_, pulse) {\n    const fields = _.fields,\n          query = _.query,\n          indices = this._indices = {},\n          dims = this._dims = [],\n          m = query.length;\n    let i = 0,\n        key,\n        index; // instantiate indices and dimensions\n\n    for (; i < m; ++i) {\n      key = fields[i].fname;\n      index = indices[key] || (indices[key] = SortedIndex());\n      dims.push(Dimension(index, i, query[i]));\n    }\n\n    return this.eval(_, pulse);\n  },\n\n  reinit(_, pulse) {\n    const output = pulse.materialize().fork(),\n          fields = _.fields,\n          query = _.query,\n          indices = this._indices,\n          dims = this._dims,\n          bits = this.value,\n          curr = bits.curr(),\n          prev = bits.prev(),\n          all = bits.all(),\n          out = output.rem = output.add,\n          mod = output.mod,\n          m = query.length,\n          adds = {};\n    let add, index, key, mods, remMap, modMap, i, n, f; // set prev to current state\n\n    prev.set(curr); // if pulse has remove tuples, process them first\n\n    if (pulse.rem.length) {\n      remMap = this.remove(_, pulse, output);\n    } // if pulse has added tuples, add them to state\n\n\n    if (pulse.add.length) {\n      bits.add(pulse.add);\n    } // if pulse has modified tuples, create an index map\n\n\n    if (pulse.mod.length) {\n      modMap = {};\n\n      for (mods = pulse.mod, i = 0, n = mods.length; i < n; ++i) {\n        modMap[mods[i]._index] = 1;\n      }\n    } // re-initialize indices as needed, update curr bitmap\n\n\n    for (i = 0; i < m; ++i) {\n      f = fields[i];\n\n      if (!dims[i] || _.modified('fields', i) || pulse.modified(f.fields)) {\n        key = f.fname;\n\n        if (!(add = adds[key])) {\n          indices[key] = index = SortedIndex();\n          adds[key] = add = index.insert(f, pulse.source, 0);\n        }\n\n        dims[i] = Dimension(index, i, query[i]).onAdd(add, curr);\n      }\n    } // visit each tuple\n    // if filter state changed, push index to add/rem\n    // else if in mod and passes a filter, push index to mod\n\n\n    for (i = 0, n = bits.data().length; i < n; ++i) {\n      if (remMap[i]) {\n        // skip if removed tuple\n        continue;\n      } else if (prev[i] !== curr[i]) {\n        // add if state changed\n        out.push(i);\n      } else if (modMap[i] && curr[i] !== all) {\n        // otherwise, pass mods through\n        mod.push(i);\n      }\n    }\n\n    bits.mask = (1 << m) - 1;\n    return output;\n  },\n\n  eval(_, pulse) {\n    const output = pulse.materialize().fork(),\n          m = this._dims.length;\n    let mask = 0;\n\n    if (pulse.rem.length) {\n      this.remove(_, pulse, output);\n      mask |= (1 << m) - 1;\n    }\n\n    if (_.modified('query') && !_.modified('fields')) {\n      mask |= this.update(_, pulse, output);\n    }\n\n    if (pulse.add.length) {\n      this.insert(_, pulse, output);\n      mask |= (1 << m) - 1;\n    }\n\n    if (pulse.mod.length) {\n      this.modify(pulse, output);\n      mask |= (1 << m) - 1;\n    }\n\n    this.value.mask = mask;\n    return output;\n  },\n\n  insert(_, pulse, output) {\n    const tuples = pulse.add,\n          bits = this.value,\n          dims = this._dims,\n          indices = this._indices,\n          fields = _.fields,\n          adds = {},\n          out = output.add,\n          n = bits.size() + tuples.length,\n          m = dims.length;\n    let k = bits.size(),\n        j,\n        key,\n        add; // resize bitmaps and add tuples as needed\n\n    bits.resize(n, m);\n    bits.add(tuples);\n    const curr = bits.curr(),\n          prev = bits.prev(),\n          all = bits.all(); // add to dimensional indices\n\n    for (j = 0; j < m; ++j) {\n      key = fields[j].fname;\n      add = adds[key] || (adds[key] = indices[key].insert(fields[j], tuples, k));\n      dims[j].onAdd(add, curr);\n    } // set previous filters, output if passes at least one filter\n\n\n    for (; k < n; ++k) {\n      prev[k] = all;\n      if (curr[k] !== all) out.push(k);\n    }\n  },\n\n  modify(pulse, output) {\n    const out = output.mod,\n          bits = this.value,\n          curr = bits.curr(),\n          all = bits.all(),\n          tuples = pulse.mod;\n    let i, n, k;\n\n    for (i = 0, n = tuples.length; i < n; ++i) {\n      k = tuples[i]._index;\n      if (curr[k] !== all) out.push(k);\n    }\n  },\n\n  remove(_, pulse, output) {\n    const indices = this._indices,\n          bits = this.value,\n          curr = bits.curr(),\n          prev = bits.prev(),\n          all = bits.all(),\n          map = {},\n          out = output.rem,\n          tuples = pulse.rem;\n    let i, n, k, f; // process tuples, output if passes at least one filter\n\n    for (i = 0, n = tuples.length; i < n; ++i) {\n      k = tuples[i]._index;\n      map[k] = 1; // build index map\n\n      prev[k] = f = curr[k];\n      curr[k] = all;\n      if (f !== all) out.push(k);\n    } // remove from dimensional indices\n\n\n    for (k in indices) {\n      indices[k].remove(n, map);\n    }\n\n    this.reindex(pulse, n, map);\n    return map;\n  },\n\n  // reindex filters and indices after propagation completes\n  reindex(pulse, num, map) {\n    const indices = this._indices,\n          bits = this.value;\n    pulse.runAfter(() => {\n      const indexMap = bits.remove(num, map);\n\n      for (const key in indices) indices[key].reindex(indexMap);\n    });\n  },\n\n  update(_, pulse, output) {\n    const dims = this._dims,\n          query = _.query,\n          stamp = pulse.stamp,\n          m = dims.length;\n    let mask = 0,\n        i,\n        q; // survey how many queries have changed\n\n    output.filters = 0;\n\n    for (q = 0; q < m; ++q) {\n      if (_.modified('query', q)) {\n        i = q;\n        ++mask;\n      }\n    }\n\n    if (mask === 1) {\n      // only one query changed, use more efficient update\n      mask = dims[i].one;\n      this.incrementOne(dims[i], query[i], output.add, output.rem);\n    } else {\n      // multiple queries changed, perform full record keeping\n      for (q = 0, mask = 0; q < m; ++q) {\n        if (!_.modified('query', q)) continue;\n        mask |= dims[q].one;\n        this.incrementAll(dims[q], query[q], stamp, output.add);\n        output.rem = output.add; // duplicate add/rem for downstream resolve\n      }\n    }\n\n    return mask;\n  },\n\n  incrementAll(dim, query, stamp, out) {\n    const bits = this.value,\n          seen = bits.seen(),\n          curr = bits.curr(),\n          prev = bits.prev(),\n          index = dim.index(),\n          old = dim.bisect(dim.range),\n          range = dim.bisect(query),\n          lo1 = range[0],\n          hi1 = range[1],\n          lo0 = old[0],\n          hi0 = old[1],\n          one = dim.one;\n    let i, j, k; // Fast incremental update based on previous lo index.\n\n    if (lo1 < lo0) {\n      for (i = lo1, j = Math.min(lo0, hi1); i < j; ++i) {\n        k = index[i];\n\n        if (seen[k] !== stamp) {\n          prev[k] = curr[k];\n          seen[k] = stamp;\n          out.push(k);\n        }\n\n        curr[k] ^= one;\n      }\n    } else if (lo1 > lo0) {\n      for (i = lo0, j = Math.min(lo1, hi0); i < j; ++i) {\n        k = index[i];\n\n        if (seen[k] !== stamp) {\n          prev[k] = curr[k];\n          seen[k] = stamp;\n          out.push(k);\n        }\n\n        curr[k] ^= one;\n      }\n    } // Fast incremental update based on previous hi index.\n\n\n    if (hi1 > hi0) {\n      for (i = Math.max(lo1, hi0), j = hi1; i < j; ++i) {\n        k = index[i];\n\n        if (seen[k] !== stamp) {\n          prev[k] = curr[k];\n          seen[k] = stamp;\n          out.push(k);\n        }\n\n        curr[k] ^= one;\n      }\n    } else if (hi1 < hi0) {\n      for (i = Math.max(lo0, hi1), j = hi0; i < j; ++i) {\n        k = index[i];\n\n        if (seen[k] !== stamp) {\n          prev[k] = curr[k];\n          seen[k] = stamp;\n          out.push(k);\n        }\n\n        curr[k] ^= one;\n      }\n    }\n\n    dim.range = query.slice();\n  },\n\n  incrementOne(dim, query, add, rem) {\n    const bits = this.value,\n          curr = bits.curr(),\n          index = dim.index(),\n          old = dim.bisect(dim.range),\n          range = dim.bisect(query),\n          lo1 = range[0],\n          hi1 = range[1],\n          lo0 = old[0],\n          hi0 = old[1],\n          one = dim.one;\n    let i, j, k; // Fast incremental update based on previous lo index.\n\n    if (lo1 < lo0) {\n      for (i = lo1, j = Math.min(lo0, hi1); i < j; ++i) {\n        k = index[i];\n        curr[k] ^= one;\n        add.push(k);\n      }\n    } else if (lo1 > lo0) {\n      for (i = lo0, j = Math.min(lo1, hi0); i < j; ++i) {\n        k = index[i];\n        curr[k] ^= one;\n        rem.push(k);\n      }\n    } // Fast incremental update based on previous hi index.\n\n\n    if (hi1 > hi0) {\n      for (i = Math.max(lo1, hi0), j = hi1; i < j; ++i) {\n        k = index[i];\n        curr[k] ^= one;\n        add.push(k);\n      }\n    } else if (hi1 < hi0) {\n      for (i = Math.max(lo0, hi1), j = hi0; i < j; ++i) {\n        k = index[i];\n        curr[k] ^= one;\n        rem.push(k);\n      }\n    }\n\n    dim.range = query.slice();\n  }\n\n});\n\n/**\n * Selectively filters tuples by resolving against a filter bitmap.\n * Useful for processing the output of a cross-filter transform.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {object} params.ignore - A bit mask indicating which filters to ignore.\n * @param {object} params.filter - The per-tuple filter bitmaps. Typically this\n *   parameter value is a reference to a {@link CrossFilter} transform.\n */\n\nfunction ResolveFilter(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nResolveFilter.Definition = {\n  'type': 'ResolveFilter',\n  'metadata': {},\n  'params': [{\n    'name': 'ignore',\n    'type': 'number',\n    'required': true,\n    'description': 'A bit mask indicating which filters to ignore.'\n  }, {\n    'name': 'filter',\n    'type': 'object',\n    'required': true,\n    'description': 'Per-tuple filter bitmaps from a CrossFilter transform.'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(ResolveFilter, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const ignore = ~(_.ignore || 0),\n          // bit mask where zeros -> dims to ignore\n    bitmap = _.filter,\n          mask = bitmap.mask; // exit early if no relevant filter changes\n\n    if ((mask & ignore) === 0) return pulse.StopPropagation;\n\n    const output = pulse.fork(pulse.ALL),\n          data = bitmap.data(),\n          curr = bitmap.curr(),\n          prev = bitmap.prev(),\n          pass = k => !(curr[k] & ignore) ? data[k] : null; // propagate all mod tuples that pass the filter\n\n\n    output.filter(output.MOD, pass); // determine add & rem tuples via filter functions\n    // for efficiency, we do *not* populate new arrays,\n    // instead we add filter functions applied downstream\n\n    if (!(mask & mask - 1)) {\n      // only one filter changed\n      output.filter(output.ADD, pass);\n      output.filter(output.REM, k => (curr[k] & ignore) === mask ? data[k] : null);\n    } else {\n      // multiple filters changed\n      output.filter(output.ADD, k => {\n        const c = curr[k] & ignore,\n              f = !c && c ^ prev[k] & ignore;\n        return f ? data[k] : null;\n      });\n      output.filter(output.REM, k => {\n        const c = curr[k] & ignore,\n              f = c && !(c ^ (c ^ prev[k] & ignore));\n        return f ? data[k] : null;\n      });\n    } // add filter to source data in case of reflow...\n\n\n    return output.filter(output.SOURCE, t => pass(t._index));\n  }\n\n});\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-crossfilter/build/vega-crossfilter.module.js?");

/***/ }),

/***/ "./node_modules/vega-dataflow/build/vega-dataflow.module.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-dataflow/build/vega-dataflow.module.js ***!
  \******************************************************************/
/*! exports provided: Dataflow, EventStream, MultiPulse, Operator, Parameters, Pulse, Transform, UniqueList, asyncCallback, changeset, definition, derive, ingest, isChangeSet, isTuple, rederive, replace, stableCompare, transform, transforms, tupleid */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Dataflow\", function() { return Dataflow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EventStream\", function() { return EventStream; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MultiPulse\", function() { return MultiPulse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Operator\", function() { return Operator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Parameters\", function() { return Parameters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Pulse\", function() { return Pulse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Transform\", function() { return Transform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UniqueList\", function() { return UniqueList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"asyncCallback\", function() { return asyncCallback; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"changeset\", function() { return changeset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"definition\", function() { return definition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"derive\", function() { return derive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ingest\", function() { return ingest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isChangeSet\", function() { return isChangeSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTuple\", function() { return isTuple; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rederive\", function() { return rederive; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replace\", function() { return replace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stableCompare\", function() { return stableCompare; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transform\", function() { return transform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"transforms\", function() { return transforms; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tupleid\", function() { return tupleid; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-loader */ \"./node_modules/vega-loader/index.browser.js\");\n/* harmony import */ var vega_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-format */ \"./node_modules/vega-format/build/vega-format.module.js\");\n\n\n\n\nfunction UniqueList(idFunc) {\n  const $ = idFunc || vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"],\n        list = [],\n        ids = {};\n\n  list.add = _ => {\n    const id = $(_);\n\n    if (!ids[id]) {\n      ids[id] = 1;\n      list.push(_);\n    }\n\n    return list;\n  };\n\n  list.remove = _ => {\n    const id = $(_);\n\n    if (ids[id]) {\n      ids[id] = 0;\n      const idx = list.indexOf(_);\n      if (idx >= 0) list.splice(idx, 1);\n    }\n\n    return list;\n  };\n\n  return list;\n}\n\n/**\n * Invoke and await a potentially async callback function. If\n * an error occurs, trap it and route to Dataflow.error.\n * @param {Dataflow} df - The dataflow instance\n * @param {function} callback - A callback function to invoke\n *   and then await. The dataflow will be passed as the single\n *   argument to the function.\n */\nasync function asyncCallback (df, callback) {\n  try {\n    await callback(df);\n  } catch (err) {\n    df.error(err);\n  }\n}\n\nconst TUPLE_ID_KEY = Symbol('vega_id');\nlet TUPLE_ID = 1;\n/**\n * Checks if an input value is a registered tuple.\n * @param {*} t - The value to check.\n * @return {boolean} True if the input is a tuple, false otherwise.\n */\n\nfunction isTuple(t) {\n  return !!(t && tupleid(t));\n}\n/**\n * Returns the id of a tuple.\n * @param {object} t - The input tuple.\n * @return {*} the tuple id.\n */\n\nfunction tupleid(t) {\n  return t[TUPLE_ID_KEY];\n}\n/**\n * Sets the id of a tuple.\n * @param {object} t - The input tuple.\n * @param {*} id - The id value to set.\n * @return {object} the input tuple.\n */\n\nfunction setid(t, id) {\n  t[TUPLE_ID_KEY] = id;\n  return t;\n}\n/**\n * Ingest an object or value as a data tuple.\n * If the input value is an object, an id field will be added to it. For\n * efficiency, the input object is modified directly. A copy is not made.\n * If the input value is a literal, it will be wrapped in a new object\n * instance, with the value accessible as the 'data' property.\n * @param datum - The value to ingest.\n * @return {object} The ingested data tuple.\n */\n\n\nfunction ingest(datum) {\n  const t = datum === Object(datum) ? datum : {\n    data: datum\n  };\n  return tupleid(t) ? t : setid(t, TUPLE_ID++);\n}\n/**\n * Given a source tuple, return a derived copy.\n * @param {object} t - The source tuple.\n * @return {object} The derived tuple.\n */\n\nfunction derive(t) {\n  return rederive(t, ingest({}));\n}\n/**\n * Rederive a derived tuple by copying values from the source tuple.\n * @param {object} t - The source tuple.\n * @param {object} d - The derived tuple.\n * @return {object} The derived tuple.\n */\n\nfunction rederive(t, d) {\n  for (const k in t) d[k] = t[k];\n\n  return d;\n}\n/**\n * Replace an existing tuple with a new tuple.\n * @param {object} t - The existing data tuple.\n * @param {object} d - The new tuple that replaces the old.\n * @return {object} The new tuple.\n */\n\nfunction replace(t, d) {\n  return setid(d, tupleid(t));\n}\n/**\n * Generate an augmented comparator function that provides stable\n * sorting by tuple id when the given comparator produces ties.\n * @param {function} cmp - The comparator to augment.\n * @param {function} [f] - Optional tuple accessor function.\n * @return {function} An augmented comparator function.\n */\n\nfunction stableCompare(cmp, f) {\n  return !cmp ? null : f ? (a, b) => cmp(a, b) || tupleid(f(a)) - tupleid(f(b)) : (a, b) => cmp(a, b) || tupleid(a) - tupleid(b);\n}\n\nfunction isChangeSet(v) {\n  return v && v.constructor === changeset;\n}\nfunction changeset() {\n  const add = [],\n        // insert tuples\n  rem = [],\n        // remove tuples\n  mod = [],\n        // modify tuples\n  remp = [],\n        // remove by predicate\n  modp = []; // modify by predicate\n\n  let clean = null,\n      reflow = false;\n  return {\n    constructor: changeset,\n\n    insert(t) {\n      const d = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(t),\n            n = d.length;\n\n      for (let i = 0; i < n; ++i) add.push(d[i]);\n\n      return this;\n    },\n\n    remove(t) {\n      const a = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(t) ? remp : rem,\n            d = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(t),\n            n = d.length;\n\n      for (let i = 0; i < n; ++i) a.push(d[i]);\n\n      return this;\n    },\n\n    modify(t, field, value) {\n      const m = {\n        field: field,\n        value: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(value)\n      };\n\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(t)) {\n        m.filter = t;\n        modp.push(m);\n      } else {\n        m.tuple = t;\n        mod.push(m);\n      }\n\n      return this;\n    },\n\n    encode(t, set) {\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(t)) modp.push({\n        filter: t,\n        field: set\n      });else mod.push({\n        tuple: t,\n        field: set\n      });\n      return this;\n    },\n\n    clean(value) {\n      clean = value;\n      return this;\n    },\n\n    reflow() {\n      reflow = true;\n      return this;\n    },\n\n    pulse(pulse, tuples) {\n      const cur = {},\n            out = {};\n      let i, n, m, f, t, id; // build lookup table of current tuples\n\n      for (i = 0, n = tuples.length; i < n; ++i) {\n        cur[tupleid(tuples[i])] = 1;\n      } // process individual tuples to remove\n\n\n      for (i = 0, n = rem.length; i < n; ++i) {\n        t = rem[i];\n        cur[tupleid(t)] = -1;\n      } // process predicate-based removals\n\n\n      for (i = 0, n = remp.length; i < n; ++i) {\n        f = remp[i];\n        tuples.forEach(t => {\n          if (f(t)) cur[tupleid(t)] = -1;\n        });\n      } // process all add tuples\n\n\n      for (i = 0, n = add.length; i < n; ++i) {\n        t = add[i];\n        id = tupleid(t);\n\n        if (cur[id]) {\n          // tuple already resides in dataset\n          // if flagged for both add and remove, cancel\n          cur[id] = 1;\n        } else {\n          // tuple does not reside in dataset, add\n          pulse.add.push(ingest(add[i]));\n        }\n      } // populate pulse rem list\n\n\n      for (i = 0, n = tuples.length; i < n; ++i) {\n        t = tuples[i];\n        if (cur[tupleid(t)] < 0) pulse.rem.push(t);\n      } // modify helper method\n\n\n      function modify(t, f, v) {\n        if (v) {\n          t[f] = v(t);\n        } else {\n          pulse.encode = f;\n        }\n\n        if (!reflow) out[tupleid(t)] = t;\n      } // process individual tuples to modify\n\n\n      for (i = 0, n = mod.length; i < n; ++i) {\n        m = mod[i];\n        t = m.tuple;\n        f = m.field;\n        id = cur[tupleid(t)];\n\n        if (id > 0) {\n          modify(t, f, m.value);\n          pulse.modifies(f);\n        }\n      } // process predicate-based modifications\n\n\n      for (i = 0, n = modp.length; i < n; ++i) {\n        m = modp[i];\n        f = m.filter;\n        tuples.forEach(t => {\n          if (f(t) && cur[tupleid(t)] > 0) {\n            modify(t, m.field, m.value);\n          }\n        });\n        pulse.modifies(m.field);\n      } // upon reflow request, populate mod with all non-removed tuples\n      // otherwise, populate mod with modified tuples only\n\n\n      if (reflow) {\n        pulse.mod = rem.length || remp.length ? tuples.filter(t => cur[tupleid(t)] > 0) : tuples.slice();\n      } else {\n        for (id in out) pulse.mod.push(out[id]);\n      } // set pulse garbage collection request\n\n\n      if (clean || clean == null && (rem.length || remp.length)) {\n        pulse.clean(true);\n      }\n\n      return pulse;\n    }\n\n  };\n}\n\nconst CACHE = '_:mod:_';\n/**\n * Hash that tracks modifications to assigned values.\n * Callers *must* use the set method to update values.\n */\n\nfunction Parameters() {\n  Object.defineProperty(this, CACHE, {\n    writable: true,\n    value: {}\n  });\n}\nParameters.prototype = {\n  /**\n   * Set a parameter value. If the parameter value changes, the parameter\n   * will be recorded as modified.\n   * @param {string} name - The parameter name.\n   * @param {number} index - The index into an array-value parameter. Ignored if\n   *   the argument is undefined, null or less than zero.\n   * @param {*} value - The parameter value to set.\n   * @param {boolean} [force=false] - If true, records the parameter as modified\n   *   even if the value is unchanged.\n   * @return {Parameters} - This parameter object.\n   */\n  set(name, index, value, force) {\n    const o = this,\n          v = o[name],\n          mod = o[CACHE];\n\n    if (index != null && index >= 0) {\n      if (v[index] !== value || force) {\n        v[index] = value;\n        mod[index + ':' + name] = -1;\n        mod[name] = -1;\n      }\n    } else if (v !== value || force) {\n      o[name] = value;\n      mod[name] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) ? 1 + value.length : -1;\n    }\n\n    return o;\n  },\n\n  /**\n   * Tests if one or more parameters has been modified. If invoked with no\n   * arguments, returns true if any parameter value has changed. If the first\n   * argument is array, returns trues if any parameter name in the array has\n   * changed. Otherwise, tests if the given name and optional array index has\n   * changed.\n   * @param {string} name - The parameter name to test.\n   * @param {number} [index=undefined] - The parameter array index to test.\n   * @return {boolean} - Returns true if a queried parameter was modified.\n   */\n  modified(name, index) {\n    const mod = this[CACHE];\n\n    if (!arguments.length) {\n      for (const k in mod) {\n        if (mod[k]) return true;\n      }\n\n      return false;\n    } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(name)) {\n      for (let k = 0; k < name.length; ++k) {\n        if (mod[name[k]]) return true;\n      }\n\n      return false;\n    }\n\n    return index != null && index >= 0 ? index + 1 < mod[name] || !!mod[index + ':' + name] : !!mod[name];\n  },\n\n  /**\n   * Clears the modification records. After calling this method,\n   * all parameters are considered unmodified.\n   */\n  clear() {\n    this[CACHE] = {};\n    return this;\n  }\n\n};\n\nlet OP_ID = 0;\nconst PULSE = 'pulse',\n      NO_PARAMS = new Parameters(); // Boolean Flags\n\nconst SKIP = 1,\n      MODIFIED = 2;\n/**\n * An Operator is a processing node in a dataflow graph.\n * Each operator stores a value and an optional value update function.\n * Operators can accept a hash of named parameters. Parameter values can\n * either be direct (JavaScript literals, arrays, objects) or indirect\n * (other operators whose values will be pulled dynamically). Operators\n * included as parameters will have this operator added as a dependency.\n * @constructor\n * @param {*} [init] - The initial value for this operator.\n * @param {function(object, Pulse)} [update] - An update function. Upon\n *   evaluation of this operator, the update function will be invoked and the\n *   return value will be used as the new value of this operator.\n * @param {object} [params] - The parameters for this operator.\n * @param {boolean} [react=true] - Flag indicating if this operator should\n *   listen for changes to upstream operators included as parameters.\n * @see parameters\n */\n\nfunction Operator(init, update, params, react) {\n  this.id = ++OP_ID;\n  this.value = init;\n  this.stamp = -1;\n  this.rank = -1;\n  this.qrank = -1;\n  this.flags = 0;\n\n  if (update) {\n    this._update = update;\n  }\n\n  if (params) this.parameters(params, react);\n}\n\nfunction flag(bit) {\n  return function (state) {\n    const f = this.flags;\n    if (arguments.length === 0) return !!(f & bit);\n    this.flags = state ? f | bit : f & ~bit;\n    return this;\n  };\n}\n\nOperator.prototype = {\n  /**\n   * Returns a list of target operators dependent on this operator.\n   * If this list does not exist, it is created and then returned.\n   * @return {UniqueList}\n   */\n  targets() {\n    return this._targets || (this._targets = UniqueList(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"id\"]));\n  },\n\n  /**\n   * Sets the value of this operator.\n   * @param {*} value - the value to set.\n   * @return {Number} Returns 1 if the operator value has changed\n   *   according to strict equality, returns 0 otherwise.\n   */\n  set(value) {\n    if (this.value !== value) {\n      this.value = value;\n      return 1;\n    } else {\n      return 0;\n    }\n  },\n\n  /**\n   * Indicates that operator evaluation should be skipped on the next pulse.\n   * This operator will still propagate incoming pulses, but its update function\n   * will not be invoked. The skip flag is reset after every pulse, so calling\n   * this method will affect processing of the next pulse only.\n   */\n  skip: flag(SKIP),\n\n  /**\n   * Indicates that this operator's value has been modified on its most recent\n   * pulse. Normally modification is checked via strict equality; however, in\n   * some cases it is more efficient to update the internal state of an object.\n   * In those cases, the modified flag can be used to trigger propagation. Once\n   * set, the modification flag persists across pulses until unset. The flag can\n   * be used with the last timestamp to test if a modification is recent.\n   */\n  modified: flag(MODIFIED),\n\n  /**\n   * Sets the parameters for this operator. The parameter values are analyzed for\n   * operator instances. If found, this operator will be added as a dependency\n   * of the parameterizing operator. Operator values are dynamically marshalled\n   * from each operator parameter prior to evaluation. If a parameter value is\n   * an array, the array will also be searched for Operator instances. However,\n   * the search does not recurse into sub-arrays or object properties.\n   * @param {object} params - A hash of operator parameters.\n   * @param {boolean} [react=true] - A flag indicating if this operator should\n   *   automatically update (react) when parameter values change. In other words,\n   *   this flag determines if the operator registers itself as a listener on\n   *   any upstream operators included in the parameters.\n   * @param {boolean} [initonly=false] - A flag indicating if this operator\n   *   should calculate an update only upon its initiatal evaluation, then\n   *   deregister dependencies and suppress all future update invocations.\n   * @return {Operator[]} - An array of upstream dependencies.\n   */\n  parameters(params, react, initonly) {\n    react = react !== false;\n    const argval = this._argval = this._argval || new Parameters(),\n          argops = this._argops = this._argops || [],\n          deps = [];\n    let name, value, n, i;\n\n    const add = (name, index, value) => {\n      if (value instanceof Operator) {\n        if (value !== this) {\n          if (react) value.targets().add(this);\n          deps.push(value);\n        }\n\n        argops.push({\n          op: value,\n          name: name,\n          index: index\n        });\n      } else {\n        argval.set(name, index, value);\n      }\n    };\n\n    for (name in params) {\n      value = params[name];\n\n      if (name === PULSE) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(value).forEach(op => {\n          if (!(op instanceof Operator)) {\n            Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Pulse parameters must be operator instances.');\n          } else if (op !== this) {\n            op.targets().add(this);\n            deps.push(op);\n          }\n        });\n        this.source = value;\n      } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value)) {\n        argval.set(name, -1, Array(n = value.length));\n\n        for (i = 0; i < n; ++i) add(name, i, value[i]);\n      } else {\n        add(name, -1, value);\n      }\n    }\n\n    this.marshall().clear(); // initialize values\n\n    if (initonly) argops.initonly = true;\n    return deps;\n  },\n\n  /**\n   * Internal method for marshalling parameter values.\n   * Visits each operator dependency to pull the latest value.\n   * @return {Parameters} A Parameters object to pass to the update function.\n   */\n  marshall(stamp) {\n    const argval = this._argval || NO_PARAMS,\n          argops = this._argops;\n    let item, i, op, mod;\n\n    if (argops) {\n      const n = argops.length;\n\n      for (i = 0; i < n; ++i) {\n        item = argops[i];\n        op = item.op;\n        mod = op.modified() && op.stamp === stamp;\n        argval.set(item.name, item.index, op.value, mod);\n      }\n\n      if (argops.initonly) {\n        for (i = 0; i < n; ++i) {\n          item = argops[i];\n          item.op.targets().remove(this);\n        }\n\n        this._argops = null;\n        this._update = null;\n      }\n    }\n\n    return argval;\n  },\n\n  /**\n   * Detach this operator from the dataflow.\n   * Unregisters listeners on upstream dependencies.\n   */\n  detach() {\n    const argops = this._argops;\n    let i, n, item, op;\n\n    if (argops) {\n      for (i = 0, n = argops.length; i < n; ++i) {\n        item = argops[i];\n        op = item.op;\n\n        if (op._targets) {\n          op._targets.remove(this);\n        }\n      }\n    }\n  },\n\n  /**\n   * Delegate method to perform operator processing.\n   * Subclasses can override this method to perform custom processing.\n   * By default, it marshalls parameters and calls the update function\n   * if that function is defined. If the update function does not\n   * change the operator value then StopPropagation is returned.\n   * If no update function is defined, this method does nothing.\n   * @param {Pulse} pulse - the current dataflow pulse.\n   * @return The output pulse or StopPropagation. A falsy return value\n   *   (including undefined) will let the input pulse pass through.\n   */\n  evaluate(pulse) {\n    const update = this._update;\n\n    if (update) {\n      const params = this.marshall(pulse.stamp),\n            v = update.call(this, params, pulse);\n      params.clear();\n\n      if (v !== this.value) {\n        this.value = v;\n      } else if (!this.modified()) {\n        return pulse.StopPropagation;\n      }\n    }\n  },\n\n  /**\n   * Run this operator for the current pulse. If this operator has already\n   * been run at (or after) the pulse timestamp, returns StopPropagation.\n   * Internally, this method calls {@link evaluate} to perform processing.\n   * If {@link evaluate} returns a falsy value, the input pulse is returned.\n   * This method should NOT be overridden, instead overrride {@link evaluate}.\n   * @param {Pulse} pulse - the current dataflow pulse.\n   * @return the output pulse for this operator (or StopPropagation)\n   */\n  run(pulse) {\n    if (pulse.stamp < this.stamp) return pulse.StopPropagation;\n    let rv;\n\n    if (this.skip()) {\n      this.skip(false);\n      rv = 0;\n    } else {\n      rv = this.evaluate(pulse);\n    }\n\n    return this.pulse = rv || pulse;\n  }\n\n};\n\n/**\n * Add an operator to the dataflow graph. This function accepts a\n * variety of input argument types. The basic signature supports an\n * initial value, update function and parameters. If the first parameter\n * is an Operator instance, it will be added directly. If it is a\n * constructor for an Operator subclass, a new instance will be instantiated.\n * Otherwise, if the first parameter is a function instance, it will be used\n * as the update function and a null initial value is assumed.\n * @param {*} init - One of: the operator to add, the initial value of\n *   the operator, an operator class to instantiate, or an update function.\n * @param {function} [update] - The operator update function.\n * @param {object} [params] - The operator parameters.\n * @param {boolean} [react=true] - Flag indicating if this operator should\n *   listen for changes to upstream operators included as parameters.\n * @return {Operator} - The added operator.\n */\n\nfunction add (init, update, params, react) {\n  let shift = 1,\n      op;\n\n  if (init instanceof Operator) {\n    op = init;\n  } else if (init && init.prototype instanceof Operator) {\n    op = new init();\n  } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(init)) {\n    op = new Operator(null, init);\n  } else {\n    shift = 0;\n    op = new Operator(init, update);\n  }\n\n  this.rank(op);\n\n  if (shift) {\n    react = params;\n    params = update;\n  }\n\n  if (params) this.connect(op, op.parameters(params, react));\n  this.touch(op);\n  return op;\n}\n\n/**\n * Connect a target operator as a dependent of source operators.\n * If necessary, this method will rerank the target operator and its\n * dependents to ensure propagation proceeds in a topologically sorted order.\n * @param {Operator} target - The target operator.\n * @param {Array<Operator>} - The source operators that should propagate\n *   to the target operator.\n */\nfunction connect (target, sources) {\n  const targetRank = target.rank,\n        n = sources.length;\n\n  for (let i = 0; i < n; ++i) {\n    if (targetRank < sources[i].rank) {\n      this.rerank(target);\n      return;\n    }\n  }\n}\n\nlet STREAM_ID = 0;\n/**\n * Models an event stream.\n * @constructor\n * @param {function(Object, number): boolean} [filter] - Filter predicate.\n *   Events pass through when truthy, events are suppressed when falsy.\n * @param {function(Object): *} [apply] - Applied to input events to produce\n *   new event values.\n * @param {function(Object)} [receive] - Event callback function to invoke\n *   upon receipt of a new event. Use to override standard event processing.\n */\n\nfunction EventStream(filter, apply, receive) {\n  this.id = ++STREAM_ID;\n  this.value = null;\n  if (receive) this.receive = receive;\n  if (filter) this._filter = filter;\n  if (apply) this._apply = apply;\n}\n/**\n * Creates a new event stream instance with the provided\n * (optional) filter, apply and receive functions.\n * @param {function(Object, number): boolean} [filter] - Filter predicate.\n *   Events pass through when truthy, events are suppressed when falsy.\n * @param {function(Object): *} [apply] - Applied to input events to produce\n *   new event values.\n * @see EventStream\n */\n\nfunction stream(filter, apply, receive) {\n  return new EventStream(filter, apply, receive);\n}\nEventStream.prototype = {\n  _filter: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"],\n  _apply: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"],\n\n  targets() {\n    return this._targets || (this._targets = UniqueList(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"id\"]));\n  },\n\n  consume(_) {\n    if (!arguments.length) return !!this._consume;\n    this._consume = !!_;\n    return this;\n  },\n\n  receive(evt) {\n    if (this._filter(evt)) {\n      const val = this.value = this._apply(evt),\n            trg = this._targets,\n            n = trg ? trg.length : 0;\n\n      for (let i = 0; i < n; ++i) trg[i].receive(val);\n\n      if (this._consume) {\n        evt.preventDefault();\n        evt.stopPropagation();\n      }\n    }\n  },\n\n  filter(filter) {\n    const s = stream(filter);\n    this.targets().add(s);\n    return s;\n  },\n\n  apply(apply) {\n    const s = stream(null, apply);\n    this.targets().add(s);\n    return s;\n  },\n\n  merge() {\n    const s = stream();\n    this.targets().add(s);\n\n    for (let i = 0, n = arguments.length; i < n; ++i) {\n      arguments[i].targets().add(s);\n    }\n\n    return s;\n  },\n\n  throttle(pause) {\n    let t = -1;\n    return this.filter(() => {\n      const now = Date.now();\n\n      if (now - t > pause) {\n        t = now;\n        return 1;\n      } else {\n        return 0;\n      }\n    });\n  },\n\n  debounce(delay) {\n    const s = stream();\n    this.targets().add(stream(null, null, Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"])(delay, e => {\n      const df = e.dataflow;\n      s.receive(e);\n      if (df && df.run) df.run();\n    })));\n    return s;\n  },\n\n  between(a, b) {\n    let active = false;\n    a.targets().add(stream(null, null, () => active = true));\n    b.targets().add(stream(null, null, () => active = false));\n    return this.filter(() => active);\n  },\n\n  detach() {// no-op for handling detach requests\n    // ensures compatibility with operators (#2753)\n  }\n\n};\n\n/**\n * Create a new event stream from an event source.\n * @param {object} source - The event source to monitor. The input must\n *  support the addEventListener method.\n * @param {string} type - The event type.\n * @param {function(object): boolean} [filter] - Event filter function.\n * @param {function(object): *} [apply] - Event application function.\n *   If provided, this function will be invoked and the result will be\n *   used as the downstream event value.\n * @return {EventStream}\n */\n\nfunction events (source, type, filter, apply) {\n  const df = this,\n        s = stream(filter, apply),\n        send = function (e) {\n    e.dataflow = df;\n\n    try {\n      s.receive(e);\n    } catch (error) {\n      df.error(error);\n    } finally {\n      df.run();\n    }\n  };\n\n  let sources;\n\n  if (typeof source === 'string' && typeof document !== 'undefined') {\n    sources = document.querySelectorAll(source);\n  } else {\n    sources = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(source);\n  }\n\n  const n = sources.length;\n\n  for (let i = 0; i < n; ++i) {\n    sources[i].addEventListener(type, send);\n  }\n\n  return s;\n}\n\nfunction parse(data, format) {\n  const locale = this.locale();\n  return Object(vega_loader__WEBPACK_IMPORTED_MODULE_1__[\"read\"])(data, format, locale.timeParse, locale.utcParse);\n}\n/**\n * Ingests new data into the dataflow. First parses the data using the\n * vega-loader read method, then pulses a changeset to the target operator.\n * @param {Operator} target - The Operator to target with ingested data,\n *   typically a Collect transform instance.\n * @param {*} data - The input data, prior to parsing. For JSON this may\n *   be a string or an object. For CSV, TSV, etc should be a string.\n * @param {object} format - The data format description for parsing\n *   loaded data. This object is passed to the vega-loader read method.\n * @returns {Dataflow}\n */\n\nfunction ingest$1(target, data, format) {\n  data = this.parse(data, format);\n  return this.pulse(target, this.changeset().insert(data));\n}\n/**\n * Request data from an external source, parse it, and return a Promise.\n * @param {string} url - The URL from which to load the data. This string\n *   is passed to the vega-loader load method.\n * @param {object} [format] - The data format description for parsing\n *   loaded data. This object is passed to the vega-loader read method.\n * @return {Promise} A Promise that resolves upon completion of the request.\n *   The resolved object contains the following properties:\n *   - data: an array of parsed data (or null upon error)\n *   - status: a code for success (0), load fail (-1), or parse fail (-2)\n */\n\nasync function request(url, format) {\n  const df = this;\n  let status = 0,\n      data;\n\n  try {\n    data = await df.loader().load(url, {\n      context: 'dataflow',\n      response: Object(vega_loader__WEBPACK_IMPORTED_MODULE_1__[\"responseType\"])(format && format.type)\n    });\n\n    try {\n      data = df.parse(data, format);\n    } catch (err) {\n      status = -2;\n      df.warn('Data ingestion failed', url, err);\n    }\n  } catch (err) {\n    status = -1;\n    df.warn('Loading failed', url, err);\n  }\n\n  return {\n    data,\n    status\n  };\n}\nasync function preload(target, url, format) {\n  const df = this,\n        pending = df._pending || loadPending(df);\n  pending.requests += 1;\n  const res = await df.request(url, format);\n  df.pulse(target, df.changeset().remove(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"]).insert(res.data || []));\n  pending.done();\n  return res;\n}\n\nfunction loadPending(df) {\n  let accept;\n  const pending = new Promise(a => accept = a);\n  pending.requests = 0;\n\n  pending.done = () => {\n    if (--pending.requests === 0) {\n      df._pending = null;\n      accept(df);\n    }\n  };\n\n  return df._pending = pending;\n}\n\nconst SKIP$1 = {\n  skip: true\n};\n/**\n * Perform operator updates in response to events. Applies an\n * update function to compute a new operator value. If the update function\n * returns a {@link ChangeSet}, the operator will be pulsed with those tuple\n * changes. Otherwise, the operator value will be updated to the return value.\n * @param {EventStream|Operator} source - The event source to react to.\n *   This argument can be either an EventStream or an Operator.\n * @param {Operator|function(object):Operator} target - The operator to update.\n *   This argument can either be an Operator instance or (if the source\n *   argument is an EventStream), a function that accepts an event object as\n *   input and returns an Operator to target.\n * @param {function(Parameters,Event): *} [update] - Optional update function\n *   to compute the new operator value, or a literal value to set. Update\n *   functions expect to receive a parameter object and event as arguments.\n *   This function can either return a new operator value or (if the source\n *   argument is an EventStream) a {@link ChangeSet} instance to pulse\n *   the target operator with tuple changes.\n * @param {object} [params] - The update function parameters.\n * @param {object} [options] - Additional options hash. If not overridden,\n *   updated operators will be skipped by default.\n * @param {boolean} [options.skip] - If true, the operator will\n *  be skipped: it will not be evaluated, but its dependents will be.\n * @param {boolean} [options.force] - If true, the operator will\n *   be re-evaluated even if its value has not changed.\n * @return {Dataflow}\n */\n\nfunction on (source, target, update, params, options) {\n  const fn = source instanceof Operator ? onOperator : onStream;\n  fn(this, source, target, update, params, options);\n  return this;\n}\n\nfunction onStream(df, stream, target, update, params, options) {\n  const opt = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, options, SKIP$1);\n  let func, op;\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(target)) target = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(target);\n\n  if (update === undefined) {\n    func = e => df.touch(target(e));\n  } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(update)) {\n    op = new Operator(null, update, params, false);\n\n    func = e => {\n      op.evaluate(e);\n      const t = target(e),\n            v = op.value;\n      isChangeSet(v) ? df.pulse(t, v, options) : df.update(t, v, opt);\n    };\n  } else {\n    func = e => df.update(target(e), update, opt);\n  }\n\n  stream.apply(func);\n}\n\nfunction onOperator(df, source, target, update, params, options) {\n  if (update === undefined) {\n    source.targets().add(target);\n  } else {\n    const opt = options || {},\n          op = new Operator(null, updater(target, update), params, false);\n    op.modified(opt.force);\n    op.rank = source.rank; // immediately follow source\n\n    source.targets().add(op); // add dependency\n\n    if (target) {\n      op.skip(true); // skip first invocation\n\n      op.value = target.value; // initialize value\n\n      op.targets().add(target); // chain dependencies\n\n      df.connect(target, [op]); // rerank as needed, #1672\n    }\n  }\n}\n\nfunction updater(target, update) {\n  update = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(update) ? update : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(update);\n  return target ? function (_, pulse) {\n    const value = update(_, pulse);\n\n    if (!target.skip()) {\n      target.skip(value !== this.value).value = value;\n    }\n\n    return value;\n  } : update;\n}\n\n/**\n * Assigns a rank to an operator. Ranks are assigned in increasing order\n * by incrementing an internal rank counter.\n * @param {Operator} op - The operator to assign a rank.\n */\n\nfunction rank(op) {\n  op.rank = ++this._rank;\n}\n/**\n * Re-ranks an operator and all downstream target dependencies. This\n * is necessary when upstream dependencies of higher rank are added to\n * a target operator.\n * @param {Operator} op - The operator to re-rank.\n */\n\nfunction rerank(op) {\n  const queue = [op];\n  let cur, list, i;\n\n  while (queue.length) {\n    this.rank(cur = queue.pop());\n\n    if (list = cur._targets) {\n      for (i = list.length; --i >= 0;) {\n        queue.push(cur = list[i]);\n        if (cur === op) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Cycle detected in dataflow graph.');\n      }\n    }\n  }\n}\n\n/**\n * Sentinel value indicating pulse propagation should stop.\n */\n\nconst StopPropagation = {}; // Pulse visit type flags\n\nconst ADD = 1 << 0,\n      REM = 1 << 1,\n      MOD = 1 << 2,\n      ADD_REM = ADD | REM,\n      ADD_MOD = ADD | MOD,\n      ALL = ADD | REM | MOD,\n      REFLOW = 1 << 3,\n      SOURCE = 1 << 4,\n      NO_SOURCE = 1 << 5,\n      NO_FIELDS = 1 << 6;\n/**\n * A Pulse enables inter-operator communication during a run of the\n * dataflow graph. In addition to the current timestamp, a pulse may also\n * contain a change-set of added, removed or modified data tuples, as well as\n * a pointer to a full backing data source. Tuple change sets may not\n * be fully materialized; for example, to prevent needless array creation\n * a change set may include larger arrays and corresponding filter functions.\n * The pulse provides a {@link visit} method to enable proper and efficient\n * iteration over requested data tuples.\n *\n * In addition, each pulse can track modification flags for data tuple fields.\n * Responsible transform operators should call the {@link modifies} method to\n * indicate changes to data fields. The {@link modified} method enables\n * querying of this modification state.\n *\n * @constructor\n * @param {Dataflow} dataflow - The backing dataflow instance.\n * @param {number} stamp - The current propagation timestamp.\n * @param {string} [encode] - An optional encoding set name, which is then\n *   accessible as Pulse.encode. Operators can respond to (or ignore) this\n *   setting as appropriate. This parameter can be used in conjunction with\n *   the Encode transform in the vega-encode module.\n */\n\nfunction Pulse(dataflow, stamp, encode) {\n  this.dataflow = dataflow;\n  this.stamp = stamp == null ? -1 : stamp;\n  this.add = [];\n  this.rem = [];\n  this.mod = [];\n  this.fields = null;\n  this.encode = encode || null;\n}\n\nfunction materialize(data, filter) {\n  const out = [];\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(data, filter, _ => out.push(_));\n  return out;\n}\n\nfunction filter(pulse, flags) {\n  const map = {};\n  pulse.visit(flags, t => {\n    map[tupleid(t)] = 1;\n  });\n  return t => map[tupleid(t)] ? null : t;\n}\n\nfunction addFilter(a, b) {\n  return a ? (t, i) => a(t, i) && b(t, i) : b;\n}\n\nPulse.prototype = {\n  /**\n   * Sentinel value indicating pulse propagation should stop.\n   */\n  StopPropagation,\n\n  /**\n   * Boolean flag indicating ADD (added) tuples.\n   */\n  ADD,\n\n  /**\n   * Boolean flag indicating REM (removed) tuples.\n   */\n  REM,\n\n  /**\n   * Boolean flag indicating MOD (modified) tuples.\n   */\n  MOD,\n\n  /**\n   * Boolean flag indicating ADD (added) and REM (removed) tuples.\n   */\n  ADD_REM,\n\n  /**\n   * Boolean flag indicating ADD (added) and MOD (modified) tuples.\n   */\n  ADD_MOD,\n\n  /**\n   * Boolean flag indicating ADD, REM and MOD tuples.\n   */\n  ALL,\n\n  /**\n   * Boolean flag indicating all tuples in a data source\n   * except for the ADD, REM and MOD tuples.\n   */\n  REFLOW,\n\n  /**\n   * Boolean flag indicating a 'pass-through' to a\n   * backing data source, ignoring ADD, REM and MOD tuples.\n   */\n  SOURCE,\n\n  /**\n   * Boolean flag indicating that source data should be\n   * suppressed when creating a forked pulse.\n   */\n  NO_SOURCE,\n\n  /**\n   * Boolean flag indicating that field modifications should be\n   * suppressed when creating a forked pulse.\n   */\n  NO_FIELDS,\n\n  /**\n   * Creates a new pulse based on the values of this pulse.\n   * The dataflow, time stamp and field modification values are copied over.\n   * By default, new empty ADD, REM and MOD arrays are created.\n   * @param {number} flags - Integer of boolean flags indicating which (if any)\n   *   tuple arrays should be copied to the new pulse. The supported flag values\n   *   are ADD, REM and MOD. Array references are copied directly: new array\n   *   instances are not created.\n   * @return {Pulse} - The forked pulse instance.\n   * @see init\n   */\n  fork(flags) {\n    return new Pulse(this.dataflow).init(this, flags);\n  },\n\n  /**\n   * Creates a copy of this pulse with new materialized array\n   * instances for the ADD, REM, MOD, and SOURCE arrays.\n   * The dataflow, time stamp and field modification values are copied over.\n   * @return {Pulse} - The cloned pulse instance.\n   * @see init\n   */\n  clone() {\n    const p = this.fork(ALL);\n    p.add = p.add.slice();\n    p.rem = p.rem.slice();\n    p.mod = p.mod.slice();\n    if (p.source) p.source = p.source.slice();\n    return p.materialize(ALL | SOURCE);\n  },\n\n  /**\n   * Returns a pulse that adds all tuples from a backing source. This is\n   * useful for cases where operators are added to a dataflow after an\n   * upstream data pipeline has already been processed, ensuring that\n   * new operators can observe all tuples within a stream.\n   * @return {Pulse} - A pulse instance with all source tuples included\n   *   in the add array. If the current pulse already has all source\n   *   tuples in its add array, it is returned directly. If the current\n   *   pulse does not have a backing source, it is returned directly.\n   */\n  addAll() {\n    let p = this;\n    const reuse = !p.source || p.add === p.rem // special case for indexed set (e.g., crossfilter)\n    || !p.rem.length && p.source.length === p.add.length;\n\n    if (reuse) {\n      return p;\n    } else {\n      p = new Pulse(this.dataflow).init(this);\n      p.add = p.source;\n      p.rem = []; // new operators can ignore rem #2769\n\n      return p;\n    }\n  },\n\n  /**\n   * Initialize this pulse based on the values of another pulse. This method\n   * is used internally by {@link fork} to initialize a new forked tuple.\n   * The dataflow, time stamp and field modification values are copied over.\n   * By default, new empty ADD, REM and MOD arrays are created.\n   * @param {Pulse} src - The source pulse to copy from.\n   * @param {number} flags - Integer of boolean flags indicating which (if any)\n   *   tuple arrays should be copied to the new pulse. The supported flag values\n   *   are ADD, REM and MOD. Array references are copied directly: new array\n   *   instances are not created. By default, source data arrays are copied\n   *   to the new pulse. Use the NO_SOURCE flag to enforce a null source.\n   * @return {Pulse} - Returns this Pulse instance.\n   */\n  init(src, flags) {\n    const p = this;\n    p.stamp = src.stamp;\n    p.encode = src.encode;\n\n    if (src.fields && !(flags & NO_FIELDS)) {\n      p.fields = src.fields;\n    }\n\n    if (flags & ADD) {\n      p.addF = src.addF;\n      p.add = src.add;\n    } else {\n      p.addF = null;\n      p.add = [];\n    }\n\n    if (flags & REM) {\n      p.remF = src.remF;\n      p.rem = src.rem;\n    } else {\n      p.remF = null;\n      p.rem = [];\n    }\n\n    if (flags & MOD) {\n      p.modF = src.modF;\n      p.mod = src.mod;\n    } else {\n      p.modF = null;\n      p.mod = [];\n    }\n\n    if (flags & NO_SOURCE) {\n      p.srcF = null;\n      p.source = null;\n    } else {\n      p.srcF = src.srcF;\n      p.source = src.source;\n      if (src.cleans) p.cleans = src.cleans;\n    }\n\n    return p;\n  },\n\n  /**\n   * Schedules a function to run after pulse propagation completes.\n   * @param {function} func - The function to run.\n   */\n  runAfter(func) {\n    this.dataflow.runAfter(func);\n  },\n\n  /**\n   * Indicates if tuples have been added, removed or modified.\n   * @param {number} [flags] - The tuple types (ADD, REM or MOD) to query.\n   *   Defaults to ALL, returning true if any tuple type has changed.\n   * @return {boolean} - Returns true if one or more queried tuple types have\n   *   changed, false otherwise.\n   */\n  changed(flags) {\n    const f = flags || ALL;\n    return f & ADD && this.add.length || f & REM && this.rem.length || f & MOD && this.mod.length;\n  },\n\n  /**\n   * Forces a \"reflow\" of tuple values, such that all tuples in the backing\n   * source are added to the MOD set, unless already present in the ADD set.\n   * @param {boolean} [fork=false] - If true, returns a forked copy of this\n   *   pulse, and invokes reflow on that derived pulse.\n   * @return {Pulse} - The reflowed pulse instance.\n   */\n  reflow(fork) {\n    if (fork) return this.fork(ALL).reflow();\n    const len = this.add.length,\n          src = this.source && this.source.length;\n\n    if (src && src !== len) {\n      this.mod = this.source;\n      if (len) this.filter(MOD, filter(this, ADD));\n    }\n\n    return this;\n  },\n\n  /**\n   * Get/set metadata to pulse requesting garbage collection\n   * to reclaim currently unused resources.\n   */\n  clean(value) {\n    if (arguments.length) {\n      this.cleans = !!value;\n      return this;\n    } else {\n      return this.cleans;\n    }\n  },\n\n  /**\n   * Marks one or more data field names as modified to assist dependency\n   * tracking and incremental processing by transform operators.\n   * @param {string|Array<string>} _ - The field(s) to mark as modified.\n   * @return {Pulse} - This pulse instance.\n   */\n  modifies(_) {\n    const hash = this.fields || (this.fields = {});\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_)) {\n      _.forEach(f => hash[f] = true);\n    } else {\n      hash[_] = true;\n    }\n\n    return this;\n  },\n\n  /**\n   * Checks if one or more data fields have been modified during this pulse\n   * propagation timestamp.\n   * @param {string|Array<string>} _ - The field(s) to check for modified.\n   * @param {boolean} nomod - If true, will check the modified flag even if\n   *   no mod tuples exist. If false (default), mod tuples must be present.\n   * @return {boolean} - Returns true if any of the provided fields has been\n   *   marked as modified, false otherwise.\n   */\n  modified(_, nomod) {\n    const fields = this.fields;\n    return !((nomod || this.mod.length) && fields) ? false : !arguments.length ? !!fields : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_) ? _.some(f => fields[f]) : fields[_];\n  },\n\n  /**\n   * Adds a filter function to one more tuple sets. Filters are applied to\n   * backing tuple arrays, to determine the actual set of tuples considered\n   * added, removed or modified. They can be used to delay materialization of\n   * a tuple set in order to avoid expensive array copies. In addition, the\n   * filter functions can serve as value transformers: unlike standard predicate\n   * function (which return boolean values), Pulse filters should return the\n   * actual tuple value to process. If a tuple set is already filtered, the\n   * new filter function will be appended into a conjuntive ('and') query.\n   * @param {number} flags - Flags indicating the tuple set(s) to filter.\n   * @param {function(*):object} filter - Filter function that will be applied\n   *   to the tuple set array, and should return a data tuple if the value\n   *   should be included in the tuple set, and falsy (or null) otherwise.\n   * @return {Pulse} - Returns this pulse instance.\n   */\n  filter(flags, filter) {\n    const p = this;\n    if (flags & ADD) p.addF = addFilter(p.addF, filter);\n    if (flags & REM) p.remF = addFilter(p.remF, filter);\n    if (flags & MOD) p.modF = addFilter(p.modF, filter);\n    if (flags & SOURCE) p.srcF = addFilter(p.srcF, filter);\n    return p;\n  },\n\n  /**\n   * Materialize one or more tuple sets in this pulse. If the tuple set(s) have\n   * a registered filter function, it will be applied and the tuple set(s) will\n   * be replaced with materialized tuple arrays.\n   * @param {number} flags - Flags indicating the tuple set(s) to materialize.\n   * @return {Pulse} - Returns this pulse instance.\n   */\n  materialize(flags) {\n    flags = flags || ALL;\n    const p = this;\n\n    if (flags & ADD && p.addF) {\n      p.add = materialize(p.add, p.addF);\n      p.addF = null;\n    }\n\n    if (flags & REM && p.remF) {\n      p.rem = materialize(p.rem, p.remF);\n      p.remF = null;\n    }\n\n    if (flags & MOD && p.modF) {\n      p.mod = materialize(p.mod, p.modF);\n      p.modF = null;\n    }\n\n    if (flags & SOURCE && p.srcF) {\n      p.source = p.source.filter(p.srcF);\n      p.srcF = null;\n    }\n\n    return p;\n  },\n\n  /**\n   * Visit one or more tuple sets in this pulse.\n   * @param {number} flags - Flags indicating the tuple set(s) to visit.\n   *   Legal values are ADD, REM, MOD and SOURCE (if a backing data source\n   *   has been set).\n   * @param {function(object):*} - Visitor function invoked per-tuple.\n   * @return {Pulse} - Returns this pulse instance.\n   */\n  visit(flags, visitor) {\n    const p = this,\n          v = visitor;\n\n    if (flags & SOURCE) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(p.source, p.srcF, v);\n      return p;\n    }\n\n    if (flags & ADD) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(p.add, p.addF, v);\n    if (flags & REM) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(p.rem, p.remF, v);\n    if (flags & MOD) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(p.mod, p.modF, v);\n    const src = p.source;\n\n    if (flags & REFLOW && src) {\n      const sum = p.add.length + p.mod.length;\n\n      if (sum === src.length) ; else if (sum) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(src, filter(p, ADD_MOD), v);\n      } else {\n        // if no add/rem/mod tuples, visit source\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"])(src, p.srcF, v);\n      }\n    }\n\n    return p;\n  }\n\n};\n\n/**\n * Represents a set of multiple pulses. Used as input for operators\n * that accept multiple pulses at a time. Contained pulses are\n * accessible via the public \"pulses\" array property. This pulse doe\n * not carry added, removed or modified tuples directly. However,\n * the visit method can be used to traverse all such tuples contained\n * in sub-pulses with a timestamp matching this parent multi-pulse.\n * @constructor\n * @param {Dataflow} dataflow - The backing dataflow instance.\n * @param {number} stamp - The timestamp.\n * @param {Array<Pulse>} pulses - The sub-pulses for this multi-pulse.\n */\n\nfunction MultiPulse(dataflow, stamp, pulses, encode) {\n  const p = this,\n        n = pulses.length;\n  let c = 0;\n  this.dataflow = dataflow;\n  this.stamp = stamp;\n  this.fields = null;\n  this.encode = encode || null;\n  this.pulses = pulses;\n\n  for (let i = 0; i < n; ++i) {\n    const pulse = pulses[i];\n    if (pulse.stamp !== stamp) continue;\n\n    if (pulse.fields) {\n      const hash = p.fields || (p.fields = {});\n\n      for (const f in pulse.fields) {\n        hash[f] = 1;\n      }\n    }\n\n    if (pulse.changed(p.ADD)) c |= p.ADD;\n    if (pulse.changed(p.REM)) c |= p.REM;\n    if (pulse.changed(p.MOD)) c |= p.MOD;\n  }\n\n  this.changes = c;\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(MultiPulse, Pulse, {\n  /**\n   * Creates a new pulse based on the values of this pulse.\n   * The dataflow, time stamp and field modification values are copied over.\n   * @return {Pulse}\n   */\n  fork(flags) {\n    const p = new Pulse(this.dataflow).init(this, flags & this.NO_FIELDS);\n\n    if (flags !== undefined) {\n      if (flags & p.ADD) this.visit(p.ADD, t => p.add.push(t));\n      if (flags & p.REM) this.visit(p.REM, t => p.rem.push(t));\n      if (flags & p.MOD) this.visit(p.MOD, t => p.mod.push(t));\n    }\n\n    return p;\n  },\n\n  changed(flags) {\n    return this.changes & flags;\n  },\n\n  modified(_) {\n    const p = this,\n          fields = p.fields;\n    return !(fields && p.changes & p.MOD) ? 0 : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_) ? _.some(f => fields[f]) : fields[_];\n  },\n\n  filter() {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('MultiPulse does not support filtering.');\n  },\n\n  materialize() {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('MultiPulse does not support materialization.');\n  },\n\n  visit(flags, visitor) {\n    const p = this,\n          pulses = p.pulses,\n          n = pulses.length;\n    let i = 0;\n\n    if (flags & p.SOURCE) {\n      for (; i < n; ++i) {\n        pulses[i].visit(flags, visitor);\n      }\n    } else {\n      for (; i < n; ++i) {\n        if (pulses[i].stamp === p.stamp) {\n          pulses[i].visit(flags, visitor);\n        }\n      }\n    }\n\n    return p;\n  }\n\n});\n\n/* eslint-disable require-atomic-updates */\n/**\n * Evaluates the dataflow and returns a Promise that resolves when pulse\n * propagation completes. This method will increment the current timestamp\n * and process all updated, pulsed and touched operators. When invoked for\n * the first time, all registered operators will be processed. This method\n * should not be invoked by third-party clients, use {@link runAsync} or\n * {@link run} instead.\n * @param {string} [encode] - The name of an encoding set to invoke during\n *   propagation. This value is added to generated Pulse instances;\n *   operators can then respond to (or ignore) this setting as appropriate.\n *   This parameter can be used in conjunction with the Encode transform in\n *   the vega-encode package.\n * @param {function} [prerun] - An optional callback function to invoke\n *   immediately before dataflow evaluation commences.\n * @param {function} [postrun] - An optional callback function to invoke\n *   after dataflow evaluation completes. The callback will be invoked\n *   after those registered via {@link runAfter}.\n * @return {Promise} - A promise that resolves to this dataflow after\n *   evaluation completes.\n */\n\nasync function evaluate(encode, prerun, postrun) {\n  const df = this,\n        async = []; // if the pulse value is set, this is a re-entrant call\n\n  if (df._pulse) return reentrant(df); // wait for pending datasets to load\n\n  if (df._pending) await df._pending; // invoke prerun function, if provided\n\n  if (prerun) await asyncCallback(df, prerun); // exit early if there are no updates\n\n  if (!df._touched.length) {\n    df.debug('Dataflow invoked, but nothing to do.');\n    return df;\n  } // increment timestamp clock\n\n\n  const stamp = ++df._clock; // set the current pulse\n\n  df._pulse = new Pulse(df, stamp, encode); // initialize priority queue, reset touched operators\n\n  df._touched.forEach(op => df._enqueue(op, true));\n\n  df._touched = UniqueList(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"id\"]);\n  let count = 0,\n      op,\n      next,\n      error;\n\n  try {\n    while (df._heap.size() > 0) {\n      // dequeue operator with highest priority\n      op = df._heap.pop(); // re-queue if rank changed\n\n      if (op.rank !== op.qrank) {\n        df._enqueue(op, true);\n\n        continue;\n      } // otherwise, evaluate the operator\n\n\n      next = op.run(df._getPulse(op, encode));\n\n      if (next.then) {\n        // await if operator returns a promise directly\n        next = await next;\n      } else if (next.async) {\n        // queue parallel asynchronous execution\n        async.push(next.async);\n        next = StopPropagation;\n      } // propagate evaluation, enqueue dependent operators\n\n\n      if (next !== StopPropagation) {\n        if (op._targets) op._targets.forEach(op => df._enqueue(op));\n      } // increment visit counter\n\n\n      ++count;\n    }\n  } catch (err) {\n    df._heap.clear();\n\n    error = err;\n  } // reset pulse map\n\n\n  df._input = {};\n  df._pulse = null;\n  df.debug(\"Pulse \".concat(stamp, \": \").concat(count, \" operators\"));\n\n  if (error) {\n    df._postrun = [];\n    df.error(error);\n  } // invoke callbacks queued via runAfter\n\n\n  if (df._postrun.length) {\n    const pr = df._postrun.sort((a, b) => b.priority - a.priority);\n\n    df._postrun = [];\n\n    for (let i = 0; i < pr.length; ++i) {\n      await asyncCallback(df, pr[i].callback);\n    }\n  } // invoke postrun function, if provided\n\n\n  if (postrun) await asyncCallback(df, postrun); // handle non-blocking asynchronous callbacks\n\n  if (async.length) {\n    Promise.all(async).then(cb => df.runAsync(null, () => {\n      cb.forEach(f => {\n        try {\n          f(df);\n        } catch (err) {\n          df.error(err);\n        }\n      });\n    }));\n  }\n\n  return df;\n}\n/**\n * Queues dataflow evaluation to run once any other queued evaluations have\n * completed and returns a Promise that resolves when the queued pulse\n * propagation completes. If provided, a callback function will be invoked\n * immediately before evaluation commences. This method will ensure a\n * separate evaluation is invoked for each time it is called.\n * @param {string} [encode] - The name of an encoding set to invoke during\n *   propagation. This value is added to generated Pulse instances;\n *   operators can then respond to (or ignore) this setting as appropriate.\n *   This parameter can be used in conjunction with the Encode transform in\n *   the vega-encode package.\n * @param {function} [prerun] - An optional callback function to invoke\n *   immediately before dataflow evaluation commences.\n * @param {function} [postrun] - An optional callback function to invoke\n *   after dataflow evaluation completes. The callback will be invoked\n *   after those registered via {@link runAfter}.\n * @return {Promise} - A promise that resolves to this dataflow after\n *   evaluation completes.\n */\n\nasync function runAsync(encode, prerun, postrun) {\n  // await previously queued functions\n  while (this._running) await this._running; // run dataflow, manage running promise\n\n\n  const clear = () => this._running = null;\n\n  (this._running = this.evaluate(encode, prerun, postrun)).then(clear, clear);\n  return this._running;\n}\n/**\n * Requests dataflow evaluation and the immediately returns this dataflow\n * instance. If there are pending data loading or other asynchronous\n * operations, the dataflow will evaluate asynchronously after this method\n * has been invoked. To track when dataflow evaluation completes, use the\n * {@link runAsync} method instead. This method will raise an error if\n * invoked while the dataflow is already in the midst of evaluation.\n * @param {string} [encode] - The name of an encoding set to invoke during\n *   propagation. This value is added to generated Pulse instances;\n *   operators can then respond to (or ignore) this setting as appropriate.\n *   This parameter can be used in conjunction with the Encode transform in\n *   the vega-encode module.\n * @param {function} [prerun] - An optional callback function to invoke\n *   immediately before dataflow evaluation commences.\n * @param {function} [postrun] - An optional callback function to invoke\n *   after dataflow evaluation completes. The callback will be invoked\n *   after those registered via {@link runAfter}.\n * @return {Dataflow} - This dataflow instance.\n */\n\nfunction run(encode, prerun, postrun) {\n  return this._pulse ? reentrant(this) : (this.evaluate(encode, prerun, postrun), this);\n}\n/**\n * Schedules a callback function to be invoked after the current pulse\n * propagation completes. If no propagation is currently occurring,\n * the function is invoked immediately. Callbacks scheduled via runAfter\n * are invoked immediately upon completion of the current cycle, before\n * any request queued via runAsync. This method is primarily intended for\n * internal use. Third-party callers using runAfter to schedule a callback\n * that invokes {@link run} or {@link runAsync} should not use this method,\n * but instead use {@link runAsync} with prerun or postrun arguments.\n * @param {function(Dataflow)} callback - The callback function to run.\n *   The callback will be invoked with this Dataflow instance as its\n *   sole argument.\n * @param {boolean} enqueue - A boolean flag indicating that the\n *   callback should be queued up to run after the next propagation\n *   cycle, suppressing immediate invocation when propagation is not\n *   currently occurring.\n * @param {number} [priority] - A priority value used to sort registered\n *   callbacks to determine execution order. This argument is intended\n *   for internal Vega use only.\n */\n\nfunction runAfter(callback, enqueue, priority) {\n  if (this._pulse || enqueue) {\n    // pulse propagation is currently running, queue to run after\n    this._postrun.push({\n      priority: priority || 0,\n      callback: callback\n    });\n  } else {\n    // pulse propagation already complete, invoke immediately\n    try {\n      callback(this);\n    } catch (err) {\n      this.error(err);\n    }\n  }\n}\n/**\n * Raise an error for re-entrant dataflow evaluation.\n */\n\nfunction reentrant(df) {\n  df.error('Dataflow already running. Use runAsync() to chain invocations.');\n  return df;\n}\n/**\n * Enqueue an operator into the priority queue for evaluation. The operator\n * will be enqueued if it has no registered pulse for the current cycle, or if\n * the force argument is true. Upon enqueue, this method also sets the\n * operator's qrank to the current rank value.\n * @param {Operator} op - The operator to enqueue.\n * @param {boolean} [force] - A flag indicating if the operator should be\n *   forceably added to the queue, even if it has already been previously\n *   enqueued during the current pulse propagation. This is useful when the\n *   dataflow graph is dynamically modified and the operator rank changes.\n */\n\n\nfunction enqueue(op, force) {\n  const q = op.stamp < this._clock;\n  if (q) op.stamp = this._clock;\n\n  if (q || force) {\n    op.qrank = op.rank;\n\n    this._heap.push(op);\n  }\n}\n/**\n * Provide a correct pulse for evaluating an operator. If the operator has an\n * explicit source operator, we will try to pull the pulse(s) from it.\n * If there is an array of source operators, we build a multi-pulse.\n * Otherwise, we return a current pulse with correct source data.\n * If the pulse is the pulse map has an explicit target set, we use that.\n * Else if the pulse on the upstream source operator is current, we use that.\n * Else we use the pulse from the pulse map, but copy the source tuple array.\n * @param {Operator} op - The operator for which to get an input pulse.\n * @param {string} [encode] - An (optional) encoding set name with which to\n *   annotate the returned pulse. See {@link run} for more information.\n */\n\nfunction getPulse(op, encode) {\n  const s = op.source,\n        stamp = this._clock;\n  return s && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(s) ? new MultiPulse(this, stamp, s.map(_ => _.pulse), encode) : this._input[op.id] || singlePulse(this._pulse, s && s.pulse);\n}\n\nfunction singlePulse(p, s) {\n  if (s && s.stamp === p.stamp) {\n    return s;\n  }\n\n  p = p.fork();\n\n  if (s && s !== StopPropagation) {\n    p.source = s.source;\n  }\n\n  return p;\n}\n\nconst NO_OPT = {\n  skip: false,\n  force: false\n};\n/**\n * Touches an operator, scheduling it to be evaluated. If invoked outside of\n * a pulse propagation, the operator will be evaluated the next time this\n * dataflow is run. If invoked in the midst of pulse propagation, the operator\n * will be queued for evaluation if and only if the operator has not yet been\n * evaluated on the current propagation timestamp.\n * @param {Operator} op - The operator to touch.\n * @param {object} [options] - Additional options hash.\n * @param {boolean} [options.skip] - If true, the operator will\n *   be skipped: it will not be evaluated, but its dependents will be.\n * @return {Dataflow}\n */\n\nfunction touch(op, options) {\n  const opt = options || NO_OPT;\n\n  if (this._pulse) {\n    // if in midst of propagation, add to priority queue\n    this._enqueue(op);\n  } else {\n    // otherwise, queue for next propagation\n    this._touched.add(op);\n  }\n\n  if (opt.skip) op.skip(true);\n  return this;\n}\n/**\n * Updates the value of the given operator.\n * @param {Operator} op - The operator to update.\n * @param {*} value - The value to set.\n * @param {object} [options] - Additional options hash.\n * @param {boolean} [options.force] - If true, the operator will\n *   be re-evaluated even if its value has not changed.\n * @param {boolean} [options.skip] - If true, the operator will\n *   be skipped: it will not be evaluated, but its dependents will be.\n * @return {Dataflow}\n */\n\nfunction update(op, value, options) {\n  const opt = options || NO_OPT;\n\n  if (op.set(value) || opt.force) {\n    this.touch(op, opt);\n  }\n\n  return this;\n}\n/**\n * Pulses an operator with a changeset of tuples. If invoked outside of\n * a pulse propagation, the pulse will be applied the next time this\n * dataflow is run. If invoked in the midst of pulse propagation, the pulse\n * will be added to the set of active pulses and will be applied if and\n * only if the target operator has not yet been evaluated on the current\n * propagation timestamp.\n * @param {Operator} op - The operator to pulse.\n * @param {ChangeSet} value - The tuple changeset to apply.\n * @param {object} [options] - Additional options hash.\n * @param {boolean} [options.skip] - If true, the operator will\n *   be skipped: it will not be evaluated, but its dependents will be.\n * @return {Dataflow}\n */\n\nfunction pulse(op, changeset, options) {\n  this.touch(op, options || NO_OPT);\n  const p = new Pulse(this, this._clock + (this._pulse ? 0 : 1)),\n        t = op.pulse && op.pulse.source || [];\n  p.target = op;\n  this._input[op.id] = changeset.pulse(p, t);\n  return this;\n}\n\nfunction Heap(cmp) {\n  let nodes = [];\n  return {\n    clear: () => nodes = [],\n    size: () => nodes.length,\n    peek: () => nodes[0],\n    push: x => {\n      nodes.push(x);\n      return siftdown(nodes, 0, nodes.length - 1, cmp);\n    },\n    pop: () => {\n      const last = nodes.pop();\n      let item;\n\n      if (nodes.length) {\n        item = nodes[0];\n        nodes[0] = last;\n        siftup(nodes, 0, cmp);\n      } else {\n        item = last;\n      }\n\n      return item;\n    }\n  };\n}\n\nfunction siftdown(array, start, idx, cmp) {\n  let parent, pidx;\n  const item = array[idx];\n\n  while (idx > start) {\n    pidx = idx - 1 >> 1;\n    parent = array[pidx];\n\n    if (cmp(item, parent) < 0) {\n      array[idx] = parent;\n      idx = pidx;\n      continue;\n    }\n\n    break;\n  }\n\n  return array[idx] = item;\n}\n\nfunction siftup(array, idx, cmp) {\n  const start = idx,\n        end = array.length,\n        item = array[idx];\n  let cidx = (idx << 1) + 1,\n      ridx;\n\n  while (cidx < end) {\n    ridx = cidx + 1;\n\n    if (ridx < end && cmp(array[cidx], array[ridx]) >= 0) {\n      cidx = ridx;\n    }\n\n    array[idx] = array[cidx];\n    idx = cidx;\n    cidx = (idx << 1) + 1;\n  }\n\n  array[idx] = item;\n  return siftdown(array, start, idx, cmp);\n}\n\n/**\n * A dataflow graph for reactive processing of data streams.\n * @constructor\n */\n\nfunction Dataflow() {\n  this.logger(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"logger\"])());\n  this.logLevel(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Error\"]);\n  this._clock = 0;\n  this._rank = 0;\n  this._locale = Object(vega_format__WEBPACK_IMPORTED_MODULE_2__[\"defaultLocale\"])();\n\n  try {\n    this._loader = Object(vega_loader__WEBPACK_IMPORTED_MODULE_1__[\"loader\"])();\n  } catch (e) {// do nothing if loader module is unavailable\n  }\n\n  this._touched = UniqueList(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"id\"]);\n  this._input = {};\n  this._pulse = null;\n  this._heap = Heap((a, b) => a.qrank - b.qrank);\n  this._postrun = [];\n}\n\nfunction logMethod(method) {\n  return function () {\n    return this._log[method].apply(this, arguments);\n  };\n}\n\nDataflow.prototype = {\n  /**\n   * The current timestamp of this dataflow. This value reflects the\n   * timestamp of the previous dataflow run. The dataflow is initialized\n   * with a stamp value of 0. The initial run of the dataflow will have\n   * a timestap of 1, and so on. This value will match the\n   * {@link Pulse.stamp} property.\n   * @return {number} - The current timestamp value.\n   */\n  stamp() {\n    return this._clock;\n  },\n\n  /**\n   * Gets or sets the loader instance to use for data file loading. A\n   * loader object must provide a \"load\" method for loading files and a\n   * \"sanitize\" method for checking URL/filename validity. Both methods\n   * should accept a URI and options hash as arguments, and return a Promise\n   * that resolves to the loaded file contents (load) or a hash containing\n   * sanitized URI data with the sanitized url assigned to the \"href\" property\n   * (sanitize).\n   * @param {object} _ - The loader instance to use.\n   * @return {object|Dataflow} - If no arguments are provided, returns\n   *   the current loader instance. Otherwise returns this Dataflow instance.\n   */\n  loader(_) {\n    if (arguments.length) {\n      this._loader = _;\n      return this;\n    } else {\n      return this._loader;\n    }\n  },\n\n  /**\n   * Gets or sets the locale instance to use for formatting and parsing\n   * string values. The locale object should be provided by the\n   * vega-format library, and include methods such as format, timeFormat,\n   * utcFormat, timeParse, and utcParse.\n   * @param {object} _ - The locale instance to use.\n   * @return {object|Dataflow} - If no arguments are provided, returns\n   *   the current locale instance. Otherwise returns this Dataflow instance.\n   */\n  locale(_) {\n    if (arguments.length) {\n      this._locale = _;\n      return this;\n    } else {\n      return this._locale;\n    }\n  },\n\n  /**\n   * Get or set the logger instance used to log messages. If no arguments are\n   * provided, returns the current logger instance. Otherwise, sets the logger\n   * and return this Dataflow instance. Provided loggers must support the full\n   * API of logger objects generated by the vega-util logger method. Note that\n   * by default the log level of the new logger will be used; use the logLevel\n   * method to adjust the log level as needed.\n   */\n  logger(logger) {\n    if (arguments.length) {\n      this._log = logger;\n      return this;\n    } else {\n      return this._log;\n    }\n  },\n\n  /**\n   * Logs an error message. By default, logged messages are written to console\n   * output. The message will only be logged if the current log level is high\n   * enough to permit error messages.\n   */\n  error: logMethod('error'),\n\n  /**\n   * Logs a warning message. By default, logged messages are written to console\n   * output. The message will only be logged if the current log level is high\n   * enough to permit warning messages.\n   */\n  warn: logMethod('warn'),\n\n  /**\n   * Logs a information message. By default, logged messages are written to\n   * console output. The message will only be logged if the current log level is\n   * high enough to permit information messages.\n   */\n  info: logMethod('info'),\n\n  /**\n   * Logs a debug message. By default, logged messages are written to console\n   * output. The message will only be logged if the current log level is high\n   * enough to permit debug messages.\n   */\n  debug: logMethod('debug'),\n\n  /**\n   * Get or set the current log level. If an argument is provided, it\n   * will be used as the new log level.\n   * @param {number} [level] - Should be one of None, Warn, Info\n   * @return {number} - The current log level.\n   */\n  logLevel: logMethod('level'),\n\n  /**\n   * Empty entry threshold for garbage cleaning. Map data structures will\n   * perform cleaning once the number of empty entries exceeds this value.\n   */\n  cleanThreshold: 1e4,\n  // OPERATOR REGISTRATION\n  add,\n  connect,\n  rank,\n  rerank,\n  // OPERATOR UPDATES\n  pulse,\n  touch,\n  update,\n  changeset,\n  // DATA LOADING\n  ingest: ingest$1,\n  parse,\n  preload,\n  request,\n  // EVENT HANDLING\n  events,\n  on,\n  // PULSE PROPAGATION\n  evaluate,\n  run,\n  runAsync,\n  runAfter,\n  _enqueue: enqueue,\n  _getPulse: getPulse\n};\n\n/**\n * Abstract class for operators that process data tuples.\n * Subclasses must provide a {@link transform} method for operator processing.\n * @constructor\n * @param {*} [init] - The initial value for this operator.\n * @param {object} [params] - The parameters for this operator.\n * @param {Operator} [source] - The operator from which to receive pulses.\n */\n\nfunction Transform(init, params) {\n  Operator.call(this, init, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Transform, Operator, {\n  /**\n   * Overrides {@link Operator.evaluate} for transform operators.\n   * Internally, this method calls {@link evaluate} to perform processing.\n   * If {@link evaluate} returns a falsy value, the input pulse is returned.\n   * This method should NOT be overridden, instead overrride {@link evaluate}.\n   * @param {Pulse} pulse - the current dataflow pulse.\n   * @return the output pulse for this operator (or StopPropagation)\n   */\n  run(pulse) {\n    if (pulse.stamp < this.stamp) return pulse.StopPropagation;\n    let rv;\n\n    if (this.skip()) {\n      this.skip(false);\n    } else {\n      rv = this.evaluate(pulse);\n    }\n\n    rv = rv || pulse;\n\n    if (rv.then) {\n      rv = rv.then(_ => this.pulse = _);\n    } else if (rv !== pulse.StopPropagation) {\n      this.pulse = rv;\n    }\n\n    return rv;\n  },\n\n  /**\n   * Overrides {@link Operator.evaluate} for transform operators.\n   * Marshalls parameter values and then invokes {@link transform}.\n   * @param {Pulse} pulse - the current dataflow pulse.\n   * @return {Pulse} The output pulse (or StopPropagation). A falsy return\n       value (including undefined) will let the input pulse pass through.\n  */\n  evaluate(pulse) {\n    const params = this.marshall(pulse.stamp),\n          out = this.transform(params, pulse);\n    params.clear();\n    return out;\n  },\n\n  /**\n   * Process incoming pulses.\n   * Subclasses should override this method to implement transforms.\n   * @param {Parameters} _ - The operator parameter values.\n   * @param {Pulse} pulse - The current dataflow pulse.\n   * @return {Pulse} The output pulse (or StopPropagation). A falsy return\n   *   value (including undefined) will let the input pulse pass through.\n   */\n  transform() {}\n\n});\n\nconst transforms = {};\nfunction definition(type) {\n  const t = transform(type);\n  return t && t.Definition || null;\n}\nfunction transform(type) {\n  type = type && type.toLowerCase();\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(transforms, type) ? transforms[type] : null;\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-dataflow/build/vega-dataflow.module.js?");

/***/ }),

/***/ "./node_modules/vega-embed/build/vega-embed.module.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-embed/build/vega-embed.module.js ***!
  \************************************************************/
/*! exports provided: default, DEFAULT_ACTIONS, guessMode, vega, vegaLite */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_ACTIONS\", function() { return DEFAULT_ACTIONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guessMode\", function() { return guessMode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vega\", function() { return vega; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vegaLite\", function() { return vegaLite; });\n/* harmony import */ var fast_json_patch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-json-patch */ \"./node_modules/fast-json-patch/index.mjs\");\n/* harmony import */ var json_stringify_pretty_compact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! json-stringify-pretty-compact */ \"./node_modules/json-stringify-pretty-compact/index.js\");\n/* harmony import */ var json_stringify_pretty_compact__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(json_stringify_pretty_compact__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semver */ \"./node_modules/vega-embed/node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var vega__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega */ \"./node_modules/vega/build/vega.module.js\");\n/* harmony import */ var vega_lite__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-lite */ \"./node_modules/vega-lite/build/src/index.js\");\n/* harmony import */ var vega_schema_url_parser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vega-schema-url-parser */ \"./node_modules/vega-schema-url-parser/dist/parser.module.js\");\n/* harmony import */ var vega_themes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vega-themes */ \"./node_modules/vega-themes/build/vega-themes.module.js\");\n/* harmony import */ var vega_tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vega-tooltip */ \"./node_modules/vega-tooltip/build/vega-tooltip.module.js\");\n\n\n\n\n\n\n\n\n\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\n\n/**\n * Open editor url in a new window, and pass a message.\n */\nfunction post (window, url, data) {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const editor = window.open(url);\n    const wait = 10000;\n    const step = 250;\n    const { origin } = new URL(url);\n    // eslint-disable-next-line no-bitwise\n    let count = ~~(wait / step);\n    function listen(evt) {\n        if (evt.source === editor) {\n            count = 0;\n            window.removeEventListener('message', listen, false);\n        }\n    }\n    window.addEventListener('message', listen, false);\n    // send message\n    // periodically resend until ack received or timeout\n    function send() {\n        if (count <= 0) {\n            return;\n        }\n        editor.postMessage(data, origin);\n        setTimeout(send, step);\n        count -= 1;\n    }\n    setTimeout(send, step);\n}\n\n// generated with build-style.sh\nvar embedStyle = `.vega-embed {\n  position: relative;\n  display: inline-block;\n  box-sizing: border-box; }\n  .vega-embed.has-actions {\n    padding-right: 38px; }\n  .vega-embed details:not([open]) > :not(summary) {\n    display: none !important; }\n  .vega-embed summary {\n    list-style: none;\n    position: absolute;\n    top: 0;\n    right: 0;\n    padding: 6px;\n    z-index: 1000;\n    background: white;\n    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);\n    color: #1b1e23;\n    border: 1px solid #aaa;\n    border-radius: 999px;\n    opacity: 0.2;\n    transition: opacity 0.4s ease-in;\n    outline: none;\n    cursor: pointer;\n    line-height: 0px; }\n    .vega-embed summary::-webkit-details-marker {\n      display: none; }\n    .vega-embed summary:active {\n      box-shadow: #aaa 0px 0px 0px 1px inset; }\n    .vega-embed summary svg {\n      width: 14px;\n      height: 14px; }\n  .vega-embed details[open] summary {\n    opacity: 0.7; }\n  .vega-embed:hover summary,\n  .vega-embed:focus summary {\n    opacity: 1 !important;\n    transition: opacity 0.2s ease; }\n  .vega-embed .vega-actions {\n    position: absolute;\n    z-index: 1001;\n    top: 35px;\n    right: -9px;\n    display: flex;\n    flex-direction: column;\n    padding-bottom: 8px;\n    padding-top: 8px;\n    border-radius: 4px;\n    box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2);\n    border: 1px solid #d9d9d9;\n    background: white;\n    animation-duration: 0.15s;\n    animation-name: scale-in;\n    animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);\n    text-align: left; }\n    .vega-embed .vega-actions a {\n      padding: 8px 16px;\n      font-family: sans-serif;\n      font-size: 14px;\n      font-weight: 600;\n      white-space: nowrap;\n      color: #434a56;\n      text-decoration: none; }\n      .vega-embed .vega-actions a:hover {\n        background-color: #f7f7f9;\n        color: black; }\n    .vega-embed .vega-actions::before, .vega-embed .vega-actions::after {\n      content: \"\";\n      display: inline-block;\n      position: absolute; }\n    .vega-embed .vega-actions::before {\n      left: auto;\n      right: 14px;\n      top: -16px;\n      border: 8px solid #0000;\n      border-bottom-color: #d9d9d9; }\n    .vega-embed .vega-actions::after {\n      left: auto;\n      right: 15px;\n      top: -14px;\n      border: 7px solid #0000;\n      border-bottom-color: #fff; }\n  .vega-embed .chart-wrapper {\n    width: 100%;\n    height: 100%; }\n\n.vega-embed-wrapper {\n  max-width: 100%;\n  overflow: scroll;\n  padding-right: 14px; }\n\n@keyframes scale-in {\n  from {\n    opacity: 0;\n    transform: scale(0.6); }\n  to {\n    opacity: 1;\n    transform: scale(1); } }\n`;\n\n// polyfill for IE\nif (!String.prototype.startsWith) {\n    // eslint-disable-next-line no-extend-native,func-names\n    String.prototype.startsWith = function (search, pos) {\n        return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n    };\n}\nfunction mergeDeep(dest, ...src) {\n    for (const s of src) {\n        deepMerge_(dest, s);\n    }\n    return dest;\n}\nfunction deepMerge_(dest, src) {\n    for (const property of Object.keys(src)) {\n        Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"writeConfig\"])(dest, property, src[property], true);\n    }\n}\n\nvar _a;\nconst vega = vega__WEBPACK_IMPORTED_MODULE_3__;\nlet vegaLite = vega_lite__WEBPACK_IMPORTED_MODULE_4__;\n// For backwards compatibility with Vega-Lite before v4.\nconst w = (typeof window !== 'undefined' ? window : undefined);\nif (vegaLite === undefined && ((_a = w === null || w === void 0 ? void 0 : w['vl']) === null || _a === void 0 ? void 0 : _a.compile)) {\n    vegaLite = w['vl'];\n}\nconst DEFAULT_ACTIONS = { export: { svg: true, png: true }, source: true, compiled: true, editor: true };\nconst I18N = {\n    CLICK_TO_VIEW_ACTIONS: 'Click to view actions',\n    COMPILED_ACTION: 'View Compiled Vega',\n    EDITOR_ACTION: 'Open in Vega Editor',\n    PNG_ACTION: 'Save as PNG',\n    SOURCE_ACTION: 'View Source',\n    SVG_ACTION: 'Save as SVG',\n};\nconst NAMES = {\n    vega: 'Vega',\n    'vega-lite': 'Vega-Lite',\n};\nconst VERSION = {\n    vega: vega.version,\n    'vega-lite': vegaLite ? vegaLite.version : 'not available',\n};\nconst PREPROCESSOR = {\n    vega: (vgSpec) => vgSpec,\n    'vega-lite': (vlSpec, config) => vegaLite.compile(vlSpec, { config: config }).spec,\n};\nconst SVG_CIRCLES = `\n<svg viewBox=\"0 0 16 16\" fill=\"currentColor\" stroke=\"none\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n  <circle r=\"2\" cy=\"8\" cx=\"2\"></circle>\n  <circle r=\"2\" cy=\"8\" cx=\"8\"></circle>\n  <circle r=\"2\" cy=\"8\" cx=\"14\"></circle>\n</svg>`;\nconst CHART_WRAPPER_CLASS = 'chart-wrapper';\nfunction isTooltipHandler(h) {\n    return typeof h === 'function';\n}\nfunction viewSource(source, sourceHeader, sourceFooter, mode) {\n    const header = `<html><head>${sourceHeader}</head><body><pre><code class=\"json\">`;\n    const footer = `</code></pre>${sourceFooter}</body></html>`;\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const win = window.open('');\n    win.document.write(header + source + footer);\n    win.document.title = `${NAMES[mode]} JSON Source`;\n}\n/**\n * Try to guess the type of spec.\n *\n * @param spec Vega or Vega-Lite spec.\n */\nfunction guessMode(spec, providedMode) {\n    var _a;\n    // Decide mode\n    if (spec.$schema) {\n        const parsed = Object(vega_schema_url_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(spec.$schema);\n        if (providedMode && providedMode !== parsed.library) {\n            console.warn(`The given visualization spec is written in ${NAMES[parsed.library]}, but mode argument sets ${(_a = NAMES[providedMode]) !== null && _a !== void 0 ? _a : providedMode}.`);\n        }\n        const mode = parsed.library;\n        if (!Object(semver__WEBPACK_IMPORTED_MODULE_2__[\"satisfies\"])(VERSION[mode], `^${parsed.version.slice(1)}`)) {\n            console.warn(`The input spec uses ${NAMES[mode]} ${parsed.version}, but the current version of ${NAMES[mode]} is v${VERSION[mode]}.`);\n        }\n        return mode;\n    }\n    // try to guess from the provided spec\n    if ('mark' in spec ||\n        'encoding' in spec ||\n        'layer' in spec ||\n        'hconcat' in spec ||\n        'vconcat' in spec ||\n        'facet' in spec ||\n        'repeat' in spec) {\n        return 'vega-lite';\n    }\n    if ('marks' in spec || 'signals' in spec || 'scales' in spec || 'axes' in spec) {\n        return 'vega';\n    }\n    return providedMode !== null && providedMode !== void 0 ? providedMode : 'vega';\n}\nfunction isLoader(o) {\n    return !!(o && 'load' in o);\n}\n/**\n * Embed a Vega visualization component in a web page. This function returns a promise.\n *\n * @param el        DOM element in which to place component (DOM node or CSS selector).\n * @param spec      String : A URL string from which to load the Vega specification.\n *                  Object : The Vega/Vega-Lite specification as a parsed JSON object.\n * @param opts       A JavaScript object containing options for embedding.\n */\nfunction embed(el, spec, opts = {}) {\n    var _a, _b, _c;\n    return __awaiter(this, void 0, void 0, function* () {\n        const loader = isLoader(opts.loader) ? opts.loader : vega.loader(opts.loader);\n        // load spec, config, and patch that are references by URLs\n        const parsedSpec = Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"isString\"])(spec) ? JSON.parse(yield loader.load(spec)) : spec;\n        const usermetaOpts = yield loadOpts((_a = (parsedSpec.usermeta && parsedSpec.usermeta['embedOptions'])) !== null && _a !== void 0 ? _a : {}, loader);\n        const parsedOpts = yield loadOpts(opts, loader);\n        const mergedOpts = Object.assign(Object.assign({}, mergeDeep(parsedOpts, usermetaOpts)), { config: Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"mergeConfig\"])((_b = parsedOpts.config) !== null && _b !== void 0 ? _b : {}, (_c = usermetaOpts.config) !== null && _c !== void 0 ? _c : {}) });\n        return yield _embed(el, parsedSpec, mergedOpts, loader);\n    });\n}\nfunction loadOpts(opt, loader) {\n    var _a;\n    return __awaiter(this, void 0, void 0, function* () {\n        const config = Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"isString\"])(opt.config) ? JSON.parse(yield loader.load(opt.config)) : (_a = opt.config) !== null && _a !== void 0 ? _a : {};\n        const patch = Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"isString\"])(opt.patch) ? JSON.parse(yield loader.load(opt.patch)) : opt.patch;\n        return Object.assign(Object.assign(Object.assign({}, opt), (patch ? { patch } : {})), (config ? { config } : {}));\n    });\n}\nfunction getRoot(el) {\n    var _a;\n    const possibleRoot = el.getRootNode ? el.getRootNode() : document;\n    if (possibleRoot instanceof ShadowRoot) {\n        return { root: possibleRoot, rootContainer: possibleRoot };\n    }\n    else {\n        return { root: document, rootContainer: (_a = document.head) !== null && _a !== void 0 ? _a : document.body };\n    }\n}\nfunction _embed(el, spec, opts = {}, loader) {\n    var _a, _b, _c, _d, _e, _f;\n    return __awaiter(this, void 0, void 0, function* () {\n        const config = opts.theme ? Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"mergeConfig\"])(vega_themes__WEBPACK_IMPORTED_MODULE_6__[opts.theme], (_a = opts.config) !== null && _a !== void 0 ? _a : {}) : opts.config;\n        const actions = Object(vega__WEBPACK_IMPORTED_MODULE_3__[\"isBoolean\"])(opts.actions) ? opts.actions : mergeDeep({}, DEFAULT_ACTIONS, (_b = opts.actions) !== null && _b !== void 0 ? _b : {});\n        const i18n = Object.assign(Object.assign({}, I18N), opts.i18n);\n        const renderer = (_c = opts.renderer) !== null && _c !== void 0 ? _c : 'canvas';\n        const logLevel = (_d = opts.logLevel) !== null && _d !== void 0 ? _d : vega.Warn;\n        const downloadFileName = (_e = opts.downloadFileName) !== null && _e !== void 0 ? _e : 'visualization';\n        const div = typeof el === 'string' ? document.querySelector(el) : el;\n        if (!div) {\n            throw new Error(`${el} does not exist`);\n        }\n        if (opts.defaultStyle !== false) {\n            // Add a default stylesheet to the head of the document.\n            const ID = 'vega-embed-style';\n            const { root, rootContainer } = getRoot(div);\n            if (!root.getElementById(ID)) {\n                const style = document.createElement('style');\n                style.id = ID;\n                style.innerText =\n                    opts.defaultStyle === undefined || opts.defaultStyle === true\n                        ? ( embedStyle ).toString()\n                        : opts.defaultStyle;\n                rootContainer.appendChild(style);\n            }\n        }\n        const mode = guessMode(spec, opts.mode);\n        let vgSpec = PREPROCESSOR[mode](spec, config);\n        if (mode === 'vega-lite') {\n            if (vgSpec.$schema) {\n                const parsed = Object(vega_schema_url_parser__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(vgSpec.$schema);\n                if (!Object(semver__WEBPACK_IMPORTED_MODULE_2__[\"satisfies\"])(VERSION.vega, `^${parsed.version.slice(1)}`)) {\n                    console.warn(`The compiled spec uses Vega ${parsed.version}, but current version is v${VERSION.vega}.`);\n                }\n            }\n        }\n        div.classList.add('vega-embed');\n        if (actions) {\n            div.classList.add('has-actions');\n        }\n        div.innerHTML = ''; // clear container\n        let target = div;\n        if (actions) {\n            const chartWrapper = document.createElement('div');\n            chartWrapper.classList.add(CHART_WRAPPER_CLASS);\n            div.appendChild(chartWrapper);\n            target = chartWrapper;\n        }\n        const patch = opts.patch;\n        if (patch) {\n            if (patch instanceof Function) {\n                vgSpec = patch(vgSpec);\n            }\n            else {\n                vgSpec = Object(fast_json_patch__WEBPACK_IMPORTED_MODULE_0__[\"applyPatch\"])(vgSpec, patch, true, false).newDocument;\n            }\n        }\n        // Set locale. Note that this is a global setting.\n        if (opts.formatLocale) {\n            vega.formatLocale(opts.formatLocale);\n        }\n        if (opts.timeFormatLocale) {\n            vega.timeFormatLocale(opts.timeFormatLocale);\n        }\n        const { ast } = opts;\n        // Do not apply the config to Vega when we have already applied it to Vega-Lite.\n        // This call may throw an Error if parsing fails.\n        const runtime = vega.parse(vgSpec, mode === 'vega-lite' ? {} : config, { ast });\n        const view = new vega.View(runtime, Object.assign({ loader,\n            logLevel,\n            renderer }, (ast ? { expr: vega.expressionInterpreter } : {})));\n        if (opts.tooltip !== false) {\n            let handler;\n            if (isTooltipHandler(opts.tooltip)) {\n                handler = opts.tooltip;\n            }\n            else {\n                // user provided boolean true or tooltip options\n                handler = new vega_tooltip__WEBPACK_IMPORTED_MODULE_7__[\"Handler\"](opts.tooltip === true ? {} : opts.tooltip).call;\n            }\n            view.tooltip(handler);\n        }\n        let { hover } = opts;\n        if (hover === undefined) {\n            hover = mode === 'vega';\n        }\n        if (hover) {\n            const { hoverSet, updateSet } = (typeof hover === 'boolean' ? {} : hover);\n            view.hover(hoverSet, updateSet);\n        }\n        if (opts) {\n            if (opts.width != null) {\n                view.width(opts.width);\n            }\n            if (opts.height != null) {\n                view.height(opts.height);\n            }\n            if (opts.padding != null) {\n                view.padding(opts.padding);\n            }\n        }\n        yield view.initialize(target).runAsync();\n        let documentClickHandler;\n        if (actions !== false) {\n            let wrapper = div;\n            if (opts.defaultStyle !== false) {\n                const details = document.createElement('details');\n                details.title = i18n.CLICK_TO_VIEW_ACTIONS;\n                div.append(details);\n                wrapper = details;\n                const summary = document.createElement('summary');\n                summary.innerHTML = SVG_CIRCLES;\n                details.append(summary);\n                documentClickHandler = (ev) => {\n                    if (!details.contains(ev.target)) {\n                        details.removeAttribute('open');\n                    }\n                };\n                document.addEventListener('click', documentClickHandler);\n            }\n            const ctrl = document.createElement('div');\n            wrapper.append(ctrl);\n            ctrl.classList.add('vega-actions');\n            // add 'Export' action\n            if (actions === true || actions.export !== false) {\n                for (const ext of ['svg', 'png']) {\n                    if (actions === true || actions.export === true || actions.export[ext]) {\n                        const i18nExportAction = i18n[`${ext.toUpperCase()}_ACTION`];\n                        const exportLink = document.createElement('a');\n                        exportLink.text = i18nExportAction;\n                        exportLink.href = '#';\n                        exportLink.target = '_blank';\n                        exportLink.download = `${downloadFileName}.${ext}`;\n                        // add link on mousedown so that it's correct when the click happens\n                        exportLink.addEventListener('mousedown', function (e) {\n                            return __awaiter(this, void 0, void 0, function* () {\n                                e.preventDefault();\n                                const url = yield view.toImageURL(ext, opts.scaleFactor);\n                                this.href = url;\n                            });\n                        });\n                        ctrl.append(exportLink);\n                    }\n                }\n            }\n            // add 'View Source' action\n            if (actions === true || actions.source !== false) {\n                const viewSourceLink = document.createElement('a');\n                viewSourceLink.text = i18n.SOURCE_ACTION;\n                viewSourceLink.href = '#';\n                viewSourceLink.addEventListener('click', function (e) {\n                    var _a, _b;\n                    viewSource(json_stringify_pretty_compact__WEBPACK_IMPORTED_MODULE_1___default()(spec), (_a = opts.sourceHeader) !== null && _a !== void 0 ? _a : '', (_b = opts.sourceFooter) !== null && _b !== void 0 ? _b : '', mode);\n                    e.preventDefault();\n                });\n                ctrl.append(viewSourceLink);\n            }\n            // add 'View Compiled' action\n            if (mode === 'vega-lite' && (actions === true || actions.compiled !== false)) {\n                const compileLink = document.createElement('a');\n                compileLink.text = i18n.COMPILED_ACTION;\n                compileLink.href = '#';\n                compileLink.addEventListener('click', function (e) {\n                    var _a, _b;\n                    viewSource(json_stringify_pretty_compact__WEBPACK_IMPORTED_MODULE_1___default()(vgSpec), (_a = opts.sourceHeader) !== null && _a !== void 0 ? _a : '', (_b = opts.sourceFooter) !== null && _b !== void 0 ? _b : '', 'vega');\n                    e.preventDefault();\n                });\n                ctrl.append(compileLink);\n            }\n            // add 'Open in Vega Editor' action\n            if (actions === true || actions.editor !== false) {\n                const editorUrl = (_f = opts.editorUrl) !== null && _f !== void 0 ? _f : 'https://vega.github.io/editor/';\n                const editorLink = document.createElement('a');\n                editorLink.text = i18n.EDITOR_ACTION;\n                editorLink.href = '#';\n                editorLink.addEventListener('click', function (e) {\n                    post(window, editorUrl, {\n                        config: config,\n                        mode,\n                        renderer,\n                        spec: json_stringify_pretty_compact__WEBPACK_IMPORTED_MODULE_1___default()(spec),\n                    });\n                    e.preventDefault();\n                });\n                ctrl.append(editorLink);\n            }\n        }\n        function finalize() {\n            if (documentClickHandler) {\n                document.removeEventListener('click', documentClickHandler);\n            }\n            view.finalize();\n        }\n        return { view, spec, vgSpec, finalize };\n    });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (embed);\n\n//# sourceMappingURL=vega-embed.module.js.map\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/build/vega-embed.module.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/classes/comparator.js":
/*!***************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/classes/comparator.js ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n  static get ANY () {\n    return ANY\n  }\n  constructor (comp, options) {\n    if (!options || typeof options !== 'object') {\n      options = {\n        loose: !!options,\n        includePrerelease: false\n      }\n    }\n\n    if (comp instanceof Comparator) {\n      if (comp.loose === !!options.loose) {\n        return comp\n      } else {\n        comp = comp.value\n      }\n    }\n\n    debug('comparator', comp, options)\n    this.options = options\n    this.loose = !!options.loose\n    this.parse(comp)\n\n    if (this.semver === ANY) {\n      this.value = ''\n    } else {\n      this.value = this.operator + this.semver.version\n    }\n\n    debug('comp', this)\n  }\n\n  parse (comp) {\n    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    const m = comp.match(r)\n\n    if (!m) {\n      throw new TypeError(`Invalid comparator: ${comp}`)\n    }\n\n    this.operator = m[1] !== undefined ? m[1] : ''\n    if (this.operator === '=') {\n      this.operator = ''\n    }\n\n    // if it literally is just '>' or '' then allow anything.\n    if (!m[2]) {\n      this.semver = ANY\n    } else {\n      this.semver = new SemVer(m[2], this.options.loose)\n    }\n  }\n\n  toString () {\n    return this.value\n  }\n\n  test (version) {\n    debug('Comparator.test', version, this.options.loose)\n\n    if (this.semver === ANY || version === ANY) {\n      return true\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    return cmp(version, this.operator, this.semver, this.options)\n  }\n\n  intersects (comp, options) {\n    if (!(comp instanceof Comparator)) {\n      throw new TypeError('a Comparator is required')\n    }\n\n    if (!options || typeof options !== 'object') {\n      options = {\n        loose: !!options,\n        includePrerelease: false\n      }\n    }\n\n    if (this.operator === '') {\n      if (this.value === '') {\n        return true\n      }\n      return new Range(comp.value, options).test(this.value)\n    } else if (comp.operator === '') {\n      if (comp.value === '') {\n        return true\n      }\n      return new Range(this.value, options).test(comp.semver)\n    }\n\n    const sameDirectionIncreasing =\n      (this.operator === '>=' || this.operator === '>') &&\n      (comp.operator === '>=' || comp.operator === '>')\n    const sameDirectionDecreasing =\n      (this.operator === '<=' || this.operator === '<') &&\n      (comp.operator === '<=' || comp.operator === '<')\n    const sameSemVer = this.semver.version === comp.semver.version\n    const differentDirectionsInclusive =\n      (this.operator === '>=' || this.operator === '<=') &&\n      (comp.operator === '>=' || comp.operator === '<=')\n    const oppositeDirectionsLessThan =\n      cmp(this.semver, '<', comp.semver, options) &&\n      (this.operator === '>=' || this.operator === '>') &&\n        (comp.operator === '<=' || comp.operator === '<')\n    const oppositeDirectionsGreaterThan =\n      cmp(this.semver, '>', comp.semver, options) &&\n      (this.operator === '<=' || this.operator === '<') &&\n        (comp.operator === '>=' || comp.operator === '>')\n\n    return (\n      sameDirectionIncreasing ||\n      sameDirectionDecreasing ||\n      (sameSemVer && differentDirectionsInclusive) ||\n      oppositeDirectionsLessThan ||\n      oppositeDirectionsGreaterThan\n    )\n  }\n}\n\nmodule.exports = Comparator\n\nconst {re, t} = __webpack_require__(/*! ../internal/re */ \"./node_modules/vega-embed/node_modules/semver/internal/re.js\")\nconst cmp = __webpack_require__(/*! ../functions/cmp */ \"./node_modules/vega-embed/node_modules/semver/functions/cmp.js\")\nconst debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/vega-embed/node_modules/semver/internal/debug.js\")\nconst SemVer = __webpack_require__(/*! ./semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ./range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/classes/comparator.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/classes/range.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/classes/range.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// hoisted class for cyclic dependency\nclass Range {\n  constructor (range, options) {\n    if (!options || typeof options !== 'object') {\n      options = {\n        loose: !!options,\n        includePrerelease: false\n      }\n    }\n\n    if (range instanceof Range) {\n      if (\n        range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease\n      ) {\n        return range\n      } else {\n        return new Range(range.raw, options)\n      }\n    }\n\n    if (range instanceof Comparator) {\n      // just put it in the set and return\n      this.raw = range.value\n      this.set = [[range]]\n      this.format()\n      return this\n    }\n\n    this.options = options\n    this.loose = !!options.loose\n    this.includePrerelease = !!options.includePrerelease\n\n    // First, split based on boolean or ||\n    this.raw = range\n    this.set = range\n      .split(/\\s*\\|\\|\\s*/)\n      // map the range to a 2d array of comparators\n      .map(range => this.parseRange(range.trim()))\n      // throw out any comparator lists that are empty\n      // this generally means that it was not a valid range, which is allowed\n      // in loose mode, but will still throw if the WHOLE range is invalid.\n      .filter(c => c.length)\n\n    if (!this.set.length) {\n      throw new TypeError(`Invalid SemVer Range: ${range}`)\n    }\n\n    this.format()\n  }\n\n  format () {\n    this.range = this.set\n      .map((comps) => {\n        return comps.join(' ').trim()\n      })\n      .join('||')\n      .trim()\n    return this.range\n  }\n\n  toString () {\n    return this.range\n  }\n\n  parseRange (range) {\n    const loose = this.options.loose\n    range = range.trim()\n    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n    debug('hyphen replace', range)\n    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n    debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n    // `~ 1.2.3` => `~1.2.3`\n    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n    // `^ 1.2.3` => `^1.2.3`\n    range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n    // normalize spaces\n    range = range.split(/\\s+/).join(' ')\n\n    // At this point, the range is completely trimmed and\n    // ready to be split into comparators.\n\n    const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    return range\n      .split(' ')\n      .map(comp => parseComparator(comp, this.options))\n      .join(' ')\n      .split(/\\s+/)\n      .map(comp => replaceGTE0(comp, this.options))\n      // in loose mode, throw out any that are not valid comparators\n      .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n      .map(comp => new Comparator(comp, this.options))\n  }\n\n  intersects (range, options) {\n    if (!(range instanceof Range)) {\n      throw new TypeError('a Range is required')\n    }\n\n    return this.set.some((thisComparators) => {\n      return (\n        isSatisfiable(thisComparators, options) &&\n        range.set.some((rangeComparators) => {\n          return (\n            isSatisfiable(rangeComparators, options) &&\n            thisComparators.every((thisComparator) => {\n              return rangeComparators.every((rangeComparator) => {\n                return thisComparator.intersects(rangeComparator, options)\n              })\n            })\n          )\n        })\n      )\n    })\n  }\n\n  // if ANY of the sets match ALL of its comparators, then pass\n  test (version) {\n    if (!version) {\n      return false\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    for (let i = 0; i < this.set.length; i++) {\n      if (testSet(this.set[i], version, this.options)) {\n        return true\n      }\n    }\n    return false\n  }\n}\nmodule.exports = Range\n\nconst Comparator = __webpack_require__(/*! ./comparator */ \"./node_modules/vega-embed/node_modules/semver/classes/comparator.js\")\nconst debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/vega-embed/node_modules/semver/internal/debug.js\")\nconst SemVer = __webpack_require__(/*! ./semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst {\n  re,\n  t,\n  comparatorTrimReplace,\n  tildeTrimReplace,\n  caretTrimReplace\n} = __webpack_require__(/*! ../internal/re */ \"./node_modules/vega-embed/node_modules/semver/internal/re.js\")\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n  let result = true\n  const remainingComparators = comparators.slice()\n  let testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every((otherComparator) => {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n  comp.trim().split(/\\s+/).map((comp) => {\n    return replaceTilde(comp, options)\n  }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('tilde', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = `>=${M}.${m}.${p}-${pr\n      } <${M}.${+m + 1}.0-0`\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n  comp.trim().split(/\\s+/).map((comp) => {\n    return replaceCaret(comp, options)\n  }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n  debug('caret', comp, options)\n  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('caret', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr\n        } <${+M + 1}.0.0-0`\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p\n        } <${+M + 1}.0.0-0`\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nconst replaceXRanges = (comp, options) => {\n  debug('replaceXRanges', comp, options)\n  return comp.split(/\\s+/).map((comp) => {\n    return replaceXRange(comp, options)\n  }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n  comp = comp.trim()\n  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    const xM = isX(M)\n    const xm = xM || isX(m)\n    const xp = xm || isX(p)\n    const anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      if (gtlt === '<')\n        pr = '-0'\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n  debug('replaceGTE0', comp, options)\n  return comp.trim()\n    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr, tb) => {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n  } else if (isX(fp)) {\n    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n  } else if (fpr) {\n    from = `>=${from}`\n  } else {\n    from = `>=${from}${incPr ? '-0' : ''}`\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = `<${+tM + 1}.0.0-0`\n  } else if (isX(tp)) {\n    to = `<${tM}.${+tm + 1}.0-0`\n  } else if (tpr) {\n    to = `<=${tM}.${tm}.${tp}-${tpr}`\n  } else if (incPr) {\n    to = `<${tM}.${tm}.${+tp + 1}-0`\n  } else {\n    to = `<=${to}`\n  }\n\n  return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n  for (let i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (let i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === Comparator.ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        const allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/classes/range.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/classes/semver.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/classes/semver.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const debug = __webpack_require__(/*! ../internal/debug */ \"./node_modules/vega-embed/node_modules/semver/internal/debug.js\")\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(/*! ../internal/constants */ \"./node_modules/vega-embed/node_modules/semver/internal/constants.js\")\nconst { re, t } = __webpack_require__(/*! ../internal/re */ \"./node_modules/vega-embed/node_modules/semver/internal/re.js\")\n\nconst { compareIdentifiers } = __webpack_require__(/*! ../internal/identifiers */ \"./node_modules/vega-embed/node_modules/semver/internal/identifiers.js\")\nclass SemVer {\n  constructor (version, options) {\n    if (!options || typeof options !== 'object') {\n      options = {\n        loose: !!options,\n        includePrerelease: false\n      }\n    }\n    if (version instanceof SemVer) {\n      if (version.loose === !!options.loose &&\n          version.includePrerelease === !!options.includePrerelease) {\n        return version\n      } else {\n        version = version.version\n      }\n    } else if (typeof version !== 'string') {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    if (version.length > MAX_LENGTH) {\n      throw new TypeError(\n        `version is longer than ${MAX_LENGTH} characters`\n      )\n    }\n\n    debug('SemVer', version, options)\n    this.options = options\n    this.loose = !!options.loose\n    // this isn't actually relevant for versions, but keep it so that we\n    // don't run into trouble passing this.options around.\n    this.includePrerelease = !!options.includePrerelease\n\n    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n    if (!m) {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    this.raw = version\n\n    // these are actually numbers\n    this.major = +m[1]\n    this.minor = +m[2]\n    this.patch = +m[3]\n\n    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n      throw new TypeError('Invalid major version')\n    }\n\n    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n      throw new TypeError('Invalid minor version')\n    }\n\n    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n      throw new TypeError('Invalid patch version')\n    }\n\n    // numberify any prerelease numeric ids\n    if (!m[4]) {\n      this.prerelease = []\n    } else {\n      this.prerelease = m[4].split('.').map((id) => {\n        if (/^[0-9]+$/.test(id)) {\n          const num = +id\n          if (num >= 0 && num < MAX_SAFE_INTEGER) {\n            return num\n          }\n        }\n        return id\n      })\n    }\n\n    this.build = m[5] ? m[5].split('.') : []\n    this.format()\n  }\n\n  format () {\n    this.version = `${this.major}.${this.minor}.${this.patch}`\n    if (this.prerelease.length) {\n      this.version += `-${this.prerelease.join('.')}`\n    }\n    return this.version\n  }\n\n  toString () {\n    return this.version\n  }\n\n  compare (other) {\n    debug('SemVer.compare', this.version, this.options, other)\n    if (!(other instanceof SemVer)) {\n      if (typeof other === 'string' && other === this.version) {\n        return 0\n      }\n      other = new SemVer(other, this.options)\n    }\n\n    if (other.version === this.version) {\n      return 0\n    }\n\n    return this.compareMain(other) || this.comparePre(other)\n  }\n\n  compareMain (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    return (\n      compareIdentifiers(this.major, other.major) ||\n      compareIdentifiers(this.minor, other.minor) ||\n      compareIdentifiers(this.patch, other.patch)\n    )\n  }\n\n  comparePre (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    // NOT having a prerelease is > having one\n    if (this.prerelease.length && !other.prerelease.length) {\n      return -1\n    } else if (!this.prerelease.length && other.prerelease.length) {\n      return 1\n    } else if (!this.prerelease.length && !other.prerelease.length) {\n      return 0\n    }\n\n    let i = 0\n    do {\n      const a = this.prerelease[i]\n      const b = other.prerelease[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  compareBuild (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    let i = 0\n    do {\n      const a = this.build[i]\n      const b = other.build[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  // preminor will bump the version up to the next minor release, and immediately\n  // down to pre-release. premajor and prepatch work the same way.\n  inc (release, identifier) {\n    switch (release) {\n      case 'premajor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor = 0\n        this.major++\n        this.inc('pre', identifier)\n        break\n      case 'preminor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor++\n        this.inc('pre', identifier)\n        break\n      case 'prepatch':\n        // If this is already a prerelease, it will bump to the next version\n        // drop any prereleases that might already exist, since they are not\n        // relevant at this point.\n        this.prerelease.length = 0\n        this.inc('patch', identifier)\n        this.inc('pre', identifier)\n        break\n      // If the input is a non-prerelease version, this acts the same as\n      // prepatch.\n      case 'prerelease':\n        if (this.prerelease.length === 0) {\n          this.inc('patch', identifier)\n        }\n        this.inc('pre', identifier)\n        break\n\n      case 'major':\n        // If this is a pre-major version, bump up to the same major version.\n        // Otherwise increment major.\n        // 1.0.0-5 bumps to 1.0.0\n        // 1.1.0 bumps to 2.0.0\n        if (\n          this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0\n        ) {\n          this.major++\n        }\n        this.minor = 0\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'minor':\n        // If this is a pre-minor version, bump up to the same minor version.\n        // Otherwise increment minor.\n        // 1.2.0-5 bumps to 1.2.0\n        // 1.2.1 bumps to 1.3.0\n        if (this.patch !== 0 || this.prerelease.length === 0) {\n          this.minor++\n        }\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'patch':\n        // If this is not a pre-release version, it will increment the patch.\n        // If it is a pre-release it will bump up to the same patch version.\n        // 1.2.0-5 patches to 1.2.0\n        // 1.2.0 patches to 1.2.1\n        if (this.prerelease.length === 0) {\n          this.patch++\n        }\n        this.prerelease = []\n        break\n      // This probably shouldn't be used publicly.\n      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n      case 'pre':\n        if (this.prerelease.length === 0) {\n          this.prerelease = [0]\n        } else {\n          let i = this.prerelease.length\n          while (--i >= 0) {\n            if (typeof this.prerelease[i] === 'number') {\n              this.prerelease[i]++\n              i = -2\n            }\n          }\n          if (i === -1) {\n            // didn't increment anything\n            this.prerelease.push(0)\n          }\n        }\n        if (identifier) {\n          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n          if (this.prerelease[0] === identifier) {\n            if (isNaN(this.prerelease[1])) {\n              this.prerelease = [identifier, 0]\n            }\n          } else {\n            this.prerelease = [identifier, 0]\n          }\n        }\n        break\n\n      default:\n        throw new Error(`invalid increment argument: ${release}`)\n    }\n    this.format()\n    this.raw = this.version\n    return this\n  }\n}\n\nmodule.exports = SemVer\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/classes/semver.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/clean.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/clean.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/vega-embed/node_modules/semver/functions/parse.js\")\nconst clean = (version, options) => {\n  const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\nmodule.exports = clean\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/clean.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/cmp.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/cmp.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const eq = __webpack_require__(/*! ./eq */ \"./node_modules/vega-embed/node_modules/semver/functions/eq.js\")\nconst neq = __webpack_require__(/*! ./neq */ \"./node_modules/vega-embed/node_modules/semver/functions/neq.js\")\nconst gt = __webpack_require__(/*! ./gt */ \"./node_modules/vega-embed/node_modules/semver/functions/gt.js\")\nconst gte = __webpack_require__(/*! ./gte */ \"./node_modules/vega-embed/node_modules/semver/functions/gte.js\")\nconst lt = __webpack_require__(/*! ./lt */ \"./node_modules/vega-embed/node_modules/semver/functions/lt.js\")\nconst lte = __webpack_require__(/*! ./lte */ \"./node_modules/vega-embed/node_modules/semver/functions/lte.js\")\n\nconst cmp = (a, op, b, loose) => {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object')\n        a = a.version\n      if (typeof b === 'object')\n        b = b.version\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object')\n        a = a.version\n      if (typeof b === 'object')\n        b = b.version\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError(`Invalid operator: ${op}`)\n  }\n}\nmodule.exports = cmp\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/cmp.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/coerce.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/coerce.js ***!
  \*************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst parse = __webpack_require__(/*! ./parse */ \"./node_modules/vega-embed/node_modules/semver/functions/parse.js\")\nconst {re, t} = __webpack_require__(/*! ../internal/re */ \"./node_modules/vega-embed/node_modules/semver/internal/re.js\")\n\nconst coerce = (version, options) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version === 'number') {\n    version = String(version)\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  options = options || {}\n\n  let match = null\n  if (!options.rtl) {\n    match = version.match(re[t.COERCE])\n  } else {\n    // Find the right-most coercible string that does not share\n    // a terminus with a more left-ward coercible string.\n    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n    //\n    // Walk through the string checking with a /g regexp\n    // Manually set the index so as to pick up overlapping matches.\n    // Stop when we get a match that ends at the string end, since no\n    // coercible string can be more right-ward without the same terminus.\n    let next\n    while ((next = re[t.COERCERTL].exec(version)) &&\n        (!match || match.index + match[0].length !== version.length)\n    ) {\n      if (!match ||\n            next.index + next[0].length !== match.index + match[0].length) {\n        match = next\n      }\n      re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n    }\n    // leave it in a clean state\n    re[t.COERCERTL].lastIndex = -1\n  }\n\n  if (match === null)\n    return null\n\n  return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/coerce.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/compare-build.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/compare-build.js ***!
  \********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst compareBuild = (a, b, loose) => {\n  const versionA = new SemVer(a, loose)\n  const versionB = new SemVer(b, loose)\n  return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/compare-build.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/compare-loose.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/compare-loose.js ***!
  \********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/compare-loose.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/compare.js":
/*!**************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/compare.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst compare = (a, b, loose) =>\n  new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/compare.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/diff.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/diff.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/vega-embed/node_modules/semver/functions/parse.js\")\nconst eq = __webpack_require__(/*! ./eq */ \"./node_modules/vega-embed/node_modules/semver/functions/eq.js\")\n\nconst diff = (version1, version2) => {\n  if (eq(version1, version2)) {\n    return null\n  } else {\n    const v1 = parse(version1)\n    const v2 = parse(version2)\n    const hasPre = v1.prerelease.length || v2.prerelease.length\n    const prefix = hasPre ? 'pre' : ''\n    const defaultResult = hasPre ? 'prerelease' : ''\n    for (const key in v1) {\n      if (key === 'major' || key === 'minor' || key === 'patch') {\n        if (v1[key] !== v2[key]) {\n          return prefix + key\n        }\n      }\n    }\n    return defaultResult // may be undefined\n  }\n}\nmodule.exports = diff\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/diff.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/eq.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/eq.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/eq.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/gt.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/gt.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/gt.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/gte.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/gte.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/gte.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/inc.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/inc.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\n\nconst inc = (version, release, options, identifier) => {\n  if (typeof (options) === 'string') {\n    identifier = options\n    options = undefined\n  }\n\n  try {\n    return new SemVer(version, options).inc(release, identifier).version\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = inc\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/inc.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/lt.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/lt.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/lt.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/lte.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/lte.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/lte.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/major.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/major.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/major.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/minor.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/minor.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/minor.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/neq.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/neq.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/neq.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/parse.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/parse.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const {MAX_LENGTH} = __webpack_require__(/*! ../internal/constants */ \"./node_modules/vega-embed/node_modules/semver/internal/constants.js\")\nconst { re, t } = __webpack_require__(/*! ../internal/re */ \"./node_modules/vega-embed/node_modules/semver/internal/re.js\")\nconst SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\n\nconst parse = (version, options) => {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  if (version.length > MAX_LENGTH) {\n    return null\n  }\n\n  const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n  if (!r.test(version)) {\n    return null\n  }\n\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    return null\n  }\n}\n\nmodule.exports = parse\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/parse.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/patch.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/patch.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/patch.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/prerelease.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/prerelease.js ***!
  \*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/vega-embed/node_modules/semver/functions/parse.js\")\nconst prerelease = (version, options) => {\n  const parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/prerelease.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/rcompare.js":
/*!***************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/rcompare.js ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compare = __webpack_require__(/*! ./compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/rcompare.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/rsort.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/rsort.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compareBuild = __webpack_require__(/*! ./compare-build */ \"./node_modules/vega-embed/node_modules/semver/functions/compare-build.js\")\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/rsort.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/satisfies.js":
/*!****************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/satisfies.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst satisfies = (version, range, options) => {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\nmodule.exports = satisfies\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/satisfies.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/sort.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/sort.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const compareBuild = __webpack_require__(/*! ./compare-build */ \"./node_modules/vega-embed/node_modules/semver/functions/compare-build.js\")\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/sort.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/functions/valid.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/functions/valid.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const parse = __webpack_require__(/*! ./parse */ \"./node_modules/vega-embed/node_modules/semver/functions/parse.js\")\nconst valid = (version, options) => {\n  const v = parse(version, options)\n  return v ? v.version : null\n}\nmodule.exports = valid\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/functions/valid.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/index.js ***!
  \**************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// just pre-load all the stuff that index.js lazily exports\nconst internalRe = __webpack_require__(/*! ./internal/re */ \"./node_modules/vega-embed/node_modules/semver/internal/re.js\")\nmodule.exports = {\n  re: internalRe.re,\n  src: internalRe.src,\n  tokens: internalRe.t,\n  SEMVER_SPEC_VERSION: __webpack_require__(/*! ./internal/constants */ \"./node_modules/vega-embed/node_modules/semver/internal/constants.js\").SEMVER_SPEC_VERSION,\n  SemVer: __webpack_require__(/*! ./classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\"),\n  compareIdentifiers: __webpack_require__(/*! ./internal/identifiers */ \"./node_modules/vega-embed/node_modules/semver/internal/identifiers.js\").compareIdentifiers,\n  rcompareIdentifiers: __webpack_require__(/*! ./internal/identifiers */ \"./node_modules/vega-embed/node_modules/semver/internal/identifiers.js\").rcompareIdentifiers,\n  parse: __webpack_require__(/*! ./functions/parse */ \"./node_modules/vega-embed/node_modules/semver/functions/parse.js\"),\n  valid: __webpack_require__(/*! ./functions/valid */ \"./node_modules/vega-embed/node_modules/semver/functions/valid.js\"),\n  clean: __webpack_require__(/*! ./functions/clean */ \"./node_modules/vega-embed/node_modules/semver/functions/clean.js\"),\n  inc: __webpack_require__(/*! ./functions/inc */ \"./node_modules/vega-embed/node_modules/semver/functions/inc.js\"),\n  diff: __webpack_require__(/*! ./functions/diff */ \"./node_modules/vega-embed/node_modules/semver/functions/diff.js\"),\n  major: __webpack_require__(/*! ./functions/major */ \"./node_modules/vega-embed/node_modules/semver/functions/major.js\"),\n  minor: __webpack_require__(/*! ./functions/minor */ \"./node_modules/vega-embed/node_modules/semver/functions/minor.js\"),\n  patch: __webpack_require__(/*! ./functions/patch */ \"./node_modules/vega-embed/node_modules/semver/functions/patch.js\"),\n  prerelease: __webpack_require__(/*! ./functions/prerelease */ \"./node_modules/vega-embed/node_modules/semver/functions/prerelease.js\"),\n  compare: __webpack_require__(/*! ./functions/compare */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\"),\n  rcompare: __webpack_require__(/*! ./functions/rcompare */ \"./node_modules/vega-embed/node_modules/semver/functions/rcompare.js\"),\n  compareLoose: __webpack_require__(/*! ./functions/compare-loose */ \"./node_modules/vega-embed/node_modules/semver/functions/compare-loose.js\"),\n  compareBuild: __webpack_require__(/*! ./functions/compare-build */ \"./node_modules/vega-embed/node_modules/semver/functions/compare-build.js\"),\n  sort: __webpack_require__(/*! ./functions/sort */ \"./node_modules/vega-embed/node_modules/semver/functions/sort.js\"),\n  rsort: __webpack_require__(/*! ./functions/rsort */ \"./node_modules/vega-embed/node_modules/semver/functions/rsort.js\"),\n  gt: __webpack_require__(/*! ./functions/gt */ \"./node_modules/vega-embed/node_modules/semver/functions/gt.js\"),\n  lt: __webpack_require__(/*! ./functions/lt */ \"./node_modules/vega-embed/node_modules/semver/functions/lt.js\"),\n  eq: __webpack_require__(/*! ./functions/eq */ \"./node_modules/vega-embed/node_modules/semver/functions/eq.js\"),\n  neq: __webpack_require__(/*! ./functions/neq */ \"./node_modules/vega-embed/node_modules/semver/functions/neq.js\"),\n  gte: __webpack_require__(/*! ./functions/gte */ \"./node_modules/vega-embed/node_modules/semver/functions/gte.js\"),\n  lte: __webpack_require__(/*! ./functions/lte */ \"./node_modules/vega-embed/node_modules/semver/functions/lte.js\"),\n  cmp: __webpack_require__(/*! ./functions/cmp */ \"./node_modules/vega-embed/node_modules/semver/functions/cmp.js\"),\n  coerce: __webpack_require__(/*! ./functions/coerce */ \"./node_modules/vega-embed/node_modules/semver/functions/coerce.js\"),\n  Comparator: __webpack_require__(/*! ./classes/comparator */ \"./node_modules/vega-embed/node_modules/semver/classes/comparator.js\"),\n  Range: __webpack_require__(/*! ./classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\"),\n  satisfies: __webpack_require__(/*! ./functions/satisfies */ \"./node_modules/vega-embed/node_modules/semver/functions/satisfies.js\"),\n  toComparators: __webpack_require__(/*! ./ranges/to-comparators */ \"./node_modules/vega-embed/node_modules/semver/ranges/to-comparators.js\"),\n  maxSatisfying: __webpack_require__(/*! ./ranges/max-satisfying */ \"./node_modules/vega-embed/node_modules/semver/ranges/max-satisfying.js\"),\n  minSatisfying: __webpack_require__(/*! ./ranges/min-satisfying */ \"./node_modules/vega-embed/node_modules/semver/ranges/min-satisfying.js\"),\n  minVersion: __webpack_require__(/*! ./ranges/min-version */ \"./node_modules/vega-embed/node_modules/semver/ranges/min-version.js\"),\n  validRange: __webpack_require__(/*! ./ranges/valid */ \"./node_modules/vega-embed/node_modules/semver/ranges/valid.js\"),\n  outside: __webpack_require__(/*! ./ranges/outside */ \"./node_modules/vega-embed/node_modules/semver/ranges/outside.js\"),\n  gtr: __webpack_require__(/*! ./ranges/gtr */ \"./node_modules/vega-embed/node_modules/semver/ranges/gtr.js\"),\n  ltr: __webpack_require__(/*! ./ranges/ltr */ \"./node_modules/vega-embed/node_modules/semver/ranges/ltr.js\"),\n  intersects: __webpack_require__(/*! ./ranges/intersects */ \"./node_modules/vega-embed/node_modules/semver/ranges/intersects.js\"),\n  simplifyRange: __webpack_require__(/*! ./ranges/simplify */ \"./node_modules/vega-embed/node_modules/semver/ranges/simplify.js\"),\n  subset: __webpack_require__(/*! ./ranges/subset */ \"./node_modules/vega-embed/node_modules/semver/ranges/subset.js\"),\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/index.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/internal/constants.js":
/*!***************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/internal/constants.js ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n  /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n  SEMVER_SPEC_VERSION,\n  MAX_LENGTH,\n  MAX_SAFE_INTEGER,\n  MAX_SAFE_COMPONENT_LENGTH\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/internal/constants.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/internal/debug.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/internal/debug.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("/* WEBPACK VAR INJECTION */(function(process) {const debug = (\n  typeof process === 'object' &&\n  process.env &&\n  process.env.NODE_DEBUG &&\n  /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n  : () => {}\n\nmodule.exports = debug\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/internal/debug.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/internal/identifiers.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/internal/identifiers.js ***!
  \*****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n  const anum = numeric.test(a)\n  const bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n  compareIdentifiers,\n  rcompareIdentifiers\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/internal/identifiers.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/internal/re.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/internal/re.js ***!
  \********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const { MAX_SAFE_COMPONENT_LENGTH } = __webpack_require__(/*! ./constants */ \"./node_modules/vega-embed/node_modules/semver/internal/constants.js\")\nconst debug = __webpack_require__(/*! ./debug */ \"./node_modules/vega-embed/node_modules/semver/internal/debug.js\")\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n  const index = R++\n  debug(index, value)\n  t[name] = index\n  src[index] = value\n  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:${src[t.PRERELEASE]})?${\n                     src[t.BUILD]}?` +\n                   `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:${src[t.PRERELEASELOOSE]})?${\n                          src[t.BUILD]}?` +\n                        `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n              '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s+-\\\\s+` +\n                   `(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s+-\\\\s+` +\n                        `(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/internal/re.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/gtr.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/gtr.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// Determine if version is greater than all the versions possible in the range.\nconst outside = __webpack_require__(/*! ./outside */ \"./node_modules/vega-embed/node_modules/semver/ranges/outside.js\")\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/gtr.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/intersects.js":
/*!**************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/intersects.js ***!
  \**************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst intersects = (r1, r2, options) => {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2)\n}\nmodule.exports = intersects\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/intersects.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/ltr.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/ltr.js ***!
  \*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const outside = __webpack_require__(/*! ./outside */ \"./node_modules/vega-embed/node_modules/semver/ranges/outside.js\")\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/ltr.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/max-satisfying.js":
/*!******************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/max-satisfying.js ***!
  \******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\n\nconst maxSatisfying = (versions, range, options) => {\n  let max = null\n  let maxSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\nmodule.exports = maxSatisfying\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/max-satisfying.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/min-satisfying.js":
/*!******************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/min-satisfying.js ***!
  \******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst minSatisfying = (versions, range, options) => {\n  let min = null\n  let minSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\nmodule.exports = minSatisfying\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/min-satisfying.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/min-version.js":
/*!***************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/min-version.js ***!
  \***************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst gt = __webpack_require__(/*! ../functions/gt */ \"./node_modules/vega-embed/node_modules/semver/functions/gt.js\")\n\nconst minVersion = (range, loose) => {\n  range = new Range(range, loose)\n\n  let minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    comparators.forEach((comparator) => {\n      // Clone to avoid manipulating the comparator's semver object.\n      const compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!minver || gt(minver, compver)) {\n            minver = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error(`Unexpected operation: ${comparator.operator}`)\n      }\n    })\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\nmodule.exports = minVersion\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/min-version.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/outside.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/outside.js ***!
  \***********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const SemVer = __webpack_require__(/*! ../classes/semver */ \"./node_modules/vega-embed/node_modules/semver/classes/semver.js\")\nconst Comparator = __webpack_require__(/*! ../classes/comparator */ \"./node_modules/vega-embed/node_modules/semver/classes/comparator.js\")\nconst {ANY} = Comparator\nconst Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst satisfies = __webpack_require__(/*! ../functions/satisfies */ \"./node_modules/vega-embed/node_modules/semver/functions/satisfies.js\")\nconst gt = __webpack_require__(/*! ../functions/gt */ \"./node_modules/vega-embed/node_modules/semver/functions/gt.js\")\nconst lt = __webpack_require__(/*! ../functions/lt */ \"./node_modules/vega-embed/node_modules/semver/functions/lt.js\")\nconst lte = __webpack_require__(/*! ../functions/lte */ \"./node_modules/vega-embed/node_modules/semver/functions/lte.js\")\nconst gte = __webpack_require__(/*! ../functions/gte */ \"./node_modules/vega-embed/node_modules/semver/functions/gte.js\")\n\nconst outside = (version, range, hilo, options) => {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  let gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisifes the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let high = null\n    let low = null\n\n    comparators.forEach((comparator) => {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nmodule.exports = outside\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/outside.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/simplify.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/simplify.js ***!
  \************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = __webpack_require__(/*! ../functions/satisfies.js */ \"./node_modules/vega-embed/node_modules/semver/functions/satisfies.js\")\nconst compare = __webpack_require__(/*! ../functions/compare.js */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\nmodule.exports = (versions, range, options) => {\n  const set = []\n  let min = null\n  let prev = null\n  const v = versions.sort((a, b) => compare(a, b, options))\n  for (const version of v) {\n    const included = satisfies(version, range, options)\n    if (included) {\n      prev = version\n      if (!min)\n        min = version\n    } else {\n      if (prev) {\n        set.push([min, prev])\n      }\n      prev = null\n      min = null\n    }\n  }\n  if (min)\n    set.push([min, null])\n\n  const ranges = []\n  for (const [min, max] of set) {\n    if (min === max)\n      ranges.push(min)\n    else if (!max && min === v[0])\n      ranges.push('*')\n    else if (!max)\n      ranges.push(`>=${min}`)\n    else if (min === v[0])\n      ranges.push(`<=${max}`)\n    else\n      ranges.push(`${min} - ${max}`)\n  }\n  const simplified = ranges.join(' || ')\n  const original = typeof range.raw === 'string' ? range.raw : String(range)\n  return simplified.length < original.length ? simplified : range\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/simplify.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/subset.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/subset.js ***!
  \**********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const Range = __webpack_require__(/*! ../classes/range.js */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst { ANY } = __webpack_require__(/*! ../classes/comparator.js */ \"./node_modules/vega-embed/node_modules/semver/classes/comparator.js\")\nconst satisfies = __webpack_require__(/*! ../functions/satisfies.js */ \"./node_modules/vega-embed/node_modules/semver/functions/satisfies.js\")\nconst compare = __webpack_require__(/*! ../functions/compare.js */ \"./node_modules/vega-embed/node_modules/semver/functions/compare.js\")\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n//   - If C is only the ANY comparator, return true\n//   - Else return false\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If EQ\n//   - If GT, and EQ does not satisfy GT, return true (null set)\n//   - If LT, and EQ does not satisfy LT, return true (null set)\n//   - If EQ satisfies every C, return true\n//   - Else return false\n// - If GT\n//   - If GT is lower than any > or >= comp in C, return false\n//   - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If LT\n//   - If LT.semver is greater than that of any > comp in C, return false\n//   - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If any C is a = range, and GT or LT are set, return false\n// - Else return true\n\nconst subset = (sub, dom, options) => {\n  sub = new Range(sub, options)\n  dom = new Range(dom, options)\n  let sawNonNull = false\n\n  OUTER: for (const simpleSub of sub.set) {\n    for (const simpleDom of dom.set) {\n      const isSub = simpleSubset(simpleSub, simpleDom, options)\n      sawNonNull = sawNonNull || isSub !== null\n      if (isSub)\n        continue OUTER\n    }\n    // the null set is a subset of everything, but null simple ranges in\n    // a complex range should be ignored.  so if we saw a non-null range,\n    // then we know this isn't a subset, but if EVERY simple range was null,\n    // then it is a subset.\n    if (sawNonNull)\n      return false\n  }\n  return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n  if (sub.length === 1 && sub[0].semver === ANY)\n    return dom.length === 1 && dom[0].semver === ANY\n\n  const eqSet = new Set()\n  let gt, lt\n  for (const c of sub) {\n    if (c.operator === '>' || c.operator === '>=')\n      gt = higherGT(gt, c, options)\n    else if (c.operator === '<' || c.operator === '<=')\n      lt = lowerLT(lt, c, options)\n    else\n      eqSet.add(c.semver)\n  }\n\n  if (eqSet.size > 1)\n    return null\n\n  let gtltComp\n  if (gt && lt) {\n    gtltComp = compare(gt.semver, lt.semver, options)\n    if (gtltComp > 0)\n      return null\n    else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n      return null\n  }\n\n  // will iterate one or zero times\n  for (const eq of eqSet) {\n    if (gt && !satisfies(eq, String(gt), options))\n      return null\n\n    if (lt && !satisfies(eq, String(lt), options))\n      return null\n\n    for (const c of dom) {\n      if (!satisfies(eq, String(c), options))\n        return false\n    }\n    return true\n  }\n\n  let higher, lower\n  let hasDomLT, hasDomGT\n  for (const c of dom) {\n    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n    if (gt) {\n      if (c.operator === '>' || c.operator === '>=') {\n        higher = higherGT(gt, c, options)\n        if (higher === c)\n          return false\n      } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n        return false\n    }\n    if (lt) {\n      if (c.operator === '<' || c.operator === '<=') {\n        lower = lowerLT(lt, c, options)\n        if (lower === c)\n          return false\n      } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n        return false\n    }\n    if (!c.operator && (lt || gt) && gtltComp !== 0)\n      return false\n  }\n\n  // if there was a < or >, and nothing in the dom, then must be false\n  // UNLESS it was limited by another range in the other direction.\n  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n  if (gt && hasDomLT && !lt && gtltComp !== 0)\n    return false\n\n  if (lt && hasDomGT && !gt && gtltComp !== 0)\n    return false\n\n  return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n  if (!a)\n    return b\n  const comp = compare(a.semver, b.semver, options)\n  return comp > 0 ? a\n    : comp < 0 ? b\n    : b.operator === '>' && a.operator === '>=' ? b\n    : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n  if (!a)\n    return b\n  const comp = compare(a.semver, b.semver, options)\n  return comp < 0 ? a\n    : comp > 0 ? b\n    : b.operator === '<' && a.operator === '<=' ? b\n    : a\n}\n\nmodule.exports = subset\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/subset.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/to-comparators.js":
/*!******************************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/to-comparators.js ***!
  \******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n  new Range(range, options).set\n    .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/to-comparators.js?");

/***/ }),

/***/ "./node_modules/vega-embed/node_modules/semver/ranges/valid.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-embed/node_modules/semver/ranges/valid.js ***!
  \*********************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("const Range = __webpack_require__(/*! ../classes/range */ \"./node_modules/vega-embed/node_modules/semver/classes/range.js\")\nconst validRange = (range, options) => {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = validRange\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-embed/node_modules/semver/ranges/valid.js?");

/***/ }),

/***/ "./node_modules/vega-encode/build/vega-encode.module.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-encode/build/vega-encode.module.js ***!
  \**************************************************************/
/*! exports provided: axisticks, datajoin, encode, legendentries, linkpath, pie, scale, sortitems, stack */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"axisticks\", function() { return AxisTicks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"datajoin\", function() { return DataJoin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"encode\", function() { return Encode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"legendentries\", function() { return LegendEntries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linkpath\", function() { return LinkPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pie\", function() { return Pie; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scale\", function() { return Scale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sortitems\", function() { return SortItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stack\", function() { return Stack; });\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_scale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-scale */ \"./node_modules/vega-scale/build/vega-scale.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/index.js\");\n\n\n\n\n\n\n/**\n * Generates axis ticks for visualizing a spatial scale.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Scale} params.scale - The scale to generate ticks for.\n * @param {*} [params.count=10] - The approximate number of ticks, or\n *   desired tick interval, to use.\n * @param {Array<*>} [params.values] - The exact tick values to use.\n *   These must be legal domain values for the provided scale.\n *   If provided, the count argument is ignored.\n * @param {function(*):string} [params.formatSpecifier] - A format specifier\n *   to use in conjunction with scale.tickFormat. Legal values are\n *   any valid d3 4.0 format specifier.\n * @param {function(*):string} [params.format] - The format function to use.\n *   If provided, the formatSpecifier argument is ignored.\n */\n\nfunction AxisTicks(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(AxisTicks, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value && !_.modified()) {\n      return pulse.StopPropagation;\n    }\n\n    var locale = pulse.dataflow.locale(),\n        out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n        ticks = this.value,\n        scale = _.scale,\n        tally = _.count == null ? _.values ? _.values.length : 10 : _.count,\n        count = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"tickCount\"])(scale, tally, _.minstep),\n        format = _.format || Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"tickFormat\"])(locale, scale, count, _.formatSpecifier, _.formatType, !!_.values),\n        values = _.values ? Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"validTicks\"])(scale, _.values, count) : Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"tickValues\"])(scale, count);\n    if (ticks) out.rem = ticks;\n    ticks = values.map((value, i) => Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n      index: i / (values.length - 1 || 1),\n      value: value,\n      label: format(value)\n    }));\n\n    if (_.extra && ticks.length) {\n      // add an extra tick pegged to the initial domain value\n      // this is used to generate axes with 'binned' domains\n      ticks.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n        index: -1,\n        extra: {\n          value: ticks[0].value\n        },\n        label: ''\n      }));\n    }\n\n    out.source = ticks;\n    out.add = ticks;\n    this.value = ticks;\n    return out;\n  }\n\n});\n\n/**\n * Joins a set of data elements against a set of visual items.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): object} [params.item] - An item generator function.\n * @param {function(object): *} [params.key] - The key field associating data and visual items.\n */\n\nfunction DataJoin(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\n\nfunction defaultItemCreate() {\n  return Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({});\n}\n\nfunction newMap(key) {\n  const map = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"fastmap\"])().test(t => t.exit);\n\n  map.lookup = t => map.get(key(t));\n\n  return map;\n}\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(DataJoin, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var df = pulse.dataflow,\n        out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n        item = _.item || defaultItemCreate,\n        key = _.key || vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"],\n        map = this.value; // prevent transient (e.g., hover) requests from\n    // cascading across marks derived from marks\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(out.encode)) {\n      out.encode = null;\n    }\n\n    if (map && (_.modified('key') || pulse.modified(key))) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('DataJoin does not support modified key function or fields.');\n    }\n\n    if (!map) {\n      pulse = pulse.addAll();\n      this.value = map = newMap(key);\n    }\n\n    pulse.visit(pulse.ADD, t => {\n      const k = key(t);\n      let x = map.get(k);\n\n      if (x) {\n        if (x.exit) {\n          map.empty--;\n          out.add.push(x);\n        } else {\n          out.mod.push(x);\n        }\n      } else {\n        x = item(t);\n        map.set(k, x);\n        out.add.push(x);\n      }\n\n      x.datum = t;\n      x.exit = false;\n    });\n    pulse.visit(pulse.MOD, t => {\n      const k = key(t),\n            x = map.get(k);\n\n      if (x) {\n        x.datum = t;\n        out.mod.push(x);\n      }\n    });\n    pulse.visit(pulse.REM, t => {\n      const k = key(t),\n            x = map.get(k);\n\n      if (t === x.datum && !x.exit) {\n        out.rem.push(x);\n        x.exit = true;\n        ++map.empty;\n      }\n    });\n    if (pulse.changed(pulse.ADD_MOD)) out.modifies('datum');\n\n    if (pulse.clean() || _.clean && map.empty > df.cleanThreshold) {\n      df.runAfter(map.clean);\n    }\n\n    return out;\n  }\n\n});\n\n/**\n * Invokes encoding functions for visual items.\n * @constructor\n * @param {object} params - The parameters to the encoding functions. This\n *   parameter object will be passed through to all invoked encoding functions.\n * @param {object} [params.mod=false] - Flag indicating if tuples in the input\n *   mod set that are unmodified by encoders should be included in the output.\n * @param {object} param.encoders - The encoding functions\n * @param {function(object, object): boolean} [param.encoders.update] - Update encoding set\n * @param {function(object, object): boolean} [param.encoders.enter] - Enter encoding set\n * @param {function(object, object): boolean} [param.encoders.exit] - Exit encoding set\n */\n\nfunction Encode(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Encode, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var out = pulse.fork(pulse.ADD_REM),\n        fmod = _.mod || false,\n        encoders = _.encoders,\n        encode = pulse.encode; // if an array, the encode directive includes additional sets\n    // that must be defined in order for the primary set to be invoked\n    // e.g., only run the update set if the hover set is defined\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(encode)) {\n      if (out.changed() || encode.every(e => encoders[e])) {\n        encode = encode[0];\n        out.encode = null; // consume targeted encode directive\n      } else {\n        return pulse.StopPropagation;\n      }\n    } // marshall encoder functions\n\n\n    var reenter = encode === 'enter',\n        update = encoders.update || vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"],\n        enter = encoders.enter || vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"],\n        exit = encoders.exit || vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"],\n        set = (encode && !reenter ? encoders[encode] : update) || vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"];\n\n    if (pulse.changed(pulse.ADD)) {\n      pulse.visit(pulse.ADD, t => {\n        enter(t, _);\n        update(t, _);\n      });\n      out.modifies(enter.output);\n      out.modifies(update.output);\n\n      if (set !== vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"] && set !== update) {\n        pulse.visit(pulse.ADD, t => {\n          set(t, _);\n        });\n        out.modifies(set.output);\n      }\n    }\n\n    if (pulse.changed(pulse.REM) && exit !== vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"]) {\n      pulse.visit(pulse.REM, t => {\n        exit(t, _);\n      });\n      out.modifies(exit.output);\n    }\n\n    if (reenter || set !== vega_util__WEBPACK_IMPORTED_MODULE_2__[\"falsy\"]) {\n      const flag = pulse.MOD | (_.modified() ? pulse.REFLOW : 0);\n\n      if (reenter) {\n        pulse.visit(flag, t => {\n          const mod = enter(t, _) || fmod;\n          if (set(t, _) || mod) out.mod.push(t);\n        });\n        if (out.mod.length) out.modifies(enter.output);\n      } else {\n        pulse.visit(flag, t => {\n          if (set(t, _) || fmod) out.mod.push(t);\n        });\n      }\n\n      if (out.mod.length) out.modifies(set.output);\n    }\n\n    return out.changed() ? out : pulse.StopPropagation;\n  }\n\n});\n\n/**\n * Generates legend entries for visualizing a scale.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Scale} params.scale - The scale to generate items for.\n * @param {*} [params.count=5] - The approximate number of items, or\n *   desired tick interval, to use.\n * @param {*} [params.limit] - The maximum number of entries to\n *   include in a symbol legend.\n * @param {Array<*>} [params.values] - The exact tick values to use.\n *   These must be legal domain values for the provided scale.\n *   If provided, the count argument is ignored.\n * @param {string} [params.formatSpecifier] - A format specifier\n *   to use in conjunction with scale.tickFormat. Legal values are\n *   any valid D3 format specifier string.\n * @param {function(*):string} [params.format] - The format function to use.\n *   If provided, the formatSpecifier argument is ignored.\n */\n\nfunction LegendEntries(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, [], params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(LegendEntries, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value != null && !_.modified()) {\n      return pulse.StopPropagation;\n    }\n\n    var locale = pulse.dataflow.locale(),\n        out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n        items = this.value,\n        type = _.type || vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"SymbolLegend\"],\n        scale = _.scale,\n        limit = +_.limit,\n        count = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"tickCount\"])(scale, _.count == null ? 5 : _.count, _.minstep),\n        lskip = !!_.values || type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"SymbolLegend\"],\n        format = _.format || Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"labelFormat\"])(locale, scale, count, type, _.formatSpecifier, _.formatType, lskip),\n        values = _.values || Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"labelValues\"])(scale, count),\n        domain,\n        fraction,\n        size,\n        offset,\n        ellipsis;\n    if (items) out.rem = items;\n\n    if (type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"SymbolLegend\"]) {\n      if (limit && values.length > limit) {\n        pulse.dataflow.warn('Symbol legend count exceeds limit, filtering items.');\n        items = values.slice(0, limit - 1);\n        ellipsis = true;\n      } else {\n        items = values;\n      }\n\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(size = _.size)) {\n        // if first value maps to size zero, remove from list (vega#717)\n        if (!_.values && scale(items[0]) === 0) {\n          items = items.slice(1);\n        } // compute size offset for legend entries\n\n\n        offset = items.reduce((max, value) => Math.max(max, size(value, _)), 0);\n      } else {\n        size = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"constant\"])(offset = size || 8);\n      }\n\n      items = items.map((value, index) => Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n        index: index,\n        label: format(value, index, items),\n        value: value,\n        offset: offset,\n        size: size(value, _)\n      }));\n\n      if (ellipsis) {\n        ellipsis = values[items.length];\n        items.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n          index: items.length,\n          label: \"\\u2026\".concat(values.length - items.length, \" entries\"),\n          value: ellipsis,\n          offset: offset,\n          size: size(ellipsis, _)\n        }));\n      }\n    } else if (type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"GradientLegend\"]) {\n      domain = scale.domain(), fraction = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"scaleFraction\"])(scale, domain[0], Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(domain)); // if automatic label generation produces 2 or fewer values,\n      // use the domain end points instead (fixes vega/vega#1364)\n\n      if (values.length < 3 && !_.values && domain[0] !== Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(domain)) {\n        values = [domain[0], Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(domain)];\n      }\n\n      items = values.map((value, index) => Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n        index: index,\n        label: format(value, index, values),\n        value: value,\n        perc: fraction(value)\n      }));\n    } else {\n      size = values.length - 1;\n      fraction = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"labelFraction\"])(scale);\n      items = values.map((value, index) => Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n        index: index,\n        label: format(value, index, values),\n        value: value,\n        perc: index ? fraction(value) : 0,\n        perc2: index === size ? 1 : fraction(values[index + 1])\n      }));\n    }\n\n    out.source = items;\n    out.add = items;\n    this.value = items;\n    return out;\n  }\n\n});\n\nconst sourceX = t => t.source.x;\n\nconst sourceY = t => t.source.y;\n\nconst targetX = t => t.target.x;\n\nconst targetY = t => t.target.y;\n/**\n * Layout paths linking source and target elements.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\n\nfunction LinkPath(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, {}, params);\n}\nLinkPath.Definition = {\n  'type': 'LinkPath',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'sourceX',\n    'type': 'field',\n    'default': 'source.x'\n  }, {\n    'name': 'sourceY',\n    'type': 'field',\n    'default': 'source.y'\n  }, {\n    'name': 'targetX',\n    'type': 'field',\n    'default': 'target.x'\n  }, {\n    'name': 'targetY',\n    'type': 'field',\n    'default': 'target.y'\n  }, {\n    'name': 'orient',\n    'type': 'enum',\n    'default': 'vertical',\n    'values': ['horizontal', 'vertical', 'radial']\n  }, {\n    'name': 'shape',\n    'type': 'enum',\n    'default': 'line',\n    'values': ['line', 'arc', 'curve', 'diagonal', 'orthogonal']\n  }, {\n    'name': 'require',\n    'type': 'signal'\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'path'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(LinkPath, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var sx = _.sourceX || sourceX,\n        sy = _.sourceY || sourceY,\n        tx = _.targetX || targetX,\n        ty = _.targetY || targetY,\n        as = _.as || 'path',\n        orient = _.orient || 'vertical',\n        shape = _.shape || 'line',\n        path = Paths.get(shape + '-' + orient) || Paths.get(shape);\n\n    if (!path) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('LinkPath unsupported type: ' + _.shape + (_.orient ? '-' + _.orient : ''));\n    }\n\n    pulse.visit(pulse.SOURCE, t => {\n      t[as] = path(sx(t), sy(t), tx(t), ty(t));\n    });\n    return pulse.reflow(_.modified()).modifies(as);\n  }\n\n});\n\nconst line = (sx, sy, tx, ty) => 'M' + sx + ',' + sy + 'L' + tx + ',' + ty;\n\nconst lineR = (sa, sr, ta, tr) => line(sr * Math.cos(sa), sr * Math.sin(sa), tr * Math.cos(ta), tr * Math.sin(ta));\n\nconst arc = (sx, sy, tx, ty) => {\n  var dx = tx - sx,\n      dy = ty - sy,\n      rr = Math.sqrt(dx * dx + dy * dy) / 2,\n      ra = 180 * Math.atan2(dy, dx) / Math.PI;\n  return 'M' + sx + ',' + sy + 'A' + rr + ',' + rr + ' ' + ra + ' 0 1' + ' ' + tx + ',' + ty;\n};\n\nconst arcR = (sa, sr, ta, tr) => arc(sr * Math.cos(sa), sr * Math.sin(sa), tr * Math.cos(ta), tr * Math.sin(ta));\n\nconst curve = (sx, sy, tx, ty) => {\n  const dx = tx - sx,\n        dy = ty - sy,\n        ix = 0.2 * (dx + dy),\n        iy = 0.2 * (dy - dx);\n  return 'M' + sx + ',' + sy + 'C' + (sx + ix) + ',' + (sy + iy) + ' ' + (tx + iy) + ',' + (ty - ix) + ' ' + tx + ',' + ty;\n};\n\nconst curveR = (sa, sr, ta, tr) => curve(sr * Math.cos(sa), sr * Math.sin(sa), tr * Math.cos(ta), tr * Math.sin(ta));\n\nconst orthoX = (sx, sy, tx, ty) => 'M' + sx + ',' + sy + 'V' + ty + 'H' + tx;\n\nconst orthoY = (sx, sy, tx, ty) => 'M' + sx + ',' + sy + 'H' + tx + 'V' + ty;\n\nconst orthoR = (sa, sr, ta, tr) => {\n  const sc = Math.cos(sa),\n        ss = Math.sin(sa),\n        tc = Math.cos(ta),\n        ts = Math.sin(ta),\n        sf = Math.abs(ta - sa) > Math.PI ? ta <= sa : ta > sa;\n  return 'M' + sr * sc + ',' + sr * ss + 'A' + sr + ',' + sr + ' 0 0,' + (sf ? 1 : 0) + ' ' + sr * tc + ',' + sr * ts + 'L' + tr * tc + ',' + tr * ts;\n};\n\nconst diagonalX = (sx, sy, tx, ty) => {\n  const m = (sx + tx) / 2;\n  return 'M' + sx + ',' + sy + 'C' + m + ',' + sy + ' ' + m + ',' + ty + ' ' + tx + ',' + ty;\n};\n\nconst diagonalY = (sx, sy, tx, ty) => {\n  const m = (sy + ty) / 2;\n  return 'M' + sx + ',' + sy + 'C' + sx + ',' + m + ' ' + tx + ',' + m + ' ' + tx + ',' + ty;\n};\n\nconst diagonalR = (sa, sr, ta, tr) => {\n  const sc = Math.cos(sa),\n        ss = Math.sin(sa),\n        tc = Math.cos(ta),\n        ts = Math.sin(ta),\n        mr = (sr + tr) / 2;\n  return 'M' + sr * sc + ',' + sr * ss + 'C' + mr * sc + ',' + mr * ss + ' ' + mr * tc + ',' + mr * ts + ' ' + tr * tc + ',' + tr * ts;\n};\n\nconst Paths = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"fastmap\"])({\n  'line': line,\n  'line-radial': lineR,\n  'arc': arc,\n  'arc-radial': arcR,\n  'curve': curve,\n  'curve-radial': curveR,\n  'orthogonal-horizontal': orthoX,\n  'orthogonal-vertical': orthoY,\n  'orthogonal-radial': orthoR,\n  'diagonal-horizontal': diagonalX,\n  'diagonal-vertical': diagonalY,\n  'diagonal-radial': diagonalR\n});\n\n/**\n * Pie and donut chart layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to size pie segments.\n * @param {number} [params.startAngle=0] - The start angle (in radians) of the layout.\n * @param {number} [params.endAngle=2π] - The end angle (in radians) of the layout.\n * @param {boolean} [params.sort] - Boolean flag for sorting sectors by value.\n */\n\nfunction Pie(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nPie.Definition = {\n  'type': 'Pie',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'startAngle',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'endAngle',\n    'type': 'number',\n    'default': 6.283185307179586\n  }, {\n    'name': 'sort',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': ['startAngle', 'endAngle']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Pie, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var as = _.as || ['startAngle', 'endAngle'],\n        startAngle = as[0],\n        endAngle = as[1],\n        field = _.field || vega_util__WEBPACK_IMPORTED_MODULE_2__[\"one\"],\n        start = _.startAngle || 0,\n        stop = _.endAngle != null ? _.endAngle : 2 * Math.PI,\n        data = pulse.source,\n        values = data.map(field),\n        n = values.length,\n        a = start,\n        k = (stop - start) / Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"sum\"])(values),\n        index = Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"range\"])(n),\n        i,\n        t,\n        v;\n\n    if (_.sort) {\n      index.sort((a, b) => values[a] - values[b]);\n    }\n\n    for (i = 0; i < n; ++i) {\n      v = values[index[i]];\n      t = data[index[i]];\n      t[startAngle] = a;\n      t[endAngle] = a += v * k;\n    }\n\n    this.value = values;\n    return pulse.reflow(_.modified()).modifies(as);\n  }\n\n});\n\nconst DEFAULT_COUNT = 5;\n\nfunction includeZero(scale) {\n  const type = scale.type;\n  return !scale.bins && (type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Linear\"] || type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Pow\"] || type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Sqrt\"]);\n}\n\nfunction includePad(type) {\n  return Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"isContinuous\"])(type) && type !== vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Sequential\"];\n}\n\nconst SKIP = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"toSet\"])(['set', 'modified', 'clear', 'type', 'scheme', 'schemeExtent', 'schemeCount', 'domain', 'domainMin', 'domainMid', 'domainMax', 'domainRaw', 'domainImplicit', 'nice', 'zero', 'bins', 'range', 'rangeStep', 'round', 'reverse', 'interpolate', 'interpolateGamma']);\n/**\n * Maintains a scale function mapping data values to visual channels.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\nfunction Scale(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n  this.modified(true); // always treat as modified\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Scale, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var df = pulse.dataflow,\n        scale$1 = this.value,\n        key = scaleKey(_);\n\n    if (!scale$1 || key !== scale$1.type) {\n      this.value = scale$1 = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"scale\"])(key)();\n    }\n\n    for (key in _) if (!SKIP[key]) {\n      // padding is a scale property for band/point but not others\n      if (key === 'padding' && includePad(scale$1.type)) continue; // invoke scale property setter, raise warning if not found\n\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(scale$1[key]) ? scale$1[key](_[key]) : df.warn('Unsupported scale property: ' + key);\n    }\n\n    configureRange(scale$1, _, configureBins(scale$1, _, configureDomain(scale$1, _, df)));\n    return pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n  }\n\n});\n\nfunction scaleKey(_) {\n  var t = _.type,\n      d = '',\n      n; // backwards compatibility pre Vega 5.\n\n  if (t === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Sequential\"]) return vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Sequential\"] + '-' + vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Linear\"];\n\n  if (isContinuousColor(_)) {\n    n = _.rawDomain ? _.rawDomain.length : _.domain ? _.domain.length + +(_.domainMid != null) : 0;\n    d = n === 2 ? vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Sequential\"] + '-' : n === 3 ? vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Diverging\"] + '-' : '';\n  }\n\n  return (d + t || vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Linear\"]).toLowerCase();\n}\n\nfunction isContinuousColor(_) {\n  const t = _.type;\n  return Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"isContinuous\"])(t) && t !== vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Time\"] && t !== vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"UTC\"] && (_.scheme || _.range && _.range.length && _.range.every(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isString\"]));\n}\n\nfunction configureDomain(scale, _, df) {\n  // check raw domain, if provided use that and exit early\n  const raw = rawDomain(scale, _.domainRaw, df);\n  if (raw > -1) return raw;\n  var domain = _.domain,\n      type = scale.type,\n      zero = _.zero || _.zero === undefined && includeZero(scale),\n      n,\n      mid;\n  if (!domain) return 0; // adjust continuous domain for minimum pixel padding\n\n  if (includePad(type) && _.padding && domain[0] !== Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(domain)) {\n    domain = padDomain(type, domain, _.range, _.padding, _.exponent, _.constant);\n  } // adjust domain based on zero, min, max settings\n\n\n  if (zero || _.domainMin != null || _.domainMax != null || _.domainMid != null) {\n    n = (domain = domain.slice()).length - 1 || 1;\n\n    if (zero) {\n      if (domain[0] > 0) domain[0] = 0;\n      if (domain[n] < 0) domain[n] = 0;\n    }\n\n    if (_.domainMin != null) domain[0] = _.domainMin;\n    if (_.domainMax != null) domain[n] = _.domainMax;\n\n    if (_.domainMid != null) {\n      mid = _.domainMid;\n      const i = mid > domain[n] ? n + 1 : mid < domain[0] ? 0 : n;\n      if (i !== n) df.warn('Scale domainMid exceeds domain min or max.', mid);\n      domain.splice(i, 0, mid);\n    }\n  } // set the scale domain\n\n\n  scale.domain(domainCheck(type, domain, df)); // if ordinal scale domain is defined, prevent implicit\n  // domain construction as side-effect of scale lookup\n\n  if (type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Ordinal\"]) {\n    scale.unknown(_.domainImplicit ? vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"scaleImplicit\"] : undefined);\n  } // perform 'nice' adjustment as requested\n\n\n  if (_.nice && scale.nice) {\n    scale.nice(_.nice !== true && Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"tickCount\"])(scale, _.nice) || null);\n  } // return the cardinality of the domain\n\n\n  return domain.length;\n}\n\nfunction rawDomain(scale, raw, df) {\n  if (raw) {\n    scale.domain(domainCheck(scale.type, raw, df));\n    return raw.length;\n  } else {\n    return -1;\n  }\n}\n\nfunction padDomain(type, domain, range, pad, exponent, constant) {\n  var span = Math.abs(Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(range) - range[0]),\n      frac = span / (span - 2 * pad),\n      d = type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Log\"] ? Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"zoomLog\"])(domain, null, frac) : type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Sqrt\"] ? Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"zoomPow\"])(domain, null, frac, 0.5) : type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Pow\"] ? Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"zoomPow\"])(domain, null, frac, exponent || 1) : type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Symlog\"] ? Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"zoomSymlog\"])(domain, null, frac, constant || 1) : Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"zoomLinear\"])(domain, null, frac);\n  domain = domain.slice();\n  domain[0] = d[0];\n  domain[domain.length - 1] = d[1];\n  return domain;\n}\n\nfunction domainCheck(type, domain, df) {\n  if (Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"isLogarithmic\"])(type)) {\n    // sum signs of domain values\n    // if all pos or all neg, abs(sum) === domain.length\n    var s = Math.abs(domain.reduce((s, v) => s + (v < 0 ? -1 : v > 0 ? 1 : 0), 0));\n\n    if (s !== domain.length) {\n      df.warn('Log scale domain includes zero: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"stringValue\"])(domain));\n    }\n  }\n\n  return domain;\n}\n\nfunction configureBins(scale, _, count) {\n  let bins = _.bins;\n\n  if (bins && !Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(bins)) {\n    // generate bin boundary array\n    const domain = scale.domain(),\n          lo = domain[0],\n          hi = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(domain),\n          step = bins.step;\n    let start = bins.start == null ? lo : bins.start,\n        stop = bins.stop == null ? hi : bins.stop;\n    if (!step) Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('Scale bins parameter missing step property.');\n    if (start < lo) start = step * Math.ceil(lo / step);\n    if (stop > hi) stop = step * Math.floor(hi / step);\n    bins = Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"range\"])(start, stop + step / 2, step);\n  }\n\n  if (bins) {\n    // assign bin boundaries to scale instance\n    scale.bins = bins;\n  } else if (scale.bins) {\n    // no current bins, remove bins if previously set\n    delete scale.bins;\n  } // special handling for bin-ordinal scales\n\n\n  if (scale.type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"BinOrdinal\"]) {\n    if (!bins) {\n      // the domain specifies the bins\n      scale.bins = scale.domain();\n    } else if (!_.domain && !_.domainRaw) {\n      // the bins specify the domain\n      scale.domain(bins);\n      count = bins.length;\n    }\n  } // return domain cardinality\n\n\n  return count;\n}\n\nfunction configureRange(scale, _, count) {\n  var type = scale.type,\n      round = _.round || false,\n      range = _.range; // if range step specified, calculate full range extent\n\n  if (_.rangeStep != null) {\n    range = configureRangeStep(type, _, count);\n  } // else if a range scheme is defined, use that\n  else if (_.scheme) {\n      range = configureScheme(type, _, count);\n\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(range)) {\n        if (scale.interpolator) {\n          return scale.interpolator(range);\n        } else {\n          Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(\"Scale type \".concat(type, \" does not support interpolating color schemes.\"));\n        }\n      }\n    } // given a range array for an interpolating scale, convert to interpolator\n\n\n  if (range && Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"isInterpolating\"])(type)) {\n    return scale.interpolator(Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"interpolateColors\"])(flip(range, _.reverse), _.interpolate, _.interpolateGamma));\n  } // configure rounding / interpolation\n\n\n  if (range && _.interpolate && scale.interpolate) {\n    scale.interpolate(Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"interpolate\"])(_.interpolate, _.interpolateGamma));\n  } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(scale.round)) {\n    scale.round(round);\n  } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(scale.rangeRound)) {\n    scale.interpolate(round ? d3_interpolate__WEBPACK_IMPORTED_MODULE_4__[\"interpolateRound\"] : d3_interpolate__WEBPACK_IMPORTED_MODULE_4__[\"interpolate\"]);\n  }\n\n  if (range) scale.range(flip(range, _.reverse));\n}\n\nfunction configureRangeStep(type, _, count) {\n  if (type !== vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Band\"] && type !== vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Point\"]) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('Only band and point scales support rangeStep.');\n  } // calculate full range based on requested step size and padding\n\n\n  var outer = (_.paddingOuter != null ? _.paddingOuter : _.padding) || 0,\n      inner = type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Point\"] ? 1 : (_.paddingInner != null ? _.paddingInner : _.padding) || 0;\n  return [0, _.rangeStep * Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"bandSpace\"])(count, inner, outer)];\n}\n\nfunction configureScheme(type, _, count) {\n  var extent = _.schemeExtent,\n      name,\n      scheme$1;\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isArray\"])(_.scheme)) {\n    scheme$1 = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"interpolateColors\"])(_.scheme, _.interpolate, _.interpolateGamma);\n  } else {\n    name = _.scheme.toLowerCase();\n    scheme$1 = Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"scheme\"])(name);\n    if (!scheme$1) Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])(\"Unrecognized scheme name: \".concat(_.scheme));\n  } // determine size for potential discrete range\n\n\n  count = type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Threshold\"] ? count + 1 : type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"BinOrdinal\"] ? count - 1 : type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Quantile\"] || type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Quantize\"] ? +_.schemeCount || DEFAULT_COUNT : count; // adjust and/or quantize scheme as appropriate\n\n  return Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"isInterpolating\"])(type) ? adjustScheme(scheme$1, extent, _.reverse) : Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(scheme$1) ? Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"quantizeInterpolator\"])(adjustScheme(scheme$1, extent), count) : type === vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"Ordinal\"] ? scheme$1 : scheme$1.slice(0, count);\n}\n\nfunction adjustScheme(scheme, extent, reverse) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(scheme) && (extent || reverse) ? Object(vega_scale__WEBPACK_IMPORTED_MODULE_1__[\"interpolateRange\"])(scheme, flip(extent || [0, 1], reverse)) : scheme;\n}\n\nfunction flip(array, reverse) {\n  return reverse ? array.slice().reverse() : array;\n}\n\n/**\n * Sorts scenegraph items in the pulse source array.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(*,*): number} [params.sort] - A comparator\n *   function for sorting tuples.\n */\n\nfunction SortItems(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(SortItems, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const mod = _.modified('sort') || pulse.changed(pulse.ADD) || pulse.modified(_.sort.fields) || pulse.modified('datum');\n    if (mod) pulse.source.sort(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"stableCompare\"])(_.sort));\n    this.modified(mod);\n    return pulse;\n  }\n\n});\n\nconst Zero = 'zero',\n      Center = 'center',\n      Normalize = 'normalize',\n      DefOutput = ['y0', 'y1'];\n/**\n * Stack layout for visualization elements.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to stack.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.\n * @param {function(object,object): number} [params.sort] - A comparator for stack sorting.\n * @param {string} [offset='zero'] - Stack baseline offset. One of 'zero', 'center', 'normalize'.\n */\n\nfunction Stack(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nStack.Definition = {\n  'type': 'Stack',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'sort',\n    'type': 'compare'\n  }, {\n    'name': 'offset',\n    'type': 'enum',\n    'default': Zero,\n    'values': [Zero, Center, Normalize]\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': DefOutput\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Stack, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var as = _.as || DefOutput,\n        y0 = as[0],\n        y1 = as[1],\n        sort = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"stableCompare\"])(_.sort),\n        field = _.field || vega_util__WEBPACK_IMPORTED_MODULE_2__[\"one\"],\n        stack = _.offset === Center ? stackCenter : _.offset === Normalize ? stackNormalize : stackZero,\n        groups,\n        i,\n        n,\n        max; // partition, sum, and sort the stack groups\n\n    groups = partition(pulse.source, _.groupby, sort, field); // compute stack layouts per group\n\n    for (i = 0, n = groups.length, max = groups.max; i < n; ++i) {\n      stack(groups[i], max, field, y0, y1);\n    }\n\n    return pulse.reflow(_.modified()).modifies(as);\n  }\n\n});\n\nfunction stackCenter(group, max, field, y0, y1) {\n  var last = (max - group.sum) / 2,\n      m = group.length,\n      j = 0,\n      t;\n\n  for (; j < m; ++j) {\n    t = group[j];\n    t[y0] = last;\n    t[y1] = last += Math.abs(field(t));\n  }\n}\n\nfunction stackNormalize(group, max, field, y0, y1) {\n  var scale = 1 / group.sum,\n      last = 0,\n      m = group.length,\n      j = 0,\n      v = 0,\n      t;\n\n  for (; j < m; ++j) {\n    t = group[j];\n    t[y0] = last;\n    t[y1] = last = scale * (v += Math.abs(field(t)));\n  }\n}\n\nfunction stackZero(group, max, field, y0, y1) {\n  var lastPos = 0,\n      lastNeg = 0,\n      m = group.length,\n      j = 0,\n      v,\n      t;\n\n  for (; j < m; ++j) {\n    t = group[j];\n    v = +field(t);\n\n    if (v < 0) {\n      t[y0] = lastNeg;\n      t[y1] = lastNeg += v;\n    } else {\n      t[y0] = lastPos;\n      t[y1] = lastPos += v;\n    }\n  }\n}\n\nfunction partition(data, groupby, sort, field) {\n  var groups = [],\n      get = f => f(t),\n      map,\n      i,\n      n,\n      m,\n      t,\n      k,\n      g,\n      s,\n      max; // partition data points into stack groups\n\n\n  if (groupby == null) {\n    groups.push(data.slice());\n  } else {\n    for (map = {}, i = 0, n = data.length; i < n; ++i) {\n      t = data[i];\n      k = groupby.map(get);\n      g = map[k];\n\n      if (!g) {\n        map[k] = g = [];\n        groups.push(g);\n      }\n\n      g.push(t);\n    }\n  } // compute sums of groups, sort groups as needed\n\n\n  for (k = 0, max = 0, m = groups.length; k < m; ++k) {\n    g = groups[k];\n\n    for (i = 0, s = 0, n = g.length; i < n; ++i) {\n      s += Math.abs(field(g[i]));\n    }\n\n    g.sum = s;\n    if (s > max) max = s;\n    if (sort) g.sort(sort);\n  }\n\n  groups.max = max;\n  return groups;\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-encode/build/vega-encode.module.js?");

/***/ }),

/***/ "./node_modules/vega-event-selector/build/vega-event-selector.module.js":
/*!******************************************************************************!*\
  !*** ./node_modules/vega-event-selector/build/vega-event-selector.module.js ***!
  \******************************************************************************/
/*! exports provided: selector */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selector\", function() { return eventSelector; });\nconst VIEW = 'view',\n      LBRACK = '[',\n      RBRACK = ']',\n      LBRACE = '{',\n      RBRACE = '}',\n      COLON = ':',\n      COMMA = ',',\n      NAME = '@',\n      GT = '>',\n      ILLEGAL = /[[\\]{}]/,\n      DEFAULT_MARKS = {\n  '*': 1,\n  arc: 1,\n  area: 1,\n  group: 1,\n  image: 1,\n  line: 1,\n  path: 1,\n  rect: 1,\n  rule: 1,\n  shape: 1,\n  symbol: 1,\n  text: 1,\n  trail: 1\n};\nlet DEFAULT_SOURCE, MARKS;\n/**\n * Parse an event selector string.\n * Returns an array of event stream definitions.\n */\n\nfunction eventSelector (selector, source, marks) {\n  DEFAULT_SOURCE = source || VIEW;\n  MARKS = marks || DEFAULT_MARKS;\n  return parseMerge(selector.trim()).map(parseSelector);\n}\n\nfunction isMarkType(type) {\n  return MARKS[type];\n}\n\nfunction find(s, i, endChar, pushChar, popChar) {\n  const n = s.length;\n  let count = 0,\n      c;\n\n  for (; i < n; ++i) {\n    c = s[i];\n    if (!count && c === endChar) return i;else if (popChar && popChar.indexOf(c) >= 0) --count;else if (pushChar && pushChar.indexOf(c) >= 0) ++count;\n  }\n\n  return i;\n}\n\nfunction parseMerge(s) {\n  const output = [],\n        n = s.length;\n  let start = 0,\n      i = 0;\n\n  while (i < n) {\n    i = find(s, i, COMMA, LBRACK + LBRACE, RBRACK + RBRACE);\n    output.push(s.substring(start, i).trim());\n    start = ++i;\n  }\n\n  if (output.length === 0) {\n    throw 'Empty event selector: ' + s;\n  }\n\n  return output;\n}\n\nfunction parseSelector(s) {\n  return s[0] === '[' ? parseBetween(s) : parseStream(s);\n}\n\nfunction parseBetween(s) {\n  const n = s.length;\n  let i = 1,\n      b;\n  i = find(s, i, RBRACK, LBRACK, RBRACK);\n\n  if (i === n) {\n    throw 'Empty between selector: ' + s;\n  }\n\n  b = parseMerge(s.substring(1, i));\n\n  if (b.length !== 2) {\n    throw 'Between selector must have two elements: ' + s;\n  }\n\n  s = s.slice(i + 1).trim();\n\n  if (s[0] !== GT) {\n    throw 'Expected \\'>\\' after between selector: ' + s;\n  }\n\n  b = b.map(parseSelector);\n  const stream = parseSelector(s.slice(1).trim());\n\n  if (stream.between) {\n    return {\n      between: b,\n      stream: stream\n    };\n  } else {\n    stream.between = b;\n  }\n\n  return stream;\n}\n\nfunction parseStream(s) {\n  const stream = {\n    source: DEFAULT_SOURCE\n  },\n        source = [];\n  let throttle = [0, 0],\n      markname = 0,\n      start = 0,\n      n = s.length,\n      i = 0,\n      j,\n      filter; // extract throttle from end\n\n  if (s[n - 1] === RBRACE) {\n    i = s.lastIndexOf(LBRACE);\n\n    if (i >= 0) {\n      try {\n        throttle = parseThrottle(s.substring(i + 1, n - 1));\n      } catch (e) {\n        throw 'Invalid throttle specification: ' + s;\n      }\n\n      s = s.slice(0, i).trim();\n      n = s.length;\n    } else throw 'Unmatched right brace: ' + s;\n\n    i = 0;\n  }\n\n  if (!n) throw s; // set name flag based on first char\n\n  if (s[0] === NAME) markname = ++i; // extract first part of multi-part stream selector\n\n  j = find(s, i, COLON);\n\n  if (j < n) {\n    source.push(s.substring(start, j).trim());\n    start = i = ++j;\n  } // extract remaining part of stream selector\n\n\n  i = find(s, i, LBRACK);\n\n  if (i === n) {\n    source.push(s.substring(start, n).trim());\n  } else {\n    source.push(s.substring(start, i).trim());\n    filter = [];\n    start = ++i;\n    if (start === n) throw 'Unmatched left bracket: ' + s;\n  } // extract filters\n\n\n  while (i < n) {\n    i = find(s, i, RBRACK);\n    if (i === n) throw 'Unmatched left bracket: ' + s;\n    filter.push(s.substring(start, i).trim());\n    if (i < n - 1 && s[++i] !== LBRACK) throw 'Expected left bracket: ' + s;\n    start = ++i;\n  } // marshall event stream specification\n\n\n  if (!(n = source.length) || ILLEGAL.test(source[n - 1])) {\n    throw 'Invalid event selector: ' + s;\n  }\n\n  if (n > 1) {\n    stream.type = source[1];\n\n    if (markname) {\n      stream.markname = source[0].slice(1);\n    } else if (isMarkType(source[0])) {\n      stream.marktype = source[0];\n    } else {\n      stream.source = source[0];\n    }\n  } else {\n    stream.type = source[0];\n  }\n\n  if (stream.type.slice(-1) === '!') {\n    stream.consume = true;\n    stream.type = stream.type.slice(0, -1);\n  }\n\n  if (filter != null) stream.filter = filter;\n  if (throttle[0]) stream.throttle = throttle[0];\n  if (throttle[1]) stream.debounce = throttle[1];\n  return stream;\n}\n\nfunction parseThrottle(s) {\n  const a = s.split(COMMA);\n  if (!s.length || a.length > 2) throw s;\n  return a.map(_ => {\n    const x = +_;\n    if (x !== x) throw s;\n    return x;\n  });\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-event-selector/build/vega-event-selector.module.js?");

/***/ }),

/***/ "./node_modules/vega-expression/build/vega-expression.module.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-expression/build/vega-expression.module.js ***!
  \**********************************************************************/
/*! exports provided: ASTNode, ArrayExpression, BinaryExpression, CallExpression, ConditionalExpression, Identifier, Literal, LogicalExpression, MemberExpression, ObjectExpression, Property, RawCode, UnaryExpression, codegen, constants, functions, parse */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ASTNode\", function() { return ASTNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ArrayExpression\", function() { return ArrayExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BinaryExpression\", function() { return BinaryExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CallExpression\", function() { return CallExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConditionalExpression\", function() { return ConditionalExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Identifier\", function() { return Identifier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Literal\", function() { return Literal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LogicalExpression\", function() { return LogicalExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MemberExpression\", function() { return MemberExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ObjectExpression\", function() { return ObjectExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Property\", function() { return Property; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RawCode\", function() { return RawCode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UnaryExpression\", function() { return UnaryExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"codegen\", function() { return codegen; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"constants\", function() { return Constants; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"functions\", function() { return Functions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return parser; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\nconst RawCode = 'RawCode';\nconst Literal = 'Literal';\nconst Property = 'Property';\nconst Identifier = 'Identifier';\nconst ArrayExpression = 'ArrayExpression';\nconst BinaryExpression = 'BinaryExpression';\nconst CallExpression = 'CallExpression';\nconst ConditionalExpression = 'ConditionalExpression';\nconst LogicalExpression = 'LogicalExpression';\nconst MemberExpression = 'MemberExpression';\nconst ObjectExpression = 'ObjectExpression';\nconst UnaryExpression = 'UnaryExpression';\nfunction ASTNode(type) {\n  this.type = type;\n}\n\nASTNode.prototype.visit = function (visitor) {\n  let c, i, n;\n  if (visitor(this)) return 1;\n\n  for (c = children(this), i = 0, n = c.length; i < n; ++i) {\n    if (c[i].visit(visitor)) return 1;\n  }\n};\n\nfunction children(node) {\n  switch (node.type) {\n    case ArrayExpression:\n      return node.elements;\n\n    case BinaryExpression:\n    case LogicalExpression:\n      return [node.left, node.right];\n\n    case CallExpression:\n      return [node.callee].concat(node.arguments);\n\n    case ConditionalExpression:\n      return [node.test, node.consequent, node.alternate];\n\n    case MemberExpression:\n      return [node.object, node.property];\n\n    case ObjectExpression:\n      return node.properties;\n\n    case Property:\n      return [node.key, node.value];\n\n    case UnaryExpression:\n      return [node.argument];\n\n    case Identifier:\n    case Literal:\n    case RawCode:\n    default:\n      return [];\n  }\n}\n\n/*\n  The following expression parser is based on Esprima (http://esprima.org/).\n  Original header comment and license for Esprima is included here:\n\n  Copyright (C) 2013 Ariya Hidayat <ariya.hidayat@gmail.com>\n  Copyright (C) 2013 Thaddee Tyl <thaddee.tyl@gmail.com>\n  Copyright (C) 2013 Mathias Bynens <mathias@qiwi.be>\n  Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n  Copyright (C) 2012 Mathias Bynens <mathias@qiwi.be>\n  Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>\n  Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com>\n  Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com>\n  Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com>\n  Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n  Redistribution and use in source and binary forms, with or without\n  modification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nvar TokenName, source, index, length, lookahead;\nvar TokenBooleanLiteral = 1,\n    TokenEOF = 2,\n    TokenIdentifier = 3,\n    TokenKeyword = 4,\n    TokenNullLiteral = 5,\n    TokenNumericLiteral = 6,\n    TokenPunctuator = 7,\n    TokenStringLiteral = 8,\n    TokenRegularExpression = 9;\nTokenName = {};\nTokenName[TokenBooleanLiteral] = 'Boolean';\nTokenName[TokenEOF] = '<end>';\nTokenName[TokenIdentifier] = 'Identifier';\nTokenName[TokenKeyword] = 'Keyword';\nTokenName[TokenNullLiteral] = 'Null';\nTokenName[TokenNumericLiteral] = 'Numeric';\nTokenName[TokenPunctuator] = 'Punctuator';\nTokenName[TokenStringLiteral] = 'String';\nTokenName[TokenRegularExpression] = 'RegularExpression';\nvar SyntaxArrayExpression = 'ArrayExpression',\n    SyntaxBinaryExpression = 'BinaryExpression',\n    SyntaxCallExpression = 'CallExpression',\n    SyntaxConditionalExpression = 'ConditionalExpression',\n    SyntaxIdentifier = 'Identifier',\n    SyntaxLiteral = 'Literal',\n    SyntaxLogicalExpression = 'LogicalExpression',\n    SyntaxMemberExpression = 'MemberExpression',\n    SyntaxObjectExpression = 'ObjectExpression',\n    SyntaxProperty = 'Property',\n    SyntaxUnaryExpression = 'UnaryExpression'; // Error messages should be identical to V8.\n\nvar MessageUnexpectedToken = 'Unexpected token %0',\n    MessageUnexpectedNumber = 'Unexpected number',\n    MessageUnexpectedString = 'Unexpected string',\n    MessageUnexpectedIdentifier = 'Unexpected identifier',\n    MessageUnexpectedReserved = 'Unexpected reserved word',\n    MessageUnexpectedEOS = 'Unexpected end of input',\n    MessageInvalidRegExp = 'Invalid regular expression',\n    MessageUnterminatedRegExp = 'Invalid regular expression: missing /',\n    MessageStrictOctalLiteral = 'Octal literals are not allowed in strict mode.',\n    MessageStrictDuplicateProperty = 'Duplicate data property in object literal not allowed in strict mode';\nvar ILLEGAL = 'ILLEGAL',\n    DISABLED = 'Disabled.'; // See also tools/generate-unicode-regex.py.\n\nvar RegexNonAsciiIdentifierStart = new RegExp('[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]'),\n    // eslint-disable-next-line no-misleading-character-class\nRegexNonAsciiIdentifierPart = new RegExp('[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19D9\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099\\\\u309A\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]'); // Ensure the condition is true, otherwise throw an error.\n// This is only to have a better contract semantic, i.e. another safety net\n// to catch a logic error. The condition shall be fulfilled in normal case.\n// Do NOT use this to enforce a certain condition on any user input.\n\nfunction assert(condition, message) {\n  /* istanbul ignore next */\n  if (!condition) {\n    throw new Error('ASSERT: ' + message);\n  }\n}\n\nfunction isDecimalDigit(ch) {\n  return ch >= 0x30 && ch <= 0x39; // 0..9\n}\n\nfunction isHexDigit(ch) {\n  return '0123456789abcdefABCDEF'.indexOf(ch) >= 0;\n}\n\nfunction isOctalDigit(ch) {\n  return '01234567'.indexOf(ch) >= 0;\n} // 7.2 White Space\n\n\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0;\n} // 7.3 Line Terminators\n\n\nfunction isLineTerminator(ch) {\n  return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\n} // 7.6 Identifier Names and Identifiers\n\n\nfunction isIdentifierStart(ch) {\n  return ch === 0x24 || ch === 0x5F || // $ (dollar) and _ (underscore)\n  ch >= 0x41 && ch <= 0x5A || // A..Z\n  ch >= 0x61 && ch <= 0x7A || // a..z\n  ch === 0x5C || // \\ (backslash)\n  ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch));\n}\n\nfunction isIdentifierPart(ch) {\n  return ch === 0x24 || ch === 0x5F || // $ (dollar) and _ (underscore)\n  ch >= 0x41 && ch <= 0x5A || // A..Z\n  ch >= 0x61 && ch <= 0x7A || // a..z\n  ch >= 0x30 && ch <= 0x39 || // 0..9\n  ch === 0x5C || // \\ (backslash)\n  ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch));\n} // 7.6.1.1 Keywords\n\n\nconst keywords = {\n  'if': 1,\n  'in': 1,\n  'do': 1,\n  'var': 1,\n  'for': 1,\n  'new': 1,\n  'try': 1,\n  'let': 1,\n  'this': 1,\n  'else': 1,\n  'case': 1,\n  'void': 1,\n  'with': 1,\n  'enum': 1,\n  'while': 1,\n  'break': 1,\n  'catch': 1,\n  'throw': 1,\n  'const': 1,\n  'yield': 1,\n  'class': 1,\n  'super': 1,\n  'return': 1,\n  'typeof': 1,\n  'delete': 1,\n  'switch': 1,\n  'export': 1,\n  'import': 1,\n  'public': 1,\n  'static': 1,\n  'default': 1,\n  'finally': 1,\n  'extends': 1,\n  'package': 1,\n  'private': 1,\n  'function': 1,\n  'continue': 1,\n  'debugger': 1,\n  'interface': 1,\n  'protected': 1,\n  'instanceof': 1,\n  'implements': 1\n};\n\nfunction skipComment() {\n  while (index < length) {\n    const ch = source.charCodeAt(index);\n\n    if (isWhiteSpace(ch) || isLineTerminator(ch)) {\n      ++index;\n    } else {\n      break;\n    }\n  }\n}\n\nfunction scanHexEscape(prefix) {\n  var i,\n      len,\n      ch,\n      code = 0;\n  len = prefix === 'u' ? 4 : 2;\n\n  for (i = 0; i < len; ++i) {\n    if (index < length && isHexDigit(source[index])) {\n      ch = source[index++];\n      code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n    } else {\n      throwError({}, MessageUnexpectedToken, ILLEGAL);\n    }\n  }\n\n  return String.fromCharCode(code);\n}\n\nfunction scanUnicodeCodePointEscape() {\n  var ch, code, cu1, cu2;\n  ch = source[index];\n  code = 0; // At least, one hex digit is required.\n\n  if (ch === '}') {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  }\n\n  while (index < length) {\n    ch = source[index++];\n\n    if (!isHexDigit(ch)) {\n      break;\n    }\n\n    code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n  }\n\n  if (code > 0x10FFFF || ch !== '}') {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  } // UTF-16 Encoding\n\n\n  if (code <= 0xFFFF) {\n    return String.fromCharCode(code);\n  }\n\n  cu1 = (code - 0x10000 >> 10) + 0xD800;\n  cu2 = (code - 0x10000 & 1023) + 0xDC00;\n  return String.fromCharCode(cu1, cu2);\n}\n\nfunction getEscapedIdentifier() {\n  var ch, id;\n  ch = source.charCodeAt(index++);\n  id = String.fromCharCode(ch); // '\\u' (U+005C, U+0075) denotes an escaped character.\n\n  if (ch === 0x5C) {\n    if (source.charCodeAt(index) !== 0x75) {\n      throwError({}, MessageUnexpectedToken, ILLEGAL);\n    }\n\n    ++index;\n    ch = scanHexEscape('u');\n\n    if (!ch || ch === '\\\\' || !isIdentifierStart(ch.charCodeAt(0))) {\n      throwError({}, MessageUnexpectedToken, ILLEGAL);\n    }\n\n    id = ch;\n  }\n\n  while (index < length) {\n    ch = source.charCodeAt(index);\n\n    if (!isIdentifierPart(ch)) {\n      break;\n    }\n\n    ++index;\n    id += String.fromCharCode(ch); // '\\u' (U+005C, U+0075) denotes an escaped character.\n\n    if (ch === 0x5C) {\n      id = id.substr(0, id.length - 1);\n\n      if (source.charCodeAt(index) !== 0x75) {\n        throwError({}, MessageUnexpectedToken, ILLEGAL);\n      }\n\n      ++index;\n      ch = scanHexEscape('u');\n\n      if (!ch || ch === '\\\\' || !isIdentifierPart(ch.charCodeAt(0))) {\n        throwError({}, MessageUnexpectedToken, ILLEGAL);\n      }\n\n      id += ch;\n    }\n  }\n\n  return id;\n}\n\nfunction getIdentifier() {\n  var start, ch;\n  start = index++;\n\n  while (index < length) {\n    ch = source.charCodeAt(index);\n\n    if (ch === 0x5C) {\n      // Blackslash (U+005C) marks Unicode escape sequence.\n      index = start;\n      return getEscapedIdentifier();\n    }\n\n    if (isIdentifierPart(ch)) {\n      ++index;\n    } else {\n      break;\n    }\n  }\n\n  return source.slice(start, index);\n}\n\nfunction scanIdentifier() {\n  var start, id, type;\n  start = index; // Backslash (U+005C) starts an escaped character.\n\n  id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character.\n  // Thus, it must be an identifier.\n\n  if (id.length === 1) {\n    type = TokenIdentifier;\n  } else if (keywords.hasOwnProperty(id)) {\n    // eslint-disable-line no-prototype-builtins\n    type = TokenKeyword;\n  } else if (id === 'null') {\n    type = TokenNullLiteral;\n  } else if (id === 'true' || id === 'false') {\n    type = TokenBooleanLiteral;\n  } else {\n    type = TokenIdentifier;\n  }\n\n  return {\n    type: type,\n    value: id,\n    start: start,\n    end: index\n  };\n} // 7.7 Punctuators\n\n\nfunction scanPunctuator() {\n  var start = index,\n      code = source.charCodeAt(index),\n      code2,\n      ch1 = source[index],\n      ch2,\n      ch3,\n      ch4;\n\n  switch (code) {\n    // Check for most common single-character punctuators.\n    case 0x2E: // . dot\n\n    case 0x28: // ( open bracket\n\n    case 0x29: // ) close bracket\n\n    case 0x3B: // ; semicolon\n\n    case 0x2C: // , comma\n\n    case 0x7B: // { open curly brace\n\n    case 0x7D: // } close curly brace\n\n    case 0x5B: // [\n\n    case 0x5D: // ]\n\n    case 0x3A: // :\n\n    case 0x3F: // ?\n\n    case 0x7E:\n      // ~\n      ++index;\n      return {\n        type: TokenPunctuator,\n        value: String.fromCharCode(code),\n        start: start,\n        end: index\n      };\n\n    default:\n      code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator.\n\n      if (code2 === 0x3D) {\n        switch (code) {\n          case 0x2B: // +\n\n          case 0x2D: // -\n\n          case 0x2F: // /\n\n          case 0x3C: // <\n\n          case 0x3E: // >\n\n          case 0x5E: // ^\n\n          case 0x7C: // |\n\n          case 0x25: // %\n\n          case 0x26: // &\n\n          case 0x2A:\n            // *\n            index += 2;\n            return {\n              type: TokenPunctuator,\n              value: String.fromCharCode(code) + String.fromCharCode(code2),\n              start: start,\n              end: index\n            };\n\n          case 0x21: // !\n\n          case 0x3D:\n            // =\n            index += 2; // !== and ===\n\n            if (source.charCodeAt(index) === 0x3D) {\n              ++index;\n            }\n\n            return {\n              type: TokenPunctuator,\n              value: source.slice(start, index),\n              start: start,\n              end: index\n            };\n        }\n      }\n\n  } // 4-character punctuator: >>>=\n\n\n  ch4 = source.substr(index, 4);\n\n  if (ch4 === '>>>=') {\n    index += 4;\n    return {\n      type: TokenPunctuator,\n      value: ch4,\n      start: start,\n      end: index\n    };\n  } // 3-character punctuators: === !== >>> <<= >>=\n\n\n  ch3 = ch4.substr(0, 3);\n\n  if (ch3 === '>>>' || ch3 === '<<=' || ch3 === '>>=') {\n    index += 3;\n    return {\n      type: TokenPunctuator,\n      value: ch3,\n      start: start,\n      end: index\n    };\n  } // Other 2-character punctuators: ++ -- << >> && ||\n\n\n  ch2 = ch3.substr(0, 2);\n\n  if (ch1 === ch2[1] && '+-<>&|'.indexOf(ch1) >= 0 || ch2 === '=>') {\n    index += 2;\n    return {\n      type: TokenPunctuator,\n      value: ch2,\n      start: start,\n      end: index\n    };\n  } // 1-character punctuators: < > = ! + - * % & | ^ /\n\n\n  if ('<>=!+-*%&|^/'.indexOf(ch1) >= 0) {\n    ++index;\n    return {\n      type: TokenPunctuator,\n      value: ch1,\n      start: start,\n      end: index\n    };\n  }\n\n  throwError({}, MessageUnexpectedToken, ILLEGAL);\n} // 7.8.3 Numeric Literals\n\n\nfunction scanHexLiteral(start) {\n  let number = '';\n\n  while (index < length) {\n    if (!isHexDigit(source[index])) {\n      break;\n    }\n\n    number += source[index++];\n  }\n\n  if (number.length === 0) {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  }\n\n  if (isIdentifierStart(source.charCodeAt(index))) {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  }\n\n  return {\n    type: TokenNumericLiteral,\n    value: parseInt('0x' + number, 16),\n    start: start,\n    end: index\n  };\n}\n\nfunction scanOctalLiteral(start) {\n  let number = '0' + source[index++];\n\n  while (index < length) {\n    if (!isOctalDigit(source[index])) {\n      break;\n    }\n\n    number += source[index++];\n  }\n\n  if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  }\n\n  return {\n    type: TokenNumericLiteral,\n    value: parseInt(number, 8),\n    octal: true,\n    start: start,\n    end: index\n  };\n}\n\nfunction scanNumericLiteral() {\n  var number, start, ch;\n  ch = source[index];\n  assert(isDecimalDigit(ch.charCodeAt(0)) || ch === '.', 'Numeric literal must start with a decimal digit or a decimal point');\n  start = index;\n  number = '';\n\n  if (ch !== '.') {\n    number = source[index++];\n    ch = source[index]; // Hex number starts with '0x'.\n    // Octal number starts with '0'.\n\n    if (number === '0') {\n      if (ch === 'x' || ch === 'X') {\n        ++index;\n        return scanHexLiteral(start);\n      }\n\n      if (isOctalDigit(ch)) {\n        return scanOctalLiteral(start);\n      } // decimal number starts with '0' such as '09' is illegal.\n\n\n      if (ch && isDecimalDigit(ch.charCodeAt(0))) {\n        throwError({}, MessageUnexpectedToken, ILLEGAL);\n      }\n    }\n\n    while (isDecimalDigit(source.charCodeAt(index))) {\n      number += source[index++];\n    }\n\n    ch = source[index];\n  }\n\n  if (ch === '.') {\n    number += source[index++];\n\n    while (isDecimalDigit(source.charCodeAt(index))) {\n      number += source[index++];\n    }\n\n    ch = source[index];\n  }\n\n  if (ch === 'e' || ch === 'E') {\n    number += source[index++];\n    ch = source[index];\n\n    if (ch === '+' || ch === '-') {\n      number += source[index++];\n    }\n\n    if (isDecimalDigit(source.charCodeAt(index))) {\n      while (isDecimalDigit(source.charCodeAt(index))) {\n        number += source[index++];\n      }\n    } else {\n      throwError({}, MessageUnexpectedToken, ILLEGAL);\n    }\n  }\n\n  if (isIdentifierStart(source.charCodeAt(index))) {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  }\n\n  return {\n    type: TokenNumericLiteral,\n    value: parseFloat(number),\n    start: start,\n    end: index\n  };\n} // 7.8.4 String Literals\n\n\nfunction scanStringLiteral() {\n  var str = '',\n      quote,\n      start,\n      ch,\n      code,\n      octal = false;\n  quote = source[index];\n  assert(quote === '\\'' || quote === '\"', 'String literal must starts with a quote');\n  start = index;\n  ++index;\n\n  while (index < length) {\n    ch = source[index++];\n\n    if (ch === quote) {\n      quote = '';\n      break;\n    } else if (ch === '\\\\') {\n      ch = source[index++];\n\n      if (!ch || !isLineTerminator(ch.charCodeAt(0))) {\n        switch (ch) {\n          case 'u':\n          case 'x':\n            if (source[index] === '{') {\n              ++index;\n              str += scanUnicodeCodePointEscape();\n            } else {\n              str += scanHexEscape(ch);\n            }\n\n            break;\n\n          case 'n':\n            str += '\\n';\n            break;\n\n          case 'r':\n            str += '\\r';\n            break;\n\n          case 't':\n            str += '\\t';\n            break;\n\n          case 'b':\n            str += '\\b';\n            break;\n\n          case 'f':\n            str += '\\f';\n            break;\n\n          case 'v':\n            str += '\\x0B';\n            break;\n\n          default:\n            if (isOctalDigit(ch)) {\n              code = '01234567'.indexOf(ch); // \\0 is not octal escape sequence\n\n              if (code !== 0) {\n                octal = true;\n              }\n\n              if (index < length && isOctalDigit(source[index])) {\n                octal = true;\n                code = code * 8 + '01234567'.indexOf(source[index++]); // 3 digits are only allowed when string starts\n                // with 0, 1, 2, 3\n\n                if ('0123'.indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) {\n                  code = code * 8 + '01234567'.indexOf(source[index++]);\n                }\n              }\n\n              str += String.fromCharCode(code);\n            } else {\n              str += ch;\n            }\n\n            break;\n        }\n      } else {\n        if (ch === '\\r' && source[index] === '\\n') {\n          ++index;\n        }\n      }\n    } else if (isLineTerminator(ch.charCodeAt(0))) {\n      break;\n    } else {\n      str += ch;\n    }\n  }\n\n  if (quote !== '') {\n    throwError({}, MessageUnexpectedToken, ILLEGAL);\n  }\n\n  return {\n    type: TokenStringLiteral,\n    value: str,\n    octal: octal,\n    start: start,\n    end: index\n  };\n}\n\nfunction testRegExp(pattern, flags) {\n  let tmp = pattern;\n\n  if (flags.indexOf('u') >= 0) {\n    // Replace each astral symbol and every Unicode code point\n    // escape sequence with a single ASCII symbol to avoid throwing on\n    // regular expressions that are only valid in combination with the\n    // `/u` flag.\n    // Note: replacing with the ASCII symbol `x` might cause false\n    // negatives in unlikely scenarios. For example, `[\\u{61}-b]` is a\n    // perfectly valid pattern that is equivalent to `[a-b]`, but it\n    // would be replaced by `[x-b]` which throws an error.\n    tmp = tmp.replace(/\\\\u\\{([0-9a-fA-F]+)\\}/g, ($0, $1) => {\n      if (parseInt($1, 16) <= 0x10FFFF) {\n        return 'x';\n      }\n\n      throwError({}, MessageInvalidRegExp);\n    }).replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, 'x');\n  } // First, detect invalid regular expressions.\n\n\n  try {\n    new RegExp(tmp);\n  } catch (e) {\n    throwError({}, MessageInvalidRegExp);\n  } // Return a regular expression object for this pattern-flag pair, or\n  // `null` in case the current environment doesn't support the flags it\n  // uses.\n\n\n  try {\n    return new RegExp(pattern, flags);\n  } catch (exception) {\n    return null;\n  }\n}\n\nfunction scanRegExpBody() {\n  var ch, str, classMarker, terminated, body;\n  ch = source[index];\n  assert(ch === '/', 'Regular expression literal must start with a slash');\n  str = source[index++];\n  classMarker = false;\n  terminated = false;\n\n  while (index < length) {\n    ch = source[index++];\n    str += ch;\n\n    if (ch === '\\\\') {\n      ch = source[index++]; // ECMA-262 7.8.5\n\n      if (isLineTerminator(ch.charCodeAt(0))) {\n        throwError({}, MessageUnterminatedRegExp);\n      }\n\n      str += ch;\n    } else if (isLineTerminator(ch.charCodeAt(0))) {\n      throwError({}, MessageUnterminatedRegExp);\n    } else if (classMarker) {\n      if (ch === ']') {\n        classMarker = false;\n      }\n    } else {\n      if (ch === '/') {\n        terminated = true;\n        break;\n      } else if (ch === '[') {\n        classMarker = true;\n      }\n    }\n  }\n\n  if (!terminated) {\n    throwError({}, MessageUnterminatedRegExp);\n  } // Exclude leading and trailing slash.\n\n\n  body = str.substr(1, str.length - 2);\n  return {\n    value: body,\n    literal: str\n  };\n}\n\nfunction scanRegExpFlags() {\n  var ch, str, flags;\n  str = '';\n  flags = '';\n\n  while (index < length) {\n    ch = source[index];\n\n    if (!isIdentifierPart(ch.charCodeAt(0))) {\n      break;\n    }\n\n    ++index;\n\n    if (ch === '\\\\' && index < length) {\n      throwError({}, MessageUnexpectedToken, ILLEGAL);\n    } else {\n      flags += ch;\n      str += ch;\n    }\n  }\n\n  if (flags.search(/[^gimuy]/g) >= 0) {\n    throwError({}, MessageInvalidRegExp, flags);\n  }\n\n  return {\n    value: flags,\n    literal: str\n  };\n}\n\nfunction scanRegExp() {\n  var start, body, flags, value;\n  lookahead = null;\n  skipComment();\n  start = index;\n  body = scanRegExpBody();\n  flags = scanRegExpFlags();\n  value = testRegExp(body.value, flags.value);\n  return {\n    literal: body.literal + flags.literal,\n    value: value,\n    regex: {\n      pattern: body.value,\n      flags: flags.value\n    },\n    start: start,\n    end: index\n  };\n}\n\nfunction isIdentifierName(token) {\n  return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral;\n}\n\nfunction advance() {\n  skipComment();\n\n  if (index >= length) {\n    return {\n      type: TokenEOF,\n      start: index,\n      end: index\n    };\n  }\n\n  const ch = source.charCodeAt(index);\n\n  if (isIdentifierStart(ch)) {\n    return scanIdentifier();\n  } // Very common: ( and ) and ;\n\n\n  if (ch === 0x28 || ch === 0x29 || ch === 0x3B) {\n    return scanPunctuator();\n  } // String literal starts with single quote (U+0027) or double quote (U+0022).\n\n\n  if (ch === 0x27 || ch === 0x22) {\n    return scanStringLiteral();\n  } // Dot (.) U+002E can also start a floating-point number, hence the need\n  // to check the next character.\n\n\n  if (ch === 0x2E) {\n    if (isDecimalDigit(source.charCodeAt(index + 1))) {\n      return scanNumericLiteral();\n    }\n\n    return scanPunctuator();\n  }\n\n  if (isDecimalDigit(ch)) {\n    return scanNumericLiteral();\n  }\n\n  return scanPunctuator();\n}\n\nfunction lex() {\n  const token = lookahead;\n  index = token.end;\n  lookahead = advance();\n  index = token.end;\n  return token;\n}\n\nfunction peek() {\n  const pos = index;\n  lookahead = advance();\n  index = pos;\n}\n\nfunction finishArrayExpression(elements) {\n  const node = new ASTNode(SyntaxArrayExpression);\n  node.elements = elements;\n  return node;\n}\n\nfunction finishBinaryExpression(operator, left, right) {\n  const node = new ASTNode(operator === '||' || operator === '&&' ? SyntaxLogicalExpression : SyntaxBinaryExpression);\n  node.operator = operator;\n  node.left = left;\n  node.right = right;\n  return node;\n}\n\nfunction finishCallExpression(callee, args) {\n  const node = new ASTNode(SyntaxCallExpression);\n  node.callee = callee;\n  node.arguments = args;\n  return node;\n}\n\nfunction finishConditionalExpression(test, consequent, alternate) {\n  const node = new ASTNode(SyntaxConditionalExpression);\n  node.test = test;\n  node.consequent = consequent;\n  node.alternate = alternate;\n  return node;\n}\n\nfunction finishIdentifier(name) {\n  const node = new ASTNode(SyntaxIdentifier);\n  node.name = name;\n  return node;\n}\n\nfunction finishLiteral(token) {\n  const node = new ASTNode(SyntaxLiteral);\n  node.value = token.value;\n  node.raw = source.slice(token.start, token.end);\n\n  if (token.regex) {\n    if (node.raw === '//') {\n      node.raw = '/(?:)/';\n    }\n\n    node.regex = token.regex;\n  }\n\n  return node;\n}\n\nfunction finishMemberExpression(accessor, object, property) {\n  const node = new ASTNode(SyntaxMemberExpression);\n  node.computed = accessor === '[';\n  node.object = object;\n  node.property = property;\n  if (!node.computed) property.member = true;\n  return node;\n}\n\nfunction finishObjectExpression(properties) {\n  const node = new ASTNode(SyntaxObjectExpression);\n  node.properties = properties;\n  return node;\n}\n\nfunction finishProperty(kind, key, value) {\n  const node = new ASTNode(SyntaxProperty);\n  node.key = key;\n  node.value = value;\n  node.kind = kind;\n  return node;\n}\n\nfunction finishUnaryExpression(operator, argument) {\n  const node = new ASTNode(SyntaxUnaryExpression);\n  node.operator = operator;\n  node.argument = argument;\n  node.prefix = true;\n  return node;\n} // Throw an exception\n\n\nfunction throwError(token, messageFormat) {\n  var error,\n      args = Array.prototype.slice.call(arguments, 2),\n      msg = messageFormat.replace(/%(\\d)/g, (whole, index) => {\n    assert(index < args.length, 'Message reference must be in range');\n    return args[index];\n  });\n  error = new Error(msg);\n  error.index = index;\n  error.description = msg;\n  throw error;\n} // Throw an exception because of the token.\n\n\nfunction throwUnexpected(token) {\n  if (token.type === TokenEOF) {\n    throwError(token, MessageUnexpectedEOS);\n  }\n\n  if (token.type === TokenNumericLiteral) {\n    throwError(token, MessageUnexpectedNumber);\n  }\n\n  if (token.type === TokenStringLiteral) {\n    throwError(token, MessageUnexpectedString);\n  }\n\n  if (token.type === TokenIdentifier) {\n    throwError(token, MessageUnexpectedIdentifier);\n  }\n\n  if (token.type === TokenKeyword) {\n    throwError(token, MessageUnexpectedReserved);\n  } // BooleanLiteral, NullLiteral, or Punctuator.\n\n\n  throwError(token, MessageUnexpectedToken, token.value);\n} // Expect the next token to match the specified punctuator.\n// If not, an exception will be thrown.\n\n\nfunction expect(value) {\n  const token = lex();\n\n  if (token.type !== TokenPunctuator || token.value !== value) {\n    throwUnexpected(token);\n  }\n} // Return true if the next token matches the specified punctuator.\n\n\nfunction match(value) {\n  return lookahead.type === TokenPunctuator && lookahead.value === value;\n} // Return true if the next token matches the specified keyword\n\n\nfunction matchKeyword(keyword) {\n  return lookahead.type === TokenKeyword && lookahead.value === keyword;\n} // 11.1.4 Array Initialiser\n\n\nfunction parseArrayInitialiser() {\n  const elements = [];\n  index = lookahead.start;\n  expect('[');\n\n  while (!match(']')) {\n    if (match(',')) {\n      lex();\n      elements.push(null);\n    } else {\n      elements.push(parseConditionalExpression());\n\n      if (!match(']')) {\n        expect(',');\n      }\n    }\n  }\n\n  lex();\n  return finishArrayExpression(elements);\n} // 11.1.5 Object Initialiser\n\n\nfunction parseObjectPropertyKey() {\n  index = lookahead.start;\n  const token = lex(); // Note: This function is called only from parseObjectProperty(), where\n  // EOF and Punctuator tokens are already filtered out.\n\n  if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) {\n    if (token.octal) {\n      throwError(token, MessageStrictOctalLiteral);\n    }\n\n    return finishLiteral(token);\n  }\n\n  return finishIdentifier(token.value);\n}\n\nfunction parseObjectProperty() {\n  var token, key, id, value;\n  index = lookahead.start;\n  token = lookahead;\n\n  if (token.type === TokenIdentifier) {\n    id = parseObjectPropertyKey();\n    expect(':');\n    value = parseConditionalExpression();\n    return finishProperty('init', id, value);\n  }\n\n  if (token.type === TokenEOF || token.type === TokenPunctuator) {\n    throwUnexpected(token);\n  } else {\n    key = parseObjectPropertyKey();\n    expect(':');\n    value = parseConditionalExpression();\n    return finishProperty('init', key, value);\n  }\n}\n\nfunction parseObjectInitialiser() {\n  var properties = [],\n      property,\n      name,\n      key,\n      map = {},\n      toString = String;\n  index = lookahead.start;\n  expect('{');\n\n  while (!match('}')) {\n    property = parseObjectProperty();\n\n    if (property.key.type === SyntaxIdentifier) {\n      name = property.key.name;\n    } else {\n      name = toString(property.key.value);\n    }\n\n    key = '$' + name;\n\n    if (Object.prototype.hasOwnProperty.call(map, key)) {\n      throwError({}, MessageStrictDuplicateProperty);\n    } else {\n      map[key] = true;\n    }\n\n    properties.push(property);\n\n    if (!match('}')) {\n      expect(',');\n    }\n  }\n\n  expect('}');\n  return finishObjectExpression(properties);\n} // 11.1.6 The Grouping Operator\n\n\nfunction parseGroupExpression() {\n  expect('(');\n  const expr = parseExpression();\n  expect(')');\n  return expr;\n} // 11.1 Primary Expressions\n\n\nconst legalKeywords = {\n  'if': 1\n};\n\nfunction parsePrimaryExpression() {\n  var type, token, expr;\n\n  if (match('(')) {\n    return parseGroupExpression();\n  }\n\n  if (match('[')) {\n    return parseArrayInitialiser();\n  }\n\n  if (match('{')) {\n    return parseObjectInitialiser();\n  }\n\n  type = lookahead.type;\n  index = lookahead.start;\n\n  if (type === TokenIdentifier || legalKeywords[lookahead.value]) {\n    expr = finishIdentifier(lex().value);\n  } else if (type === TokenStringLiteral || type === TokenNumericLiteral) {\n    if (lookahead.octal) {\n      throwError(lookahead, MessageStrictOctalLiteral);\n    }\n\n    expr = finishLiteral(lex());\n  } else if (type === TokenKeyword) {\n    throw new Error(DISABLED);\n  } else if (type === TokenBooleanLiteral) {\n    token = lex();\n    token.value = token.value === 'true';\n    expr = finishLiteral(token);\n  } else if (type === TokenNullLiteral) {\n    token = lex();\n    token.value = null;\n    expr = finishLiteral(token);\n  } else if (match('/') || match('/=')) {\n    expr = finishLiteral(scanRegExp());\n    peek();\n  } else {\n    throwUnexpected(lex());\n  }\n\n  return expr;\n} // 11.2 Left-Hand-Side Expressions\n\n\nfunction parseArguments() {\n  const args = [];\n  expect('(');\n\n  if (!match(')')) {\n    while (index < length) {\n      args.push(parseConditionalExpression());\n\n      if (match(')')) {\n        break;\n      }\n\n      expect(',');\n    }\n  }\n\n  expect(')');\n  return args;\n}\n\nfunction parseNonComputedProperty() {\n  index = lookahead.start;\n  const token = lex();\n\n  if (!isIdentifierName(token)) {\n    throwUnexpected(token);\n  }\n\n  return finishIdentifier(token.value);\n}\n\nfunction parseNonComputedMember() {\n  expect('.');\n  return parseNonComputedProperty();\n}\n\nfunction parseComputedMember() {\n  expect('[');\n  const expr = parseExpression();\n  expect(']');\n  return expr;\n}\n\nfunction parseLeftHandSideExpressionAllowCall() {\n  var expr, args, property;\n  expr = parsePrimaryExpression();\n\n  for (;;) {\n    if (match('.')) {\n      property = parseNonComputedMember();\n      expr = finishMemberExpression('.', expr, property);\n    } else if (match('(')) {\n      args = parseArguments();\n      expr = finishCallExpression(expr, args);\n    } else if (match('[')) {\n      property = parseComputedMember();\n      expr = finishMemberExpression('[', expr, property);\n    } else {\n      break;\n    }\n  }\n\n  return expr;\n} // 11.3 Postfix Expressions\n\n\nfunction parsePostfixExpression() {\n  const expr = parseLeftHandSideExpressionAllowCall();\n\n  if (lookahead.type === TokenPunctuator) {\n    if (match('++') || match('--')) {\n      throw new Error(DISABLED);\n    }\n  }\n\n  return expr;\n} // 11.4 Unary Operators\n\n\nfunction parseUnaryExpression() {\n  var token, expr;\n\n  if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) {\n    expr = parsePostfixExpression();\n  } else if (match('++') || match('--')) {\n    throw new Error(DISABLED);\n  } else if (match('+') || match('-') || match('~') || match('!')) {\n    token = lex();\n    expr = parseUnaryExpression();\n    expr = finishUnaryExpression(token.value, expr);\n  } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {\n    throw new Error(DISABLED);\n  } else {\n    expr = parsePostfixExpression();\n  }\n\n  return expr;\n}\n\nfunction binaryPrecedence(token) {\n  let prec = 0;\n\n  if (token.type !== TokenPunctuator && token.type !== TokenKeyword) {\n    return 0;\n  }\n\n  switch (token.value) {\n    case '||':\n      prec = 1;\n      break;\n\n    case '&&':\n      prec = 2;\n      break;\n\n    case '|':\n      prec = 3;\n      break;\n\n    case '^':\n      prec = 4;\n      break;\n\n    case '&':\n      prec = 5;\n      break;\n\n    case '==':\n    case '!=':\n    case '===':\n    case '!==':\n      prec = 6;\n      break;\n\n    case '<':\n    case '>':\n    case '<=':\n    case '>=':\n    case 'instanceof':\n    case 'in':\n      prec = 7;\n      break;\n\n    case '<<':\n    case '>>':\n    case '>>>':\n      prec = 8;\n      break;\n\n    case '+':\n    case '-':\n      prec = 9;\n      break;\n\n    case '*':\n    case '/':\n    case '%':\n      prec = 11;\n      break;\n  }\n\n  return prec;\n} // 11.5 Multiplicative Operators\n// 11.6 Additive Operators\n// 11.7 Bitwise Shift Operators\n// 11.8 Relational Operators\n// 11.9 Equality Operators\n// 11.10 Binary Bitwise Operators\n// 11.11 Binary Logical Operators\n\n\nfunction parseBinaryExpression() {\n  var marker, markers, expr, token, prec, stack, right, operator, left, i;\n  marker = lookahead;\n  left = parseUnaryExpression();\n  token = lookahead;\n  prec = binaryPrecedence(token);\n\n  if (prec === 0) {\n    return left;\n  }\n\n  token.prec = prec;\n  lex();\n  markers = [marker, lookahead];\n  right = parseUnaryExpression();\n  stack = [left, token, right];\n\n  while ((prec = binaryPrecedence(lookahead)) > 0) {\n    // Reduce: make a binary expression from the three topmost entries.\n    while (stack.length > 2 && prec <= stack[stack.length - 2].prec) {\n      right = stack.pop();\n      operator = stack.pop().value;\n      left = stack.pop();\n      markers.pop();\n      expr = finishBinaryExpression(operator, left, right);\n      stack.push(expr);\n    } // Shift.\n\n\n    token = lex();\n    token.prec = prec;\n    stack.push(token);\n    markers.push(lookahead);\n    expr = parseUnaryExpression();\n    stack.push(expr);\n  } // Final reduce to clean-up the stack.\n\n\n  i = stack.length - 1;\n  expr = stack[i];\n  markers.pop();\n\n  while (i > 1) {\n    markers.pop();\n    expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr);\n    i -= 2;\n  }\n\n  return expr;\n} // 11.12 Conditional Operator\n\n\nfunction parseConditionalExpression() {\n  var expr, consequent, alternate;\n  expr = parseBinaryExpression();\n\n  if (match('?')) {\n    lex();\n    consequent = parseConditionalExpression();\n    expect(':');\n    alternate = parseConditionalExpression();\n    expr = finishConditionalExpression(expr, consequent, alternate);\n  }\n\n  return expr;\n} // 11.14 Comma Operator\n\n\nfunction parseExpression() {\n  const expr = parseConditionalExpression();\n\n  if (match(',')) {\n    throw new Error(DISABLED); // no sequence expressions\n  }\n\n  return expr;\n}\n\nfunction parser (code) {\n  source = code;\n  index = 0;\n  length = source.length;\n  lookahead = null;\n  peek();\n  const expr = parseExpression();\n\n  if (lookahead.type !== TokenEOF) {\n    throw new Error('Unexpect token after expression.');\n  }\n\n  return expr;\n}\n\nvar Constants = {\n  NaN: 'NaN',\n  E: 'Math.E',\n  LN2: 'Math.LN2',\n  LN10: 'Math.LN10',\n  LOG2E: 'Math.LOG2E',\n  LOG10E: 'Math.LOG10E',\n  PI: 'Math.PI',\n  SQRT1_2: 'Math.SQRT1_2',\n  SQRT2: 'Math.SQRT2',\n  MIN_VALUE: 'Number.MIN_VALUE',\n  MAX_VALUE: 'Number.MAX_VALUE'\n};\n\nfunction Functions (codegen) {\n  function fncall(name, args, cast, type) {\n    let obj = codegen(args[0]);\n\n    if (cast) {\n      obj = cast + '(' + obj + ')';\n      if (cast.lastIndexOf('new ', 0) === 0) obj = '(' + obj + ')';\n    }\n\n    return obj + '.' + name + (type < 0 ? '' : type === 0 ? '()' : '(' + args.slice(1).map(codegen).join(',') + ')');\n  }\n\n  function fn(name, cast, type) {\n    return args => fncall(name, args, cast, type);\n  }\n\n  const DATE = 'new Date',\n        STRING = 'String',\n        REGEXP = 'RegExp';\n  return {\n    // MATH functions\n    isNaN: 'Number.isNaN',\n    isFinite: 'Number.isFinite',\n    abs: 'Math.abs',\n    acos: 'Math.acos',\n    asin: 'Math.asin',\n    atan: 'Math.atan',\n    atan2: 'Math.atan2',\n    ceil: 'Math.ceil',\n    cos: 'Math.cos',\n    exp: 'Math.exp',\n    floor: 'Math.floor',\n    log: 'Math.log',\n    max: 'Math.max',\n    min: 'Math.min',\n    pow: 'Math.pow',\n    random: 'Math.random',\n    round: 'Math.round',\n    sin: 'Math.sin',\n    sqrt: 'Math.sqrt',\n    tan: 'Math.tan',\n    clamp: function (args) {\n      if (args.length < 3) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing arguments to clamp function.');\n      if (args.length > 3) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Too many arguments to clamp function.');\n      const a = args.map(codegen);\n      return 'Math.max(' + a[1] + ', Math.min(' + a[2] + ',' + a[0] + '))';\n    },\n    // DATE functions\n    now: 'Date.now',\n    utc: 'Date.UTC',\n    datetime: DATE,\n    date: fn('getDate', DATE, 0),\n    day: fn('getDay', DATE, 0),\n    year: fn('getFullYear', DATE, 0),\n    month: fn('getMonth', DATE, 0),\n    hours: fn('getHours', DATE, 0),\n    minutes: fn('getMinutes', DATE, 0),\n    seconds: fn('getSeconds', DATE, 0),\n    milliseconds: fn('getMilliseconds', DATE, 0),\n    time: fn('getTime', DATE, 0),\n    timezoneoffset: fn('getTimezoneOffset', DATE, 0),\n    utcdate: fn('getUTCDate', DATE, 0),\n    utcday: fn('getUTCDay', DATE, 0),\n    utcyear: fn('getUTCFullYear', DATE, 0),\n    utcmonth: fn('getUTCMonth', DATE, 0),\n    utchours: fn('getUTCHours', DATE, 0),\n    utcminutes: fn('getUTCMinutes', DATE, 0),\n    utcseconds: fn('getUTCSeconds', DATE, 0),\n    utcmilliseconds: fn('getUTCMilliseconds', DATE, 0),\n    // sequence functions\n    length: fn('length', null, -1),\n    join: fn('join', null),\n    indexof: fn('indexOf', null),\n    lastindexof: fn('lastIndexOf', null),\n    slice: fn('slice', null),\n    reverse: function (args) {\n      return '(' + codegen(args[0]) + ').slice().reverse()';\n    },\n    // STRING functions\n    parseFloat: 'parseFloat',\n    parseInt: 'parseInt',\n    upper: fn('toUpperCase', STRING, 0),\n    lower: fn('toLowerCase', STRING, 0),\n    substring: fn('substring', STRING),\n    split: fn('split', STRING),\n    replace: fn('replace', STRING),\n    trim: fn('trim', STRING, 0),\n    // REGEXP functions\n    regexp: REGEXP,\n    test: fn('test', REGEXP),\n    // Control Flow functions\n    if: function (args) {\n      if (args.length < 3) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing arguments to if function.');\n      if (args.length > 3) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Too many arguments to if function.');\n      const a = args.map(codegen);\n      return '(' + a[0] + '?' + a[1] + ':' + a[2] + ')';\n    }\n  };\n}\n\nfunction stripQuotes(s) {\n  const n = s && s.length - 1;\n  return n && (s[0] === '\"' && s[n] === '\"' || s[0] === '\\'' && s[n] === '\\'') ? s.slice(1, -1) : s;\n}\n\nfunction codegen (opt) {\n  opt = opt || {};\n  const allowed = opt.allowed ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(opt.allowed) : {},\n        forbidden = opt.forbidden ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(opt.forbidden) : {},\n        constants = opt.constants || Constants,\n        functions = (opt.functions || Functions)(visit),\n        globalvar = opt.globalvar,\n        fieldvar = opt.fieldvar,\n        outputGlobal = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(globalvar) ? globalvar : id => \"\".concat(globalvar, \"[\\\"\").concat(id, \"\\\"]\");\n  let globals = {},\n      fields = {},\n      memberDepth = 0;\n\n  function visit(ast) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(ast)) return ast;\n    const generator = Generators[ast.type];\n    if (generator == null) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unsupported type: ' + ast.type);\n    return generator(ast);\n  }\n\n  const Generators = {\n    Literal: n => n.raw,\n    Identifier: n => {\n      const id = n.name;\n\n      if (memberDepth > 0) {\n        return id;\n      } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(forbidden, id)) {\n        return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Illegal identifier: ' + id);\n      } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(constants, id)) {\n        return constants[id];\n      } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(allowed, id)) {\n        return id;\n      } else {\n        globals[id] = 1;\n        return outputGlobal(id);\n      }\n    },\n    MemberExpression: n => {\n      const d = !n.computed,\n            o = visit(n.object);\n      if (d) memberDepth += 1;\n      const p = visit(n.property);\n\n      if (o === fieldvar) {\n        // strip quotes to sanitize field name (#1653)\n        fields[stripQuotes(p)] = 1;\n      }\n\n      if (d) memberDepth -= 1;\n      return o + (d ? '.' + p : '[' + p + ']');\n    },\n    CallExpression: n => {\n      if (n.callee.type !== 'Identifier') {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Illegal callee type: ' + n.callee.type);\n      }\n\n      const callee = n.callee.name,\n            args = n.arguments,\n            fn = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(functions, callee) && functions[callee];\n      if (!fn) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized function: ' + callee);\n      return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(fn) ? fn(args) : fn + '(' + args.map(visit).join(',') + ')';\n    },\n    ArrayExpression: n => '[' + n.elements.map(visit).join(',') + ']',\n    BinaryExpression: n => '(' + visit(n.left) + n.operator + visit(n.right) + ')',\n    UnaryExpression: n => '(' + n.operator + visit(n.argument) + ')',\n    ConditionalExpression: n => '(' + visit(n.test) + '?' + visit(n.consequent) + ':' + visit(n.alternate) + ')',\n    LogicalExpression: n => '(' + visit(n.left) + n.operator + visit(n.right) + ')',\n    ObjectExpression: n => '{' + n.properties.map(visit).join(',') + '}',\n    Property: n => {\n      memberDepth += 1;\n      const k = visit(n.key);\n      memberDepth -= 1;\n      return k + ':' + visit(n.value);\n    }\n  };\n\n  function codegen(ast) {\n    const result = {\n      code: visit(ast),\n      globals: Object.keys(globals),\n      fields: Object.keys(fields)\n    };\n    globals = {};\n    fields = {};\n    return result;\n  }\n\n  codegen.functions = functions;\n  codegen.constants = constants;\n  return codegen;\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-expression/build/vega-expression.module.js?");

/***/ }),

/***/ "./node_modules/vega-force/build/vega-force.module.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-force/build/vega-force.module.js ***!
  \************************************************************/
/*! exports provided: force */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"force\", function() { return Force; });\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_force__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-force */ \"./node_modules/d3-force/src/index.js\");\n\n\n\n\nconst ForceMap = {\n  center: d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceCenter\"],\n  collide: d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceCollide\"],\n  nbody: d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceManyBody\"],\n  link: d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceLink\"],\n  x: d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceX\"],\n  y: d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceY\"]\n};\nconst Forces = 'forces',\n      ForceParams = ['alpha', 'alphaMin', 'alphaTarget', 'velocityDecay', 'forces'],\n      ForceConfig = ['static', 'iterations'],\n      ForceOutput = ['x', 'y', 'vx', 'vy'];\n/**\n * Force simulation layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<object>} params.forces - The forces to apply.\n */\n\nfunction Force(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nForce.Definition = {\n  'type': 'Force',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'static',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'restart',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'iterations',\n    'type': 'number',\n    'default': 300\n  }, {\n    'name': 'alpha',\n    'type': 'number',\n    'default': 1\n  }, {\n    'name': 'alphaMin',\n    'type': 'number',\n    'default': 0.001\n  }, {\n    'name': 'alphaTarget',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'velocityDecay',\n    'type': 'number',\n    'default': 0.4\n  }, {\n    'name': 'forces',\n    'type': 'param',\n    'array': true,\n    'params': [{\n      'key': {\n        'force': 'center'\n      },\n      'params': [{\n        'name': 'x',\n        'type': 'number',\n        'default': 0\n      }, {\n        'name': 'y',\n        'type': 'number',\n        'default': 0\n      }]\n    }, {\n      'key': {\n        'force': 'collide'\n      },\n      'params': [{\n        'name': 'radius',\n        'type': 'number',\n        'expr': true\n      }, {\n        'name': 'strength',\n        'type': 'number',\n        'default': 0.7\n      }, {\n        'name': 'iterations',\n        'type': 'number',\n        'default': 1\n      }]\n    }, {\n      'key': {\n        'force': 'nbody'\n      },\n      'params': [{\n        'name': 'strength',\n        'type': 'number',\n        'default': -30\n      }, {\n        'name': 'theta',\n        'type': 'number',\n        'default': 0.9\n      }, {\n        'name': 'distanceMin',\n        'type': 'number',\n        'default': 1\n      }, {\n        'name': 'distanceMax',\n        'type': 'number'\n      }]\n    }, {\n      'key': {\n        'force': 'link'\n      },\n      'params': [{\n        'name': 'links',\n        'type': 'data'\n      }, {\n        'name': 'id',\n        'type': 'field'\n      }, {\n        'name': 'distance',\n        'type': 'number',\n        'default': 30,\n        'expr': true\n      }, {\n        'name': 'strength',\n        'type': 'number',\n        'expr': true\n      }, {\n        'name': 'iterations',\n        'type': 'number',\n        'default': 1\n      }]\n    }, {\n      'key': {\n        'force': 'x'\n      },\n      'params': [{\n        'name': 'strength',\n        'type': 'number',\n        'default': 0.1\n      }, {\n        'name': 'x',\n        'type': 'field'\n      }]\n    }, {\n      'key': {\n        'force': 'y'\n      },\n      'params': [{\n        'name': 'strength',\n        'type': 'number',\n        'default': 0.1\n      }, {\n        'name': 'y',\n        'type': 'field'\n      }]\n    }]\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'modify': false,\n    'default': ForceOutput\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Force, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var sim = this.value,\n        change = pulse.changed(pulse.ADD_REM),\n        params = _.modified(ForceParams),\n        iters = _.iterations || 300; // configure simulation\n\n\n    if (!sim) {\n      this.value = sim = simulation(pulse.source, _);\n      sim.on('tick', rerun(pulse.dataflow, this));\n\n      if (!_.static) {\n        change = true;\n        sim.tick(); // ensure we run on init\n      }\n\n      pulse.modifies('index');\n    } else {\n      if (change) {\n        pulse.modifies('index');\n        sim.nodes(pulse.source);\n      }\n\n      if (params || pulse.changed(pulse.MOD)) {\n        setup(sim, _, 0, pulse);\n      }\n    } // run simulation\n\n\n    if (params || change || _.modified(ForceConfig) || pulse.changed() && _.restart) {\n      sim.alpha(Math.max(sim.alpha(), _.alpha || 1)).alphaDecay(1 - Math.pow(sim.alphaMin(), 1 / iters));\n\n      if (_.static) {\n        for (sim.stop(); --iters >= 0;) sim.tick();\n      } else {\n        if (sim.stopped()) sim.restart();\n        if (!change) return pulse.StopPropagation; // defer to sim ticks\n      }\n    }\n\n    return this.finish(_, pulse);\n  },\n\n  finish(_, pulse) {\n    const dataflow = pulse.dataflow; // inspect dependencies, touch link source data\n\n    for (let args = this._argops, j = 0, m = args.length, arg; j < m; ++j) {\n      arg = args[j];\n\n      if (arg.name !== Forces || arg.op._argval.force !== 'link') {\n        continue;\n      }\n\n      for (var ops = arg.op._argops, i = 0, n = ops.length, op; i < n; ++i) {\n        if (ops[i].name === 'links' && (op = ops[i].op.source)) {\n          dataflow.pulse(op, dataflow.changeset().reflow());\n          break;\n        }\n      }\n    } // reflow all nodes\n\n\n    return pulse.reflow(_.modified()).modifies(ForceOutput);\n  }\n\n});\n\nfunction rerun(df, op) {\n  return () => df.touch(op).run();\n}\n\nfunction simulation(nodes, _) {\n  const sim = Object(d3_force__WEBPACK_IMPORTED_MODULE_2__[\"forceSimulation\"])(nodes),\n        stop = sim.stop,\n        restart = sim.restart;\n  let stopped = false;\n\n  sim.stopped = () => stopped;\n\n  sim.restart = () => (stopped = false, restart());\n\n  sim.stop = () => (stopped = true, stop());\n\n  return setup(sim, _, true).on('end', () => stopped = true);\n}\n\nfunction setup(sim, _, init, pulse) {\n  var f = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])(_.forces),\n      i,\n      n,\n      p,\n      name;\n\n  for (i = 0, n = ForceParams.length; i < n; ++i) {\n    p = ForceParams[i];\n    if (p !== Forces && _.modified(p)) sim[p](_[p]);\n  }\n\n  for (i = 0, n = f.length; i < n; ++i) {\n    name = Forces + i;\n    p = init || _.modified(Forces, i) ? getForce(f[i]) : pulse && modified(f[i], pulse) ? sim.force(name) : null;\n    if (p) sim.force(name, p);\n  }\n\n  for (n = sim.numForces || 0; i < n; ++i) {\n    sim.force(Forces + i, null); // remove\n  }\n\n  sim.numForces = f.length;\n  return sim;\n}\n\nfunction modified(f, pulse) {\n  var k, v;\n\n  for (k in f) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(v = f[k]) && pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"accessorFields\"])(v))) return 1;\n  }\n\n  return 0;\n}\n\nfunction getForce(_) {\n  var f, p;\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"hasOwnProperty\"])(ForceMap, _.force)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('Unrecognized force: ' + _.force);\n  }\n\n  f = ForceMap[_.force]();\n\n  for (p in _) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(f[p])) setForceParam(f[p], _[p], _);\n  }\n\n  return f;\n}\n\nfunction setForceParam(f, v, _) {\n  f(Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(v) ? d => v(d, _) : v);\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-force/build/vega-force.module.js?");

/***/ }),

/***/ "./node_modules/vega-format/build/vega-format.module.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-format/build/vega-format.module.js ***!
  \**************************************************************/
/*! exports provided: defaultLocale, locale, numberFormatDefaultLocale, numberFormatLocale, resetDefaultLocale, resetNumberFormatDefaultLocale, resetTimeFormatDefaultLocale, timeFormatDefaultLocale, timeFormatLocale */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLocale\", function() { return defaultLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"locale\", function() { return locale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberFormatDefaultLocale\", function() { return numberFormatDefaultLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberFormatLocale\", function() { return numberFormatLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetDefaultLocale\", function() { return resetDefaultLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetNumberFormatDefaultLocale\", function() { return resetNumberFormatDefaultLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetTimeFormatDefaultLocale\", function() { return resetTimeFormatDefaultLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormatDefaultLocale\", function() { return timeFormatDefaultLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormatLocale\", function() { return timeFormatLocale; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_format__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-format */ \"./node_modules/d3-format/src/index.js\");\n/* harmony import */ var vega_time__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-time */ \"./node_modules/vega-time/build/vega-time.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_time_format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3-time-format */ \"./node_modules/d3-time-format/src/index.js\");\n\n\n\n\n\n\nfunction memoize (method) {\n  const cache = {};\n  return spec => cache[spec] || (cache[spec] = method(spec));\n}\n\nfunction trimZeroes(numberFormat, decimalChar) {\n  return x => {\n    const str = numberFormat(x),\n          dec = str.indexOf(decimalChar);\n    if (dec < 0) return str;\n    let idx = rightmostDigit(str, dec);\n    const end = idx < str.length ? str.slice(idx) : '';\n\n    while (--idx > dec) if (str[idx] !== '0') {\n      ++idx;\n      break;\n    }\n\n    return str.slice(0, idx) + end;\n  };\n}\n\nfunction rightmostDigit(str, dec) {\n  let i = str.lastIndexOf('e'),\n      c;\n  if (i > 0) return i;\n\n  for (i = str.length; --i > dec;) {\n    c = str.charCodeAt(i);\n    if (c >= 48 && c <= 57) return i + 1; // is digit\n  }\n}\n\nfunction numberLocale(locale) {\n  const format = memoize(locale.format),\n        formatPrefix = locale.formatPrefix;\n  return {\n    format,\n    formatPrefix,\n\n    formatFloat(spec) {\n      const s = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"formatSpecifier\"])(spec || ',');\n\n      if (s.precision == null) {\n        s.precision = 12;\n\n        switch (s.type) {\n          case '%':\n            s.precision -= 2;\n            break;\n\n          case 'e':\n            s.precision -= 1;\n            break;\n        }\n\n        return trimZeroes(format(s), // number format\n        format('.1f')(1)[1] // decimal point character\n        );\n      } else {\n        return format(s);\n      }\n    },\n\n    formatSpan(start, stop, count, specifier) {\n      specifier = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"formatSpecifier\"])(specifier == null ? ',f' : specifier);\n      const step = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"tickStep\"])(start, stop, count),\n            value = Math.max(Math.abs(start), Math.abs(stop));\n      let precision;\n\n      if (specifier.precision == null) {\n        switch (specifier.type) {\n          case 's':\n            {\n              if (!isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"precisionPrefix\"])(step, value))) {\n                specifier.precision = precision;\n              }\n\n              return formatPrefix(specifier, value);\n            }\n\n          case '':\n          case 'e':\n          case 'g':\n          case 'p':\n          case 'r':\n            {\n              if (!isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"precisionRound\"])(step, value))) {\n                specifier.precision = precision - (specifier.type === 'e');\n              }\n\n              break;\n            }\n\n          case 'f':\n          case '%':\n            {\n              if (!isNaN(precision = Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"precisionFixed\"])(step))) {\n                specifier.precision = precision - (specifier.type === '%') * 2;\n              }\n\n              break;\n            }\n        }\n      }\n\n      return format(specifier);\n    }\n\n  };\n}\n\nlet defaultNumberLocale;\nresetNumberFormatDefaultLocale();\nfunction resetNumberFormatDefaultLocale() {\n  return defaultNumberLocale = numberLocale({\n    format: d3_format__WEBPACK_IMPORTED_MODULE_1__[\"format\"],\n    formatPrefix: d3_format__WEBPACK_IMPORTED_MODULE_1__[\"formatPrefix\"]\n  });\n}\nfunction numberFormatLocale(definition) {\n  return numberLocale(Object(d3_format__WEBPACK_IMPORTED_MODULE_1__[\"formatLocale\"])(definition));\n}\nfunction numberFormatDefaultLocale(definition) {\n  return arguments.length ? defaultNumberLocale = numberFormatLocale(definition) : defaultNumberLocale;\n}\n\nfunction timeMultiFormat(format, interval, spec) {\n  spec = spec || {};\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"isObject\"])(spec)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"error\"])(\"Invalid time multi-format specifier: \".concat(spec));\n  }\n\n  const second = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"SECONDS\"]),\n        minute = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"MINUTES\"]),\n        hour = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"HOURS\"]),\n        day = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"DATE\"]),\n        week = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"WEEK\"]),\n        month = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"MONTH\"]),\n        quarter = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"QUARTER\"]),\n        year = interval(vega_time__WEBPACK_IMPORTED_MODULE_2__[\"YEAR\"]),\n        L = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"MILLISECONDS\"]] || '.%L'),\n        S = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"SECONDS\"]] || ':%S'),\n        M = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"MINUTES\"]] || '%I:%M'),\n        H = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"HOURS\"]] || '%I %p'),\n        d = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"DATE\"]] || spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"DAY\"]] || '%a %d'),\n        w = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"WEEK\"]] || '%b %d'),\n        m = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"MONTH\"]] || '%B'),\n        q = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"QUARTER\"]] || '%B'),\n        y = format(spec[vega_time__WEBPACK_IMPORTED_MODULE_2__[\"YEAR\"]] || '%Y');\n  return date => (second(date) < date ? L : minute(date) < date ? S : hour(date) < date ? M : day(date) < date ? H : month(date) < date ? week(date) < date ? d : w : year(date) < date ? quarter(date) < date ? m : q : y)(date);\n}\n\nfunction timeLocale(locale) {\n  const timeFormat = memoize(locale.format),\n        utcFormat = memoize(locale.utcFormat);\n  return {\n    timeFormat: spec => Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"isString\"])(spec) ? timeFormat(spec) : timeMultiFormat(timeFormat, vega_time__WEBPACK_IMPORTED_MODULE_2__[\"timeInterval\"], spec),\n    utcFormat: spec => Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"isString\"])(spec) ? utcFormat(spec) : timeMultiFormat(utcFormat, vega_time__WEBPACK_IMPORTED_MODULE_2__[\"utcInterval\"], spec),\n    timeParse: memoize(locale.parse),\n    utcParse: memoize(locale.utcParse)\n  };\n}\n\nlet defaultTimeLocale;\nresetTimeFormatDefaultLocale();\nfunction resetTimeFormatDefaultLocale() {\n  return defaultTimeLocale = timeLocale({\n    format: d3_time_format__WEBPACK_IMPORTED_MODULE_4__[\"timeFormat\"],\n    parse: d3_time_format__WEBPACK_IMPORTED_MODULE_4__[\"timeParse\"],\n    utcFormat: d3_time_format__WEBPACK_IMPORTED_MODULE_4__[\"utcFormat\"],\n    utcParse: d3_time_format__WEBPACK_IMPORTED_MODULE_4__[\"utcParse\"]\n  });\n}\nfunction timeFormatLocale(definition) {\n  return timeLocale(Object(d3_time_format__WEBPACK_IMPORTED_MODULE_4__[\"timeFormatLocale\"])(definition));\n}\nfunction timeFormatDefaultLocale(definition) {\n  return arguments.length ? defaultTimeLocale = timeFormatLocale(definition) : defaultTimeLocale;\n}\n\nconst createLocale = (number, time) => Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"extend\"])({}, number, time);\n\nfunction locale(numberSpec, timeSpec) {\n  const number = numberSpec ? numberFormatLocale(numberSpec) : numberFormatDefaultLocale();\n  const time = timeSpec ? timeFormatLocale(timeSpec) : timeFormatDefaultLocale();\n  return createLocale(number, time);\n}\nfunction defaultLocale(numberSpec, timeSpec) {\n  const args = arguments.length;\n\n  if (args && args !== 2) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"error\"])('defaultLocale expects either zero or two arguments.');\n  }\n\n  return args ? createLocale(numberFormatDefaultLocale(numberSpec), timeFormatDefaultLocale(timeSpec)) : createLocale(numberFormatDefaultLocale(), timeFormatDefaultLocale());\n}\nfunction resetDefaultLocale() {\n  resetNumberFormatDefaultLocale();\n  resetTimeFormatDefaultLocale();\n  return defaultLocale();\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-format/build/vega-format.module.js?");

/***/ }),

/***/ "./node_modules/vega-functions/build/vega-functions.module.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-functions/build/vega-functions.module.js ***!
  \********************************************************************/
/*! exports provided: DataPrefix, IndexPrefix, ScalePrefix, SignalPrefix, bandspace, bandwidth, codeGenerator, codegenParams, containerSize, contrast, copy, data, dataVisitor, dayAbbrevFormat, dayFormat, debug, domain, encode, expressionFunction, format, functionContext, geoArea, geoBounds, geoCentroid, geoShape, inScope, indata, indataVisitor, info, invert, luminance, merge, modify, monthAbbrevFormat, monthFormat, parseExpression, pathShape, pinchAngle, pinchDistance, range, scale, scaleGradient, scaleVisitor, screen, setdata, timeFormat, timeParse, treeAncestors, treePath, utcFormat, utcParse, warn, windowSize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DataPrefix\", function() { return DataPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IndexPrefix\", function() { return IndexPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScalePrefix\", function() { return ScalePrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SignalPrefix\", function() { return SignalPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bandspace\", function() { return bandspace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bandwidth\", function() { return bandwidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"codeGenerator\", function() { return codeGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"codegenParams\", function() { return codegenParams; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"containerSize\", function() { return containerSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"contrast\", function() { return contrast; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"copy\", function() { return copy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"data\", function() { return data; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dataVisitor\", function() { return dataVisitor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dayAbbrevFormat\", function() { return dayAbbrevFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dayFormat\", function() { return dayFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debug\", function() { return debug; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domain\", function() { return domain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"encode\", function() { return encode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expressionFunction\", function() { return expressionFunction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"functionContext\", function() { return functionContext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geoArea\", function() { return geoArea; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geoBounds\", function() { return geoBounds; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geoCentroid\", function() { return geoCentroid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geoShape\", function() { return geoShape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inScope\", function() { return inScope; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"indata\", function() { return indata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"indataVisitor\", function() { return indataVisitor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"info\", function() { return info; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invert\", function() { return invert; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"luminance\", function() { return luminance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"modify\", function() { return modify; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monthAbbrevFormat\", function() { return monthAbbrevFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"monthFormat\", function() { return monthFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseExpression\", function() { return parser; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathShape\", function() { return pathShape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pinchAngle\", function() { return pinchAngle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pinchDistance\", function() { return pinchDistance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"range\", function() { return range; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scale\", function() { return scale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleGradient\", function() { return scaleGradient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleVisitor\", function() { return scaleVisitor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"screen\", function() { return screen; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setdata\", function() { return setdata; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return timeFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeParse\", function() { return timeParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"treeAncestors\", function() { return treeAncestors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"treePath\", function() { return treePath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFormat\", function() { return utcFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcParse\", function() { return utcParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"warn\", function() { return warn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"windowSize\", function() { return windowSize; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_expression__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-expression */ \"./node_modules/vega-expression/build/vega-expression.module.js\");\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_scale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vega-scale */ \"./node_modules/vega-scale/build/vega-scale.module.js\");\n/* harmony import */ var vega_scenegraph__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vega-scenegraph */ \"./node_modules/vega-scenegraph/build/vega-scenegraph.module.js\");\n/* harmony import */ var vega_selections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vega-selections */ \"./node_modules/vega-selections/build/vega-selection.module.js\");\n/* harmony import */ var vega_statistics__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vega-statistics */ \"./node_modules/vega-statistics/build/vega-statistics.module.js\");\n/* harmony import */ var vega_time__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vega-time */ \"./node_modules/vega-time/build/vega-time.module.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nfunction data(name) {\n  const data = this.context.data[name];\n  return data ? data.values.value : [];\n}\nfunction indata(name, field, value) {\n  const index = this.context.data[name]['index:' + field],\n        entry = index ? index.value.get(value) : undefined;\n  return entry ? entry.count : entry;\n}\nfunction setdata(name, tuples) {\n  const df = this.context.dataflow,\n        data = this.context.data[name],\n        input = data.input;\n  df.pulse(input, df.changeset().remove(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"]).insert(tuples));\n  return 1;\n}\n\nfunction encode (item, name, retval) {\n  if (item) {\n    const df = this.context.dataflow,\n          target = item.mark.source;\n    df.pulse(target, df.changeset().encode(item, name));\n  }\n\n  return retval !== undefined ? retval : item;\n}\n\nconst wrap = method => function (value, spec) {\n  const locale = this.context.dataflow.locale();\n  return locale[method](spec)(value);\n};\n\nconst format = wrap('format');\nconst timeFormat = wrap('timeFormat');\nconst utcFormat = wrap('utcFormat');\nconst timeParse = wrap('timeParse');\nconst utcParse = wrap('utcParse');\nconst dateObj = new Date(2000, 0, 1);\n\nfunction time(month, day, specifier) {\n  if (!Number.isInteger(month) || !Number.isInteger(day)) return '';\n  dateObj.setYear(2000);\n  dateObj.setMonth(month);\n  dateObj.setDate(day);\n  return timeFormat.call(this, dateObj, specifier);\n}\n\nfunction monthFormat(month) {\n  return time.call(this, month, 1, '%B');\n}\nfunction monthAbbrevFormat(month) {\n  return time.call(this, month, 1, '%b');\n}\nfunction dayFormat(day) {\n  return time.call(this, 0, 2 + day, '%A');\n}\nfunction dayAbbrevFormat(day) {\n  return time.call(this, 0, 2 + day, '%a');\n}\n\nconst DataPrefix = ':';\nconst IndexPrefix = '@';\nconst ScalePrefix = '%';\nconst SignalPrefix = '$';\n\nfunction dataVisitor(name, args, scope, params) {\n  if (args[0].type !== vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"Literal\"]) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('First argument to data functions must be a string literal.');\n  }\n\n  const data = args[0].value,\n        dataName = DataPrefix + data;\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(dataName, params)) {\n    try {\n      params[dataName] = scope.getData(data).tuplesRef();\n    } catch (err) {// if data set does not exist, there's nothing to track\n    }\n  }\n}\nfunction indataVisitor(name, args, scope, params) {\n  if (args[0].type !== vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"Literal\"]) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('First argument to indata must be a string literal.');\n  if (args[1].type !== vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"Literal\"]) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Second argument to indata must be a string literal.');\n  const data = args[0].value,\n        field = args[1].value,\n        indexName = IndexPrefix + field;\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(indexName, params)) {\n    params[indexName] = scope.getData(data).indataRef(scope, field);\n  }\n}\nfunction scaleVisitor(name, args, scope, params) {\n  if (args[0].type === vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"Literal\"]) {\n    // add scale dependency\n    addScaleDependency(scope, params, args[0].value);\n  } else {\n    // indirect scale lookup; add all scales as parameters\n    for (name in scope.scales) {\n      addScaleDependency(scope, params, name);\n    }\n  }\n}\n\nfunction addScaleDependency(scope, params, name) {\n  const scaleName = ScalePrefix + name;\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(params, scaleName)) {\n    try {\n      params[scaleName] = scope.scaleRef(name);\n    } catch (err) {// TODO: error handling? warning?\n    }\n  }\n}\n\nfunction getScale(name, ctx) {\n  let s;\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(name) ? name : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(name) ? (s = ctx.scales[name]) && s.value : undefined;\n}\nfunction internalScaleFunctions(codegen, fnctx, visitors) {\n  // add helper method to the 'this' expression function context\n  fnctx.__bandwidth = s => s && s.bandwidth ? s.bandwidth() : 0; // register AST visitors for internal scale functions\n\n\n  visitors._bandwidth = scaleVisitor;\n  visitors._range = scaleVisitor;\n  visitors._scale = scaleVisitor; // resolve scale reference directly to the signal hash argument\n\n  const ref = arg => '_[' + (arg.type === vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"Literal\"] ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(ScalePrefix + arg.value) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(ScalePrefix) + '+' + codegen(arg)) + ']'; // define and return internal scale function code generators\n  // these internal functions are called by mark encoders\n\n\n  return {\n    _bandwidth: args => \"this.__bandwidth(\".concat(ref(args[0]), \")\"),\n    _range: args => \"\".concat(ref(args[0]), \".range()\"),\n    _scale: args => \"\".concat(ref(args[0]), \"(\").concat(codegen(args[1]), \")\")\n  };\n}\n\nfunction geoMethod(methodName, globalMethod) {\n  return function (projection, geojson, group) {\n    if (projection) {\n      // projection defined, use it\n      const p = getScale(projection, (group || this).context);\n      return p && p.path[methodName](geojson);\n    } else {\n      // projection undefined, use global method\n      return globalMethod(geojson);\n    }\n  };\n}\n\nconst geoArea = geoMethod('area', d3_geo__WEBPACK_IMPORTED_MODULE_2__[\"geoArea\"]);\nconst geoBounds = geoMethod('bounds', d3_geo__WEBPACK_IMPORTED_MODULE_2__[\"geoBounds\"]);\nconst geoCentroid = geoMethod('centroid', d3_geo__WEBPACK_IMPORTED_MODULE_2__[\"geoCentroid\"]);\n\nfunction inScope (item) {\n  const group = this.context.group;\n  let value = false;\n  if (group) while (item) {\n    if (item === group) {\n      value = true;\n      break;\n    }\n\n    item = item.mark.group;\n  }\n  return value;\n}\n\nfunction log(df, method, args) {\n  try {\n    df[method].apply(df, ['EXPRESSION'].concat([].slice.call(args)));\n  } catch (err) {\n    df.warn(err);\n  }\n\n  return args[args.length - 1];\n}\n\nfunction warn() {\n  return log(this.context.dataflow, 'warn', arguments);\n}\nfunction info() {\n  return log(this.context.dataflow, 'info', arguments);\n}\nfunction debug() {\n  return log(this.context.dataflow, 'debug', arguments);\n}\n\nfunction channel_luminance_value(channelValue) {\n  const val = channelValue / 255;\n\n  if (val <= 0.03928) {\n    return val / 12.92;\n  }\n\n  return Math.pow((val + 0.055) / 1.055, 2.4);\n}\n\nfunction luminance(color) {\n  const c = Object(d3_color__WEBPACK_IMPORTED_MODULE_3__[\"rgb\"])(color),\n        r = channel_luminance_value(c.r),\n        g = channel_luminance_value(c.g),\n        b = channel_luminance_value(c.b);\n  return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n} // https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n\nfunction contrast(color1, color2) {\n  const lum1 = luminance(color1),\n        lum2 = luminance(color2),\n        lumL = Math.max(lum1, lum2),\n        lumD = Math.min(lum1, lum2);\n  return (lumL + 0.05) / (lumD + 0.05);\n}\n\nfunction merge () {\n  const args = [].slice.call(arguments);\n  args.unshift({});\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(...args);\n}\n\nfunction equal(a, b) {\n  return a === b || a !== a && b !== b ? true : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(a) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(b) && a.length === b.length ? equalArray(a, b) : false : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(a) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(b) ? equalObject(a, b) : false;\n}\n\nfunction equalArray(a, b) {\n  for (let i = 0, n = a.length; i < n; ++i) {\n    if (!equal(a[i], b[i])) return false;\n  }\n\n  return true;\n}\n\nfunction equalObject(a, b) {\n  for (const key in a) {\n    if (!equal(a[key], b[key])) return false;\n  }\n\n  return true;\n}\n\nfunction removePredicate(props) {\n  return _ => equalObject(props, _);\n}\n\nfunction modify (name, insert, remove, toggle, modify, values) {\n  const df = this.context.dataflow,\n        data = this.context.data[name],\n        input = data.input,\n        stamp = df.stamp();\n  let changes = data.changes,\n      predicate,\n      key;\n\n  if (df._trigger === false || !(input.value.length || insert || toggle)) {\n    // nothing to do!\n    return 0;\n  }\n\n  if (!changes || changes.stamp < stamp) {\n    data.changes = changes = df.changeset();\n    changes.stamp = stamp;\n    df.runAfter(() => {\n      data.modified = true;\n      df.pulse(input, changes).run();\n    }, true, 1);\n  }\n\n  if (remove) {\n    predicate = remove === true ? vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"] : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(remove) || Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_4__[\"isTuple\"])(remove) ? remove : removePredicate(remove);\n    changes.remove(predicate);\n  }\n\n  if (insert) {\n    changes.insert(insert);\n  }\n\n  if (toggle) {\n    predicate = removePredicate(toggle);\n\n    if (input.value.some(predicate)) {\n      changes.remove(predicate);\n    } else {\n      changes.insert(toggle);\n    }\n  }\n\n  if (modify) {\n    for (key in values) {\n      changes.modify(modify, key, values[key]);\n    }\n  }\n\n  return 1;\n}\n\nfunction pinchDistance(event) {\n  const t = event.touches,\n        dx = t[0].clientX - t[1].clientX,\n        dy = t[0].clientY - t[1].clientY;\n  return Math.sqrt(dx * dx + dy * dy);\n}\nfunction pinchAngle(event) {\n  const t = event.touches;\n  return Math.atan2(t[0].clientY - t[1].clientY, t[0].clientX - t[1].clientX);\n}\n\nfunction bandspace(count, paddingInner, paddingOuter) {\n  return Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"bandSpace\"])(count || 0, paddingInner || 0, paddingOuter || 0);\n}\nfunction bandwidth(name, group) {\n  const s = getScale(name, (group || this).context);\n  return s && s.bandwidth ? s.bandwidth() : 0;\n}\nfunction copy(name, group) {\n  const s = getScale(name, (group || this).context);\n  return s ? s.copy() : undefined;\n}\nfunction domain(name, group) {\n  const s = getScale(name, (group || this).context);\n  return s ? s.domain() : [];\n}\nfunction invert(name, range, group) {\n  const s = getScale(name, (group || this).context);\n  return !s ? undefined : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(range) ? (s.invertRange || s.invert)(range) : (s.invert || s.invertExtent)(range);\n}\nfunction range(name, group) {\n  const s = getScale(name, (group || this).context);\n  return s && s.range ? s.range() : [];\n}\nfunction scale(name, value, group) {\n  const s = getScale(name, (group || this).context);\n  return s ? s(value) : undefined;\n}\n\nfunction scaleGradient (scale, p0, p1, count, group) {\n  scale = getScale(scale, (group || this).context);\n  const gradient = Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_6__[\"Gradient\"])(p0, p1);\n  let stops = scale.domain(),\n      min = stops[0],\n      max = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(stops),\n      fraction = vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n\n  if (!(max - min)) {\n    // expand scale if domain has zero span, fix #1479\n    scale = (scale.interpolator ? Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"scale\"])('sequential')().interpolator(scale.interpolator()) : Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"scale\"])('linear')().interpolate(scale.interpolate()).range(scale.range())).domain([min = 0, max = 1]);\n  } else {\n    fraction = Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"scaleFraction\"])(scale, min, max);\n  }\n\n  if (scale.ticks) {\n    stops = scale.ticks(+count || 15);\n    if (min !== stops[0]) stops.unshift(min);\n    if (max !== Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(stops)) stops.push(max);\n  }\n\n  stops.forEach(_ => gradient.stop(fraction(_), scale(_)));\n  return gradient;\n}\n\nfunction geoShape(projection, geojson, group) {\n  const p = getScale(projection, (group || this).context);\n  return function (context) {\n    return p ? p.path.context(context)(geojson) : '';\n  };\n}\nfunction pathShape(path) {\n  let p = null;\n  return function (context) {\n    return context ? Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_6__[\"pathRender\"])(context, p = p || Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_6__[\"pathParse\"])(path)) : path;\n  };\n}\n\nconst datum = d => d.data;\n\nfunction treeNodes(name, context) {\n  const tree = data.call(context, name);\n  return tree.root && tree.root.lookup || {};\n}\n\nfunction treePath(name, source, target) {\n  const nodes = treeNodes(name, this),\n        s = nodes[source],\n        t = nodes[target];\n  return s && t ? s.path(t).map(datum) : undefined;\n}\nfunction treeAncestors(name, node) {\n  const n = treeNodes(name, this)[node];\n  return n ? n.ancestors().map(datum) : undefined;\n}\n\nconst _window = () => typeof window !== 'undefined' && window || null;\n\nfunction screen() {\n  const w = _window();\n\n  return w ? w.screen : {};\n}\nfunction windowSize() {\n  const w = _window();\n\n  return w ? [w.innerWidth, w.innerHeight] : [undefined, undefined];\n}\nfunction containerSize() {\n  const view = this.context.dataflow,\n        el = view.container && view.container();\n  return el ? [el.clientWidth, el.clientHeight] : [undefined, undefined];\n}\n\nfunction intersect (b, opt, group) {\n  if (!b) return [];\n  const [u, v] = b,\n        box = new vega_scenegraph__WEBPACK_IMPORTED_MODULE_6__[\"Bounds\"]().set(u[0], u[1], v[0], v[1]),\n        scene = group || this.context.dataflow.scenegraph().root;\n  return Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_6__[\"intersect\"])(scene, box, filter(opt));\n}\n\nfunction filter(opt) {\n  let p = null;\n\n  if (opt) {\n    const types = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(opt.marktype),\n          names = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(opt.markname);\n\n    p = _ => (!types.length || types.some(t => _.marktype === t)) && (!names.length || names.some(s => _.name === s));\n  }\n\n  return p;\n}\n\nconst functionContext = {\n  random() {\n    return Object(vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"random\"])();\n  },\n\n  // override default\n  cumulativeNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"cumulativeNormal\"],\n  cumulativeLogNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"cumulativeLogNormal\"],\n  cumulativeUniform: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"cumulativeUniform\"],\n  densityNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"densityNormal\"],\n  densityLogNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"densityLogNormal\"],\n  densityUniform: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"densityUniform\"],\n  quantileNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"quantileNormal\"],\n  quantileLogNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"quantileLogNormal\"],\n  quantileUniform: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"quantileUniform\"],\n  sampleNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"sampleNormal\"],\n  sampleLogNormal: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"sampleLogNormal\"],\n  sampleUniform: vega_statistics__WEBPACK_IMPORTED_MODULE_8__[\"sampleUniform\"],\n  isArray: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"],\n  isBoolean: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"],\n  isDate: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"],\n\n  isDefined(_) {\n    return _ !== undefined;\n  },\n\n  isNumber: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"],\n  isObject: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"],\n  isRegExp: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isRegExp\"],\n  isString: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"],\n  isTuple: vega_dataflow__WEBPACK_IMPORTED_MODULE_4__[\"isTuple\"],\n\n  isValid(_) {\n    return _ != null && _ === _;\n  },\n\n  toBoolean: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toBoolean\"],\n  toDate: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toDate\"],\n  toNumber: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"],\n  toString: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toString\"],\n  flush: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"flush\"],\n  lerp: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"lerp\"],\n  merge,\n  pad: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"pad\"],\n  peek: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"],\n  span: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"span\"],\n  inrange: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inrange\"],\n  truncate: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truncate\"],\n  rgb: d3_color__WEBPACK_IMPORTED_MODULE_3__[\"rgb\"],\n  lab: d3_color__WEBPACK_IMPORTED_MODULE_3__[\"lab\"],\n  hcl: d3_color__WEBPACK_IMPORTED_MODULE_3__[\"hcl\"],\n  hsl: d3_color__WEBPACK_IMPORTED_MODULE_3__[\"hsl\"],\n  luminance,\n  contrast,\n  sequence: d3_array__WEBPACK_IMPORTED_MODULE_10__[\"range\"],\n  format,\n  utcFormat,\n  utcParse,\n  utcOffset: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"utcOffset\"],\n  utcSequence: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"utcSequence\"],\n  timeFormat,\n  timeParse,\n  timeOffset: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"timeOffset\"],\n  timeSequence: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"timeSequence\"],\n  timeUnitSpecifier: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"timeUnitSpecifier\"],\n  monthFormat,\n  monthAbbrevFormat,\n  dayFormat,\n  dayAbbrevFormat,\n  quarter: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"quarter\"],\n  utcquarter: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"utcquarter\"],\n  week: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"week\"],\n  utcweek: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"utcweek\"],\n  dayofyear: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"dayofyear\"],\n  utcdayofyear: vega_time__WEBPACK_IMPORTED_MODULE_9__[\"utcdayofyear\"],\n  warn,\n  info,\n  debug,\n  extent: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"],\n  inScope,\n  intersect,\n  clampRange: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"clampRange\"],\n  pinchDistance,\n  pinchAngle,\n  screen,\n  containerSize,\n  windowSize,\n  bandspace,\n  setdata,\n  pathShape,\n  panLinear: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panLinear\"],\n  panLog: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panLog\"],\n  panPow: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panPow\"],\n  panSymlog: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panSymlog\"],\n  zoomLinear: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomLinear\"],\n  zoomLog: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomLog\"],\n  zoomPow: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomPow\"],\n  zoomSymlog: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomSymlog\"],\n  encode,\n  modify\n};\nconst eventFunctions = ['view', 'item', 'group', 'xy', 'x', 'y'],\n      // event functions\neventPrefix = 'event.vega.',\n      // event function prefix\nthisPrefix = 'this.',\n      // function context prefix\nastVisitors = {}; // AST visitors for dependency analysis\n// export code generator parameters\n\nconst codegenParams = {\n  forbidden: ['_'],\n  allowed: ['datum', 'event', 'item'],\n  fieldvar: 'datum',\n  globalvar: id => \"_[\".concat(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(SignalPrefix + id), \"]\"),\n  functions: buildFunctions,\n  constants: vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"constants\"],\n  visitors: astVisitors\n}; // export code generator\n\nconst codeGenerator = Object(vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"codegen\"])(codegenParams); // Build expression function registry\n\nfunction buildFunctions(codegen) {\n  const fn = Object(vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"functions\"])(codegen);\n  eventFunctions.forEach(name => fn[name] = eventPrefix + name);\n\n  for (const name in functionContext) {\n    fn[name] = thisPrefix + name;\n  }\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(fn, internalScaleFunctions(codegen, functionContext, astVisitors));\n  return fn;\n} // Register an expression function\n\n\nfunction expressionFunction(name, fn, visitor) {\n  if (arguments.length === 1) {\n    return functionContext[name];\n  } // register with the functionContext\n\n\n  functionContext[name] = fn; // if there is an astVisitor register that, too\n\n  if (visitor) astVisitors[name] = visitor; // if the code generator has already been initialized,\n  // we need to also register the function with it\n\n  if (codeGenerator) codeGenerator.functions[name] = thisPrefix + name;\n  return this;\n} // register expression functions with ast visitors\n\nexpressionFunction('bandwidth', bandwidth, scaleVisitor);\nexpressionFunction('copy', copy, scaleVisitor);\nexpressionFunction('domain', domain, scaleVisitor);\nexpressionFunction('range', range, scaleVisitor);\nexpressionFunction('invert', invert, scaleVisitor);\nexpressionFunction('scale', scale, scaleVisitor);\nexpressionFunction('gradient', scaleGradient, scaleVisitor);\nexpressionFunction('geoArea', geoArea, scaleVisitor);\nexpressionFunction('geoBounds', geoBounds, scaleVisitor);\nexpressionFunction('geoCentroid', geoCentroid, scaleVisitor);\nexpressionFunction('geoShape', geoShape, scaleVisitor);\nexpressionFunction('indata', indata, indataVisitor);\nexpressionFunction('data', data, dataVisitor);\nexpressionFunction('treePath', treePath, dataVisitor);\nexpressionFunction('treeAncestors', treeAncestors, dataVisitor); // register Vega-Lite selection functions\n\nexpressionFunction('vlSelectionTest', vega_selections__WEBPACK_IMPORTED_MODULE_7__[\"selectionTest\"], vega_selections__WEBPACK_IMPORTED_MODULE_7__[\"selectionVisitor\"]);\nexpressionFunction('vlSelectionResolve', vega_selections__WEBPACK_IMPORTED_MODULE_7__[\"selectionResolve\"], vega_selections__WEBPACK_IMPORTED_MODULE_7__[\"selectionVisitor\"]);\n\nfunction parser (expr, scope) {\n  const params = {}; // parse the expression to an abstract syntax tree (ast)\n\n  let ast;\n\n  try {\n    expr = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(expr) ? expr : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(expr) + '';\n    ast = Object(vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"parse\"])(expr);\n  } catch (err) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Expression parse error: ' + expr);\n  } // analyze ast function calls for dependencies\n\n\n  ast.visit(node => {\n    if (node.type !== vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"CallExpression\"]) return;\n    const name = node.callee.name,\n          visit = codegenParams.visitors[name];\n    if (visit) visit(name, node.arguments, scope, params);\n  }); // perform code generation\n\n  const gen = codeGenerator(ast); // collect signal dependencies\n\n  gen.globals.forEach(name => {\n    const signalName = SignalPrefix + name;\n\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(params, signalName) && scope.getSignal(name)) {\n      params[signalName] = scope.signalRef(name);\n    }\n  }); // return generated expression code and dependencies\n\n  return {\n    $expr: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n      code: gen.code\n    }, scope.options.ast ? {\n      ast\n    } : null),\n    $fields: gen.fields,\n    $params: params\n  };\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-functions/build/vega-functions.module.js?");

/***/ }),

/***/ "./node_modules/vega-geo/build/vega-geo.module.js":
/*!********************************************************!*\
  !*** ./node_modules/vega-geo/build/vega-geo.module.js ***!
  \********************************************************/
/*! exports provided: contour, geojson, geopath, geopoint, geoshape, graticule, heatmap, isocontour, kde2d, projection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"contour\", function() { return Contour; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geojson\", function() { return GeoJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geopath\", function() { return GeoPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geopoint\", function() { return GeoPoint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geoshape\", function() { return GeoShape; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"graticule\", function() { return Graticule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"heatmap\", function() { return Heatmap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isocontour\", function() { return Isocontour; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kde2d\", function() { return KDE2D; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"projection\", function() { return Projection; });\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var vega_statistics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-statistics */ \"./node_modules/vega-statistics/build/vega-statistics.module.js\");\n/* harmony import */ var vega_projection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-projection */ \"./node_modules/vega-projection/build/vega-projection.module.js\");\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var d3_color__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-color */ \"./node_modules/d3-color/src/index.js\");\n/* harmony import */ var vega_canvas__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vega-canvas */ \"./node_modules/vega-canvas/index.browser.js\");\n\n\n\n\n\n\n\n\n\nfunction noop() {}\n\nconst cases = [[], [[[1.0, 1.5], [0.5, 1.0]]], [[[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [0.5, 1.0]]], [[[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 0.5], [1.0, 1.5]]], [[[1.0, 0.5], [0.5, 1.0]]], [[[0.5, 1.0], [1.0, 0.5]]], [[[1.0, 1.5], [1.0, 0.5]]], [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [1.0, 0.5]]], [[[0.5, 1.0], [1.5, 1.0]]], [[[1.0, 1.5], [1.5, 1.0]]], [[[0.5, 1.0], [1.0, 1.5]]], []]; // Implementation adapted from d3/d3-contour. Thanks!\n\nfunction contours () {\n  var dx = 1,\n      dy = 1,\n      smooth = smoothLinear;\n\n  function contours(values, tz) {\n    return tz.map(value => contour(values, value));\n  } // Accumulate, smooth contour rings, assign holes to exterior rings.\n  // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js\n\n\n  function contour(values, value) {\n    var polygons = [],\n        holes = [];\n    isorings(values, value, ring => {\n      smooth(ring, values, value);\n      if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);\n    });\n    holes.forEach(hole => {\n      for (var i = 0, n = polygons.length, polygon; i < n; ++i) {\n        if (contains((polygon = polygons[i])[0], hole) !== -1) {\n          polygon.push(hole);\n          return;\n        }\n      }\n    });\n    return {\n      type: 'MultiPolygon',\n      value: value,\n      coordinates: polygons\n    };\n  } // Marching squares with isolines stitched into rings.\n  // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js\n\n\n  function isorings(values, value, callback) {\n    var fragmentByStart = new Array(),\n        fragmentByEnd = new Array(),\n        x,\n        y,\n        t0,\n        t1,\n        t2,\n        t3; // Special case for the first row (y = -1, t2 = t3 = 0).\n\n    x = y = -1;\n    t1 = values[0] >= value;\n    cases[t1 << 1].forEach(stitch);\n\n    while (++x < dx - 1) {\n      t0 = t1, t1 = values[x + 1] >= value;\n      cases[t0 | t1 << 1].forEach(stitch);\n    }\n\n    cases[t1 << 0].forEach(stitch); // General case for the intermediate rows.\n\n    while (++y < dy - 1) {\n      x = -1;\n      t1 = values[y * dx + dx] >= value;\n      t2 = values[y * dx] >= value;\n      cases[t1 << 1 | t2 << 2].forEach(stitch);\n\n      while (++x < dx - 1) {\n        t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;\n        t3 = t2, t2 = values[y * dx + x + 1] >= value;\n        cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);\n      }\n\n      cases[t1 | t2 << 3].forEach(stitch);\n    } // Special case for the last row (y = dy - 1, t0 = t1 = 0).\n\n\n    x = -1;\n    t2 = values[y * dx] >= value;\n    cases[t2 << 2].forEach(stitch);\n\n    while (++x < dx - 1) {\n      t3 = t2, t2 = values[y * dx + x + 1] >= value;\n      cases[t2 << 2 | t3 << 3].forEach(stitch);\n    }\n\n    cases[t2 << 3].forEach(stitch);\n\n    function stitch(line) {\n      var start = [line[0][0] + x, line[0][1] + y],\n          end = [line[1][0] + x, line[1][1] + y],\n          startIndex = index(start),\n          endIndex = index(end),\n          f,\n          g;\n\n      if (f = fragmentByEnd[startIndex]) {\n        if (g = fragmentByStart[endIndex]) {\n          delete fragmentByEnd[f.end];\n          delete fragmentByStart[g.start];\n\n          if (f === g) {\n            f.ring.push(end);\n            callback(f.ring);\n          } else {\n            fragmentByStart[f.start] = fragmentByEnd[g.end] = {\n              start: f.start,\n              end: g.end,\n              ring: f.ring.concat(g.ring)\n            };\n          }\n        } else {\n          delete fragmentByEnd[f.end];\n          f.ring.push(end);\n          fragmentByEnd[f.end = endIndex] = f;\n        }\n      } else if (f = fragmentByStart[endIndex]) {\n        if (g = fragmentByEnd[startIndex]) {\n          delete fragmentByStart[f.start];\n          delete fragmentByEnd[g.end];\n\n          if (f === g) {\n            f.ring.push(end);\n            callback(f.ring);\n          } else {\n            fragmentByStart[g.start] = fragmentByEnd[f.end] = {\n              start: g.start,\n              end: f.end,\n              ring: g.ring.concat(f.ring)\n            };\n          }\n        } else {\n          delete fragmentByStart[f.start];\n          f.ring.unshift(start);\n          fragmentByStart[f.start = startIndex] = f;\n        }\n      } else {\n        fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {\n          start: startIndex,\n          end: endIndex,\n          ring: [start, end]\n        };\n      }\n    }\n  }\n\n  function index(point) {\n    return point[0] * 2 + point[1] * (dx + 1) * 4;\n  }\n\n  function smoothLinear(ring, values, value) {\n    ring.forEach(point => {\n      var x = point[0],\n          y = point[1],\n          xt = x | 0,\n          yt = y | 0,\n          v0,\n          v1 = values[yt * dx + xt];\n\n      if (x > 0 && x < dx && xt === x) {\n        v0 = values[yt * dx + xt - 1];\n        point[0] = x + (value - v0) / (v1 - v0) - 0.5;\n      }\n\n      if (y > 0 && y < dy && yt === y) {\n        v0 = values[(yt - 1) * dx + xt];\n        point[1] = y + (value - v0) / (v1 - v0) - 0.5;\n      }\n    });\n  }\n\n  contours.contour = contour;\n\n  contours.size = function (_) {\n    if (!arguments.length) return [dx, dy];\n\n    var _0 = Math.floor(_[0]),\n        _1 = Math.floor(_[1]);\n\n    if (!(_0 >= 0 && _1 >= 0)) Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('invalid size');\n    return dx = _0, dy = _1, contours;\n  };\n\n  contours.smooth = function (_) {\n    return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;\n  };\n\n  return contours;\n}\n\nfunction area(ring) {\n  var i = 0,\n      n = ring.length,\n      area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n\n  while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n\n  return area;\n}\n\nfunction contains(ring, hole) {\n  var i = -1,\n      n = hole.length,\n      c;\n\n  while (++i < n) if (c = ringContains(ring, hole[i])) return c;\n\n  return 0;\n}\n\nfunction ringContains(ring, point) {\n  var x = point[0],\n      y = point[1],\n      contains = -1;\n\n  for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n    var pi = ring[i],\n        xi = pi[0],\n        yi = pi[1],\n        pj = ring[j],\n        xj = pj[0],\n        yj = pj[1];\n    if (segmentContains(pi, pj, point)) return 0;\n    if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = -contains;\n  }\n\n  return contains;\n}\n\nfunction segmentContains(a, b, c) {\n  var i;\n  return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);\n}\n\nfunction collinear(a, b, c) {\n  return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);\n}\n\nfunction within(p, q, r) {\n  return p <= q && q <= r || r <= q && q <= p;\n}\n\nfunction quantize (k, nice, zero) {\n  return function (values) {\n    var ex = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"extent\"])(values),\n        start = zero ? Math.min(ex[0], 0) : ex[0],\n        stop = ex[1],\n        span = stop - start,\n        step = nice ? Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"tickStep\"])(start, stop, k) : span / (k + 1);\n    return Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"range\"])(step, stop, step);\n  };\n}\n\n/**\n * Generate isocontours (level sets) based on input raster grid data.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} [params.field] - The field with raster grid\n *   data. If unspecified, the tuple itself is interpreted as a raster grid.\n * @param {Array<number>} [params.thresholds] - Contour threshold array. If\n *   specified, the levels, nice, resolve, and zero parameters are ignored.\n * @param {number} [params.levels] - The desired number of contour levels.\n * @param {boolean} [params.nice] - Boolean flag indicating if the contour\n *   threshold values should be automatically aligned to \"nice\"\n *   human-friendly values. Setting this flag may cause the number of\n *   thresholds to deviate from the specified levels.\n * @param {string} [params.resolve] - The method for resolving thresholds\n *   across multiple input grids. If 'independent' (the default), threshold\n *   calculation will be performed separately for each grid. If 'shared', a\n *   single set of threshold values will be used for all input grids.\n * @param {boolean} [params.zero] - Boolean flag indicating if the contour\n *   threshold values should include zero.\n * @param {boolean} [params.smooth] - Boolean flag indicating if the contour\n *   polygons should be smoothed using linear interpolation. The default is\n *   true. The parameter is ignored when using density estimation.\n * @param {boolean} [params.scale] - Optional numerical value by which to\n *   scale the output isocontour coordinates. This parameter can be useful\n *   to scale the contours to match a desired output resolution.\n * @param {string} [params.as='contour'] - The output field in which to store\n *   the generated isocontour data (default 'contour').\n */\n\nfunction Isocontour(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nIsocontour.Definition = {\n  'type': 'Isocontour',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'thresholds',\n    'type': 'number',\n    'array': true\n  }, {\n    'name': 'levels',\n    'type': 'number'\n  }, {\n    'name': 'nice',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'resolve',\n    'type': 'enum',\n    'values': ['shared', 'independent'],\n    'default': 'independent'\n  }, {\n    'name': 'zero',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'smooth',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'scale',\n    'type': 'number',\n    'expr': true\n  }, {\n    'name': 'translate',\n    'type': 'number',\n    'array': true,\n    'expr': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'null': true,\n    'default': 'contour'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Isocontour, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value && !pulse.changed() && !_.modified()) {\n      return pulse.StopPropagation;\n    }\n\n    var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n        source = pulse.materialize(pulse.SOURCE).source,\n        field = _.field || vega_util__WEBPACK_IMPORTED_MODULE_1__[\"identity\"],\n        contour = contours().smooth(_.smooth !== false),\n        tz = _.thresholds || levels(source, field, _),\n        as = _.as === null ? null : _.as || 'contour',\n        values = [];\n    source.forEach(t => {\n      const grid = field(t); // generate contour paths in GeoJSON format\n\n      const paths = contour.size([grid.width, grid.height])(grid.values, Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(tz) ? tz : tz(grid.values)); // adjust contour path coordinates as needed\n\n      transformPaths(paths, grid, t, _); // ingest; copy source data properties to output\n\n      paths.forEach(p => {\n        values.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"rederive\"])(t, Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])(as != null ? {\n          [as]: p\n        } : p)));\n      });\n    });\n    if (this.value) out.rem = this.value;\n    this.value = out.source = out.add = values;\n    return out;\n  }\n\n});\n\nfunction levels(values, f, _) {\n  const q = quantize(_.levels || 10, _.nice, _.zero !== false);\n  return _.resolve !== 'shared' ? q : q(values.map(t => Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"max\"])(f(t).values)));\n}\n\nfunction transformPaths(paths, grid, datum, _) {\n  let s = _.scale || grid.scale,\n      t = _.translate || grid.translate;\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(s)) s = s(datum, _);\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(t)) t = t(datum, _);\n  if ((s === 1 || s == null) && !t) return;\n  const sx = (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isNumber\"])(s) ? s : s[0]) || 1,\n        sy = (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isNumber\"])(s) ? s : s[1]) || 1,\n        tx = t && t[0] || 0,\n        ty = t && t[1] || 0;\n  paths.forEach(transform(grid, sx, sy, tx, ty));\n}\n\nfunction transform(grid, sx, sy, tx, ty) {\n  const x1 = grid.x1 || 0,\n        y1 = grid.y1 || 0,\n        flip = sx * sy < 0;\n\n  function transformPolygon(coordinates) {\n    coordinates.forEach(transformRing);\n  }\n\n  function transformRing(coordinates) {\n    if (flip) coordinates.reverse(); // maintain winding order\n\n    coordinates.forEach(transformPoint);\n  }\n\n  function transformPoint(coordinates) {\n    coordinates[0] = (coordinates[0] - x1) * sx + tx;\n    coordinates[1] = (coordinates[1] - y1) * sy + ty;\n  }\n\n  return function (geometry) {\n    geometry.coordinates.forEach(transformPolygon);\n    return geometry;\n  };\n}\n\nfunction radius(bw, data, f) {\n  const v = bw >= 0 ? bw : Object(vega_statistics__WEBPACK_IMPORTED_MODULE_3__[\"bandwidthNRD\"])(data, f);\n  return Math.round((Math.sqrt(4 * v * v + 1) - 1) / 2);\n}\n\nfunction number(_) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(_) ? _ : Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"constant\"])(+_);\n} // Implementation adapted from d3/d3-contour. Thanks!\n\n\nfunction density2D () {\n  var x = d => d[0],\n      y = d => d[1],\n      weight = vega_util__WEBPACK_IMPORTED_MODULE_1__[\"one\"],\n      bandwidth = [-1, -1],\n      dx = 960,\n      dy = 500,\n      k = 2; // log2(cellSize)\n\n\n  function density(data, counts) {\n    const rx = radius(bandwidth[0], data, x) >> k,\n          // blur x-radius\n    ry = radius(bandwidth[1], data, y) >> k,\n          // blur y-radius\n    ox = rx ? rx + 2 : 0,\n          // x-offset padding for blur\n    oy = ry ? ry + 2 : 0,\n          // y-offset padding for blur\n    n = 2 * ox + (dx >> k),\n          // grid width\n    m = 2 * oy + (dy >> k),\n          // grid height\n    values0 = new Float32Array(n * m),\n          values1 = new Float32Array(n * m);\n    let values = values0;\n    data.forEach(d => {\n      const xi = ox + (+x(d) >> k),\n            yi = oy + (+y(d) >> k);\n\n      if (xi >= 0 && xi < n && yi >= 0 && yi < m) {\n        values0[xi + yi * n] += +weight(d);\n      }\n    });\n\n    if (rx > 0 && ry > 0) {\n      blurX(n, m, values0, values1, rx);\n      blurY(n, m, values1, values0, ry);\n      blurX(n, m, values0, values1, rx);\n      blurY(n, m, values1, values0, ry);\n      blurX(n, m, values0, values1, rx);\n      blurY(n, m, values1, values0, ry);\n    } else if (rx > 0) {\n      blurX(n, m, values0, values1, rx);\n      blurX(n, m, values1, values0, rx);\n      blurX(n, m, values0, values1, rx);\n      values = values1;\n    } else if (ry > 0) {\n      blurY(n, m, values0, values1, ry);\n      blurY(n, m, values1, values0, ry);\n      blurY(n, m, values0, values1, ry);\n      values = values1;\n    } // scale density estimates\n    // density in points per square pixel or probability density\n\n\n    const s = counts ? Math.pow(2, -2 * k) : 1 / Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"sum\"])(values);\n\n    for (let i = 0, sz = n * m; i < sz; ++i) values[i] *= s;\n\n    return {\n      values: values,\n      scale: 1 << k,\n      width: n,\n      height: m,\n      x1: ox,\n      y1: oy,\n      x2: ox + (dx >> k),\n      y2: oy + (dy >> k)\n    };\n  }\n\n  density.x = function (_) {\n    return arguments.length ? (x = number(_), density) : x;\n  };\n\n  density.y = function (_) {\n    return arguments.length ? (y = number(_), density) : y;\n  };\n\n  density.weight = function (_) {\n    return arguments.length ? (weight = number(_), density) : weight;\n  };\n\n  density.size = function (_) {\n    if (!arguments.length) return [dx, dy];\n\n    var _0 = +_[0],\n        _1 = +_[1];\n\n    if (!(_0 >= 0 && _1 >= 0)) Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('invalid size');\n    return dx = _0, dy = _1, density;\n  };\n\n  density.cellSize = function (_) {\n    if (!arguments.length) return 1 << k;\n    if (!((_ = +_) >= 1)) Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('invalid cell size');\n    k = Math.floor(Math.log(_) / Math.LN2);\n    return density;\n  };\n\n  density.bandwidth = function (_) {\n    if (!arguments.length) return bandwidth;\n    _ = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])(_);\n    if (_.length === 1) _ = [+_[0], +_[0]];\n    if (_.length !== 2) Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('invalid bandwidth');\n    return bandwidth = _, density;\n  };\n\n  return density;\n}\n\nfunction blurX(n, m, source, target, r) {\n  const w = (r << 1) + 1;\n\n  for (let j = 0; j < m; ++j) {\n    for (let i = 0, sr = 0; i < n + r; ++i) {\n      if (i < n) {\n        sr += source[i + j * n];\n      }\n\n      if (i >= r) {\n        if (i >= w) {\n          sr -= source[i - w + j * n];\n        }\n\n        target[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);\n      }\n    }\n  }\n}\n\nfunction blurY(n, m, source, target, r) {\n  const w = (r << 1) + 1;\n\n  for (let i = 0; i < n; ++i) {\n    for (let j = 0, sr = 0; j < m + r; ++j) {\n      if (j < m) {\n        sr += source[i + j * n];\n      }\n\n      if (j >= r) {\n        if (j >= w) {\n          sr -= source[i + (j - w) * n];\n        }\n\n        target[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);\n      }\n    }\n  }\n}\n\n/**\n * Perform 2D kernel-density estimation of point data.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<number>} params.size - The [width, height] extent (in\n *   units of input pixels) over which to perform density estimation.\n * @param {function(object): number} params.x - The x-coordinate accessor.\n * @param {function(object): number} params.y - The y-coordinate accessor.\n * @param {function(object): number} [params.weight] - The weight accessor.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors\n *   to groupby.\n * @param {number} [params.cellSize] - Contour density calculation cell size.\n *   This parameter determines the level of spatial approximation. For example,\n *   the default value of 4 maps to 2x reductions in both x- and y- dimensions.\n *   A value of 1 will result in an output raster grid whose dimensions exactly\n *   matches the size parameter.\n * @param {Array<number>} [params.bandwidth] - The KDE kernel bandwidths,\n *   in pixels. The input can be a two-element array specifying separate\n *   x and y bandwidths, or a single-element array specifying both. If the\n *   bandwidth is unspecified or less than zero, the bandwidth will be\n *   automatically determined.\n * @param {boolean} [params.counts=false] - A boolean flag indicating if the\n *   output values should be probability estimates (false, default) or\n *   smoothed counts (true).\n * @param {string} [params.as='grid'] - The output field in which to store\n *   the generated raster grid (default 'grid').\n */\n\nfunction KDE2D(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nKDE2D.Definition = {\n  'type': 'KDE2D',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2,\n    'required': true\n  }, {\n    'name': 'x',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'y',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'weight',\n    'type': 'field'\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'cellSize',\n    'type': 'number'\n  }, {\n    'name': 'bandwidth',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'counts',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'grid'\n  }]\n};\nconst PARAMS = ['x', 'y', 'weight', 'size', 'cellSize', 'bandwidth'];\nfunction params(obj, _) {\n  PARAMS.forEach(param => _[param] != null ? obj[param](_[param]) : 0);\n  return obj;\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(KDE2D, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value && !pulse.changed() && !_.modified()) return pulse.StopPropagation;\n    var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n        source = pulse.materialize(pulse.SOURCE).source,\n        groups = partition(source, _.groupby),\n        names = (_.groupby || []).map(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"accessorName\"]),\n        kde = params(density2D(), _),\n        as = _.as || 'grid',\n        values = [];\n\n    function set(t, vals) {\n      for (let i = 0; i < names.length; ++i) t[names[i]] = vals[i];\n\n      return t;\n    } // generate density raster grids\n\n\n    values = groups.map(g => Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])(set({\n      [as]: kde(g, _.counts)\n    }, g.dims)));\n    if (this.value) out.rem = this.value;\n    this.value = out.source = out.add = values;\n    return out;\n  }\n\n});\nfunction partition(data, groupby) {\n  var groups = [],\n      get = f => f(t),\n      map,\n      i,\n      n,\n      t,\n      k,\n      g; // partition data points into groups\n\n\n  if (groupby == null) {\n    groups.push(data);\n  } else {\n    for (map = {}, i = 0, n = data.length; i < n; ++i) {\n      t = data[i];\n      k = groupby.map(get);\n      g = map[k];\n\n      if (!g) {\n        map[k] = g = [];\n        g.dims = k;\n        groups.push(g);\n      }\n\n      g.push(t);\n    }\n  }\n\n  return groups;\n}\n\n/**\n * Generate contours based on kernel-density estimation of point data.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<number>} params.size - The dimensions [width, height] over which to compute contours.\n *  If the values parameter is provided, this must be the dimensions of the input data.\n *  If density estimation is performed, this is the output view dimensions in pixels.\n * @param {Array<number>} [params.values] - An array of numeric values representing an\n *  width x height grid of values over which to compute contours. If unspecified, this\n *  transform will instead attempt to compute contours for the kernel density estimate\n *  using values drawn from data tuples in the input pulse.\n * @param {function(object): number} [params.x] - The pixel x-coordinate accessor for density estimation.\n * @param {function(object): number} [params.y] - The pixel y-coordinate accessor for density estimation.\n * @param {function(object): number} [params.weight] - The data point weight accessor for density estimation.\n * @param {number} [params.cellSize] - Contour density calculation cell size.\n * @param {number} [params.bandwidth] - Kernel density estimation bandwidth.\n * @param {Array<number>} [params.thresholds] - Contour threshold array. If\n *   this parameter is set, the count and nice parameters will be ignored.\n * @param {number} [params.count] - The desired number of contours.\n * @param {boolean} [params.nice] - Boolean flag indicating if the contour\n *   threshold values should be automatically aligned to \"nice\"\n *   human-friendly values. Setting this flag may cause the number of\n *   thresholds to deviate from the specified count.\n * @param {boolean} [params.smooth] - Boolean flag indicating if the contour\n *   polygons should be smoothed using linear interpolation. The default is\n *   true. The parameter is ignored when using density estimation.\n */\n\nfunction Contour(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nContour.Definition = {\n  'type': 'Contour',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2,\n    'required': true\n  }, {\n    'name': 'values',\n    'type': 'number',\n    'array': true\n  }, {\n    'name': 'x',\n    'type': 'field'\n  }, {\n    'name': 'y',\n    'type': 'field'\n  }, {\n    'name': 'weight',\n    'type': 'field'\n  }, {\n    'name': 'cellSize',\n    'type': 'number'\n  }, {\n    'name': 'bandwidth',\n    'type': 'number'\n  }, {\n    'name': 'count',\n    'type': 'number'\n  }, {\n    'name': 'nice',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'thresholds',\n    'type': 'number',\n    'array': true\n  }, {\n    'name': 'smooth',\n    'type': 'boolean',\n    'default': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Contour, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value && !pulse.changed() && !_.modified()) {\n      return pulse.StopPropagation;\n    }\n\n    var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n        contour = contours().smooth(_.smooth !== false),\n        values = _.values,\n        thresh = _.thresholds || quantize(_.count || 10, _.nice, !!values),\n        size = _.size,\n        grid,\n        post;\n\n    if (!values) {\n      values = pulse.materialize(pulse.SOURCE).source;\n      grid = params(density2D(), _)(values, true);\n      post = transform(grid, grid.scale || 1, grid.scale || 1, 0, 0);\n      size = [grid.width, grid.height];\n      values = grid.values;\n    }\n\n    thresh = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(thresh) ? thresh : thresh(values);\n    values = contour.size(size)(values, thresh);\n    if (post) values.forEach(post);\n    if (this.value) out.rem = this.value;\n    this.value = out.source = out.add = (values || []).map(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"]);\n    return out;\n  }\n\n});\n\nconst Feature = 'Feature';\nconst FeatureCollection = 'FeatureCollection';\nconst MultiPoint = 'MultiPoint';\n\n/**\n * Consolidate an array of [longitude, latitude] points or GeoJSON features\n * into a combined GeoJSON object. This transform is particularly useful for\n * combining geo data for a Projection's fit argument. The resulting GeoJSON\n * data is available as this transform's value. Input pulses are unchanged.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *>} [params.fields] - A two-element array\n *   of field accessors for the longitude and latitude values.\n * @param {function(object): *} params.geojson - A field accessor for\n *   retrieving GeoJSON feature data.\n */\n\nfunction GeoJSON(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nGeoJSON.Definition = {\n  'type': 'GeoJSON',\n  'metadata': {},\n  'params': [{\n    'name': 'fields',\n    'type': 'field',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'geojson',\n    'type': 'field'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(GeoJSON, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var features = this._features,\n        points = this._points,\n        fields = _.fields,\n        lon = fields && fields[0],\n        lat = fields && fields[1],\n        geojson = _.geojson || !fields && vega_util__WEBPACK_IMPORTED_MODULE_1__[\"identity\"],\n        flag = pulse.ADD,\n        mod;\n    mod = _.modified() || pulse.changed(pulse.REM) || pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"accessorFields\"])(geojson)) || lon && pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"accessorFields\"])(lon)) || lat && pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"accessorFields\"])(lat));\n\n    if (!this.value || mod) {\n      flag = pulse.SOURCE;\n      this._features = features = [];\n      this._points = points = [];\n    }\n\n    if (geojson) {\n      pulse.visit(flag, t => features.push(geojson(t)));\n    }\n\n    if (lon && lat) {\n      pulse.visit(flag, t => {\n        var x = lon(t),\n            y = lat(t);\n\n        if (x != null && y != null && (x = +x) === x && (y = +y) === y) {\n          points.push([x, y]);\n        }\n      });\n      features = features.concat({\n        type: Feature,\n        geometry: {\n          type: MultiPoint,\n          coordinates: points\n        }\n      });\n    }\n\n    this.value = {\n      type: FeatureCollection,\n      features: features\n    };\n  }\n\n});\n\n/**\n * Map GeoJSON data to an SVG path string.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(number, number): *} params.projection - The cartographic\n *   projection to apply.\n * @param {function(object): *} [params.field] - The field with GeoJSON data,\n *   or null if the tuple itself is a GeoJSON feature.\n * @param {string} [params.as='path'] - The output field in which to store\n *   the generated path data (default 'path').\n */\n\nfunction GeoPath(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nGeoPath.Definition = {\n  'type': 'GeoPath',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'projection',\n    'type': 'projection'\n  }, {\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'pointRadius',\n    'type': 'number',\n    'expr': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'path'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(GeoPath, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var out = pulse.fork(pulse.ALL),\n        path = this.value,\n        field = _.field || vega_util__WEBPACK_IMPORTED_MODULE_1__[\"identity\"],\n        as = _.as || 'path',\n        flag = out.SOURCE;\n\n    if (!path || _.modified()) {\n      // parameters updated, reset and reflow\n      this.value = path = Object(vega_projection__WEBPACK_IMPORTED_MODULE_4__[\"getProjectionPath\"])(_.projection);\n      out.materialize().reflow();\n    } else {\n      flag = field === vega_util__WEBPACK_IMPORTED_MODULE_1__[\"identity\"] || pulse.modified(field.fields) ? out.ADD_MOD : out.ADD;\n    }\n\n    const prev = initPath(path, _.pointRadius);\n    out.visit(flag, t => t[as] = path(field(t)));\n    path.pointRadius(prev);\n    return out.modifies(as);\n  }\n\n});\n\nfunction initPath(path, pointRadius) {\n  const prev = path.pointRadius();\n  path.context(null);\n\n  if (pointRadius != null) {\n    path.pointRadius(pointRadius);\n  }\n\n  return prev;\n}\n\n/**\n * Geo-code a longitude/latitude point to an x/y coordinate.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(number, number): *} params.projection - The cartographic\n *   projection to apply.\n * @param {Array<function(object): *>} params.fields - A two-element array of\n *   field accessors for the longitude and latitude values.\n * @param {Array<string>} [params.as] - A two-element array of field names\n *   under which to store the result. Defaults to ['x','y'].\n */\n\nfunction GeoPoint(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nGeoPoint.Definition = {\n  'type': 'GeoPoint',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'projection',\n    'type': 'projection',\n    'required': true\n  }, {\n    'name': 'fields',\n    'type': 'field',\n    'array': true,\n    'required': true,\n    'length': 2\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': ['x', 'y']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(GeoPoint, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var proj = _.projection,\n        lon = _.fields[0],\n        lat = _.fields[1],\n        as = _.as || ['x', 'y'],\n        x = as[0],\n        y = as[1],\n        mod;\n\n    function set(t) {\n      const xy = proj([lon(t), lat(t)]);\n\n      if (xy) {\n        t[x] = xy[0];\n        t[y] = xy[1];\n      } else {\n        t[x] = undefined;\n        t[y] = undefined;\n      }\n    }\n\n    if (_.modified()) {\n      // parameters updated, reflow\n      pulse = pulse.materialize().reflow(true).visit(pulse.SOURCE, set);\n    } else {\n      mod = pulse.modified(lon.fields) || pulse.modified(lat.fields);\n      pulse.visit(mod ? pulse.ADD_MOD : pulse.ADD, set);\n    }\n\n    return pulse.modifies(as);\n  }\n\n});\n\n/**\n * Annotate items with a geopath shape generator.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(number, number): *} params.projection - The cartographic\n *   projection to apply.\n * @param {function(object): *} [params.field] - The field with GeoJSON data,\n *   or null if the tuple itself is a GeoJSON feature.\n * @param {string} [params.as='shape'] - The output field in which to store\n *   the generated path data (default 'shape').\n */\n\nfunction GeoShape(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nGeoShape.Definition = {\n  'type': 'GeoShape',\n  'metadata': {\n    'modifies': true,\n    'nomod': true\n  },\n  'params': [{\n    'name': 'projection',\n    'type': 'projection'\n  }, {\n    'name': 'field',\n    'type': 'field',\n    'default': 'datum'\n  }, {\n    'name': 'pointRadius',\n    'type': 'number',\n    'expr': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'shape'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(GeoShape, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var out = pulse.fork(pulse.ALL),\n        shape = this.value,\n        as = _.as || 'shape',\n        flag = out.ADD;\n\n    if (!shape || _.modified()) {\n      // parameters updated, reset and reflow\n      this.value = shape = shapeGenerator(Object(vega_projection__WEBPACK_IMPORTED_MODULE_4__[\"getProjectionPath\"])(_.projection), _.field || Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"field\"])('datum'), _.pointRadius);\n      out.materialize().reflow();\n      flag = out.SOURCE;\n    }\n\n    out.visit(flag, t => t[as] = shape);\n    return out.modifies(as);\n  }\n\n});\n\nfunction shapeGenerator(path, field, pointRadius) {\n  const shape = pointRadius == null ? _ => path(field(_)) : _ => {\n    var prev = path.pointRadius(),\n        value = path.pointRadius(pointRadius)(field(_));\n    path.pointRadius(prev);\n    return value;\n  };\n\n  shape.context = _ => {\n    path.context(_);\n    return shape;\n  };\n\n  return shape;\n}\n\n/**\n * GeoJSON feature generator for creating graticules.\n * @constructor\n */\n\nfunction Graticule(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, [], params);\n  this.generator = Object(d3_geo__WEBPACK_IMPORTED_MODULE_5__[\"geoGraticule\"])();\n}\nGraticule.Definition = {\n  'type': 'Graticule',\n  'metadata': {\n    'changes': true,\n    'generates': true\n  },\n  'params': [{\n    'name': 'extent',\n    'type': 'array',\n    'array': true,\n    'length': 2,\n    'content': {\n      'type': 'number',\n      'array': true,\n      'length': 2\n    }\n  }, {\n    'name': 'extentMajor',\n    'type': 'array',\n    'array': true,\n    'length': 2,\n    'content': {\n      'type': 'number',\n      'array': true,\n      'length': 2\n    }\n  }, {\n    'name': 'extentMinor',\n    'type': 'array',\n    'array': true,\n    'length': 2,\n    'content': {\n      'type': 'number',\n      'array': true,\n      'length': 2\n    }\n  }, {\n    'name': 'step',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'stepMajor',\n    'type': 'number',\n    'array': true,\n    'length': 2,\n    'default': [90, 360]\n  }, {\n    'name': 'stepMinor',\n    'type': 'number',\n    'array': true,\n    'length': 2,\n    'default': [10, 10]\n  }, {\n    'name': 'precision',\n    'type': 'number',\n    'default': 2.5\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Graticule, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    var src = this.value,\n        gen = this.generator,\n        t;\n\n    if (!src.length || _.modified()) {\n      for (const prop in _) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(gen[prop])) {\n          gen[prop](_[prop]);\n        }\n      }\n    }\n\n    t = gen();\n\n    if (src.length) {\n      pulse.mod.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"replace\"])(src[0], t));\n    } else {\n      pulse.add.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])(t));\n    }\n\n    src[0] = t;\n    return pulse;\n  }\n\n});\n\n/**\n * Render a heatmap image for input raster grid data.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} [params.field] - The field with raster grid\n *   data. If unspecified, the tuple itself is interpreted as a raster grid.\n * @param {string} [params.color] - A constant color value or function for\n *   individual pixel color. If a function, it will be invoked with an input\n *   object that includes $x, $y, $value, and $max fields for the grid.\n * @param {number} [params.opacity] - A constant opacity value or function for\n *   individual pixel opacity. If a function, it will be invoked with an input\n *   object that includes $x, $y, $value, and $max fields for the grid.\n * @param {string} [params.resolve] - The method for resolving maximum values\n *   across multiple input grids. If 'independent' (the default), maximum\n *   calculation will be performed separately for each grid. If 'shared',\n *   a single global maximum will be used for all input grids.\n * @param {string} [params.as='image'] - The output field in which to store\n *   the generated bitmap canvas images (default 'image').\n */\n\nfunction Heatmap(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nHeatmap.Definition = {\n  'type': 'heatmap',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'color',\n    'type': 'string',\n    'expr': true\n  }, {\n    'name': 'opacity',\n    'type': 'number',\n    'expr': true\n  }, {\n    'name': 'resolve',\n    'type': 'enum',\n    'values': ['shared', 'independent'],\n    'default': 'independent'\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'image'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Heatmap, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (!pulse.changed() && !_.modified()) {\n      return pulse.StopPropagation;\n    }\n\n    var source = pulse.materialize(pulse.SOURCE).source,\n        shared = _.resolve === 'shared',\n        field = _.field || vega_util__WEBPACK_IMPORTED_MODULE_1__[\"identity\"],\n        opacity = opacity_(_.opacity, _),\n        color = color_(_.color, _),\n        as = _.as || 'image',\n        obj = {\n      $x: 0,\n      $y: 0,\n      $value: 0,\n      $max: shared ? Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"max\"])(source.map(t => Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"max\"])(field(t).values))) : 0\n    };\n    source.forEach(t => {\n      const v = field(t); // build proxy data object\n\n      const o = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])({}, t, obj); // set maximum value if not globally shared\n\n      if (!shared) o.$max = Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"max\"])(v.values || []); // generate canvas image\n      // optimize color/opacity if not pixel-dependent\n\n      t[as] = toCanvas(v, o, color.dep ? color : Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"constant\"])(color(o)), opacity.dep ? opacity : Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"constant\"])(opacity(o)));\n    });\n    return pulse.reflow(true).modifies(as);\n  }\n\n}); // get image color function\n\nfunction color_(color, _) {\n  let f;\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(color)) {\n    f = obj => Object(d3_color__WEBPACK_IMPORTED_MODULE_6__[\"rgb\"])(color(obj, _));\n\n    f.dep = dependency(color);\n  } else {\n    // default to mid-grey\n    f = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"constant\"])(Object(d3_color__WEBPACK_IMPORTED_MODULE_6__[\"rgb\"])(color || '#888'));\n  }\n\n  return f;\n} // get image opacity function\n\n\nfunction opacity_(opacity, _) {\n  let f;\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(opacity)) {\n    f = obj => opacity(obj, _);\n\n    f.dep = dependency(opacity);\n  } else if (opacity) {\n    f = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"constant\"])(opacity);\n  } else {\n    // default to [0, max] opacity gradient\n    f = obj => obj.$value / obj.$max || 0;\n\n    f.dep = true;\n  }\n\n  return f;\n} // check if function depends on individual pixel data\n\n\nfunction dependency(f) {\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(f)) return false;\n  const set = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"toSet\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"accessorFields\"])(f));\n  return set.$x || set.$y || set.$value || set.$max;\n} // render raster grid to canvas\n\n\nfunction toCanvas(grid, obj, color, opacity) {\n  const n = grid.width,\n        m = grid.height,\n        x1 = grid.x1 || 0,\n        y1 = grid.y1 || 0,\n        x2 = grid.x2 || n,\n        y2 = grid.y2 || m,\n        val = grid.values,\n        value = val ? i => val[i] : vega_util__WEBPACK_IMPORTED_MODULE_1__[\"zero\"],\n        can = Object(vega_canvas__WEBPACK_IMPORTED_MODULE_7__[\"canvas\"])(x2 - x1, y2 - y1),\n        ctx = can.getContext('2d'),\n        img = ctx.getImageData(0, 0, x2 - x1, y2 - y1),\n        pix = img.data;\n\n  for (let j = y1, k = 0; j < y2; ++j) {\n    obj.$y = j - y1;\n\n    for (let i = x1, r = j * n; i < x2; ++i, k += 4) {\n      obj.$x = i - x1;\n      obj.$value = value(i + r);\n      const v = color(obj);\n      pix[k + 0] = v.r;\n      pix[k + 1] = v.g;\n      pix[k + 2] = v.b;\n      pix[k + 3] = ~~(255 * opacity(obj));\n    }\n  }\n\n  ctx.putImageData(img, 0, 0);\n  return can;\n}\n\n/**\n * Maintains a cartographic projection.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\nfunction Projection(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n  this.modified(true); // always treat as modified\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Projection, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    let proj = this.value;\n\n    if (!proj || _.modified('type')) {\n      this.value = proj = create(_.type);\n      vega_projection__WEBPACK_IMPORTED_MODULE_4__[\"projectionProperties\"].forEach(prop => {\n        if (_[prop] != null) set(proj, prop, _[prop]);\n      });\n    } else {\n      vega_projection__WEBPACK_IMPORTED_MODULE_4__[\"projectionProperties\"].forEach(prop => {\n        if (_.modified(prop)) set(proj, prop, _[prop]);\n      });\n    }\n\n    if (_.pointRadius != null) proj.path.pointRadius(_.pointRadius);\n    if (_.fit) fit(proj, _);\n    return pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n  }\n\n});\n\nfunction fit(proj, _) {\n  const data = collectGeoJSON(_.fit);\n  _.extent ? proj.fitExtent(_.extent, data) : _.size ? proj.fitSize(_.size, data) : 0;\n}\n\nfunction create(type) {\n  const constructor = Object(vega_projection__WEBPACK_IMPORTED_MODULE_4__[\"projection\"])((type || 'mercator').toLowerCase());\n  if (!constructor) Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('Unrecognized projection type: ' + type);\n  return constructor();\n}\n\nfunction set(proj, key, value) {\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"])(proj[key])) proj[key](value);\n}\n\nfunction collectGeoJSON(data) {\n  data = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])(data);\n  return data.length === 1 ? data[0] : {\n    type: FeatureCollection,\n    features: data.reduce((a, f) => a.concat(featurize(f)), [])\n  };\n}\n\nfunction featurize(f) {\n  return f.type === FeatureCollection ? f.features : Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])(f).filter(d => d != null).map(d => d.type === Feature ? d : {\n    type: Feature,\n    geometry: d\n  });\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-geo/build/vega-geo.module.js?");

/***/ }),

/***/ "./node_modules/vega-hierarchy/build/vega-hierarchy.module.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-hierarchy/build/vega-hierarchy.module.js ***!
  \********************************************************************/
/*! exports provided: nest, pack, partition, stratify, tree, treelinks, treemap */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nest\", function() { return Nest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pack\", function() { return Pack; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partition\", function() { return Partition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stratify\", function() { return Stratify; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tree\", function() { return Tree; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"treelinks\", function() { return TreeLinks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"treemap\", function() { return Treemap; });\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-hierarchy */ \"./node_modules/d3-hierarchy/src/index.js\");\n\n\n\n\n// Build lookup table mapping tuple keys to tree node instances\nfunction lookup (tree, key, filter) {\n  const map = {};\n  tree.each(node => {\n    const t = node.data;\n    if (filter(t)) map[key(t)] = node;\n  });\n  tree.lookup = map;\n  return tree;\n}\n\n/**\n * Nest tuples into a tree structure, grouped by key values.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *>} params.keys - The key fields to nest by, in order.\n * @param {boolean} [params.generate=false] - A boolean flag indicating if\n *   non-leaf nodes generated by this transform should be included in the\n *   output. The default (false) includes only the input data (leaf nodes)\n *   in the data stream.\n */\n\nfunction Nest(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nNest.Definition = {\n  'type': 'Nest',\n  'metadata': {\n    'treesource': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'keys',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'generate',\n    'type': 'boolean'\n  }]\n};\n\nconst children = n => n.values;\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Nest, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (!pulse.source) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('Nest transform requires an upstream data source.');\n    }\n\n    var gen = _.generate,\n        mod = _.modified(),\n        out = pulse.clone(),\n        tree = this.value;\n\n    if (!tree || mod || pulse.changed()) {\n      // collect nodes to remove\n      if (tree) {\n        tree.each(node => {\n          if (node.children && Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"isTuple\"])(node.data)) {\n            out.rem.push(node.data);\n          }\n        });\n      } // generate new tree structure\n\n\n      this.value = tree = Object(d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"hierarchy\"])({\n        values: Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])(_.keys).reduce((n, k) => {\n          n.key(k);\n          return n;\n        }, nest()).entries(out.source)\n      }, children); // collect nodes to add\n\n      if (gen) {\n        tree.each(node => {\n          if (node.children) {\n            node = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])(node.data);\n            out.add.push(node);\n            out.source.push(node);\n          }\n        });\n      } // build lookup table\n\n\n      lookup(tree, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"], vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"]);\n    }\n\n    out.source.root = tree;\n    return out;\n  }\n\n});\n\nfunction nest() {\n  const keys = [],\n        nest = {\n    entries: array => entries(apply(array, 0), 0),\n    key: d => (keys.push(d), nest)\n  };\n\n  function apply(array, depth) {\n    if (depth >= keys.length) {\n      return array;\n    }\n\n    const n = array.length,\n          key = keys[depth++],\n          valuesByKey = {},\n          result = {};\n    let i = -1,\n        keyValue,\n        value,\n        values;\n\n    while (++i < n) {\n      keyValue = key(value = array[i]) + '';\n\n      if (values = valuesByKey[keyValue]) {\n        values.push(value);\n      } else {\n        valuesByKey[keyValue] = [value];\n      }\n    }\n\n    for (keyValue in valuesByKey) {\n      result[keyValue] = apply(valuesByKey[keyValue], depth);\n    }\n\n    return result;\n  }\n\n  function entries(map, depth) {\n    if (++depth > keys.length) return map;\n    const array = [];\n\n    for (const key in map) {\n      array.push({\n        key,\n        values: entries(map[key], depth)\n      });\n    }\n\n    return array;\n  }\n\n  return nest;\n}\n\n/**\n * Abstract class for tree layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\nfunction HierarchyLayout(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\n\nconst defaultSeparation = (a, b) => a.parent === b.parent ? 1 : 2;\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(HierarchyLayout, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (!pulse.source || !pulse.source.root) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])(this.constructor.name + ' transform requires a backing tree data source.');\n    }\n\n    const layout = this.layout(_.method),\n          fields = this.fields,\n          root = pulse.source.root,\n          as = _.as || fields;\n    if (_.field) root.sum(_.field);else root.count();\n    if (_.sort) root.sort(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"stableCompare\"])(_.sort, d => d.data));\n    setParams(layout, this.params, _);\n\n    if (layout.separation) {\n      layout.separation(_.separation !== false ? defaultSeparation : vega_util__WEBPACK_IMPORTED_MODULE_1__[\"one\"]);\n    }\n\n    try {\n      this.value = layout(root);\n    } catch (err) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])(err);\n    }\n\n    root.each(node => setFields(node, fields, as));\n    return pulse.reflow(_.modified()).modifies(as).modifies('leaf');\n  }\n\n});\n\nfunction setParams(layout, params, _) {\n  for (let p, i = 0, n = params.length; i < n; ++i) {\n    p = params[i];\n    if (p in _) layout[p](_[p]);\n  }\n}\n\nfunction setFields(node, fields, as) {\n  const t = node.data,\n        n = fields.length - 1;\n\n  for (let i = 0; i < n; ++i) {\n    t[as[i]] = node[fields[i]];\n  }\n\n  t[as[n]] = node.children ? node.children.length : 0;\n}\n\nconst Output = ['x', 'y', 'r', 'depth', 'children'];\n/**\n * Packed circle tree layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to size nodes.\n */\n\nfunction Pack(params) {\n  HierarchyLayout.call(this, params);\n}\nPack.Definition = {\n  'type': 'Pack',\n  'metadata': {\n    'tree': true,\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'sort',\n    'type': 'compare'\n  }, {\n    'name': 'padding',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'radius',\n    'type': 'field',\n    'default': null\n  }, {\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': Output.length,\n    'default': Output\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Pack, HierarchyLayout, {\n  layout: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"pack\"],\n  params: ['radius', 'size', 'padding'],\n  fields: Output\n});\n\nconst Output$1 = ['x0', 'y0', 'x1', 'y1', 'depth', 'children'];\n/**\n * Partition tree layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to size nodes.\n */\n\nfunction Partition(params) {\n  HierarchyLayout.call(this, params);\n}\nPartition.Definition = {\n  'type': 'Partition',\n  'metadata': {\n    'tree': true,\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'sort',\n    'type': 'compare'\n  }, {\n    'name': 'padding',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'round',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': Output$1.length,\n    'default': Output$1\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Partition, HierarchyLayout, {\n  layout: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"partition\"],\n  params: ['size', 'round', 'padding'],\n  fields: Output$1\n});\n\n/**\n * Stratify a collection of tuples into a tree structure based on\n * id and parent id fields.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.key - Unique key field for each tuple.\n * @param {function(object): *} params.parentKey - Field with key for parent tuple.\n */\n\nfunction Stratify(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nStratify.Definition = {\n  'type': 'Stratify',\n  'metadata': {\n    'treesource': true\n  },\n  'params': [{\n    'name': 'key',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'parentKey',\n    'type': 'field',\n    'required': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Stratify, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    if (!pulse.source) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('Stratify transform requires an upstream data source.');\n    }\n\n    let tree = this.value;\n\n    const mod = _.modified(),\n          out = pulse.fork(pulse.ALL).materialize(pulse.SOURCE),\n          run = !tree || mod || pulse.changed(pulse.ADD_REM) || pulse.modified(_.key.fields) || pulse.modified(_.parentKey.fields); // prevent upstream source pollution\n\n\n    out.source = out.source.slice();\n\n    if (run) {\n      tree = out.source.length ? lookup(Object(d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"stratify\"])().id(_.key).parentId(_.parentKey)(out.source), _.key, vega_util__WEBPACK_IMPORTED_MODULE_1__[\"truthy\"]) : lookup(Object(d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"stratify\"])()([{}]), _.key, _.key);\n    }\n\n    out.source.root = this.value = tree;\n    return out;\n  }\n\n});\n\nconst Layouts = {\n  tidy: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"tree\"],\n  cluster: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"cluster\"]\n};\nconst Output$2 = ['x', 'y', 'depth', 'children'];\n/**\n * Tree layout. Depending on the method parameter, performs either\n * Reingold-Tilford 'tidy' layout or dendrogram 'cluster' layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\nfunction Tree(params) {\n  HierarchyLayout.call(this, params);\n}\nTree.Definition = {\n  'type': 'Tree',\n  'metadata': {\n    'tree': true,\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'sort',\n    'type': 'compare'\n  }, {\n    'name': 'method',\n    'type': 'enum',\n    'default': 'tidy',\n    'values': ['tidy', 'cluster']\n  }, {\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'nodeSize',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'separation',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': Output$2.length,\n    'default': Output$2\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Tree, HierarchyLayout, {\n  /**\n   * Tree layout generator. Supports both 'tidy' and 'cluster' layouts.\n   */\n  layout(method) {\n    const m = method || 'tidy';\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"hasOwnProperty\"])(Layouts, m)) return Layouts[m]();else Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('Unrecognized Tree layout method: ' + m);\n  },\n\n  params: ['size', 'nodeSize'],\n  fields: Output$2\n});\n\n/**\n * Generate tuples representing links between tree nodes.\n * The resulting tuples will contain 'source' and 'target' fields,\n * which point to parent and child node tuples, respectively.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\nfunction TreeLinks(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, [], params);\n}\nTreeLinks.Definition = {\n  'type': 'TreeLinks',\n  'metadata': {\n    'tree': true,\n    'generates': true,\n    'changes': true\n  },\n  'params': []\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(TreeLinks, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const links = this.value,\n          tree = pulse.source && pulse.source.root,\n          out = pulse.fork(pulse.NO_SOURCE),\n          lut = {};\n    if (!tree) Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('TreeLinks transform requires a tree data source.');\n\n    if (pulse.changed(pulse.ADD_REM)) {\n      // remove previous links\n      out.rem = links; // build lookup table of valid tuples\n\n      pulse.visit(pulse.SOURCE, t => lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"])(t)] = 1); // generate links for all edges incident on valid tuples\n\n      tree.each(node => {\n        const t = node.data,\n              p = node.parent && node.parent.data;\n\n        if (p && lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"])(t)] && lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"])(p)]) {\n          out.add.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"ingest\"])({\n            source: p,\n            target: t\n          }));\n        }\n      });\n      this.value = out.add;\n    } else if (pulse.changed(pulse.MOD)) {\n      // build lookup table of modified tuples\n      pulse.visit(pulse.MOD, t => lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"])(t)] = 1); // gather links incident on modified tuples\n\n      links.forEach(link => {\n        if (lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"])(link.source)] || lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"tupleid\"])(link.target)]) {\n          out.mod.push(link);\n        }\n      });\n    }\n\n    return out;\n  }\n\n});\n\nconst Tiles = {\n  binary: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemapBinary\"],\n  dice: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemapDice\"],\n  slice: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemapSlice\"],\n  slicedice: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemapSliceDice\"],\n  squarify: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemapSquarify\"],\n  resquarify: d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemapResquarify\"]\n};\nconst Output$3 = ['x0', 'y0', 'x1', 'y1', 'depth', 'children'];\n/**\n * Treemap layout.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to size nodes.\n */\n\nfunction Treemap(params) {\n  HierarchyLayout.call(this, params);\n}\nTreemap.Definition = {\n  'type': 'Treemap',\n  'metadata': {\n    'tree': true,\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field'\n  }, {\n    'name': 'sort',\n    'type': 'compare'\n  }, {\n    'name': 'method',\n    'type': 'enum',\n    'default': 'squarify',\n    'values': ['squarify', 'resquarify', 'binary', 'dice', 'slice', 'slicedice']\n  }, {\n    'name': 'padding',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'paddingInner',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'paddingOuter',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'paddingTop',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'paddingRight',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'paddingBottom',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'paddingLeft',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'ratio',\n    'type': 'number',\n    'default': 1.618033988749895\n  }, {\n    'name': 'round',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': Output$3.length,\n    'default': Output$3\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Treemap, HierarchyLayout, {\n  /**\n   * Treemap layout generator. Adds 'method' and 'ratio' parameters\n   * to configure the underlying tile method.\n   */\n  layout() {\n    const x = Object(d3_hierarchy__WEBPACK_IMPORTED_MODULE_2__[\"treemap\"])();\n\n    x.ratio = _ => {\n      const t = x.tile();\n      if (t.ratio) x.tile(t.ratio(_));\n    };\n\n    x.method = _ => {\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"hasOwnProperty\"])(Tiles, _)) x.tile(Tiles[_]);else Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"error\"])('Unrecognized Treemap layout method: ' + _);\n    };\n\n    return x;\n  },\n\n  params: ['method', 'ratio', 'size', 'round', 'padding', 'paddingInner', 'paddingOuter', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n  fields: Output$3\n});\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-hierarchy/build/vega-hierarchy.module.js?");

/***/ }),

/***/ "./node_modules/vega-label/build/vega-label.module.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-label/build/vega-label.module.js ***!
  \************************************************************/
/*! exports provided: label */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"label\", function() { return Label; });\n/* harmony import */ var vega_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-canvas */ \"./node_modules/vega-canvas/index.browser.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-scenegraph */ \"./node_modules/vega-scenegraph/build/vega-scenegraph.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\n\nconst ALPHA_MASK = 0xff000000; // alpha value equivalent to opacity 0.0625\n\nconst INSIDE_OPACITY_IN_ALPHA = 0x10000000;\nconst INSIDE_OPACITY = 0.0625;\nfunction baseBitmaps($, data) {\n  const bitmap = $.bitmap(); // when there is no base mark but data points are to be avoided\n\n  (data || []).forEach(d => bitmap.set($(d.boundary[0]), $(d.boundary[3])));\n  return [bitmap, undefined];\n}\nfunction markBitmaps($, avoidMarks, labelInside, isGroupArea) {\n  // create canvas\n  const width = $.width,\n        height = $.height,\n        border = labelInside || isGroupArea,\n        context = Object(vega_canvas__WEBPACK_IMPORTED_MODULE_0__[\"canvas\"])(width, height).getContext('2d'); // render all marks to be avoided into canvas\n\n  avoidMarks.forEach(items => draw(context, items, border)); // get canvas buffer, create bitmaps\n\n  const buffer = new Uint32Array(context.getImageData(0, 0, width, height).data.buffer),\n        layer1 = $.bitmap(),\n        layer2 = border && $.bitmap(); // populate bitmap layers\n\n  let x, y, u, v, alpha;\n\n  for (y = 0; y < height; ++y) {\n    for (x = 0; x < width; ++x) {\n      alpha = buffer[y * width + x] & ALPHA_MASK;\n\n      if (alpha) {\n        u = $(x);\n        v = $(y);\n        if (!isGroupArea) layer1.set(u, v); // update interior bitmap\n\n        if (border && alpha ^ INSIDE_OPACITY_IN_ALPHA) layer2.set(u, v); // update border bitmap\n      }\n    }\n  }\n\n  return [layer1, layer2];\n}\n\nfunction draw(context, items, interior) {\n  if (!items.length) return;\n  const type = items[0].mark.marktype;\n\n  if (type === 'group') {\n    items.forEach(group => {\n      group.items.forEach(mark => draw(context, mark.items, interior));\n    });\n  } else {\n    vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"Marks\"][type].draw(context, {\n      items: interior ? items.map(prepare) : items\n    });\n  }\n}\n/**\n * Prepare item before drawing into canvas (setting stroke and opacity)\n * @param {object} source item to be prepared\n * @returns prepared item\n */\n\n\nfunction prepare(source) {\n  const item = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"rederive\"])(source, {});\n\n  if (item.stroke) {\n    item.strokeOpacity = 1;\n  }\n\n  if (item.fill) {\n    item.fillOpacity = INSIDE_OPACITY;\n    item.stroke = '#000';\n    item.strokeOpacity = 1;\n    item.strokeWidth = 2;\n  }\n\n  return item;\n}\n\nconst DIV = 5,\n      // bit shift from x, y index to bit vector array index\nMOD = 31,\n      // bit mask for index lookup within a bit vector\nSIZE = 32,\n      // individual bit vector size\nRIGHT0 = new Uint32Array(SIZE + 1),\n      // left-anchored bit vectors, full -> 0\nRIGHT1 = new Uint32Array(SIZE + 1); // right-anchored bit vectors, 0 -> full\n\nRIGHT1[0] = 0;\nRIGHT0[0] = ~RIGHT1[0];\n\nfor (let i = 1; i <= SIZE; ++i) {\n  RIGHT1[i] = RIGHT1[i - 1] << 1 | 1;\n  RIGHT0[i] = ~RIGHT1[i];\n}\n\nfunction Bitmap (w, h) {\n  const array = new Uint32Array(~~((w * h + SIZE) / SIZE));\n\n  function _set(index, mask) {\n    array[index] |= mask;\n  }\n\n  function _clear(index, mask) {\n    array[index] &= mask;\n  }\n\n  return {\n    array: array,\n    get: (x, y) => {\n      const index = y * w + x;\n      return array[index >>> DIV] & 1 << (index & MOD);\n    },\n    set: (x, y) => {\n      const index = y * w + x;\n\n      _set(index >>> DIV, 1 << (index & MOD));\n    },\n    clear: (x, y) => {\n      const index = y * w + x;\n\n      _clear(index >>> DIV, ~(1 << (index & MOD)));\n    },\n    getRange: (x, y, x2, y2) => {\n      let r = y2,\n          start,\n          end,\n          indexStart,\n          indexEnd;\n\n      for (; r >= y; --r) {\n        start = r * w + x;\n        end = r * w + x2;\n        indexStart = start >>> DIV;\n        indexEnd = end >>> DIV;\n\n        if (indexStart === indexEnd) {\n          if (array[indexStart] & RIGHT0[start & MOD] & RIGHT1[(end & MOD) + 1]) {\n            return true;\n          }\n        } else {\n          if (array[indexStart] & RIGHT0[start & MOD]) return true;\n          if (array[indexEnd] & RIGHT1[(end & MOD) + 1]) return true;\n\n          for (let i = indexStart + 1; i < indexEnd; ++i) {\n            if (array[i]) return true;\n          }\n        }\n      }\n\n      return false;\n    },\n    setRange: (x, y, x2, y2) => {\n      let start, end, indexStart, indexEnd, i;\n\n      for (; y <= y2; ++y) {\n        start = y * w + x;\n        end = y * w + x2;\n        indexStart = start >>> DIV;\n        indexEnd = end >>> DIV;\n\n        if (indexStart === indexEnd) {\n          _set(indexStart, RIGHT0[start & MOD] & RIGHT1[(end & MOD) + 1]);\n        } else {\n          _set(indexStart, RIGHT0[start & MOD]);\n\n          _set(indexEnd, RIGHT1[(end & MOD) + 1]);\n\n          for (i = indexStart + 1; i < indexEnd; ++i) _set(i, 0xffffffff);\n        }\n      }\n    },\n    clearRange: (x, y, x2, y2) => {\n      let start, end, indexStart, indexEnd, i;\n\n      for (; y <= y2; ++y) {\n        start = y * w + x;\n        end = y * w + x2;\n        indexStart = start >>> DIV;\n        indexEnd = end >>> DIV;\n\n        if (indexStart === indexEnd) {\n          _clear(indexStart, RIGHT1[start & MOD] | RIGHT0[(end & MOD) + 1]);\n        } else {\n          _clear(indexStart, RIGHT1[start & MOD]);\n\n          _clear(indexEnd, RIGHT0[(end & MOD) + 1]);\n\n          for (i = indexStart + 1; i < indexEnd; ++i) _clear(i, 0);\n        }\n      }\n    },\n    outOfBounds: (x, y, x2, y2) => x < 0 || y < 0 || y2 >= h || x2 >= w\n  };\n}\n\nfunction scaler (width, height, padding) {\n  const ratio = Math.max(1, Math.sqrt(width * height / 1e6)),\n        w = ~~((width + 2 * padding + ratio) / ratio),\n        h = ~~((height + 2 * padding + ratio) / ratio),\n        scale = _ => ~~((_ + padding) / ratio);\n\n  scale.invert = _ => _ * ratio - padding;\n\n  scale.bitmap = () => Bitmap(w, h);\n\n  scale.ratio = ratio;\n  scale.padding = padding;\n  scale.width = width;\n  scale.height = height;\n  return scale;\n}\n\nfunction placeAreaLabelNaive ($, bitmaps, avoidBaseMark, markIndex) {\n  const width = $.width,\n        height = $.height; // try to place a label within an input area mark\n\n  return function (d) {\n    const items = d.datum.datum.items[markIndex].items,\n          // area points\n    n = items.length,\n          // number of points\n    textHeight = d.datum.fontSize,\n          // label width\n    textWidth = vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"textMetrics\"].width(d.datum, d.datum.text); // label height\n\n    let maxAreaWidth = 0,\n        x1,\n        x2,\n        y1,\n        y2,\n        x,\n        y,\n        areaWidth; // for each area sample point\n\n    for (let i = 0; i < n; ++i) {\n      x1 = items[i].x;\n      y1 = items[i].y;\n      x2 = items[i].x2 === undefined ? x1 : items[i].x2;\n      y2 = items[i].y2 === undefined ? y1 : items[i].y2;\n      x = (x1 + x2) / 2;\n      y = (y1 + y2) / 2;\n      areaWidth = Math.abs(x2 - x1 + y2 - y1);\n\n      if (areaWidth >= maxAreaWidth) {\n        maxAreaWidth = areaWidth;\n        d.x = x;\n        d.y = y;\n      }\n    }\n\n    x = textWidth / 2;\n    y = textHeight / 2;\n    x1 = d.x - x;\n    x2 = d.x + x;\n    y1 = d.y - y;\n    y2 = d.y + y;\n    d.align = 'center';\n\n    if (x1 < 0 && x2 <= width) {\n      d.align = 'left';\n    } else if (0 <= x1 && width < x2) {\n      d.align = 'right';\n    }\n\n    d.baseline = 'middle';\n\n    if (y1 < 0 && y2 <= height) {\n      d.baseline = 'top';\n    } else if (0 <= y1 && height < y2) {\n      d.baseline = 'bottom';\n    }\n\n    return true;\n  };\n}\n\nfunction outOfBounds(x, y, textWidth, textHeight, width, height) {\n  let r = textWidth / 2;\n  return x - r < 0 || x + r > width || y - (r = textHeight / 2) < 0 || y + r > height;\n}\nfunction collision($, x, y, textHeight, textWidth, h, bm0, bm1) {\n  const w = textWidth * h / (textHeight * 2),\n        x1 = $(x - w),\n        x2 = $(x + w),\n        y1 = $(y - (h = h / 2)),\n        y2 = $(y + h);\n  return bm0.outOfBounds(x1, y1, x2, y2) || bm0.getRange(x1, y1, x2, y2) || bm1 && bm1.getRange(x1, y1, x2, y2);\n}\n\nfunction placeAreaLabelReducedSearch ($, bitmaps, avoidBaseMark, markIndex) {\n  const width = $.width,\n        height = $.height,\n        bm0 = bitmaps[0],\n        // where labels have been placed\n  bm1 = bitmaps[1]; // area outlines\n\n  function tryLabel(_x, _y, maxSize, textWidth, textHeight) {\n    const x = $.invert(_x),\n          y = $.invert(_y);\n    let lo = maxSize,\n        hi = height,\n        mid;\n\n    if (!outOfBounds(x, y, textWidth, textHeight, width, height) && !collision($, x, y, textHeight, textWidth, lo, bm0, bm1) && !collision($, x, y, textHeight, textWidth, textHeight, bm0, null)) {\n      // if the label fits at the current sample point,\n      // perform binary search to find the largest font size that fits\n      while (hi - lo >= 1) {\n        mid = (lo + hi) / 2;\n\n        if (collision($, x, y, textHeight, textWidth, mid, bm0, bm1)) {\n          hi = mid;\n        } else {\n          lo = mid;\n        }\n      } // place label if current lower bound exceeds prior max font size\n\n\n      if (lo > maxSize) {\n        return [x, y, lo, true];\n      }\n    }\n  } // try to place a label within an input area mark\n\n\n  return function (d) {\n    const items = d.datum.datum.items[markIndex].items,\n          // area points\n    n = items.length,\n          // number of points\n    textHeight = d.datum.fontSize,\n          // label width\n    textWidth = vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"textMetrics\"].width(d.datum, d.datum.text); // label height\n\n    let maxSize = avoidBaseMark ? textHeight : 0,\n        labelPlaced = false,\n        labelPlaced2 = false,\n        maxAreaWidth = 0,\n        x1,\n        x2,\n        y1,\n        y2,\n        x,\n        y,\n        _x,\n        _y,\n        _x1,\n        _xMid,\n        _x2,\n        _y1,\n        _yMid,\n        _y2,\n        areaWidth,\n        result,\n        swapTmp; // for each area sample point\n\n\n    for (let i = 0; i < n; ++i) {\n      x1 = items[i].x;\n      y1 = items[i].y;\n      x2 = items[i].x2 === undefined ? x1 : items[i].x2;\n      y2 = items[i].y2 === undefined ? y1 : items[i].y2;\n\n      if (x1 > x2) {\n        swapTmp = x1;\n        x1 = x2;\n        x2 = swapTmp;\n      }\n\n      if (y1 > y2) {\n        swapTmp = y1;\n        y1 = y2;\n        y2 = swapTmp;\n      }\n\n      _x1 = $(x1);\n      _x2 = $(x2);\n      _xMid = ~~((_x1 + _x2) / 2);\n      _y1 = $(y1);\n      _y2 = $(y2);\n      _yMid = ~~((_y1 + _y2) / 2); // search along the line from mid point between the 2 border to lower border\n\n      for (_x = _xMid; _x >= _x1; --_x) {\n        for (_y = _yMid; _y >= _y1; --_y) {\n          result = tryLabel(_x, _y, maxSize, textWidth, textHeight);\n\n          if (result) {\n            [d.x, d.y, maxSize, labelPlaced] = result;\n          }\n        }\n      } // search along the line from mid point between the 2 border to upper border\n\n\n      for (_x = _xMid; _x <= _x2; ++_x) {\n        for (_y = _yMid; _y <= _y2; ++_y) {\n          result = tryLabel(_x, _y, maxSize, textWidth, textHeight);\n\n          if (result) {\n            [d.x, d.y, maxSize, labelPlaced] = result;\n          }\n        }\n      } // place label at slice center if not placed through other means\n      // and if we're not avoiding overlap with other areas\n\n\n      if (!labelPlaced && !avoidBaseMark) {\n        // one span is zero, hence we can add\n        areaWidth = Math.abs(x2 - x1 + y2 - y1);\n        x = (x1 + x2) / 2;\n        y = (y1 + y2) / 2; // place label if it fits and improves the max area width\n\n        if (areaWidth >= maxAreaWidth && !outOfBounds(x, y, textWidth, textHeight, width, height) && !collision($, x, y, textHeight, textWidth, textHeight, bm0, null)) {\n          maxAreaWidth = areaWidth;\n          d.x = x;\n          d.y = y;\n          labelPlaced2 = true;\n        }\n      }\n    } // record current label placement information, update label bitmap\n\n\n    if (labelPlaced || labelPlaced2) {\n      x = textWidth / 2;\n      y = textHeight / 2;\n      bm0.setRange($(d.x - x), $(d.y - y), $(d.x + x), $(d.y + y));\n      d.align = 'center';\n      d.baseline = 'middle';\n      return true;\n    } else {\n      return false;\n    }\n  };\n}\n\nconst X_DIR = [-1, -1, 1, 1];\nconst Y_DIR = [-1, 1, -1, 1];\nfunction placeAreaLabelFloodFill ($, bitmaps, avoidBaseMark, markIndex) {\n  const width = $.width,\n        height = $.height,\n        bm0 = bitmaps[0],\n        // where labels have been placed\n  bm1 = bitmaps[1],\n        // area outlines\n  bm2 = $.bitmap(); // flood-fill visitations\n  // try to place a label within an input area mark\n\n  return function (d) {\n    const items = d.datum.datum.items[markIndex].items,\n          // area points\n    n = items.length,\n          // number of points\n    textHeight = d.datum.fontSize,\n          // label width\n    textWidth = vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"textMetrics\"].width(d.datum, d.datum.text),\n          // label height\n    stack = []; // flood fill stack\n\n    let maxSize = avoidBaseMark ? textHeight : 0,\n        labelPlaced = false,\n        labelPlaced2 = false,\n        maxAreaWidth = 0,\n        x1,\n        x2,\n        y1,\n        y2,\n        x,\n        y,\n        _x,\n        _y,\n        lo,\n        hi,\n        mid,\n        areaWidth; // for each area sample point\n\n\n    for (let i = 0; i < n; ++i) {\n      x1 = items[i].x;\n      y1 = items[i].y;\n      x2 = items[i].x2 === undefined ? x1 : items[i].x2;\n      y2 = items[i].y2 === undefined ? y1 : items[i].y2; // add scaled center point to stack\n\n      stack.push([$((x1 + x2) / 2), $((y1 + y2) / 2)]); // perform flood fill, visit points\n\n      while (stack.length) {\n        [_x, _y] = stack.pop(); // exit if point already marked\n\n        if (bm0.get(_x, _y) || bm1.get(_x, _y) || bm2.get(_x, _y)) continue; // mark point in flood fill bitmap\n        // add search points for all (in bound) directions\n\n        bm2.set(_x, _y);\n\n        for (let j = 0; j < 4; ++j) {\n          x = _x + X_DIR[j];\n          y = _y + Y_DIR[j];\n          if (!bm2.outOfBounds(x, y, x, y)) stack.push([x, y]);\n        } // unscale point back to x, y space\n\n\n        x = $.invert(_x);\n        y = $.invert(_y);\n        lo = maxSize;\n        hi = height; // TODO: make this bound smaller\n\n        if (!outOfBounds(x, y, textWidth, textHeight, width, height) && !collision($, x, y, textHeight, textWidth, lo, bm0, bm1) && !collision($, x, y, textHeight, textWidth, textHeight, bm0, null)) {\n          // if the label fits at the current sample point,\n          // perform binary search to find the largest font size that fits\n          while (hi - lo >= 1) {\n            mid = (lo + hi) / 2;\n\n            if (collision($, x, y, textHeight, textWidth, mid, bm0, bm1)) {\n              hi = mid;\n            } else {\n              lo = mid;\n            }\n          } // place label if current lower bound exceeds prior max font size\n\n\n          if (lo > maxSize) {\n            d.x = x;\n            d.y = y;\n            maxSize = lo;\n            labelPlaced = true;\n          }\n        }\n      } // place label at slice center if not placed through other means\n      // and if we're not avoiding overlap with other areas\n\n\n      if (!labelPlaced && !avoidBaseMark) {\n        // one span is zero, hence we can add\n        areaWidth = Math.abs(x2 - x1 + y2 - y1);\n        x = (x1 + x2) / 2;\n        y = (y1 + y2) / 2; // place label if it fits and improves the max area width\n\n        if (areaWidth >= maxAreaWidth && !outOfBounds(x, y, textWidth, textHeight, width, height) && !collision($, x, y, textHeight, textWidth, textHeight, bm0, null)) {\n          maxAreaWidth = areaWidth;\n          d.x = x;\n          d.y = y;\n          labelPlaced2 = true;\n        }\n      }\n    } // record current label placement information, update label bitmap\n\n\n    if (labelPlaced || labelPlaced2) {\n      x = textWidth / 2;\n      y = textHeight / 2;\n      bm0.setRange($(d.x - x), $(d.y - y), $(d.x + x), $(d.y + y));\n      d.align = 'center';\n      d.baseline = 'middle';\n      return true;\n    } else {\n      return false;\n    }\n  };\n}\n\nconst Aligns = ['right', 'center', 'left'],\n      Baselines = ['bottom', 'middle', 'top'];\nfunction placeMarkLabel ($, bitmaps, anchors, offsets) {\n  const width = $.width,\n        height = $.height,\n        bm0 = bitmaps[0],\n        bm1 = bitmaps[1],\n        n = offsets.length;\n  return function (d) {\n    const boundary = d.boundary,\n          textHeight = d.datum.fontSize; // can not be placed if the mark is not visible in the graph bound\n\n    if (boundary[2] < 0 || boundary[5] < 0 || boundary[0] > width || boundary[3] > height) {\n      return false;\n    }\n\n    let textWidth = 0,\n        dx,\n        dy,\n        isInside,\n        sizeFactor,\n        insideFactor,\n        x1,\n        x2,\n        y1,\n        y2,\n        xc,\n        yc,\n        _x1,\n        _x2,\n        _y1,\n        _y2; // for each anchor and offset\n\n\n    for (let i = 0; i < n; ++i) {\n      dx = (anchors[i] & 0x3) - 1;\n      dy = (anchors[i] >>> 0x2 & 0x3) - 1;\n      isInside = dx === 0 && dy === 0 || offsets[i] < 0;\n      sizeFactor = dx && dy ? Math.SQRT1_2 : 1;\n      insideFactor = offsets[i] < 0 ? -1 : 1;\n      x1 = boundary[1 + dx] + offsets[i] * dx * sizeFactor;\n      yc = boundary[4 + dy] + insideFactor * textHeight * dy / 2 + offsets[i] * dy * sizeFactor;\n      y1 = yc - textHeight / 2;\n      y2 = yc + textHeight / 2;\n      _x1 = $(x1);\n      _y1 = $(y1);\n      _y2 = $(y2);\n\n      if (!textWidth) {\n        // to avoid finding width of text label,\n        if (!test(_x1, _x1, _y1, _y2, bm0, bm1, x1, x1, y1, y2, boundary, isInside)) {\n          // skip this anchor/offset option if we fail to place a label with 1px width\n          continue;\n        } else {\n          // Otherwise, find the label width\n          textWidth = vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"textMetrics\"].width(d.datum, d.datum.text);\n        }\n      }\n\n      xc = x1 + insideFactor * textWidth * dx / 2;\n      x1 = xc - textWidth / 2;\n      x2 = xc + textWidth / 2;\n      _x1 = $(x1);\n      _x2 = $(x2);\n\n      if (test(_x1, _x2, _y1, _y2, bm0, bm1, x1, x2, y1, y2, boundary, isInside)) {\n        // place label if the position is placeable\n        d.x = !dx ? xc : dx * insideFactor < 0 ? x2 : x1;\n        d.y = !dy ? yc : dy * insideFactor < 0 ? y2 : y1;\n        d.align = Aligns[dx * insideFactor + 1];\n        d.baseline = Baselines[dy * insideFactor + 1];\n        bm0.setRange(_x1, _y1, _x2, _y2);\n        return true;\n      }\n    }\n\n    return false;\n  };\n} // Test if a label with the given dimensions can be added without overlap\n\nfunction test(_x1, _x2, _y1, _y2, bm0, bm1, x1, x2, y1, y2, boundary, isInside) {\n  return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 ? bm1.getRange(_x1, _y1, _x2, _y2) || !isInMarkBound(x1, y1, x2, y2, boundary) : bm0.getRange(_x1, _y1, _x2, _y2)));\n}\n\nfunction isInMarkBound(x1, y1, x2, y2, boundary) {\n  return boundary[0] <= x1 && x2 <= boundary[2] && boundary[3] <= y1 && y2 <= boundary[5];\n}\n\nconst TOP = 0x0,\n      MIDDLE = 0x4,\n      BOTTOM = 0x8,\n      LEFT = 0x0,\n      CENTER = 0x1,\n      RIGHT = 0x2; // Mapping from text anchor to number representation\n\nconst anchorCode = {\n  'top-left': TOP + LEFT,\n  'top': TOP + CENTER,\n  'top-right': TOP + RIGHT,\n  'left': MIDDLE + LEFT,\n  'middle': MIDDLE + CENTER,\n  'right': MIDDLE + RIGHT,\n  'bottom-left': BOTTOM + LEFT,\n  'bottom': BOTTOM + CENTER,\n  'bottom-right': BOTTOM + RIGHT\n};\nconst placeAreaLabel = {\n  'naive': placeAreaLabelNaive,\n  'reduced-search': placeAreaLabelReducedSearch,\n  'floodfill': placeAreaLabelFloodFill\n};\nfunction labelLayout (texts, size, compare, offset, anchor, avoidMarks, avoidBaseMark, lineAnchor, markIndex, padding, method) {\n  // early exit for empty data\n  if (!texts.length) return texts;\n  const positions = Math.max(offset.length, anchor.length),\n        offsets = getOffsets(offset, positions),\n        anchors = getAnchors(anchor, positions),\n        marktype = markType(texts[0].datum),\n        grouptype = marktype === 'group' && texts[0].datum.items[markIndex].marktype,\n        isGroupArea = grouptype === 'area',\n        boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex),\n        $ = scaler(size[0], size[1], padding),\n        isNaiveGroupArea = isGroupArea && method === 'naive'; // prepare text mark data for placing\n\n  const data = texts.map(d => ({\n    datum: d,\n    opacity: 0,\n    x: undefined,\n    y: undefined,\n    align: undefined,\n    baseline: undefined,\n    boundary: boundary(d)\n  }));\n  let bitmaps;\n\n  if (!isNaiveGroupArea) {\n    // sort labels in priority order, if comparator is provided\n    if (compare) {\n      data.sort((a, b) => compare(a.datum, b.datum));\n    } // flag indicating if label can be placed inside its base mark\n\n\n    let labelInside = false;\n\n    for (let i = 0; i < anchors.length && !labelInside; ++i) {\n      // label inside if anchor is at center\n      // label inside if offset to be inside the mark bound\n      labelInside = anchors[i] === 0x5 || offsets[i] < 0;\n    } // extract data information from base mark when base mark is to be avoided\n    // base mark is implicitly avoided if it is a group area\n\n\n    if (marktype && (avoidBaseMark || isGroupArea)) {\n      avoidMarks = [texts.map(d => d.datum)].concat(avoidMarks);\n    } // generate bitmaps for layout calculation\n\n\n    bitmaps = avoidMarks.length ? markBitmaps($, avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data);\n  } // generate label placement function\n\n\n  const place = isGroupArea ? placeAreaLabel[method]($, bitmaps, avoidBaseMark, markIndex) : placeMarkLabel($, bitmaps, anchors, offsets); // place all labels\n\n  data.forEach(d => d.opacity = +place(d));\n  return data;\n}\n\nfunction getOffsets(_, count) {\n  const offsets = new Float64Array(count),\n        n = _.length;\n\n  for (let i = 0; i < n; ++i) offsets[i] = _[i] || 0;\n\n  for (let i = n; i < count; ++i) offsets[i] = offsets[n - 1];\n\n  return offsets;\n}\n\nfunction getAnchors(_, count) {\n  const anchors = new Int8Array(count),\n        n = _.length;\n\n  for (let i = 0; i < n; ++i) anchors[i] |= anchorCode[_[i]];\n\n  for (let i = n; i < count; ++i) anchors[i] = anchors[n - 1];\n\n  return anchors;\n}\n\nfunction markType(item) {\n  return item && item.mark && item.mark.marktype;\n}\n/**\n * Factory function for function for getting base mark boundary, depending\n * on mark and group type. When mark type is undefined, line or area: boundary\n * is the coordinate of each data point. When base mark is grouped line,\n * boundary is either at the beginning or end of the line depending on the\n * value of lineAnchor. Otherwise, use bounds of base mark.\n */\n\n\nfunction markBoundary(marktype, grouptype, lineAnchor, markIndex) {\n  const xy = d => [d.x, d.x, d.x, d.y, d.y, d.y];\n\n  if (!marktype) {\n    return xy; // no reactive geometry\n  } else if (marktype === 'line' || marktype === 'area') {\n    return d => xy(d.datum);\n  } else if (grouptype === 'line') {\n    return d => {\n      const items = d.datum.items[markIndex].items;\n      return xy(items.length ? items[lineAnchor === 'start' ? 0 : items.length - 1] : {\n        x: NaN,\n        y: NaN\n      });\n    };\n  } else {\n    return d => {\n      const b = d.datum.bounds;\n      return [b.x1, (b.x1 + b.x2) / 2, b.x2, b.y1, (b.y1 + b.y2) / 2, b.y2];\n    };\n  }\n}\n\nconst Output = ['x', 'y', 'opacity', 'align', 'baseline'];\nconst Anchors = ['top-left', 'left', 'bottom-left', 'top', 'bottom', 'top-right', 'right', 'bottom-right'];\n/**\n * Compute text label layout to annotate marks.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<number>} params.size - The size of the layout, provided as a [width, height] array.\n * @param {function(*,*): number} [params.sort] - An optional\n *   comparator function for sorting label data in priority order.\n * @param {Array<string>} [params.anchor] - Label anchor points relative to the base mark bounding box.\n *   The available options are 'top-left', 'left', 'bottom-left', 'top',\n *   'bottom', 'top-right', 'right', 'bottom-right', 'middle'.\n * @param {Array<number>} [params.offset] - Label offsets (in pixels) from the base mark bounding box.\n *   This parameter  is parallel to the list of anchor points.\n * @param {number} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size.\n * @param {string} [params.lineAnchor='end'] - For group line mark labels only, indicates the anchor\n *   position for labels. One of 'start' or 'end'.\n * @param {string} [params.markIndex=0] - For group mark labels only, an index indicating\n *   which mark within the group should be labeled.\n * @param {Array<number>} [params.avoidMarks] - A list of additional mark names for which the label\n *   layout should avoid overlap.\n * @param {boolean} [params.avoidBaseMark=true] - Boolean flag indicating if labels should avoid\n *   overlap with the underlying base mark being labeled.\n * @param {string} [params.method='naive'] - For area make labels only, a method for\n *   place labels. One of 'naive', 'reduced-search', or 'floodfill'.\n * @param {Array<string>} [params.as] - The output fields written by the transform.\n *   The default is ['x', 'y', 'opacity', 'align', 'baseline'].\n */\n\nfunction Label(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nLabel.Definition = {\n  type: 'Label',\n  metadata: {\n    modifies: true\n  },\n  params: [{\n    name: 'size',\n    type: 'number',\n    array: true,\n    length: 2,\n    required: true\n  }, {\n    name: 'sort',\n    type: 'compare'\n  }, {\n    name: 'anchor',\n    type: 'string',\n    array: true,\n    default: Anchors\n  }, {\n    name: 'offset',\n    type: 'number',\n    array: true,\n    default: [1]\n  }, {\n    name: 'padding',\n    type: 'number',\n    default: 0\n  }, {\n    name: 'lineAnchor',\n    type: 'string',\n    values: ['start', 'end'],\n    default: 'end'\n  }, {\n    name: 'markIndex',\n    type: 'number',\n    default: 0\n  }, {\n    name: 'avoidBaseMark',\n    type: 'boolean',\n    default: true\n  }, {\n    name: 'avoidMarks',\n    type: 'data',\n    array: true\n  }, {\n    name: 'method',\n    type: 'string',\n    default: 'naive'\n  }, {\n    name: 'as',\n    type: 'string',\n    array: true,\n    length: Output.length,\n    default: Output\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"inherits\"])(Label, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    function modp(param) {\n      const p = _[param];\n      return Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"isFunction\"])(p) && pulse.modified(p.fields);\n    }\n\n    const mod = _.modified();\n\n    if (!(mod || pulse.changed(pulse.ADD_REM) || modp('sort'))) return;\n\n    if (!_.size || _.size.length !== 2) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"error\"])('Size parameter should be specified as a [width, height] array.');\n    }\n\n    const as = _.as || Output; // run label layout\n\n    labelLayout(pulse.materialize(pulse.SOURCE).source, _.size, _.sort, Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"array\"])(_.offset || 1), Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"array\"])(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark === false ? false : true, _.lineAnchor || 'end', _.markIndex || 0, _.padding || 0, _.method || 'naive').forEach(l => {\n      // write layout results to data stream\n      const t = l.datum;\n      t[as[0]] = l.x;\n      t[as[1]] = l.y;\n      t[as[2]] = l.opacity;\n      t[as[3]] = l.align;\n      t[as[4]] = l.baseline;\n    });\n    return pulse.reflow(mod).modifies(as);\n  }\n\n});\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-label/build/vega-label.module.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/package.json":
/*!***************************************************!*\
  !*** ./node_modules/vega-lite/build/package.json ***!
  \***************************************************/
/*! exports provided: name, author, version, collaborators, homepage, description, main, unpkg, jsdelivr, module, types, bin, directories, files, scripts, repository, license, bugs, devDependencies, dependencies, peerDependencies, jest, default */
/***/ (function(module) {

eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"vega-lite\\\",\\\"author\\\":\\\"Dominik Moritz, Kanit \\\\\\\"Ham\\\\\\\" Wongsuphasawat, Arvind Satyanarayan, Jeffrey Heer\\\",\\\"version\\\":\\\"4.16.8\\\",\\\"collaborators\\\":[\\\"Kanit Wongsuphasawat (http://kanitw.yellowpigz.com)\\\",\\\"Dominik Moritz (https://www.domoritz.de)\\\",\\\"Arvind Satyanarayan (https://arvindsatya.com)\\\",\\\"Jeffrey Heer (https://jheer.org)\\\"],\\\"homepage\\\":\\\"https://vega.github.io/vega-lite/\\\",\\\"description\\\":\\\"Vega-Lite is a concise high-level language for interactive visualization.\\\",\\\"main\\\":\\\"build/vega-lite.js\\\",\\\"unpkg\\\":\\\"build/vega-lite.min.js\\\",\\\"jsdelivr\\\":\\\"build/vega-lite.min.js\\\",\\\"module\\\":\\\"build/src/index\\\",\\\"types\\\":\\\"build/src/index.d.ts\\\",\\\"bin\\\":{\\\"vl2png\\\":\\\"./bin/vl2png\\\",\\\"vl2svg\\\":\\\"./bin/vl2svg\\\",\\\"vl2pdf\\\":\\\"./bin/vl2pdf\\\",\\\"vl2vg\\\":\\\"./bin/vl2vg\\\"},\\\"directories\\\":{\\\"test\\\":\\\"test\\\"},\\\"files\\\":[\\\"bin\\\",\\\"build\\\",\\\"build-es5\\\",\\\"src\\\",\\\"vega-lite*\\\"],\\\"scripts\\\":{\\\"changelog\\\":\\\"conventional-changelog -p angular -r 2\\\",\\\"prebuild\\\":\\\"yarn clean:build\\\",\\\"build\\\":\\\"yarn build:only\\\",\\\"build:only\\\":\\\"tsc -p tsconfig.build.json && rollup -c\\\",\\\"prebuild:examples\\\":\\\"yarn build:only\\\",\\\"build:examples\\\":\\\"yarn data && TZ=America/Los_Angeles scripts/build-examples.sh\\\",\\\"prebuild:examples-full\\\":\\\"yarn build:only\\\",\\\"build:examples-full\\\":\\\"TZ=America/Los_Angeles scripts/build-examples.sh 1\\\",\\\"build:example\\\":\\\"TZ=America/Los_Angeles scripts/build-example.sh\\\",\\\"build:toc\\\":\\\"yarn build:jekyll && scripts/generate-toc\\\",\\\"build:site\\\":\\\"rollup -c site/rollup.config.js\\\",\\\"build:jekyll\\\":\\\"pushd site && bundle exec jekyll build -q && popd\\\",\\\"build:versions\\\":\\\"scripts/update-version.sh\\\",\\\"clean\\\":\\\"yarn clean:build && rimraf site/data/* && rimraf examples/compiled/*.png && find site/examples ! -name 'index.md' ! -name 'data' -type f -delete\\\",\\\"clean:build\\\":\\\"find build ! -name 'vega-lite-schema.json' -type f -delete && rimraf build/src && rimraf build-es5\\\",\\\"predeploy:site\\\":\\\"yarn presite\\\",\\\"deploy:site\\\":\\\"gh-pages -d site\\\",\\\"data\\\":\\\"rsync -r node_modules/vega-datasets/data/* site/data\\\",\\\"schema\\\":\\\"mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t TopLevelSpec --no-type-check --no-ref-encode > build/vega-lite-schema.json && yarn renameschema && cp build/vega-lite-schema.json site/_data/\\\",\\\"renameschema\\\":\\\"scripts/rename-schema.sh\\\",\\\"presite\\\":\\\"yarn data && yarn schema && yarn build:site && yarn build:versions && scripts/create-example-pages.sh\\\",\\\"site\\\":\\\"yarn site:only\\\",\\\"site:only\\\":\\\"pushd site && bundle exec jekyll serve -I -l && popd\\\",\\\"prettierbase\\\":\\\"prettier '**/*.{md,css,yml}'\\\",\\\"eslintbase\\\":\\\"eslint .\\\",\\\"format\\\":\\\"yarn eslintbase --fix && yarn prettierbase --write\\\",\\\"lint\\\":\\\"yarn eslintbase && yarn prettierbase --check\\\",\\\"test\\\":\\\"jest test/ && yarn lint && yarn schema && jest examples/ && yarn test:runtime\\\",\\\"test:inspect\\\":\\\"node --inspect-brk ./node_modules/.bin/jest --runInBand test\\\",\\\"test:runtime\\\":\\\"TZ=America/Los_Angeles jest test-runtime/\\\",\\\"test:runtime:generate\\\":\\\"yarn build:only && rimraf test-runtime/resources && VL_GENERATE_TESTS=true yarn test:runtime\\\",\\\"watch\\\":\\\"tsc -p tsconfig.build.json -w\\\",\\\"watch:site\\\":\\\"yarn build:site -w\\\",\\\"watch:test\\\":\\\"jest --watch\\\"},\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"https://github.com/vega/vega-lite.git\\\"},\\\"license\\\":\\\"BSD-3-Clause\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/vega/vega-lite/issues\\\"},\\\"devDependencies\\\":{\\\"@babel/core\\\":\\\"^7.11.6\\\",\\\"@babel/preset-env\\\":\\\"^7.11.5\\\",\\\"@babel/preset-typescript\\\":\\\"^7.10.4\\\",\\\"@rollup/plugin-babel\\\":\\\"^5.2.1\\\",\\\"@rollup/plugin-commonjs\\\":\\\"^15.1.0\\\",\\\"@rollup/plugin-json\\\":\\\"^4.1.0\\\",\\\"@rollup/plugin-node-resolve\\\":\\\"^9.0.0\\\",\\\"@types/chai\\\":\\\"^4.2.12\\\",\\\"@types/d3\\\":\\\"^5.7.2\\\",\\\"@types/jest\\\":\\\"^26.0.14\\\",\\\"@types/mkdirp\\\":\\\"^1.0.1\\\",\\\"@types/pako\\\":\\\"^1.0.1\\\",\\\"@types/puppeteer\\\":\\\"^3.0.2\\\",\\\"@typescript-eslint/eslint-plugin\\\":\\\"^4.2.0\\\",\\\"@typescript-eslint/parser\\\":\\\"^4.2.0\\\",\\\"ajv\\\":\\\"^6.12.5\\\",\\\"chai\\\":\\\"^4.2.0\\\",\\\"cheerio\\\":\\\"^1.0.0-rc.3\\\",\\\"conventional-changelog-cli\\\":\\\"^2.1.0\\\",\\\"d3\\\":\\\"^6.2.0\\\",\\\"eslint\\\":\\\"^7.9.0\\\",\\\"eslint-config-prettier\\\":\\\"^6.12.0\\\",\\\"eslint-plugin-jest\\\":\\\"^24.0.2\\\",\\\"eslint-plugin-prettier\\\":\\\"^3.1.4\\\",\\\"gh-pages\\\":\\\"^3.1.0\\\",\\\"highlight.js\\\":\\\"^10.2.0\\\",\\\"jest\\\":\\\"^26.4.2\\\",\\\"jest-puppeteer\\\":\\\"^4.4.0\\\",\\\"mkdirp\\\":\\\"^1.0.4\\\",\\\"pako\\\":\\\"^1.0.11\\\",\\\"prettier\\\":\\\"^2.1.2\\\",\\\"puppeteer\\\":\\\"^5.3.1\\\",\\\"rollup\\\":\\\"^2.28.2\\\",\\\"rollup-plugin-bundle-size\\\":\\\"^1.0.3\\\",\\\"rollup-plugin-sourcemaps\\\":\\\"^0.6.2\\\",\\\"rollup-plugin-terser\\\":\\\"^7.0.2\\\",\\\"serve\\\":\\\"^11.3.2\\\",\\\"terser\\\":\\\"^5.3.2\\\",\\\"ts-json-schema-generator\\\":\\\"^0.74.0\\\",\\\"typescript\\\":\\\"~4.0.3\\\",\\\"vega-cli\\\":\\\"^5.16.1\\\",\\\"vega-datasets\\\":\\\"~2.1.0\\\",\\\"vega-embed\\\":\\\"^6.12.2\\\",\\\"vega-tooltip\\\":\\\"^0.24.2\\\",\\\"yaml-front-matter\\\":\\\"^4.1.0\\\"},\\\"dependencies\\\":{\\\"@types/clone\\\":\\\"~2.1.0\\\",\\\"@types/fast-json-stable-stringify\\\":\\\"^2.0.0\\\",\\\"array-flat-polyfill\\\":\\\"^1.0.1\\\",\\\"clone\\\":\\\"~2.1.2\\\",\\\"fast-deep-equal\\\":\\\"~3.1.3\\\",\\\"fast-json-stable-stringify\\\":\\\"~2.1.0\\\",\\\"json-stringify-pretty-compact\\\":\\\"~2.0.0\\\",\\\"tslib\\\":\\\"~2.0.1\\\",\\\"vega-event-selector\\\":\\\"~2.0.6\\\",\\\"vega-expression\\\":\\\"~3.0.0\\\",\\\"vega-util\\\":\\\"~1.15.3\\\",\\\"yargs\\\":\\\"~16.0.3\\\"},\\\"peerDependencies\\\":{\\\"vega\\\":\\\"^5.16.1\\\"},\\\"jest\\\":{\\\"preset\\\":\\\"jest-puppeteer\\\",\\\"testPathIgnorePatterns\\\":[\\\"<rootDir>/node_modules\\\",\\\"<rootDir>/build\\\",\\\"<rootDir>/_site\\\",\\\"<rootDir>/src\\\"],\\\"coverageDirectory\\\":\\\"./coverage/\\\",\\\"collectCoverage\\\":false,\\\"setupFiles\\\":[\\\"./test/jest.overrides.ts\\\"]}}\");\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/package.json?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/aggregate.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/aggregate.js ***!
  \*******************************************************/
/*! exports provided: MULTIDOMAIN_SORT_OP_INDEX, isArgminDef, isArgmaxDef, AGGREGATE_OPS, isAggregateOp, COUNTING_OPS, isCountingAggregateOp, isMinMaxOp, SUM_OPS, SHARED_DOMAIN_OPS, SHARED_DOMAIN_OP_INDEX */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MULTIDOMAIN_SORT_OP_INDEX\", function() { return MULTIDOMAIN_SORT_OP_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArgminDef\", function() { return isArgminDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArgmaxDef\", function() { return isArgmaxDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AGGREGATE_OPS\", function() { return AGGREGATE_OPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAggregateOp\", function() { return isAggregateOp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COUNTING_OPS\", function() { return COUNTING_OPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCountingAggregateOp\", function() { return isCountingAggregateOp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMinMaxOp\", function() { return isMinMaxOp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SUM_OPS\", function() { return SUM_OPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHARED_DOMAIN_OPS\", function() { return SHARED_DOMAIN_OPS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHARED_DOMAIN_OP_INDEX\", function() { return SHARED_DOMAIN_OP_INDEX; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\nconst AGGREGATE_OP_INDEX = {\n    argmax: 1,\n    argmin: 1,\n    average: 1,\n    count: 1,\n    distinct: 1,\n    product: 1,\n    max: 1,\n    mean: 1,\n    median: 1,\n    min: 1,\n    missing: 1,\n    q1: 1,\n    q3: 1,\n    ci0: 1,\n    ci1: 1,\n    stderr: 1,\n    stdev: 1,\n    stdevp: 1,\n    sum: 1,\n    valid: 1,\n    values: 1,\n    variance: 1,\n    variancep: 1\n};\nconst MULTIDOMAIN_SORT_OP_INDEX = {\n    count: 1,\n    min: 1,\n    max: 1\n};\nfunction isArgminDef(a) {\n    return !!a && !!a['argmin'];\n}\nfunction isArgmaxDef(a) {\n    return !!a && !!a['argmax'];\n}\nconst AGGREGATE_OPS = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(AGGREGATE_OP_INDEX);\nfunction isAggregateOp(a) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(a) && !!AGGREGATE_OP_INDEX[a];\n}\nconst COUNTING_OPS = ['count', 'valid', 'missing', 'distinct'];\nfunction isCountingAggregateOp(aggregate) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(aggregate) && Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"contains\"])(COUNTING_OPS, aggregate);\n}\nfunction isMinMaxOp(aggregate) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(aggregate) && Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"contains\"])(['min', 'max'], aggregate);\n}\n/** Additive-based aggregation operations. These can be applied to stack. */\nconst SUM_OPS = ['count', 'sum', 'distinct', 'valid', 'missing'];\n/**\n * Aggregation operators that always produce values within the range [domainMin, domainMax].\n */\nconst SHARED_DOMAIN_OPS = ['mean', 'average', 'median', 'q1', 'q3', 'min', 'max'];\nconst SHARED_DOMAIN_OP_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(SHARED_DOMAIN_OPS);\n//# sourceMappingURL=aggregate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/aggregate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/axis.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/axis.js ***!
  \**************************************************/
/*! exports provided: CONDITIONAL_AXIS_PROP_INDEX, isConditionalAxisValue, AXIS_PARTS, AXIS_PROPERTY_TYPE, COMMON_AXIS_PROPERTIES_INDEX, isAxisProperty, AXIS_PROPERTIES, AXIS_CONFIGS */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONDITIONAL_AXIS_PROP_INDEX\", function() { return CONDITIONAL_AXIS_PROP_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConditionalAxisValue\", function() { return isConditionalAxisValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AXIS_PARTS\", function() { return AXIS_PARTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AXIS_PROPERTY_TYPE\", function() { return AXIS_PROPERTY_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COMMON_AXIS_PROPERTIES_INDEX\", function() { return COMMON_AXIS_PROPERTIES_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAxisProperty\", function() { return isAxisProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AXIS_PROPERTIES\", function() { return AXIS_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AXIS_CONFIGS\", function() { return AXIS_CONFIGS; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\nconst CONDITIONAL_AXIS_PROP_INDEX = {\n    labelAlign: {\n        part: 'labels',\n        vgProp: 'align'\n    },\n    labelBaseline: {\n        part: 'labels',\n        vgProp: 'baseline'\n    },\n    labelColor: {\n        part: 'labels',\n        vgProp: 'fill'\n    },\n    labelFont: {\n        part: 'labels',\n        vgProp: 'font'\n    },\n    labelFontSize: {\n        part: 'labels',\n        vgProp: 'fontSize'\n    },\n    labelFontStyle: {\n        part: 'labels',\n        vgProp: 'fontStyle'\n    },\n    labelFontWeight: {\n        part: 'labels',\n        vgProp: 'fontWeight'\n    },\n    labelOpacity: {\n        part: 'labels',\n        vgProp: 'opacity'\n    },\n    labelOffset: null,\n    labelPadding: null,\n    gridColor: {\n        part: 'grid',\n        vgProp: 'stroke'\n    },\n    gridDash: {\n        part: 'grid',\n        vgProp: 'strokeDash'\n    },\n    gridDashOffset: {\n        part: 'grid',\n        vgProp: 'strokeDashOffset'\n    },\n    gridOpacity: {\n        part: 'grid',\n        vgProp: 'opacity'\n    },\n    gridWidth: {\n        part: 'grid',\n        vgProp: 'strokeWidth'\n    },\n    tickColor: {\n        part: 'ticks',\n        vgProp: 'stroke'\n    },\n    tickDash: {\n        part: 'ticks',\n        vgProp: 'strokeDash'\n    },\n    tickDashOffset: {\n        part: 'ticks',\n        vgProp: 'strokeDashOffset'\n    },\n    tickOpacity: {\n        part: 'ticks',\n        vgProp: 'opacity'\n    },\n    tickSize: null,\n    tickWidth: {\n        part: 'ticks',\n        vgProp: 'strokeWidth'\n    }\n};\nfunction isConditionalAxisValue(v) {\n    return v && v['condition'];\n}\nconst AXIS_PARTS = ['domain', 'grid', 'labels', 'ticks', 'title'];\n/**\n * A dictionary listing whether a certain axis property is applicable for only main axes or only grid axes.\n */\nconst AXIS_PROPERTY_TYPE = {\n    grid: 'grid',\n    gridCap: 'grid',\n    gridColor: 'grid',\n    gridDash: 'grid',\n    gridDashOffset: 'grid',\n    gridOpacity: 'grid',\n    gridScale: 'grid',\n    gridWidth: 'grid',\n    orient: 'main',\n    bandPosition: 'both',\n    aria: 'main',\n    description: 'main',\n    domain: 'main',\n    domainCap: 'main',\n    domainColor: 'main',\n    domainDash: 'main',\n    domainDashOffset: 'main',\n    domainOpacity: 'main',\n    domainWidth: 'main',\n    format: 'main',\n    formatType: 'main',\n    labelAlign: 'main',\n    labelAngle: 'main',\n    labelBaseline: 'main',\n    labelBound: 'main',\n    labelColor: 'main',\n    labelFlush: 'main',\n    labelFlushOffset: 'main',\n    labelFont: 'main',\n    labelFontSize: 'main',\n    labelFontStyle: 'main',\n    labelFontWeight: 'main',\n    labelLimit: 'main',\n    labelLineHeight: 'main',\n    labelOffset: 'main',\n    labelOpacity: 'main',\n    labelOverlap: 'main',\n    labelPadding: 'main',\n    labels: 'main',\n    labelSeparation: 'main',\n    maxExtent: 'main',\n    minExtent: 'main',\n    offset: 'both',\n    position: 'main',\n    tickCap: 'main',\n    tickColor: 'main',\n    tickDash: 'main',\n    tickDashOffset: 'main',\n    tickMinStep: 'main',\n    tickOffset: 'both',\n    tickOpacity: 'main',\n    tickRound: 'both',\n    ticks: 'main',\n    tickSize: 'main',\n    tickWidth: 'both',\n    title: 'main',\n    titleAlign: 'main',\n    titleAnchor: 'main',\n    titleAngle: 'main',\n    titleBaseline: 'main',\n    titleColor: 'main',\n    titleFont: 'main',\n    titleFontSize: 'main',\n    titleFontStyle: 'main',\n    titleFontWeight: 'main',\n    titleLimit: 'main',\n    titleLineHeight: 'main',\n    titleOpacity: 'main',\n    titlePadding: 'main',\n    titleX: 'main',\n    titleY: 'main',\n    encode: 'both',\n    scale: 'both',\n    tickBand: 'both',\n    tickCount: 'both',\n    tickExtra: 'both',\n    translate: 'both',\n    values: 'both',\n    zindex: 'both' // this is actually set afterward, so it doesn't matter\n};\nconst COMMON_AXIS_PROPERTIES_INDEX = {\n    orient: 1,\n    aria: 1,\n    bandPosition: 1,\n    description: 1,\n    domain: 1,\n    domainCap: 1,\n    domainColor: 1,\n    domainDash: 1,\n    domainDashOffset: 1,\n    domainOpacity: 1,\n    domainWidth: 1,\n    format: 1,\n    formatType: 1,\n    grid: 1,\n    gridCap: 1,\n    gridColor: 1,\n    gridDash: 1,\n    gridDashOffset: 1,\n    gridOpacity: 1,\n    gridWidth: 1,\n    labelAlign: 1,\n    labelAngle: 1,\n    labelBaseline: 1,\n    labelBound: 1,\n    labelColor: 1,\n    labelFlush: 1,\n    labelFlushOffset: 1,\n    labelFont: 1,\n    labelFontSize: 1,\n    labelFontStyle: 1,\n    labelFontWeight: 1,\n    labelLimit: 1,\n    labelLineHeight: 1,\n    labelOffset: 1,\n    labelOpacity: 1,\n    labelOverlap: 1,\n    labelPadding: 1,\n    labels: 1,\n    labelSeparation: 1,\n    maxExtent: 1,\n    minExtent: 1,\n    offset: 1,\n    position: 1,\n    tickBand: 1,\n    tickCap: 1,\n    tickColor: 1,\n    tickCount: 1,\n    tickDash: 1,\n    tickDashOffset: 1,\n    tickExtra: 1,\n    tickMinStep: 1,\n    tickOffset: 1,\n    tickOpacity: 1,\n    tickRound: 1,\n    ticks: 1,\n    tickSize: 1,\n    tickWidth: 1,\n    title: 1,\n    titleAlign: 1,\n    titleAnchor: 1,\n    titleAngle: 1,\n    titleBaseline: 1,\n    titleColor: 1,\n    titleFont: 1,\n    titleFontSize: 1,\n    titleFontStyle: 1,\n    titleFontWeight: 1,\n    titleLimit: 1,\n    titleLineHeight: 1,\n    titleOpacity: 1,\n    titlePadding: 1,\n    titleX: 1,\n    titleY: 1,\n    translate: 1,\n    values: 1,\n    zindex: 1\n};\nconst AXIS_PROPERTIES_INDEX = Object.assign(Object.assign({}, COMMON_AXIS_PROPERTIES_INDEX), { style: 1, labelExpr: 1, encoding: 1 });\nfunction isAxisProperty(prop) {\n    return !!AXIS_PROPERTIES_INDEX[prop];\n}\n// Export for dependent projects\nconst AXIS_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(AXIS_PROPERTIES_INDEX);\nconst AXIS_CONFIGS_INDEX = {\n    axis: 1,\n    axisBand: 1,\n    axisBottom: 1,\n    axisDiscrete: 1,\n    axisLeft: 1,\n    axisPoint: 1,\n    axisQuantitative: 1,\n    axisRight: 1,\n    axisTemporal: 1,\n    axisTop: 1,\n    axisX: 1,\n    axisXBand: 1,\n    axisXDiscrete: 1,\n    axisXPoint: 1,\n    axisXQuantitative: 1,\n    axisXTemporal: 1,\n    axisY: 1,\n    axisYBand: 1,\n    axisYDiscrete: 1,\n    axisYPoint: 1,\n    axisYQuantitative: 1,\n    axisYTemporal: 1\n};\nconst AXIS_CONFIGS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(AXIS_CONFIGS_INDEX);\n//# sourceMappingURL=axis.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/axis.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/bin.js":
/*!*************************************************!*\
  !*** ./node_modules/vega-lite/build/src/bin.js ***!
  \*************************************************/
/*! exports provided: binToString, isBinning, isBinned, isBinParams, isSelectionExtent, autoMaxBins */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"binToString\", function() { return binToString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBinning\", function() { return isBinning; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBinned\", function() { return isBinned; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBinParams\", function() { return isBinParams; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSelectionExtent\", function() { return isSelectionExtent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autoMaxBins\", function() { return autoMaxBins; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\n\n\n/**\n * Create a key for the bin configuration. Not for prebinned bin.\n */\nfunction binToString(bin) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"])(bin)) {\n        bin = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"normalizeBin\"])(bin, undefined);\n    }\n    return ('bin' +\n        Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(bin)\n            .map(p => (isSelectionExtent(bin[p]) ? Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(`_${p}_${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"entries\"])(bin[p])}`) : Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(`_${p}_${bin[p]}`)))\n            .join(''));\n}\n/**\n * Vega-Lite should bin the data.\n */\nfunction isBinning(bin) {\n    return bin === true || (isBinParams(bin) && !bin.binned);\n}\n/**\n * The data is already binned and so Vega-Lite should not bin it again.\n */\nfunction isBinned(bin) {\n    return bin === 'binned' || (isBinParams(bin) && bin.binned === true);\n}\nfunction isBinParams(bin) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(bin);\n}\nfunction isSelectionExtent(extent) {\n    return extent === null || extent === void 0 ? void 0 : extent['selection'];\n}\nfunction autoMaxBins(channel) {\n    switch (channel) {\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"ROW\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLUMN\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"SIZE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLOR\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"FILL\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKEWIDTH\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"OPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"FILLOPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKEOPACITY\"]:\n        // Facets and Size shouldn't have too many bins\n        // We choose 6 like shape to simplify the rule [falls through]\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"SHAPE\"]:\n            return 6; // Vega's \"shape\" has 6 distinct values\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKEDASH\"]:\n            return 4; // We only provide 5 different stroke dash values (but 4 is more effective)\n        default:\n            return 10;\n    }\n}\n//# sourceMappingURL=bin.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/bin.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/channel.js":
/*!*****************************************************!*\
  !*** ./node_modules/vega-lite/build/src/channel.js ***!
  \*****************************************************/
/*! exports provided: ROW, COLUMN, FACET, X, Y, X2, Y2, RADIUS, RADIUS2, THETA, THETA2, LATITUDE, LONGITUDE, LATITUDE2, LONGITUDE2, COLOR, FILL, STROKE, SHAPE, SIZE, ANGLE, OPACITY, FILLOPACITY, STROKEOPACITY, STROKEWIDTH, STROKEDASH, TEXT, ORDER, DETAIL, KEY, TOOLTIP, HREF, URL, DESCRIPTION, isPolarPositionChannel, getPositionChannelFromLatLong, isGeoPositionChannel, GEOPOSITION_CHANNELS, isColorChannel, FACET_CHANNELS, CHANNELS, SINGLE_DEF_CHANNELS, SINGLE_DEF_UNIT_CHANNELS, isSingleDefUnitChannel, isChannel, SECONDARY_RANGE_CHANNEL, isSecondaryRangeChannel, getMainRangeChannel, getVgPositionChannel, getSecondaryRangeChannel, getSizeChannel, getOffsetChannel, UNIT_CHANNELS, NONPOSITION_CHANNELS, POSITION_SCALE_CHANNEL_INDEX, POSITION_SCALE_CHANNELS, isXorY, POLAR_POSITION_SCALE_CHANNEL_INDEX, POLAR_POSITION_SCALE_CHANNELS, getPositionScaleChannel, NONPOSITION_SCALE_CHANNELS, isNonPositionScaleChannel, supportLegend, SCALE_CHANNELS, isScaleChannel, supportMark, rangeType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ROW\", function() { return ROW; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLUMN\", function() { return COLUMN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FACET\", function() { return FACET; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"X\", function() { return X; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Y\", function() { return Y; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"X2\", function() { return X2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Y2\", function() { return Y2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RADIUS\", function() { return RADIUS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RADIUS2\", function() { return RADIUS2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"THETA\", function() { return THETA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"THETA2\", function() { return THETA2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LATITUDE\", function() { return LATITUDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LONGITUDE\", function() { return LONGITUDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LATITUDE2\", function() { return LATITUDE2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LONGITUDE2\", function() { return LONGITUDE2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COLOR\", function() { return COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILL\", function() { return FILL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKE\", function() { return STROKE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHAPE\", function() { return SHAPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SIZE\", function() { return SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ANGLE\", function() { return ANGLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OPACITY\", function() { return OPACITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILLOPACITY\", function() { return FILLOPACITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKEOPACITY\", function() { return STROKEOPACITY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKEWIDTH\", function() { return STROKEWIDTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKEDASH\", function() { return STROKEDASH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT\", function() { return TEXT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ORDER\", function() { return ORDER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DETAIL\", function() { return DETAIL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"KEY\", function() { return KEY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOOLTIP\", function() { return TOOLTIP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HREF\", function() { return HREF; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"URL\", function() { return URL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DESCRIPTION\", function() { return DESCRIPTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPolarPositionChannel\", function() { return isPolarPositionChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPositionChannelFromLatLong\", function() { return getPositionChannelFromLatLong; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isGeoPositionChannel\", function() { return isGeoPositionChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GEOPOSITION_CHANNELS\", function() { return GEOPOSITION_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isColorChannel\", function() { return isColorChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FACET_CHANNELS\", function() { return FACET_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CHANNELS\", function() { return CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SINGLE_DEF_CHANNELS\", function() { return SINGLE_DEF_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SINGLE_DEF_UNIT_CHANNELS\", function() { return SINGLE_DEF_UNIT_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSingleDefUnitChannel\", function() { return isSingleDefUnitChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isChannel\", function() { return isChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SECONDARY_RANGE_CHANNEL\", function() { return SECONDARY_RANGE_CHANNEL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSecondaryRangeChannel\", function() { return isSecondaryRangeChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMainRangeChannel\", function() { return getMainRangeChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getVgPositionChannel\", function() { return getVgPositionChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSecondaryRangeChannel\", function() { return getSecondaryRangeChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSizeChannel\", function() { return getSizeChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOffsetChannel\", function() { return getOffsetChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UNIT_CHANNELS\", function() { return UNIT_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NONPOSITION_CHANNELS\", function() { return NONPOSITION_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"POSITION_SCALE_CHANNEL_INDEX\", function() { return POSITION_SCALE_CHANNEL_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"POSITION_SCALE_CHANNELS\", function() { return POSITION_SCALE_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isXorY\", function() { return isXorY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"POLAR_POSITION_SCALE_CHANNEL_INDEX\", function() { return POLAR_POSITION_SCALE_CHANNEL_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"POLAR_POSITION_SCALE_CHANNELS\", function() { return POLAR_POSITION_SCALE_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPositionScaleChannel\", function() { return getPositionScaleChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NONPOSITION_SCALE_CHANNELS\", function() { return NONPOSITION_SCALE_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNonPositionScaleChannel\", function() { return isNonPositionScaleChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportLegend\", function() { return supportLegend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCALE_CHANNELS\", function() { return SCALE_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isScaleChannel\", function() { return isScaleChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportMark\", function() { return supportMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rangeType\", function() { return rangeType; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n/*\n * Constants and utilities for encoding channels (Visual variables)\n * such as 'x', 'y', 'color'.\n */\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n// Facet\nconst ROW = 'row';\nconst COLUMN = 'column';\nconst FACET = 'facet';\n// Position\nconst X = 'x';\nconst Y = 'y';\nconst X2 = 'x2';\nconst Y2 = 'y2';\n// Arc-Position\nconst RADIUS = 'radius';\nconst RADIUS2 = 'radius2';\nconst THETA = 'theta';\nconst THETA2 = 'theta2';\n// Geo Position\nconst LATITUDE = 'latitude';\nconst LONGITUDE = 'longitude';\nconst LATITUDE2 = 'latitude2';\nconst LONGITUDE2 = 'longitude2';\n// Mark property with scale\nconst COLOR = 'color';\nconst FILL = 'fill';\nconst STROKE = 'stroke';\nconst SHAPE = 'shape';\nconst SIZE = 'size';\nconst ANGLE = 'angle';\nconst OPACITY = 'opacity';\nconst FILLOPACITY = 'fillOpacity';\nconst STROKEOPACITY = 'strokeOpacity';\nconst STROKEWIDTH = 'strokeWidth';\nconst STROKEDASH = 'strokeDash';\n// Non-scale channel\nconst TEXT = 'text';\nconst ORDER = 'order';\nconst DETAIL = 'detail';\nconst KEY = 'key';\nconst TOOLTIP = 'tooltip';\nconst HREF = 'href';\nconst URL = 'url';\nconst DESCRIPTION = 'description';\nconst POSITION_CHANNEL_INDEX = {\n    x: 1,\n    y: 1,\n    x2: 1,\n    y2: 1\n};\nconst POLAR_POSITION_CHANNEL_INDEX = {\n    theta: 1,\n    theta2: 1,\n    radius: 1,\n    radius2: 1\n};\nfunction isPolarPositionChannel(c) {\n    return c in POLAR_POSITION_CHANNEL_INDEX;\n}\nconst GEO_POSIITON_CHANNEL_INDEX = {\n    longitude: 1,\n    longitude2: 1,\n    latitude: 1,\n    latitude2: 1\n};\nfunction getPositionChannelFromLatLong(channel) {\n    switch (channel) {\n        case LATITUDE:\n            return 'y';\n        case LATITUDE2:\n            return 'y2';\n        case LONGITUDE:\n            return 'x';\n        case LONGITUDE2:\n            return 'x2';\n    }\n}\nfunction isGeoPositionChannel(c) {\n    return c in GEO_POSIITON_CHANNEL_INDEX;\n}\nconst GEOPOSITION_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(GEO_POSIITON_CHANNEL_INDEX);\nconst UNIT_CHANNEL_INDEX = Object.assign(Object.assign(Object.assign(Object.assign({}, POSITION_CHANNEL_INDEX), POLAR_POSITION_CHANNEL_INDEX), GEO_POSIITON_CHANNEL_INDEX), { \n    // color\n    color: 1, fill: 1, stroke: 1, \n    // other non-position with scale\n    opacity: 1, fillOpacity: 1, strokeOpacity: 1, strokeWidth: 1, strokeDash: 1, size: 1, angle: 1, shape: 1, \n    // channels without scales\n    order: 1, text: 1, detail: 1, key: 1, tooltip: 1, href: 1, url: 1, description: 1 });\nfunction isColorChannel(channel) {\n    return channel === COLOR || channel === FILL || channel === STROKE;\n}\nconst FACET_CHANNEL_INDEX = {\n    row: 1,\n    column: 1,\n    facet: 1\n};\nconst FACET_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(FACET_CHANNEL_INDEX);\nconst CHANNEL_INDEX = Object.assign(Object.assign({}, UNIT_CHANNEL_INDEX), FACET_CHANNEL_INDEX);\nconst CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(CHANNEL_INDEX);\nconst { order: _o, detail: _d, tooltip: _tt1 } = CHANNEL_INDEX, SINGLE_DEF_CHANNEL_INDEX = __rest(CHANNEL_INDEX, [\"order\", \"detail\", \"tooltip\"]);\nconst { row: _r, column: _c, facet: _f } = SINGLE_DEF_CHANNEL_INDEX, SINGLE_DEF_UNIT_CHANNEL_INDEX = __rest(SINGLE_DEF_CHANNEL_INDEX, [\"row\", \"column\", \"facet\"]);\n/**\n * Channels that cannot have an array of channelDef.\n * model.fieldDef, getFieldDef only work for these channels.\n *\n * (The only two channels that can have an array of channelDefs are \"detail\" and \"order\".\n * Since there can be multiple fieldDefs for detail and order, getFieldDef/model.fieldDef\n * are not applicable for them. Similarly, selection projection won't work with \"detail\" and \"order\".)\n */\nconst SINGLE_DEF_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(SINGLE_DEF_CHANNEL_INDEX);\nconst SINGLE_DEF_UNIT_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(SINGLE_DEF_UNIT_CHANNEL_INDEX);\nfunction isSingleDefUnitChannel(str) {\n    return !!SINGLE_DEF_UNIT_CHANNEL_INDEX[str];\n}\nfunction isChannel(str) {\n    return !!CHANNEL_INDEX[str];\n}\nconst SECONDARY_RANGE_CHANNEL = [X2, Y2, LATITUDE2, LONGITUDE2, THETA2, RADIUS2];\nfunction isSecondaryRangeChannel(c) {\n    const main = getMainRangeChannel(c);\n    return main !== c;\n}\n/**\n * Get the main channel for a range channel. E.g. `x` for `x2`.\n */\nfunction getMainRangeChannel(channel) {\n    switch (channel) {\n        case X2:\n            return X;\n        case Y2:\n            return Y;\n        case LATITUDE2:\n            return LATITUDE;\n        case LONGITUDE2:\n            return LONGITUDE;\n        case THETA2:\n            return THETA;\n        case RADIUS2:\n            return RADIUS;\n    }\n    return channel;\n}\nfunction getVgPositionChannel(channel) {\n    if (isPolarPositionChannel(channel)) {\n        switch (channel) {\n            case THETA:\n                return 'startAngle';\n            case THETA2:\n                return 'endAngle';\n            case RADIUS:\n                return 'outerRadius';\n            case RADIUS2:\n                return 'innerRadius';\n        }\n    }\n    return channel;\n}\n/**\n * Get the main channel for a range channel. E.g. `x` for `x2`.\n */\nfunction getSecondaryRangeChannel(channel) {\n    switch (channel) {\n        case X:\n            return X2;\n        case Y:\n            return Y2;\n        case LATITUDE:\n            return LATITUDE2;\n        case LONGITUDE:\n            return LONGITUDE2;\n        case THETA:\n            return THETA2;\n        case RADIUS:\n            return RADIUS2;\n    }\n    return undefined;\n}\nfunction getSizeChannel(channel) {\n    switch (channel) {\n        case X:\n        case X2:\n            return 'width';\n        case Y:\n        case Y2:\n            return 'height';\n    }\n    return undefined;\n}\n/**\n * Get the main channel for a range channel. E.g. `x` for `x2`.\n */\nfunction getOffsetChannel(channel) {\n    switch (channel) {\n        case X:\n            return 'xOffset';\n        case Y:\n            return 'yOffset';\n        case X2:\n            return 'x2Offset';\n        case Y2:\n            return 'y2Offset';\n        case THETA:\n            return 'thetaOffset';\n        case RADIUS:\n            return 'radiusOffset';\n        case THETA2:\n            return 'theta2Offset';\n        case RADIUS2:\n            return 'radius2Offset';\n    }\n    return undefined;\n}\n// CHANNELS without COLUMN, ROW\nconst UNIT_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(UNIT_CHANNEL_INDEX);\n// NONPOSITION_CHANNELS = UNIT_CHANNELS without X, Y, X2, Y2;\nconst { x: _x, y: _y, \n// x2 and y2 share the same scale as x and y\nx2: _x2, y2: _y2, latitude: _latitude, longitude: _longitude, latitude2: _latitude2, longitude2: _longitude2, theta: _theta, theta2: _theta2, radius: _radius, radius2: _radius2 } = UNIT_CHANNEL_INDEX, \n// The rest of unit channels then have scale\nNONPOSITION_CHANNEL_INDEX = __rest(UNIT_CHANNEL_INDEX, [\"x\", \"y\", \"x2\", \"y2\", \"latitude\", \"longitude\", \"latitude2\", \"longitude2\", \"theta\", \"theta2\", \"radius\", \"radius2\"]);\nconst NONPOSITION_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(NONPOSITION_CHANNEL_INDEX);\nconst POSITION_SCALE_CHANNEL_INDEX = {\n    x: 1,\n    y: 1\n};\nconst POSITION_SCALE_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(POSITION_SCALE_CHANNEL_INDEX);\nfunction isXorY(channel) {\n    return channel in POSITION_SCALE_CHANNEL_INDEX;\n}\nconst POLAR_POSITION_SCALE_CHANNEL_INDEX = {\n    theta: 1,\n    radius: 1\n};\nconst POLAR_POSITION_SCALE_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(POLAR_POSITION_SCALE_CHANNEL_INDEX);\nfunction getPositionScaleChannel(sizeType) {\n    return sizeType === 'width' ? X : Y;\n}\n// NON_POSITION_SCALE_CHANNEL = SCALE_CHANNELS without X, Y\nconst { \n// x2 and y2 share the same scale as x and y\n// text and tooltip have format instead of scale,\n// href has neither format, nor scale\ntext: _t, tooltip: _tt, href: _hr, url: _u, description: _al, \n// detail and order have no scale\ndetail: _dd, key: _k, order: _oo } = NONPOSITION_CHANNEL_INDEX, NONPOSITION_SCALE_CHANNEL_INDEX = __rest(NONPOSITION_CHANNEL_INDEX, [\"text\", \"tooltip\", \"href\", \"url\", \"description\", \"detail\", \"key\", \"order\"]);\nconst NONPOSITION_SCALE_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(NONPOSITION_SCALE_CHANNEL_INDEX);\nfunction isNonPositionScaleChannel(channel) {\n    return !!NONPOSITION_CHANNEL_INDEX[channel];\n}\n/**\n * @returns whether Vega supports legends for a particular channel\n */\nfunction supportLegend(channel) {\n    switch (channel) {\n        case COLOR:\n        case FILL:\n        case STROKE:\n        case SIZE:\n        case SHAPE:\n        case OPACITY:\n        case STROKEWIDTH:\n        case STROKEDASH:\n            return true;\n        case FILLOPACITY:\n        case STROKEOPACITY:\n        case ANGLE:\n            return false;\n    }\n}\n// Declare SCALE_CHANNEL_INDEX\nconst SCALE_CHANNEL_INDEX = Object.assign(Object.assign(Object.assign({}, POSITION_SCALE_CHANNEL_INDEX), POLAR_POSITION_SCALE_CHANNEL_INDEX), NONPOSITION_SCALE_CHANNEL_INDEX);\n/** List of channels with scales */\nconst SCALE_CHANNELS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(SCALE_CHANNEL_INDEX);\nfunction isScaleChannel(channel) {\n    return !!SCALE_CHANNEL_INDEX[channel];\n}\n/**\n * Return whether a channel supports a particular mark type.\n * @param channel  channel name\n * @param mark the mark type\n * @return whether the mark supports the channel\n */\nfunction supportMark(channel, mark) {\n    return getSupportedMark(channel)[mark];\n}\nconst ALL_MARKS = {\n    // all marks\n    arc: 'always',\n    area: 'always',\n    bar: 'always',\n    circle: 'always',\n    geoshape: 'always',\n    image: 'always',\n    line: 'always',\n    rule: 'always',\n    point: 'always',\n    rect: 'always',\n    square: 'always',\n    trail: 'always',\n    text: 'always',\n    tick: 'always'\n};\nconst { geoshape: _g } = ALL_MARKS, ALL_MARKS_EXCEPT_GEOSHAPE = __rest(ALL_MARKS, [\"geoshape\"]);\n/**\n * Return a dictionary showing whether a channel supports mark type.\n * @param channel\n * @return A dictionary mapping mark types to 'always', 'binned', or undefined\n */\nfunction getSupportedMark(channel) {\n    switch (channel) {\n        case COLOR:\n        case FILL:\n        case STROKE:\n        // falls through\n        case DESCRIPTION:\n        case DETAIL:\n        case KEY:\n        case TOOLTIP:\n        case HREF:\n        case ORDER: // TODO: revise (order might not support rect, which is not stackable?)\n        case OPACITY:\n        case FILLOPACITY:\n        case STROKEOPACITY:\n        case STROKEWIDTH:\n        // falls through\n        case FACET:\n        case ROW: // falls through\n        case COLUMN:\n            return ALL_MARKS;\n        case X:\n        case Y:\n        case LATITUDE:\n        case LONGITUDE:\n            // all marks except geoshape. geoshape does not use X, Y -- it uses a projection\n            return ALL_MARKS_EXCEPT_GEOSHAPE;\n        case X2:\n        case Y2:\n        case LATITUDE2:\n        case LONGITUDE2:\n            return {\n                area: 'always',\n                bar: 'always',\n                image: 'always',\n                rect: 'always',\n                rule: 'always',\n                circle: 'binned',\n                point: 'binned',\n                square: 'binned',\n                tick: 'binned',\n                line: 'binned',\n                trail: 'binned'\n            };\n        case SIZE:\n            return {\n                point: 'always',\n                tick: 'always',\n                rule: 'always',\n                circle: 'always',\n                square: 'always',\n                bar: 'always',\n                text: 'always',\n                line: 'always',\n                trail: 'always'\n            };\n        case STROKEDASH:\n            return {\n                line: 'always',\n                point: 'always',\n                tick: 'always',\n                rule: 'always',\n                circle: 'always',\n                square: 'always',\n                bar: 'always',\n                geoshape: 'always'\n            };\n        case SHAPE:\n            return { point: 'always', geoshape: 'always' };\n        case TEXT:\n            return { text: 'always' };\n        case ANGLE:\n            return { point: 'always', square: 'always', text: 'always' };\n        case URL:\n            return { image: 'always' };\n        case THETA:\n            return { text: 'always', arc: 'always' };\n        case RADIUS:\n            return { text: 'always', arc: 'always' };\n        case THETA2:\n        case RADIUS2:\n            return { arc: 'always' };\n    }\n}\nfunction rangeType(channel) {\n    switch (channel) {\n        case X:\n        case Y:\n        case THETA:\n        case RADIUS:\n        case SIZE:\n        case ANGLE:\n        case STROKEWIDTH:\n        case OPACITY:\n        case FILLOPACITY:\n        case STROKEOPACITY:\n        // X2 and Y2 use X and Y scales, so they similarly have continuous range. [falls through]\n        case X2:\n        case Y2:\n        case THETA2:\n        case RADIUS2:\n            return undefined;\n        case FACET:\n        case ROW:\n        case COLUMN:\n        case SHAPE:\n        case STROKEDASH:\n        // TEXT, TOOLTIP, URL, and HREF have no scale but have discrete output [falls through]\n        case TEXT:\n        case TOOLTIP:\n        case HREF:\n        case URL:\n        case DESCRIPTION:\n            return 'discrete';\n        // Color can be either continuous or discrete, depending on scale type.\n        case COLOR:\n        case FILL:\n        case STROKE:\n            return 'flexible';\n        // No scale, no range type.\n        case LATITUDE:\n        case LONGITUDE:\n        case LATITUDE2:\n        case LONGITUDE2:\n        case DETAIL:\n        case KEY:\n        case ORDER:\n            return undefined;\n    }\n}\n//# sourceMappingURL=channel.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/channel.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/channeldef.js":
/*!********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/channeldef.js ***!
  \********************************************************/
/*! exports provided: isConditionalSelection, isRepeatRef, toFieldDefBase, isSortableFieldDef, getBand, hasBand, isConditionalDef, hasConditionalFieldDef, hasConditionalFieldOrDatumDef, hasConditionalValueDef, isFieldDef, channelDefType, isDatumDef, isContinuousFieldOrDatumDef, isQuantitativeFieldOrDatumDef, isNumericDataDef, isFieldOrDatumDef, isTypedFieldDef, isValueDef, isScaleFieldDef, isPositionFieldOrDatumDef, isMarkPropFieldOrDatumDef, isStringFieldOrDatumDef, toStringFieldDef, vgField, isDiscrete, isContinuous, isCount, verbalTitleFormatter, functionalTitleFormatter, defaultTitleFormatter, setTitleFormatter, resetTitleFormatter, title, getGuide, defaultTitle, getFormatMixins, defaultType, getFieldDef, getFieldOrDatumDef, initChannelDef, initFieldOrDatumDef, initFieldDef, normalizeBin, channelCompatibility, isFieldOrDatumDefForTimeFormat, isTimeFieldDef, valueExpr, valueArray, binRequiresRange */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConditionalSelection\", function() { return isConditionalSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRepeatRef\", function() { return isRepeatRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toFieldDefBase\", function() { return toFieldDefBase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSortableFieldDef\", function() { return isSortableFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getBand\", function() { return getBand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasBand\", function() { return hasBand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConditionalDef\", function() { return isConditionalDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasConditionalFieldDef\", function() { return hasConditionalFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasConditionalFieldOrDatumDef\", function() { return hasConditionalFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasConditionalValueDef\", function() { return hasConditionalValueDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldDef\", function() { return isFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelDefType\", function() { return channelDefType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDatumDef\", function() { return isDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isContinuousFieldOrDatumDef\", function() { return isContinuousFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isQuantitativeFieldOrDatumDef\", function() { return isQuantitativeFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumericDataDef\", function() { return isNumericDataDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldOrDatumDef\", function() { return isFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTypedFieldDef\", function() { return isTypedFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isValueDef\", function() { return isValueDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isScaleFieldDef\", function() { return isScaleFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPositionFieldOrDatumDef\", function() { return isPositionFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMarkPropFieldOrDatumDef\", function() { return isMarkPropFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isStringFieldOrDatumDef\", function() { return isStringFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toStringFieldDef\", function() { return toStringFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vgField\", function() { return vgField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDiscrete\", function() { return isDiscrete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isContinuous\", function() { return isContinuous; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCount\", function() { return isCount; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"verbalTitleFormatter\", function() { return verbalTitleFormatter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"functionalTitleFormatter\", function() { return functionalTitleFormatter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTitleFormatter\", function() { return defaultTitleFormatter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setTitleFormatter\", function() { return setTitleFormatter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetTitleFormatter\", function() { return resetTitleFormatter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"title\", function() { return title; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getGuide\", function() { return getGuide; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTitle\", function() { return defaultTitle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFormatMixins\", function() { return getFormatMixins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultType\", function() { return defaultType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFieldDef\", function() { return getFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFieldOrDatumDef\", function() { return getFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initChannelDef\", function() { return initChannelDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initFieldOrDatumDef\", function() { return initFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initFieldDef\", function() { return initFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeBin\", function() { return normalizeBin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelCompatibility\", function() { return channelCompatibility; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldOrDatumDefForTimeFormat\", function() { return isFieldOrDatumDefForTimeFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTimeFieldDef\", function() { return isTimeFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueExpr\", function() { return valueExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueArray\", function() { return valueArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"binRequiresRange\", function() { return binRequiresRange; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _compile_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./compile/common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _compile_format__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./compile/format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./datetime */ \"./node_modules/vega-lite/build/src/datetime.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _spec_facet__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./spec/facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction isConditionalSelection(c) {\n    return c['selection'];\n}\nfunction isRepeatRef(field) {\n    return field && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(field) && 'repeat' in field;\n}\nfunction toFieldDefBase(fieldDef) {\n    const { field, timeUnit, bin, aggregate } = fieldDef;\n    return Object.assign(Object.assign(Object.assign(Object.assign({}, (timeUnit ? { timeUnit } : {})), (bin ? { bin } : {})), (aggregate ? { aggregate } : {})), { field });\n}\nfunction isSortableFieldDef(fieldDef) {\n    return 'sort' in fieldDef;\n}\nfunction getBand({ channel, fieldDef, fieldDef2, markDef: mark, stack, config, isMidPoint }) {\n    if (isFieldOrDatumDef(fieldDef) && fieldDef.band !== undefined) {\n        return fieldDef.band;\n    }\n    if (isFieldDef(fieldDef)) {\n        const { timeUnit, bin } = fieldDef;\n        if (timeUnit && !fieldDef2) {\n            if (isMidPoint) {\n                return Object(_compile_common__WEBPACK_IMPORTED_MODULE_4__[\"getMarkConfig\"])('timeUnitBandPosition', mark, config);\n            }\n            else {\n                return Object(_mark__WEBPACK_IMPORTED_MODULE_9__[\"isRectBasedMark\"])(mark.type) ? Object(_compile_common__WEBPACK_IMPORTED_MODULE_4__[\"getMarkConfig\"])('timeUnitBand', mark, config) : 0;\n            }\n        }\n        else if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin)) {\n            return Object(_mark__WEBPACK_IMPORTED_MODULE_9__[\"isRectBasedMark\"])(mark.type) && !isMidPoint ? 1 : 0.5;\n        }\n    }\n    if ((stack === null || stack === void 0 ? void 0 : stack.fieldChannel) === channel && isMidPoint) {\n        return 0.5;\n    }\n    return undefined;\n}\nfunction hasBand(channel, fieldDef, fieldDef2, stack, markDef, config) {\n    if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(fieldDef.bin) || (fieldDef.timeUnit && isTypedFieldDef(fieldDef) && fieldDef.type === 'temporal')) {\n        return !!getBand({ channel, fieldDef, fieldDef2, stack, markDef, config });\n    }\n    return false;\n}\nfunction isConditionalDef(channelDef) {\n    return !!channelDef && 'condition' in channelDef;\n}\n/**\n * Return if a channelDef is a ConditionalValueDef with ConditionFieldDef\n */\nfunction hasConditionalFieldDef(channelDef) {\n    const condition = channelDef && channelDef['condition'];\n    return !!condition && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(condition) && isFieldDef(condition);\n}\nfunction hasConditionalFieldOrDatumDef(channelDef) {\n    const condition = channelDef && channelDef['condition'];\n    return !!condition && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(condition) && isFieldOrDatumDef(condition);\n}\nfunction hasConditionalValueDef(channelDef) {\n    const condition = channelDef && channelDef['condition'];\n    return !!condition && (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(condition) || isValueDef(condition));\n}\nfunction isFieldDef(channelDef) {\n    // TODO: we can't use field in channelDef here as it's somehow failing runtime test\n    return !!channelDef && (!!channelDef['field'] || channelDef['aggregate'] === 'count');\n}\nfunction channelDefType(channelDef) {\n    return channelDef && channelDef['type'];\n}\nfunction isDatumDef(channelDef) {\n    return !!channelDef && 'datum' in channelDef;\n}\nfunction isContinuousFieldOrDatumDef(cd) {\n    // TODO: make datum support DateTime object\n    return (isTypedFieldDef(cd) && isContinuous(cd)) || isNumericDataDef(cd);\n}\nfunction isQuantitativeFieldOrDatumDef(cd) {\n    // TODO: make datum support DateTime object\n    return channelDefType(cd) === 'quantitative' || isNumericDataDef(cd);\n}\nfunction isNumericDataDef(cd) {\n    return isDatumDef(cd) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(cd.datum);\n}\nfunction isFieldOrDatumDef(channelDef) {\n    return isFieldDef(channelDef) || isDatumDef(channelDef);\n}\nfunction isTypedFieldDef(channelDef) {\n    return !!channelDef && ('field' in channelDef || channelDef['aggregate'] === 'count') && 'type' in channelDef;\n}\nfunction isValueDef(channelDef) {\n    return channelDef && 'value' in channelDef && 'value' in channelDef;\n}\nfunction isScaleFieldDef(channelDef) {\n    return !!channelDef && ('scale' in channelDef || 'sort' in channelDef);\n}\nfunction isPositionFieldOrDatumDef(channelDef) {\n    return channelDef && ('axis' in channelDef || 'stack' in channelDef || 'impute' in channelDef);\n}\nfunction isMarkPropFieldOrDatumDef(channelDef) {\n    return !!channelDef && 'legend' in channelDef;\n}\nfunction isStringFieldOrDatumDef(channelDef) {\n    return !!channelDef && ('format' in channelDef || 'formatType' in channelDef);\n}\nfunction toStringFieldDef(fieldDef) {\n    // omit properties that don't exist in string field defs\n    return Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"omit\"])(fieldDef, ['legend', 'axis', 'header', 'scale']);\n}\nfunction isOpFieldDef(fieldDef) {\n    return 'op' in fieldDef;\n}\n/**\n * Get a Vega field reference from a Vega-Lite field def.\n */\nfunction vgField(fieldDef, opt = {}) {\n    var _a, _b, _c;\n    let field = fieldDef.field;\n    const prefix = opt.prefix;\n    let suffix = opt.suffix;\n    let argAccessor = ''; // for accessing argmin/argmax field at the end without getting escaped\n    if (isCount(fieldDef)) {\n        field = Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"internalField\"])('count');\n    }\n    else {\n        let fn;\n        if (!opt.nofn) {\n            if (isOpFieldDef(fieldDef)) {\n                fn = fieldDef.op;\n            }\n            else {\n                const { bin, aggregate, timeUnit } = fieldDef;\n                if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin)) {\n                    fn = Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"binToString\"])(bin);\n                    suffix = ((_a = opt.binSuffix) !== null && _a !== void 0 ? _a : '') + ((_b = opt.suffix) !== null && _b !== void 0 ? _b : '');\n                }\n                else if (aggregate) {\n                    if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggregate)) {\n                        argAccessor = `[\"${field}\"]`;\n                        field = `argmax_${aggregate.argmax}`;\n                    }\n                    else if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggregate)) {\n                        argAccessor = `[\"${field}\"]`;\n                        field = `argmin_${aggregate.argmin}`;\n                    }\n                    else {\n                        fn = String(aggregate);\n                    }\n                }\n                else if (timeUnit) {\n                    fn = Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"timeUnitToString\"])(timeUnit);\n                    suffix = ((!Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"contains\"])(['range', 'mid'], opt.binSuffix) && opt.binSuffix) || '') + ((_c = opt.suffix) !== null && _c !== void 0 ? _c : '');\n                }\n            }\n        }\n        if (fn) {\n            field = field ? `${fn}_${field}` : fn;\n        }\n    }\n    if (suffix) {\n        field = `${field}_${suffix}`;\n    }\n    if (prefix) {\n        field = `${prefix}_${field}`;\n    }\n    if (opt.forAs) {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"removePathFromField\"])(field);\n    }\n    else if (opt.expr) {\n        // Expression to access flattened field. No need to escape dots.\n        return Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"flatAccessWithDatum\"])(field, opt.expr) + argAccessor;\n    }\n    else {\n        // We flattened all fields so paths should have become dot.\n        return Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"replacePathInField\"])(field) + argAccessor;\n    }\n}\nfunction isDiscrete(def) {\n    switch (def.type) {\n        case 'nominal':\n        case 'ordinal':\n        case 'geojson':\n            return true;\n        case 'quantitative':\n            return isFieldDef(def) && !!def.bin;\n        case 'temporal':\n            return false;\n    }\n    throw new Error(_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].invalidFieldType(def.type));\n}\nfunction isContinuous(fieldDef) {\n    return !isDiscrete(fieldDef);\n}\nfunction isCount(fieldDef) {\n    return fieldDef.aggregate === 'count';\n}\nfunction verbalTitleFormatter(fieldDef, config) {\n    var _a;\n    const { field, bin, timeUnit, aggregate } = fieldDef;\n    if (aggregate === 'count') {\n        return config.countTitle;\n    }\n    else if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin)) {\n        return `${field} (binned)`;\n    }\n    else if (timeUnit) {\n        const unit = (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"normalizeTimeUnit\"])(timeUnit)) === null || _a === void 0 ? void 0 : _a.unit;\n        if (unit) {\n            return `${field} (${Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"getTimeUnitParts\"])(unit).join('-')})`;\n        }\n    }\n    else if (aggregate) {\n        if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggregate)) {\n            return `${field} for max ${aggregate.argmax}`;\n        }\n        else if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggregate)) {\n            return `${field} for min ${aggregate.argmin}`;\n        }\n        else {\n            return `${Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"titleCase\"])(aggregate)} of ${field}`;\n        }\n    }\n    return field;\n}\nfunction functionalTitleFormatter(fieldDef) {\n    const { aggregate, bin, timeUnit, field } = fieldDef;\n    if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggregate)) {\n        return `${field} for argmax(${aggregate.argmax})`;\n    }\n    else if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggregate)) {\n        return `${field} for argmin(${aggregate.argmin})`;\n    }\n    const timeUnitParams = Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"normalizeTimeUnit\"])(timeUnit);\n    const fn = aggregate || (timeUnitParams === null || timeUnitParams === void 0 ? void 0 : timeUnitParams.unit) || ((timeUnitParams === null || timeUnitParams === void 0 ? void 0 : timeUnitParams.maxbins) && 'timeunit') || (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin) && 'bin');\n    if (fn) {\n        return fn.toUpperCase() + '(' + field + ')';\n    }\n    else {\n        return field;\n    }\n}\nconst defaultTitleFormatter = (fieldDef, config) => {\n    switch (config.fieldTitle) {\n        case 'plain':\n            return fieldDef.field;\n        case 'functional':\n            return functionalTitleFormatter(fieldDef);\n        default:\n            return verbalTitleFormatter(fieldDef, config);\n    }\n};\nlet titleFormatter = defaultTitleFormatter;\nfunction setTitleFormatter(formatter) {\n    titleFormatter = formatter;\n}\nfunction resetTitleFormatter() {\n    setTitleFormatter(defaultTitleFormatter);\n}\nfunction title(fieldOrDatumDef, config, { allowDisabling, includeDefault = true }) {\n    var _a, _b;\n    const guideTitle = (_a = getGuide(fieldOrDatumDef)) === null || _a === void 0 ? void 0 : _a.title;\n    if (!isFieldDef(fieldOrDatumDef)) {\n        return guideTitle;\n    }\n    const fieldDef = fieldOrDatumDef;\n    const def = includeDefault ? defaultTitle(fieldDef, config) : undefined;\n    if (allowDisabling) {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"getFirstDefined\"])(guideTitle, fieldDef.title, def);\n    }\n    else {\n        return (_b = guideTitle !== null && guideTitle !== void 0 ? guideTitle : fieldDef.title) !== null && _b !== void 0 ? _b : def;\n    }\n}\nfunction getGuide(fieldDef) {\n    if (isPositionFieldOrDatumDef(fieldDef) && fieldDef.axis) {\n        return fieldDef.axis;\n    }\n    else if (isMarkPropFieldOrDatumDef(fieldDef) && fieldDef.legend) {\n        return fieldDef.legend;\n    }\n    else if (Object(_spec_facet__WEBPACK_IMPORTED_MODULE_12__[\"isFacetFieldDef\"])(fieldDef) && fieldDef.header) {\n        return fieldDef.header;\n    }\n    return undefined;\n}\nfunction defaultTitle(fieldDef, config) {\n    return titleFormatter(fieldDef, config);\n}\nfunction getFormatMixins(fieldDef) {\n    var _a;\n    if (isStringFieldOrDatumDef(fieldDef)) {\n        const { format, formatType } = fieldDef;\n        return { format, formatType };\n    }\n    else {\n        const guide = (_a = getGuide(fieldDef)) !== null && _a !== void 0 ? _a : {};\n        const { format, formatType } = guide;\n        return { format, formatType };\n    }\n}\nfunction defaultType(fieldDef, channel) {\n    var _a;\n    switch (channel) {\n        case 'latitude':\n        case 'longitude':\n            return 'quantitative';\n        case 'row':\n        case 'column':\n        case 'facet':\n        case 'shape':\n        case 'strokeDash':\n            return 'nominal';\n        case 'order':\n            return 'ordinal';\n    }\n    if (isSortableFieldDef(fieldDef) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(fieldDef.sort)) {\n        return 'ordinal';\n    }\n    const { aggregate, bin, timeUnit } = fieldDef;\n    if (timeUnit) {\n        return 'temporal';\n    }\n    if (bin || (aggregate && !Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggregate) && !Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggregate))) {\n        return 'quantitative';\n    }\n    if (isScaleFieldDef(fieldDef) && ((_a = fieldDef.scale) === null || _a === void 0 ? void 0 : _a.type)) {\n        switch (_scale__WEBPACK_IMPORTED_MODULE_10__[\"SCALE_CATEGORY_INDEX\"][fieldDef.scale.type]) {\n            case 'numeric':\n            case 'discretizing':\n                return 'quantitative';\n            case 'time':\n                return 'temporal';\n        }\n    }\n    return 'nominal';\n}\n/**\n * Returns the fieldDef -- either from the outer channelDef or from the condition of channelDef.\n * @param channelDef\n */\nfunction getFieldDef(channelDef) {\n    if (isFieldDef(channelDef)) {\n        return channelDef;\n    }\n    else if (hasConditionalFieldDef(channelDef)) {\n        return channelDef.condition;\n    }\n    return undefined;\n}\nfunction getFieldOrDatumDef(channelDef) {\n    if (isFieldOrDatumDef(channelDef)) {\n        return channelDef;\n    }\n    else if (hasConditionalFieldOrDatumDef(channelDef)) {\n        return channelDef.condition;\n    }\n    return undefined;\n}\n/**\n * Convert type to full, lowercase type, or augment the fieldDef with a default type if missing.\n */\nfunction initChannelDef(channelDef, channel, config, opt = {}) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(channelDef) || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(channelDef) || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"])(channelDef)) {\n        const primitiveType = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(channelDef) ? 'string' : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(channelDef) ? 'number' : 'boolean';\n        _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].primitiveChannelDef(channel, primitiveType, channelDef));\n        return { value: channelDef };\n    }\n    // If a fieldDef contains a field, we need type.\n    if (isFieldOrDatumDef(channelDef)) {\n        return initFieldOrDatumDef(channelDef, channel, config, opt);\n    }\n    else if (hasConditionalFieldOrDatumDef(channelDef)) {\n        return Object.assign(Object.assign({}, channelDef), { \n            // Need to cast as normalizeFieldDef normally return FieldDef, but here we know that it is definitely Condition<FieldDef>\n            condition: initFieldOrDatumDef(channelDef.condition, channel, config, opt) });\n    }\n    return channelDef;\n}\nfunction initFieldOrDatumDef(fd, channel, config, opt) {\n    if (isStringFieldOrDatumDef(fd)) {\n        const { format, formatType } = fd, rest = __rest(fd, [\"format\", \"formatType\"]);\n        if (Object(_compile_format__WEBPACK_IMPORTED_MODULE_5__[\"isCustomFormatType\"])(formatType) && !config.customFormatTypes) {\n            _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].customFormatTypeNotAllowed(channel));\n            return initFieldOrDatumDef(rest, channel, config, opt);\n        }\n    }\n    else {\n        const guideType = isPositionFieldOrDatumDef(fd)\n            ? 'axis'\n            : isMarkPropFieldOrDatumDef(fd)\n                ? 'legend'\n                : Object(_spec_facet__WEBPACK_IMPORTED_MODULE_12__[\"isFacetFieldDef\"])(fd)\n                    ? 'header'\n                    : null;\n        if (guideType && fd[guideType]) {\n            const _a = fd[guideType], { format, formatType } = _a, newGuide = __rest(_a, [\"format\", \"formatType\"]);\n            if (Object(_compile_format__WEBPACK_IMPORTED_MODULE_5__[\"isCustomFormatType\"])(formatType) && !config.customFormatTypes) {\n                _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].customFormatTypeNotAllowed(channel));\n                return initFieldOrDatumDef(Object.assign(Object.assign({}, fd), { [guideType]: newGuide }), channel, config, opt);\n            }\n        }\n    }\n    if (isFieldDef(fd)) {\n        return initFieldDef(fd, channel, opt);\n    }\n    return initDatumDef(fd);\n}\nfunction initDatumDef(datumDef) {\n    let type = datumDef['type'];\n    if (type) {\n        return datumDef;\n    }\n    const { datum } = datumDef;\n    type = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(datum) ? 'quantitative' : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(datum) ? 'nominal' : Object(_datetime__WEBPACK_IMPORTED_MODULE_6__[\"isDateTime\"])(datum) ? 'temporal' : undefined;\n    return Object.assign(Object.assign({}, datumDef), { type });\n}\nfunction initFieldDef(fd, channel, { compositeMark = false } = {}) {\n    const { aggregate, timeUnit, bin, field } = fd;\n    const fieldDef = Object.assign({}, fd);\n    // Drop invalid aggregate\n    if (!compositeMark && aggregate && !Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isAggregateOp\"])(aggregate) && !Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggregate) && !Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggregate)) {\n        _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].invalidAggregate(aggregate));\n        delete fieldDef.aggregate;\n    }\n    // Normalize Time Unit\n    if (timeUnit) {\n        fieldDef.timeUnit = Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"normalizeTimeUnit\"])(timeUnit);\n    }\n    if (field) {\n        fieldDef.field = `${field}`;\n    }\n    // Normalize bin\n    if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin)) {\n        fieldDef.bin = normalizeBin(bin, channel);\n    }\n    if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinned\"])(bin) && !Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isXorY\"])(channel)) {\n        _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].channelShouldNotBeUsedForBinned(channel));\n    }\n    // Normalize Type\n    if (isTypedFieldDef(fieldDef)) {\n        const { type } = fieldDef;\n        const fullType = Object(_type__WEBPACK_IMPORTED_MODULE_14__[\"getFullName\"])(type);\n        if (type !== fullType) {\n            // convert short type to full type\n            fieldDef.type = fullType;\n        }\n        if (type !== 'quantitative') {\n            if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isCountingAggregateOp\"])(aggregate)) {\n                _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].invalidFieldTypeForCountAggregate(type, aggregate));\n                fieldDef.type = 'quantitative';\n            }\n        }\n    }\n    else if (!Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isSecondaryRangeChannel\"])(channel)) {\n        // If type is empty / invalid, then augment with default type\n        const newType = defaultType(fieldDef, channel);\n        fieldDef['type'] = newType;\n    }\n    if (isTypedFieldDef(fieldDef)) {\n        const { compatible, warning } = channelCompatibility(fieldDef, channel) || {};\n        if (compatible === false) {\n            _log__WEBPACK_IMPORTED_MODULE_8__[\"warn\"](warning);\n        }\n    }\n    if (isSortableFieldDef(fieldDef) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(fieldDef.sort)) {\n        const { sort } = fieldDef;\n        if (Object(_sort__WEBPACK_IMPORTED_MODULE_11__[\"isSortByChannel\"])(sort)) {\n            return Object.assign(Object.assign({}, fieldDef), { sort: { encoding: sort } });\n        }\n        const sub = sort.substr(1);\n        if (sort.charAt(0) === '-' && Object(_sort__WEBPACK_IMPORTED_MODULE_11__[\"isSortByChannel\"])(sub)) {\n            return Object.assign(Object.assign({}, fieldDef), { sort: { encoding: sub, order: 'descending' } });\n        }\n    }\n    if (Object(_spec_facet__WEBPACK_IMPORTED_MODULE_12__[\"isFacetFieldDef\"])(fieldDef)) {\n        const { header } = fieldDef;\n        const { orient } = header, rest = __rest(header, [\"orient\"]);\n        if (orient) {\n            return Object.assign(Object.assign({}, fieldDef), { header: Object.assign(Object.assign({}, rest), { labelOrient: header.labelOrient || orient, titleOrient: header.titleOrient || orient }) });\n        }\n    }\n    return fieldDef;\n}\nfunction normalizeBin(bin, channel) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"])(bin)) {\n        return { maxbins: Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"autoMaxBins\"])(channel) };\n    }\n    else if (bin === 'binned') {\n        return {\n            binned: true\n        };\n    }\n    else if (!bin.maxbins && !bin.step) {\n        return Object.assign(Object.assign({}, bin), { maxbins: Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"autoMaxBins\"])(channel) });\n    }\n    else {\n        return bin;\n    }\n}\nconst COMPATIBLE = { compatible: true };\nfunction channelCompatibility(fieldDef, channel) {\n    const type = fieldDef.type;\n    if (type === 'geojson' && channel !== 'shape') {\n        return {\n            compatible: false,\n            warning: `Channel ${channel} should not be used with a geojson data.`\n        };\n    }\n    switch (channel) {\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"ROW\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"COLUMN\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"FACET\"]:\n            if (isContinuous(fieldDef)) {\n                return {\n                    compatible: false,\n                    warning: _log__WEBPACK_IMPORTED_MODULE_8__[\"message\"].facetChannelShouldBeDiscrete(channel)\n                };\n            }\n            return COMPATIBLE;\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"X\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"Y\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"COLOR\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"FILL\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"TEXT\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"DETAIL\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"KEY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"TOOLTIP\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"HREF\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"URL\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"ANGLE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"THETA\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"RADIUS\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"DESCRIPTION\"]:\n            return COMPATIBLE;\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LONGITUDE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LONGITUDE2\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LATITUDE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LATITUDE2\"]:\n            if (type !== _type__WEBPACK_IMPORTED_MODULE_14__[\"QUANTITATIVE\"]) {\n                return {\n                    compatible: false,\n                    warning: `Channel ${channel} should be used with a quantitative field only, not ${fieldDef.type} field.`\n                };\n            }\n            return COMPATIBLE;\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"OPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"FILLOPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKEOPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKEWIDTH\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"SIZE\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"THETA2\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"RADIUS2\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"X2\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"Y2\"]:\n            if (type === 'nominal' && !fieldDef['sort']) {\n                return {\n                    compatible: false,\n                    warning: `Channel ${channel} should not be used with an unsorted discrete field.`\n                };\n            }\n            return COMPATIBLE;\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKEDASH\"]:\n            if (!Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"contains\"])(['ordinal', 'nominal'], fieldDef.type)) {\n                return {\n                    compatible: false,\n                    warning: 'StrokeDash channel should be used with only discrete data.'\n                };\n            }\n            return COMPATIBLE;\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"SHAPE\"]:\n            if (!Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"contains\"])(['ordinal', 'nominal', 'geojson'], fieldDef.type)) {\n                return {\n                    compatible: false,\n                    warning: 'Shape channel should be used with only either discrete or geojson data.'\n                };\n            }\n            return COMPATIBLE;\n        case _channel__WEBPACK_IMPORTED_MODULE_3__[\"ORDER\"]:\n            if (fieldDef.type === 'nominal' && !('sort' in fieldDef)) {\n                return {\n                    compatible: false,\n                    warning: `Channel order is inappropriate for nominal field, which has no inherent order.`\n                };\n            }\n            return COMPATIBLE;\n    }\n}\n/**\n * Check if the field def uses a time format or does not use any format but is temporal\n * (this does not cover field defs that are temporal but use a number format).\n */\nfunction isFieldOrDatumDefForTimeFormat(fieldOrDatumDef) {\n    const { formatType } = getFormatMixins(fieldOrDatumDef);\n    return formatType === 'time' || (!formatType && isTimeFieldDef(fieldOrDatumDef));\n}\n/**\n * Check if field def has type `temporal`. If you want to also cover field defs that use a time format, use `isTimeFormatFieldDef`.\n */\nfunction isTimeFieldDef(def) {\n    return def && (def['type'] === 'temporal' || (isFieldDef(def) && !!def.timeUnit));\n}\n/**\n * Getting a value associated with a fielddef.\n * Convert the value to Vega expression if applicable (for datetime object, or string if the field def is temporal or has timeUnit)\n */\nfunction valueExpr(v, { timeUnit, type, wrapTime, undefinedIfExprNotRequired }) {\n    var _a;\n    const unit = timeUnit && ((_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"normalizeTimeUnit\"])(timeUnit)) === null || _a === void 0 ? void 0 : _a.unit);\n    let isTime = unit || type === 'temporal';\n    let expr;\n    if (Object(_expr__WEBPACK_IMPORTED_MODULE_7__[\"isExprRef\"])(v)) {\n        expr = v.expr;\n    }\n    else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_16__[\"isSignalRef\"])(v)) {\n        expr = v.signal;\n    }\n    else if (Object(_datetime__WEBPACK_IMPORTED_MODULE_6__[\"isDateTime\"])(v)) {\n        isTime = true;\n        expr = Object(_datetime__WEBPACK_IMPORTED_MODULE_6__[\"dateTimeToExpr\"])(v);\n    }\n    else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(v) || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(v)) {\n        if (isTime) {\n            expr = `datetime(${JSON.stringify(v)})`;\n            if (Object(_timeunit__WEBPACK_IMPORTED_MODULE_13__[\"isLocalSingleTimeUnit\"])(unit)) {\n                // for single timeUnit, we will use dateTimeToExpr to convert number/string to match the timeUnit\n                if ((Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(v) && v < 10000) || (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(v) && isNaN(Date.parse(v)))) {\n                    expr = Object(_datetime__WEBPACK_IMPORTED_MODULE_6__[\"dateTimeToExpr\"])({ [unit]: v });\n                }\n            }\n        }\n    }\n    if (expr) {\n        return wrapTime && isTime ? `time(${expr})` : expr;\n    }\n    // number or boolean or normal string\n    return undefinedIfExprNotRequired ? undefined : JSON.stringify(v);\n}\n/**\n * Standardize value array -- convert each value to Vega expression if applicable\n */\nfunction valueArray(fieldOrDatumDef, values) {\n    const { type } = fieldOrDatumDef;\n    return values.map(v => {\n        const expr = valueExpr(v, {\n            timeUnit: isFieldDef(fieldOrDatumDef) ? fieldOrDatumDef.timeUnit : undefined,\n            type,\n            undefinedIfExprNotRequired: true\n        });\n        // return signal for the expression if we need an expression\n        if (expr !== undefined) {\n            return { signal: expr };\n        }\n        // otherwise just return the original value\n        return v;\n    });\n}\n/**\n * Checks whether a fieldDef for a particular channel requires a computed bin range.\n */\nfunction binRequiresRange(fieldDef, channel) {\n    if (!Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(fieldDef.bin)) {\n        console.warn('Only call this method for binned field defs.');\n        return false;\n    }\n    // We need the range only when the user explicitly forces a binned field to be use discrete scale. In this case, bin range is used in axis and legend labels.\n    // We could check whether the axis or legend exists (not disabled) but that seems overkill.\n    return Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isScaleChannel\"])(channel) && Object(_util__WEBPACK_IMPORTED_MODULE_15__[\"contains\"])(['ordinal', 'nominal'], fieldDef.type);\n}\n//# sourceMappingURL=channeldef.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/channeldef.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/axis/assemble.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/axis/assemble.js ***!
  \*******************************************************************/
/*! exports provided: assembleAxis, assembleAxisSignals, assembleAxes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleAxis\", function() { return assembleAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleAxisSignals\", function() { return assembleAxisSignals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleAxes\", function() { return assembleAxes; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../axis */ \"./node_modules/vega-lite/build/src/axis.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../title */ \"./node_modules/vega-lite/build/src/title.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../predicate */ \"./node_modules/vega-lite/build/src/compile/predicate.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\nfunction assembleTitle(title, config) {\n    if (!title) {\n        return undefined;\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(title) && !Object(_title__WEBPACK_IMPORTED_MODULE_4__[\"isText\"])(title)) {\n        return title.map(fieldDef => Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"defaultTitle\"])(fieldDef, config)).join(', ');\n    }\n    return title;\n}\nfunction setAxisEncode(axis, part, vgProp, vgRef) {\n    var _a, _b, _c;\n    axis.encode = (_a = axis.encode) !== null && _a !== void 0 ? _a : {};\n    axis.encode[part] = (_b = axis.encode[part]) !== null && _b !== void 0 ? _b : {};\n    axis.encode[part].update = (_c = axis.encode[part].update) !== null && _c !== void 0 ? _c : {};\n    // TODO: remove as any after https://github.com/prisma/nexus-prisma/issues/291\n    axis.encode[part].update[vgProp] = vgRef;\n}\nfunction assembleAxis(axisCmpt, kind, config, opt = { header: false }) {\n    var _a, _b;\n    const _c = axisCmpt.combine(), { disable, orient, scale, labelExpr, title, zindex } = _c, axis = __rest(_c, [\"disable\", \"orient\", \"scale\", \"labelExpr\", \"title\", \"zindex\"]);\n    if (disable) {\n        return undefined;\n    }\n    for (const prop in axis) {\n        const propType = _axis__WEBPACK_IMPORTED_MODULE_1__[\"AXIS_PROPERTY_TYPE\"][prop];\n        const propValue = axis[prop];\n        if (propType && propType !== kind && propType !== 'both') {\n            // Remove properties that are not valid for this kind of axis\n            delete axis[prop];\n        }\n        else if (Object(_axis__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalAxisValue\"])(propValue)) {\n            // deal with conditional axis value\n            const { condition } = propValue, valueOrSignalRef = __rest(propValue, [\"condition\"]);\n            const conditions = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(condition);\n            const propIndex = _axis__WEBPACK_IMPORTED_MODULE_1__[\"CONDITIONAL_AXIS_PROP_INDEX\"][prop];\n            if (propIndex) {\n                const { vgProp, part } = propIndex;\n                // If there is a corresponding Vega property for the channel,\n                // use Vega's custom axis encoding and delete the original axis property to avoid conflicts\n                const vgRef = [\n                    ...conditions.map(c => {\n                        const { test } = c, valueOrSignalCRef = __rest(c, [\"test\"]);\n                        return Object.assign({ test: Object(_predicate__WEBPACK_IMPORTED_MODULE_8__[\"expression\"])(null, test) }, valueOrSignalCRef);\n                    }),\n                    valueOrSignalRef\n                ];\n                setAxisEncode(axis, part, vgProp, vgRef);\n                delete axis[prop];\n            }\n            else if (propIndex === null) {\n                // If propIndex is null, this means we support conditional axis property by converting the condition to signal instead.\n                const signalRef = {\n                    signal: conditions\n                        .map(c => {\n                        const { test } = c, valueOrSignalCRef = __rest(c, [\"test\"]);\n                        return `${Object(_predicate__WEBPACK_IMPORTED_MODULE_8__[\"expression\"])(null, test)} ? ${Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"exprFromValueOrSignalRef\"])(valueOrSignalCRef)} : `;\n                    })\n                        .join('') + Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"exprFromValueOrSignalRef\"])(valueOrSignalRef)\n                };\n                axis[prop] = signalRef;\n            }\n        }\n        else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_6__[\"isSignalRef\"])(propValue)) {\n            const propIndex = _axis__WEBPACK_IMPORTED_MODULE_1__[\"CONDITIONAL_AXIS_PROP_INDEX\"][prop];\n            if (propIndex) {\n                const { vgProp, part } = propIndex;\n                setAxisEncode(axis, part, vgProp, propValue);\n                delete axis[prop];\n            } // else do nothing since the property already supports signal\n        }\n    }\n    if (kind === 'grid') {\n        if (!axis.grid) {\n            return undefined;\n        }\n        // Remove unnecessary encode block\n        if (axis.encode) {\n            // Only need to keep encode block for grid\n            const { grid } = axis.encode;\n            axis.encode = Object.assign({}, (grid ? { grid } : {}));\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"isEmpty\"])(axis.encode)) {\n                delete axis.encode;\n            }\n        }\n        return Object.assign(Object.assign({ scale,\n            orient }, axis), { domain: false, labels: false, aria: false, \n            // Always set min/maxExtent to 0 to ensure that `config.axis*.minExtent` and `config.axis*.maxExtent`\n            // would not affect gridAxis\n            maxExtent: 0, minExtent: 0, ticks: false, zindex: Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"getFirstDefined\"])(zindex, 0) // put grid behind marks by default\n         });\n    }\n    else {\n        // kind === 'main'\n        if (!opt.header && axisCmpt.mainExtracted) {\n            // if mainExtracted has been extracted to a separate facet\n            return undefined;\n        }\n        if (labelExpr !== undefined) {\n            let expr = labelExpr;\n            if (((_b = (_a = axis.encode) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b.update) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_6__[\"isSignalRef\"])(axis.encode.labels.update.text)) {\n                expr = Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"replaceAll\"])(labelExpr, 'datum.label', axis.encode.labels.update.text.signal);\n            }\n            setAxisEncode(axis, 'labels', 'text', { signal: expr });\n        }\n        if (axis.labelAlign === null) {\n            delete axis.labelAlign;\n        }\n        // Remove unnecessary encode block\n        if (axis.encode) {\n            for (const part of _axis__WEBPACK_IMPORTED_MODULE_1__[\"AXIS_PARTS\"]) {\n                if (!axisCmpt.hasAxisPart(part)) {\n                    delete axis.encode[part];\n                }\n            }\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"isEmpty\"])(axis.encode)) {\n                delete axis.encode;\n            }\n        }\n        const titleString = assembleTitle(title, config);\n        return Object.assign(Object.assign(Object.assign(Object.assign({ scale,\n            orient, grid: false }, (titleString ? { title: titleString } : {})), axis), (config.aria === false ? { aria: false } : {})), { zindex: Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"getFirstDefined\"])(zindex, 0) // put axis line above marks by default\n         });\n    }\n}\n/**\n * Add axis signals so grid line works correctly\n * (Fix https://github.com/vega/vega-lite/issues/4226)\n */\nfunction assembleAxisSignals(model) {\n    const { axes } = model.component;\n    const signals = [];\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNELS\"]) {\n        if (axes[channel]) {\n            for (const axis of axes[channel]) {\n                if (!axis.get('disable') && !axis.get('gridScale')) {\n                    // If there is x-axis but no y-scale for gridScale, need to set height/width so x-axis can draw the grid with the right height. Same for y-axis and width.\n                    const sizeType = channel === 'x' ? 'height' : 'width';\n                    const update = model.getSizeSignalRef(sizeType).signal;\n                    if (sizeType !== update) {\n                        signals.push({\n                            name: sizeType,\n                            update: update\n                        });\n                    }\n                }\n            }\n        }\n    }\n    return signals;\n}\nfunction assembleAxes(axisComponents, config) {\n    const { x = [], y = [] } = axisComponents;\n    return [\n        ...x.map(a => assembleAxis(a, 'grid', config)),\n        ...y.map(a => assembleAxis(a, 'grid', config)),\n        ...x.map(a => assembleAxis(a, 'main', config)),\n        ...y.map(a => assembleAxis(a, 'main', config))\n    ].filter(a => a); // filter undefined\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/axis/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/axis/component.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/axis/component.js ***!
  \********************************************************************/
/*! exports provided: AXIS_COMPONENT_PROPERTIES, AxisComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AXIS_COMPONENT_PROPERTIES\", function() { return AXIS_COMPONENT_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisComponent\", function() { return AxisComponent; });\n/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../axis */ \"./node_modules/vega-lite/build/src/axis.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n\n\n\n\nfunction isFalseOrNull(v) {\n    return v === false || v === null;\n}\nconst AXIS_COMPONENT_PROPERTIES_INDEX = Object.assign(Object.assign({ disable: 1, gridScale: 1, scale: 1 }, _axis__WEBPACK_IMPORTED_MODULE_0__[\"COMMON_AXIS_PROPERTIES_INDEX\"]), { labelExpr: 1, encode: 1 });\nconst AXIS_COMPONENT_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(AXIS_COMPONENT_PROPERTIES_INDEX);\nclass AxisComponent extends _split__WEBPACK_IMPORTED_MODULE_3__[\"Split\"] {\n    constructor(explicit = {}, implicit = {}, mainExtracted = false) {\n        super();\n        this.explicit = explicit;\n        this.implicit = implicit;\n        this.mainExtracted = mainExtracted;\n    }\n    clone() {\n        return new AxisComponent(Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"duplicate\"])(this.explicit), Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"duplicate\"])(this.implicit), this.mainExtracted);\n    }\n    hasAxisPart(part) {\n        // FIXME(https://github.com/vega/vega-lite/issues/2552) this method can be wrong if users use a Vega theme.\n        if (part === 'axis') {\n            // always has the axis container part\n            return true;\n        }\n        if (part === 'grid' || part === 'title') {\n            return !!this.get(part);\n        }\n        // Other parts are enabled by default, so they should not be false or null.\n        return !isFalseOrNull(this.get(part));\n    }\n    hasOrientSignalRef() {\n        return Object(_vega_schema__WEBPACK_IMPORTED_MODULE_2__[\"isSignalRef\"])(this.explicit.orient);\n    }\n}\n//# sourceMappingURL=component.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/axis/component.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/axis/config.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/axis/config.js ***!
  \*****************************************************************/
/*! exports provided: getAxisConfigs, getAxisConfigStyle, getAxisConfig */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAxisConfigs\", function() { return getAxisConfigs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAxisConfigStyle\", function() { return getAxisConfigStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAxisConfig\", function() { return getAxisConfig; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n\n\n\n\n\nfunction getAxisConfigFromConfigTypes(configTypes, config, channel, orient) {\n    // TODO: add special casing to add conditional value based on orient signal\n    return Object.assign.apply(null, [\n        {},\n        ...configTypes.map(configType => {\n            if (configType === 'axisOrient') {\n                const orient1 = channel === 'x' ? 'bottom' : 'left';\n                const orientConfig1 = config[channel === 'x' ? 'axisBottom' : 'axisLeft'] || {};\n                const orientConfig2 = config[channel === 'x' ? 'axisTop' : 'axisRight'] || {};\n                const props = new Set([...Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"keys\"])(orientConfig1), ...Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"keys\"])(orientConfig2)]);\n                const conditionalOrientAxisConfig = {};\n                for (const prop of props.values()) {\n                    conditionalOrientAxisConfig[prop] = {\n                        // orient is surely signal in this case\n                        signal: `${orient['signal']} === \"${orient1}\" ? ${Object(_common__WEBPACK_IMPORTED_MODULE_4__[\"signalOrStringValue\"])(orientConfig1[prop])} : ${Object(_common__WEBPACK_IMPORTED_MODULE_4__[\"signalOrStringValue\"])(orientConfig2[prop])}`\n                    };\n                }\n                return conditionalOrientAxisConfig;\n            }\n            return config[configType];\n        })\n    ]);\n}\nfunction getAxisConfigs(channel, scaleType, orient, config) {\n    const typeBasedConfigTypes = scaleType === 'band'\n        ? ['axisDiscrete', 'axisBand']\n        : scaleType === 'point'\n            ? ['axisDiscrete', 'axisPoint']\n            : Object(_scale__WEBPACK_IMPORTED_MODULE_1__[\"isQuantitative\"])(scaleType)\n                ? ['axisQuantitative']\n                : scaleType === 'time' || scaleType === 'utc'\n                    ? ['axisTemporal']\n                    : [];\n    const axisChannel = channel === 'x' ? 'axisX' : 'axisY';\n    const axisOrient = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isSignalRef\"])(orient) ? 'axisOrient' : 'axis' + Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"titleCase\"])(orient); // axisTop, axisBottom, ...\n    const vlOnlyConfigTypes = [\n        // technically Vega does have axisBand, but if we make another separation here,\n        // it will further introduce complexity in the code\n        ...typeBasedConfigTypes,\n        ...typeBasedConfigTypes.map(c => axisChannel + c.substr(4))\n    ];\n    const vgConfigTypes = ['axis', axisOrient, axisChannel];\n    return {\n        vlOnlyAxisConfig: getAxisConfigFromConfigTypes(vlOnlyConfigTypes, config, channel, orient),\n        vgAxisConfig: getAxisConfigFromConfigTypes(vgConfigTypes, config, channel, orient),\n        axisConfigStyle: getAxisConfigStyle([...vgConfigTypes, ...vlOnlyConfigTypes], config)\n    };\n}\nfunction getAxisConfigStyle(axisConfigTypes, config) {\n    var _a;\n    const toMerge = [{}];\n    for (const configType of axisConfigTypes) {\n        // TODO: add special casing to add conditional value based on orient signal\n        let style = (_a = config[configType]) === null || _a === void 0 ? void 0 : _a.style;\n        if (style) {\n            style = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(style);\n            for (const s of style) {\n                toMerge.push(config.style[s]);\n            }\n        }\n    }\n    return Object.assign.apply(null, toMerge);\n}\nfunction getAxisConfig(property, styleConfigIndex, style, axisConfigs = {}) {\n    var _a;\n    const styleConfig = Object(_common__WEBPACK_IMPORTED_MODULE_4__[\"getStyleConfig\"])(property, style, styleConfigIndex);\n    if (styleConfig !== undefined) {\n        return {\n            configFrom: 'style',\n            configValue: styleConfig\n        };\n    }\n    for (const configFrom of ['vlOnlyAxisConfig', 'vgAxisConfig', 'axisConfigStyle']) {\n        if (((_a = axisConfigs[configFrom]) === null || _a === void 0 ? void 0 : _a[property]) !== undefined) {\n            return { configFrom, configValue: axisConfigs[configFrom][property] };\n        }\n    }\n    return {};\n}\n//# sourceMappingURL=config.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/axis/config.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/axis/encode.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/axis/encode.js ***!
  \*****************************************************************/
/*! exports provided: labels */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labels\", function() { return labels; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n\n\n\nfunction labels(model, channel, specifiedLabelsSpec) {\n    var _a;\n    const { encoding, config } = model;\n    const fieldOrDatumDef = (_a = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldOrDatumDef\"])(encoding[channel])) !== null && _a !== void 0 ? _a : Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldOrDatumDef\"])(encoding[Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSecondaryRangeChannel\"])(channel)]);\n    const axis = model.axis(channel) || {};\n    const { format, formatType } = axis;\n    if (Object(_format__WEBPACK_IMPORTED_MODULE_2__[\"isCustomFormatType\"])(formatType)) {\n        return Object.assign({ text: Object(_format__WEBPACK_IMPORTED_MODULE_2__[\"formatCustomType\"])({\n                fieldOrDatumDef,\n                field: 'datum.value',\n                format,\n                formatType,\n                config\n            }) }, specifiedLabelsSpec);\n    }\n    return specifiedLabelsSpec;\n}\n//# sourceMappingURL=encode.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/axis/encode.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/axis/parse.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/axis/parse.js ***!
  \****************************************************************/
/*! exports provided: parseUnitAxes, parseLayerAxes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseUnitAxes\", function() { return parseUnitAxes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseLayerAxes\", function() { return parseLayerAxes; });\n/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../axis */ \"./node_modules/vega-lite/build/src/axis.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _guide__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../guide */ \"./node_modules/vega-lite/build/src/compile/guide.js\");\n/* harmony import */ var _resolve__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../resolve */ \"./node_modules/vega-lite/build/src/compile/resolve.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./component */ \"./node_modules/vega-lite/build/src/compile/axis/component.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./config */ \"./node_modules/vega-lite/build/src/compile/axis/config.js\");\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/axis/encode.js\");\n/* harmony import */ var _properties__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./properties */ \"./node_modules/vega-lite/build/src/compile/axis/properties.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction parseUnitAxes(model) {\n    return _channel__WEBPACK_IMPORTED_MODULE_1__[\"POSITION_SCALE_CHANNELS\"].reduce((axis, channel) => {\n        if (model.component.scales[channel]) {\n            axis[channel] = [parseAxis(channel, model)];\n        }\n        return axis;\n    }, {});\n}\nconst OPPOSITE_ORIENT = {\n    bottom: 'top',\n    top: 'bottom',\n    left: 'right',\n    right: 'left'\n};\nfunction parseLayerAxes(model) {\n    var _a;\n    const { axes, resolve } = model.component;\n    const axisCount = { top: 0, bottom: 0, right: 0, left: 0 };\n    for (const child of model.children) {\n        child.parseAxesAndHeaders();\n        for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(child.component.axes)) {\n            resolve.axis[channel] = Object(_resolve__WEBPACK_IMPORTED_MODULE_7__[\"parseGuideResolve\"])(model.component.resolve, channel);\n            if (resolve.axis[channel] === 'shared') {\n                // If the resolve says shared (and has not been overridden)\n                // We will try to merge and see if there is a conflict\n                axes[channel] = mergeAxisComponents(axes[channel], child.component.axes[channel]);\n                if (!axes[channel]) {\n                    // If merge returns nothing, there is a conflict so we cannot make the axis shared.\n                    // Thus, mark axis as independent and remove the axis component.\n                    resolve.axis[channel] = 'independent';\n                    delete axes[channel];\n                }\n            }\n        }\n    }\n    // Move axes to layer's axis component and merge shared axes\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_1__[\"POSITION_SCALE_CHANNELS\"]) {\n        for (const child of model.children) {\n            if (!child.component.axes[channel]) {\n                // skip if the child does not have a particular axis\n                continue;\n            }\n            if (resolve.axis[channel] === 'independent') {\n                // If axes are independent, concat the axisComponent array.\n                axes[channel] = ((_a = axes[channel]) !== null && _a !== void 0 ? _a : []).concat(child.component.axes[channel]);\n                // Automatically adjust orient\n                for (const axisComponent of child.component.axes[channel]) {\n                    const { value: orient, explicit } = axisComponent.getWithExplicit('orient');\n                    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_4__[\"isSignalRef\"])(orient)) {\n                        continue;\n                    }\n                    if (axisCount[orient] > 0 && !explicit) {\n                        // Change axis orient if the number do not match\n                        const oppositeOrient = OPPOSITE_ORIENT[orient];\n                        if (axisCount[orient] > axisCount[oppositeOrient]) {\n                            axisComponent.set('orient', oppositeOrient, false);\n                        }\n                    }\n                    axisCount[orient]++;\n                    // TODO(https://github.com/vega/vega-lite/issues/2634): automatically add extra offset?\n                }\n            }\n            // After merging, make sure to remove axes from child\n            delete child.component.axes[channel];\n        }\n        // Suppress grid lines for dual axis charts (https://github.com/vega/vega-lite/issues/4676)\n        if (resolve.axis[channel] === 'independent' && axes[channel] && axes[channel].length > 1) {\n            for (const axisCmpt of axes[channel]) {\n                if (!!axisCmpt.get('grid') && !axisCmpt.explicit.grid) {\n                    axisCmpt.implicit.grid = false;\n                }\n            }\n        }\n    }\n}\nfunction mergeAxisComponents(mergedAxisCmpts, childAxisCmpts) {\n    if (mergedAxisCmpts) {\n        // FIXME: this is a bit wrong once we support multiple axes\n        if (mergedAxisCmpts.length !== childAxisCmpts.length) {\n            return undefined; // Cannot merge axis component with different number of axes.\n        }\n        const length = mergedAxisCmpts.length;\n        for (let i = 0; i < length; i++) {\n            const merged = mergedAxisCmpts[i];\n            const child = childAxisCmpts[i];\n            if (!!merged !== !!child) {\n                return undefined;\n            }\n            else if (merged && child) {\n                const mergedOrient = merged.getWithExplicit('orient');\n                const childOrient = child.getWithExplicit('orient');\n                if (mergedOrient.explicit && childOrient.explicit && mergedOrient.value !== childOrient.value) {\n                    // TODO: throw warning if resolve is explicit (We don't have info about explicit/implicit resolve yet.)\n                    // Cannot merge due to inconsistent orient\n                    return undefined;\n                }\n                else {\n                    mergedAxisCmpts[i] = mergeAxisComponent(merged, child);\n                }\n            }\n        }\n    }\n    else {\n        // For first one, return a copy of the child\n        return childAxisCmpts.map(axisComponent => axisComponent.clone());\n    }\n    return mergedAxisCmpts;\n}\nfunction mergeAxisComponent(merged, child) {\n    for (const prop of _component__WEBPACK_IMPORTED_MODULE_9__[\"AXIS_COMPONENT_PROPERTIES\"]) {\n        const mergedValueWithExplicit = Object(_split__WEBPACK_IMPORTED_MODULE_8__[\"mergeValuesWithExplicit\"])(merged.getWithExplicit(prop), child.getWithExplicit(prop), prop, 'axis', \n        // Tie breaker function\n        (v1, v2) => {\n            switch (prop) {\n                case 'title':\n                    return Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"mergeTitleComponent\"])(v1, v2);\n                case 'gridScale':\n                    return {\n                        explicit: v1.explicit,\n                        value: Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"getFirstDefined\"])(v1.value, v2.value)\n                    };\n            }\n            return Object(_split__WEBPACK_IMPORTED_MODULE_8__[\"defaultTieBreaker\"])(v1, v2, prop, 'axis');\n        });\n        merged.setWithExplicit(prop, mergedValueWithExplicit);\n    }\n    return merged;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isExplicit(value, property, axis, model, channel) {\n    if (property === 'disable') {\n        return axis !== undefined; // if axis is specified or null/false, then it's enable/disable state is explicit\n    }\n    axis = axis || {};\n    switch (property) {\n        case 'titleAngle':\n        case 'labelAngle':\n            return value === (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_4__[\"isSignalRef\"])(axis.labelAngle) ? axis.labelAngle : Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"normalizeAngle\"])(axis.labelAngle));\n        case 'values':\n            return !!axis.values;\n        // specified axis.values is already respected, but may get transformed.\n        case 'encode':\n            // both VL axis.encoding and axis.labelAngle affect VG axis.encode\n            return !!axis.encoding || !!axis.labelAngle;\n        case 'title':\n            // title can be explicit if fieldDef.title is set\n            if (value === Object(_properties__WEBPACK_IMPORTED_MODULE_12__[\"getFieldDefTitle\"])(model, channel)) {\n                return true;\n            }\n    }\n    // Otherwise, things are explicit if the returned value matches the specified property\n    return value === axis[property];\n}\n/**\n * Properties to always include values from config\n */\nconst propsToAlwaysIncludeConfig = new Set([\n    'grid',\n    'translate',\n    // the rest are not axis configs in Vega, but are in VL, so we need to set too.\n    'format',\n    'formatType',\n    'orient',\n    'labelExpr',\n    'tickCount',\n    'position',\n    'tickMinStep'\n]);\nfunction parseAxis(channel, model) {\n    var _a, _b, _c;\n    let axis = model.axis(channel);\n    const axisComponent = new _component__WEBPACK_IMPORTED_MODULE_9__[\"AxisComponent\"]();\n    const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"getFieldOrDatumDef\"])(model.encoding[channel]);\n    const { mark, config } = model;\n    const orient = (axis === null || axis === void 0 ? void 0 : axis.orient) || ((_a = config[channel === 'x' ? 'axisX' : 'axisY']) === null || _a === void 0 ? void 0 : _a.orient) || ((_b = config.axis) === null || _b === void 0 ? void 0 : _b.orient) ||\n        Object(_properties__WEBPACK_IMPORTED_MODULE_12__[\"defaultOrient\"])(channel);\n    const scaleType = model.getScaleComponent(channel).get('type');\n    const axisConfigs = Object(_config__WEBPACK_IMPORTED_MODULE_10__[\"getAxisConfigs\"])(channel, scaleType, orient, model.config);\n    const disable = axis !== undefined ? !axis : Object(_config__WEBPACK_IMPORTED_MODULE_10__[\"getAxisConfig\"])('disable', config.style, axis === null || axis === void 0 ? void 0 : axis.style, axisConfigs).configValue;\n    axisComponent.set('disable', disable, axis !== undefined);\n    if (disable) {\n        return axisComponent;\n    }\n    axis = axis || {};\n    const labelAngle = Object(_properties__WEBPACK_IMPORTED_MODULE_12__[\"getLabelAngle\"])(fieldOrDatumDef, axis, channel, config.style, axisConfigs);\n    const ruleParams = {\n        fieldOrDatumDef,\n        axis,\n        channel,\n        model,\n        scaleType,\n        orient,\n        labelAngle,\n        mark,\n        config\n    };\n    // 1.2. Add properties\n    for (const property of _component__WEBPACK_IMPORTED_MODULE_9__[\"AXIS_COMPONENT_PROPERTIES\"]) {\n        const value = property in _properties__WEBPACK_IMPORTED_MODULE_12__[\"axisRules\"] ? _properties__WEBPACK_IMPORTED_MODULE_12__[\"axisRules\"][property](ruleParams) : Object(_axis__WEBPACK_IMPORTED_MODULE_0__[\"isAxisProperty\"])(property) ? axis[property] : undefined;\n        const hasValue = value !== undefined;\n        const explicit = isExplicit(value, property, axis, model, channel);\n        if (hasValue && explicit) {\n            axisComponent.set(property, value, explicit);\n        }\n        else {\n            const { configValue = undefined, configFrom = undefined } = Object(_axis__WEBPACK_IMPORTED_MODULE_0__[\"isAxisProperty\"])(property) && property !== 'values'\n                ? Object(_config__WEBPACK_IMPORTED_MODULE_10__[\"getAxisConfig\"])(property, config.style, axis.style, axisConfigs)\n                : {};\n            const hasConfigValue = configValue !== undefined;\n            if (hasValue && !hasConfigValue) {\n                // only set property if it is explicitly set or has no config value (otherwise we will accidentally override config)\n                axisComponent.set(property, value, explicit);\n            }\n            else if (\n            // Cases need implicit values\n            // 1. Axis config that aren't available in Vega\n            !(configFrom === 'vgAxisConfig') ||\n                // 2. Certain properties are always included (see `propsToAlwaysIncludeConfig`'s declaration for more details)\n                (propsToAlwaysIncludeConfig.has(property) && hasConfigValue) ||\n                // 3. Conditional axis values and signals\n                Object(_axis__WEBPACK_IMPORTED_MODULE_0__[\"isConditionalAxisValue\"])(configValue) ||\n                Object(_vega_schema__WEBPACK_IMPORTED_MODULE_4__[\"isSignalRef\"])(configValue)) {\n                // If a config is specified and is conditional, copy conditional value from axis config\n                axisComponent.set(property, configValue, false);\n            }\n        }\n    }\n    // 2) Add guide encode definition groups\n    const axisEncoding = (_c = axis.encoding) !== null && _c !== void 0 ? _c : {};\n    const axisEncode = _axis__WEBPACK_IMPORTED_MODULE_0__[\"AXIS_PARTS\"].reduce((e, part) => {\n        var _a;\n        if (!axisComponent.hasAxisPart(part)) {\n            // No need to create encode for a disabled part.\n            return e;\n        }\n        const axisEncodingPart = Object(_guide__WEBPACK_IMPORTED_MODULE_6__[\"guideEncodeEntry\"])((_a = axisEncoding[part]) !== null && _a !== void 0 ? _a : {}, model);\n        const value = part === 'labels' ? _encode__WEBPACK_IMPORTED_MODULE_11__[\"labels\"](model, channel, axisEncodingPart) : axisEncodingPart;\n        if (value !== undefined && !Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isEmpty\"])(value)) {\n            e[part] = { update: value };\n        }\n        return e;\n    }, {});\n    // FIXME: By having encode as one property, we won't have fine grained encode merging.\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isEmpty\"])(axisEncode)) {\n        axisComponent.set('encode', axisEncode, !!axis.encoding || axis.labelAngle !== undefined);\n    }\n    return axisComponent;\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/axis/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/axis/properties.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/axis/properties.js ***!
  \*********************************************************************/
/*! exports provided: axisRules, defaultGrid, gridScale, getLabelAngle, normalizeAngleExpr, defaultLabelBaseline, defaultLabelAlign, defaultLabelFlush, defaultLabelOverlap, defaultOrient, defaultTickCount, getFieldDefTitle, values, defaultZindex */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"axisRules\", function() { return axisRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultGrid\", function() { return defaultGrid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gridScale\", function() { return gridScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLabelAngle\", function() { return getLabelAngle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeAngleExpr\", function() { return normalizeAngleExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLabelBaseline\", function() { return defaultLabelBaseline; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLabelAlign\", function() { return defaultLabelAlign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLabelFlush\", function() { return defaultLabelFlush; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLabelOverlap\", function() { return defaultLabelOverlap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultOrient\", function() { return defaultOrient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTickCount\", function() { return defaultTickCount; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFieldDefTitle\", function() { return getFieldDefTitle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultZindex\", function() { return defaultZindex; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./config */ \"./node_modules/vega-lite/build/src/compile/axis/config.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst axisRules = {\n    scale: ({ model, channel }) => model.scaleName(channel),\n    format: ({ fieldOrDatumDef, config, axis }) => {\n        const { format, formatType } = axis;\n        return Object(_format__WEBPACK_IMPORTED_MODULE_10__[\"guideFormat\"])(fieldOrDatumDef, fieldOrDatumDef.type, format, formatType, config, true);\n    },\n    formatType: ({ axis, fieldOrDatumDef, scaleType }) => {\n        const { formatType } = axis;\n        return Object(_format__WEBPACK_IMPORTED_MODULE_10__[\"guideFormatType\"])(formatType, fieldOrDatumDef, scaleType);\n    },\n    grid: ({ fieldOrDatumDef, axis, scaleType }) => {\n        var _a;\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) && Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinned\"])(fieldOrDatumDef.bin)) {\n            return false;\n        }\n        else {\n            return (_a = axis.grid) !== null && _a !== void 0 ? _a : defaultGrid(scaleType, fieldOrDatumDef);\n        }\n    },\n    gridScale: ({ model, channel }) => gridScale(model, channel),\n    labelAlign: ({ axis, labelAngle, orient, channel }) => axis.labelAlign || defaultLabelAlign(labelAngle, orient, channel),\n    labelAngle: ({ labelAngle }) => labelAngle,\n    labelBaseline: ({ axis, labelAngle, orient, channel }) => axis.labelBaseline || defaultLabelBaseline(labelAngle, orient, channel),\n    labelFlush: ({ axis, fieldOrDatumDef, channel }) => { var _a; return (_a = axis.labelFlush) !== null && _a !== void 0 ? _a : defaultLabelFlush(fieldOrDatumDef.type, channel); },\n    labelOverlap: ({ axis, fieldOrDatumDef, scaleType }) => { var _a; return (_a = axis.labelOverlap) !== null && _a !== void 0 ? _a : defaultLabelOverlap(fieldOrDatumDef.type, scaleType, Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) && !!fieldOrDatumDef.timeUnit, Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) ? fieldOrDatumDef.sort : undefined); },\n    // we already calculate orient in parse\n    orient: ({ orient }) => orient,\n    tickCount: ({ channel, model, axis, fieldOrDatumDef, scaleType }) => {\n        var _a;\n        const sizeType = channel === 'x' ? 'width' : channel === 'y' ? 'height' : undefined;\n        const size = sizeType ? model.getSizeSignalRef(sizeType) : undefined;\n        return (_a = axis.tickCount) !== null && _a !== void 0 ? _a : defaultTickCount({ fieldOrDatumDef, scaleType, size, values: axis.values });\n    },\n    title: ({ axis, model, channel }) => {\n        if (axis.title !== undefined) {\n            return axis.title;\n        }\n        const fieldDefTitle = getFieldDefTitle(model, channel);\n        if (fieldDefTitle !== undefined) {\n            return fieldDefTitle;\n        }\n        const fieldDef = model.typedFieldDef(channel);\n        const channel2 = channel === 'x' ? 'x2' : 'y2';\n        const fieldDef2 = model.fieldDef(channel2);\n        // If title not specified, store base parts of fieldDef (and fieldDef2 if exists)\n        return Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"mergeTitleFieldDefs\"])(fieldDef ? [Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"toFieldDefBase\"])(fieldDef)] : [], Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldDef2) ? [Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"toFieldDefBase\"])(fieldDef2)] : []);\n    },\n    values: ({ axis, fieldOrDatumDef }) => values(axis, fieldOrDatumDef),\n    zindex: ({ axis, fieldOrDatumDef, mark }) => { var _a; return (_a = axis.zindex) !== null && _a !== void 0 ? _a : defaultZindex(mark, fieldOrDatumDef); }\n};\n// TODO: we need to refactor this method after we take care of config refactoring\n/**\n * Default rules for whether to show a grid should be shown for a channel.\n * If `grid` is unspecified, the default value is `true` for ordinal scales that are not binned\n */\nfunction defaultGrid(scaleType, fieldDef) {\n    return !Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"hasDiscreteDomain\"])(scaleType) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldDef) && !Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.bin);\n}\nfunction gridScale(model, channel) {\n    const gridChannel = channel === 'x' ? 'y' : 'x';\n    if (model.getScaleComponent(gridChannel)) {\n        return model.scaleName(gridChannel);\n    }\n    return undefined;\n}\nfunction getLabelAngle(fieldOrDatumDef, axis, channel, styleConfig, axisConfigs) {\n    const labelAngle = axis === null || axis === void 0 ? void 0 : axis.labelAngle;\n    // try axis value\n    if (labelAngle !== undefined) {\n        return Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(labelAngle) ? labelAngle : Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"normalizeAngle\"])(labelAngle);\n    }\n    else {\n        // try axis config value\n        const { configValue: angle } = Object(_config__WEBPACK_IMPORTED_MODULE_11__[\"getAxisConfig\"])('labelAngle', styleConfig, axis === null || axis === void 0 ? void 0 : axis.style, axisConfigs);\n        if (angle !== undefined) {\n            return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"normalizeAngle\"])(angle);\n        }\n        else {\n            // get default value\n            if (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] &&\n                Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"])([_type__WEBPACK_IMPORTED_MODULE_6__[\"NOMINAL\"], _type__WEBPACK_IMPORTED_MODULE_6__[\"ORDINAL\"]], fieldOrDatumDef.type) &&\n                !(Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) && fieldOrDatumDef.timeUnit)) {\n                return 270;\n            }\n            // no default\n            return undefined;\n        }\n    }\n}\nfunction normalizeAngleExpr(angle) {\n    return `(((${angle.signal} % 360) + 360) % 360)`;\n}\nfunction defaultLabelBaseline(angle, orient, channel, alwaysIncludeMiddle) {\n    if (angle !== undefined) {\n        if (channel === 'x') {\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(angle)) {\n                const a = normalizeAngleExpr(angle);\n                const orientIsTop = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(orient) ? `(${orient.signal} === \"top\")` : orient === 'top';\n                return {\n                    signal: `(45 < ${a} && ${a} < 135) || (225 < ${a} && ${a} < 315) ? \"middle\" :` +\n                        `(${a} <= 45 || 315 <= ${a}) === ${orientIsTop} ? \"bottom\" : \"top\"`\n                };\n            }\n            if ((45 < angle && angle < 135) || (225 < angle && angle < 315)) {\n                return 'middle';\n            }\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(orient)) {\n                const op = angle <= 45 || 315 <= angle ? '===' : '!==';\n                return { signal: `${orient.signal} ${op} \"top\" ? \"bottom\" : \"top\"` };\n            }\n            return (angle <= 45 || 315 <= angle) === (orient === 'top') ? 'bottom' : 'top';\n        }\n        else {\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(angle)) {\n                const a = normalizeAngleExpr(angle);\n                const orientIsLeft = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(orient) ? `(${orient.signal} === \"left\")` : orient === 'left';\n                const middle = alwaysIncludeMiddle ? '\"middle\"' : 'null';\n                return {\n                    signal: `${a} <= 45 || 315 <= ${a} || (135 <= ${a} && ${a} <= 225) ? ${middle} : (45 <= ${a} && ${a} <= 135) === ${orientIsLeft} ? \"top\" : \"bottom\"`\n                };\n            }\n            if (angle <= 45 || 315 <= angle || (135 <= angle && angle <= 225)) {\n                return alwaysIncludeMiddle ? 'middle' : null;\n            }\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(orient)) {\n                const op = 45 <= angle && angle <= 135 ? '===' : '!==';\n                return { signal: `${orient.signal} ${op} \"left\" ? \"top\" : \"bottom\"` };\n            }\n            return (45 <= angle && angle <= 135) === (orient === 'left') ? 'top' : 'bottom';\n        }\n    }\n    return undefined;\n}\nfunction defaultLabelAlign(angle, orient, channel) {\n    if (angle === undefined) {\n        return undefined;\n    }\n    const isX = channel === 'x';\n    const startAngle = isX ? 0 : 90;\n    const mainOrient = isX ? 'bottom' : 'left';\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(angle)) {\n        const a = normalizeAngleExpr(angle);\n        const orientIsMain = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(orient) ? `(${orient.signal} === \"${mainOrient}\")` : orient === mainOrient;\n        return {\n            signal: `(${startAngle ? '(' + a + ' + 90)' : a} % 180 === 0) ? ${isX ? null : '\"center\"'} :` +\n                `(${startAngle} < ${a} && ${a} < ${180 + startAngle}) === ${orientIsMain} ? \"left\" : \"right\"`\n        };\n    }\n    if ((angle + startAngle) % 180 === 0) {\n        // For bottom, use default label align so label flush still works\n        return isX ? null : 'center';\n    }\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(orient)) {\n        const op = startAngle < angle && angle < 180 + startAngle ? '===' : '!==';\n        const orientIsMain = `${orient.signal} ${op} \"${mainOrient}\"`;\n        return {\n            signal: `${orientIsMain} ? \"left\" : \"right\"`\n        };\n    }\n    if ((startAngle < angle && angle < 180 + startAngle) === (orient === mainOrient)) {\n        return 'left';\n    }\n    return 'right';\n}\nfunction defaultLabelFlush(type, channel) {\n    if (channel === 'x' && Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"])(['quantitative', 'temporal'], type)) {\n        return true;\n    }\n    return undefined;\n}\nfunction defaultLabelOverlap(type, scaleType, hasTimeUnit, sort) {\n    // do not prevent overlap for nominal data because there is no way to infer what the missing labels are\n    if ((hasTimeUnit && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(sort)) || (type !== 'nominal' && type !== 'ordinal')) {\n        if (scaleType === 'log') {\n            return 'greedy';\n        }\n        return true;\n    }\n    return undefined;\n}\nfunction defaultOrient(channel) {\n    return channel === 'x' ? 'bottom' : 'left';\n}\nfunction defaultTickCount({ fieldOrDatumDef, scaleType, size, values: vals }) {\n    var _a;\n    if (!vals && !Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"hasDiscreteDomain\"])(scaleType) && scaleType !== 'log') {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef)) {\n            if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldOrDatumDef.bin)) {\n                // for binned data, we don't want more ticks than maxbins\n                return { signal: `ceil(${size.signal}/10)` };\n            }\n            if (fieldOrDatumDef.timeUnit &&\n                Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"])(['month', 'hours', 'day', 'quarter'], (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"normalizeTimeUnit\"])(fieldOrDatumDef.timeUnit)) === null || _a === void 0 ? void 0 : _a.unit)) {\n                return undefined;\n            }\n        }\n        return { signal: `ceil(${size.signal}/40)` };\n    }\n    return undefined;\n}\nfunction getFieldDefTitle(model, channel) {\n    const channel2 = channel === 'x' ? 'x2' : 'y2';\n    const fieldDef = model.fieldDef(channel);\n    const fieldDef2 = model.fieldDef(channel2);\n    const title1 = fieldDef ? fieldDef.title : undefined;\n    const title2 = fieldDef2 ? fieldDef2.title : undefined;\n    if (title1 && title2) {\n        return Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"mergeTitle\"])(title1, title2);\n    }\n    else if (title1) {\n        return title1;\n    }\n    else if (title2) {\n        return title2;\n    }\n    else if (title1 !== undefined) {\n        // falsy value to disable config\n        return title1;\n    }\n    else if (title2 !== undefined) {\n        // falsy value to disable config\n        return title2;\n    }\n    return undefined;\n}\nfunction values(axis, fieldOrDatumDef) {\n    const vals = axis.values;\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(vals)) {\n        return Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"valueArray\"])(fieldOrDatumDef, vals);\n    }\n    else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(vals)) {\n        return vals;\n    }\n    return undefined;\n}\nfunction defaultZindex(mark, fieldDef) {\n    if (mark === 'rect' && Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isDiscrete\"])(fieldDef)) {\n        return 1;\n    }\n    return 0;\n}\n//# sourceMappingURL=properties.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/axis/properties.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/buildmodel.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/buildmodel.js ***!
  \****************************************************************/
/*! exports provided: buildModel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"buildModel\", function() { return buildModel; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../spec */ \"./node_modules/vega-lite/build/src/spec/index.js\");\n/* harmony import */ var _concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./concat */ \"./node_modules/vega-lite/build/src/compile/concat.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/compile/facet.js\");\n/* harmony import */ var _layer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./layer */ \"./node_modules/vega-lite/build/src/compile/layer.js\");\n/* harmony import */ var _unit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./unit */ \"./node_modules/vega-lite/build/src/compile/unit.js\");\n\n\n\n\n\n\nfunction buildModel(spec, parent, parentGivenName, unitSize, config) {\n    if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isFacetSpec\"])(spec)) {\n        return new _facet__WEBPACK_IMPORTED_MODULE_3__[\"FacetModel\"](spec, parent, parentGivenName, config);\n    }\n    else if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isLayerSpec\"])(spec)) {\n        return new _layer__WEBPACK_IMPORTED_MODULE_4__[\"LayerModel\"](spec, parent, parentGivenName, unitSize, config);\n    }\n    else if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isUnitSpec\"])(spec)) {\n        return new _unit__WEBPACK_IMPORTED_MODULE_5__[\"UnitModel\"](spec, parent, parentGivenName, unitSize, config);\n    }\n    else if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isAnyConcatSpec\"])(spec)) {\n        return new _concat__WEBPACK_IMPORTED_MODULE_2__[\"ConcatModel\"](spec, parent, parentGivenName, config);\n    }\n    throw new Error(_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].invalidSpec(spec));\n}\n//# sourceMappingURL=buildmodel.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/buildmodel.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/common.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/common.js ***!
  \************************************************************/
/*! exports provided: BIN_RANGE_DELIMITER, signalOrValueRefWithCondition, signalRefOrValue, conditionalSignalRefOrValue, signalOrValueRef, exprFromValueOrSignalRef, signalOrStringValue, applyMarkConfig, getStyles, getMarkPropOrConfig, getMarkConfig, getMarkStyleConfig, getStyleConfig, sortParams, mergeTitleFieldDefs, mergeTitle, mergeTitleComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BIN_RANGE_DELIMITER\", function() { return BIN_RANGE_DELIMITER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"signalOrValueRefWithCondition\", function() { return signalOrValueRefWithCondition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"signalRefOrValue\", function() { return signalRefOrValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"conditionalSignalRefOrValue\", function() { return conditionalSignalRefOrValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"signalOrValueRef\", function() { return signalOrValueRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"exprFromValueOrSignalRef\", function() { return exprFromValueOrSignalRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"signalOrStringValue\", function() { return signalOrStringValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyMarkConfig\", function() { return applyMarkConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getStyles\", function() { return getStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMarkPropOrConfig\", function() { return getMarkPropOrConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMarkConfig\", function() { return getMarkConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMarkStyleConfig\", function() { return getMarkStyleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getStyleConfig\", function() { return getStyleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sortParams\", function() { return sortParams; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeTitleFieldDefs\", function() { return mergeTitleFieldDefs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeTitle\", function() { return mergeTitle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeTitleComponent\", function() { return mergeTitleComponent; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../title */ \"./node_modules/vega-lite/build/src/title.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\nconst BIN_RANGE_DELIMITER = ' \\u2013 ';\nfunction signalOrValueRefWithCondition(val) {\n    const condition = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(val.condition)\n        ? val.condition.map(conditionalSignalRefOrValue)\n        : conditionalSignalRefOrValue(val.condition);\n    return Object.assign(Object.assign({}, signalRefOrValue(val)), { condition });\n}\nfunction signalRefOrValue(value) {\n    if (Object(_expr__WEBPACK_IMPORTED_MODULE_2__[\"isExprRef\"])(value)) {\n        const { expr } = value, rest = __rest(value, [\"expr\"]);\n        return Object.assign({ signal: expr }, rest);\n    }\n    return value;\n}\nfunction conditionalSignalRefOrValue(value) {\n    if (Object(_expr__WEBPACK_IMPORTED_MODULE_2__[\"isExprRef\"])(value)) {\n        const { expr } = value, rest = __rest(value, [\"expr\"]);\n        return Object.assign({ signal: expr }, rest);\n    }\n    return value;\n}\nfunction signalOrValueRef(value) {\n    if (Object(_expr__WEBPACK_IMPORTED_MODULE_2__[\"isExprRef\"])(value)) {\n        const { expr } = value, rest = __rest(value, [\"expr\"]);\n        return Object.assign({ signal: expr }, rest);\n    }\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(value)) {\n        return value;\n    }\n    return value !== undefined ? { value } : undefined;\n}\nfunction exprFromValueOrSignalRef(ref) {\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(ref)) {\n        return ref.signal;\n    }\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(ref.value);\n}\nfunction signalOrStringValue(v) {\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v)) {\n        return v.signal;\n    }\n    return v == null ? null : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(v);\n}\nfunction applyMarkConfig(e, model, propsList) {\n    for (const property of propsList) {\n        const value = getMarkConfig(property, model.markDef, model.config);\n        if (value !== undefined) {\n            e[property] = signalOrValueRef(value);\n        }\n    }\n    return e;\n}\nfunction getStyles(mark) {\n    var _a;\n    return [].concat(mark.type, (_a = mark.style) !== null && _a !== void 0 ? _a : []);\n}\nfunction getMarkPropOrConfig(channel, mark, config, opt = {}) {\n    const { vgChannel, ignoreVgConfig } = opt;\n    if (vgChannel && mark[vgChannel] !== undefined) {\n        return mark[vgChannel];\n    }\n    else if (mark[channel] !== undefined) {\n        return mark[channel];\n    }\n    else if (ignoreVgConfig && (!vgChannel || vgChannel === channel)) {\n        return undefined;\n    }\n    return getMarkConfig(channel, mark, config, opt);\n}\n/**\n * Return property value from style or mark specific config property if exists.\n * Otherwise, return general mark specific config.\n */\nfunction getMarkConfig(channel, mark, config, { vgChannel } = {}) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"getFirstDefined\"])(\n    // style config has highest precedence\n    vgChannel ? getMarkStyleConfig(channel, mark, config.style) : undefined, getMarkStyleConfig(channel, mark, config.style), \n    // then mark-specific config\n    vgChannel ? config[mark.type][vgChannel] : undefined, config[mark.type][channel], // Need to cast because MarkDef doesn't perfectly match with AnyMarkConfig, but if the type isn't available, we'll get nothing here, which is fine\n    // If there is vgChannel, skip vl channel.\n    // For example, vl size for text is vg fontSize, but config.mark.size is only for point size.\n    vgChannel ? config.mark[vgChannel] : config.mark[channel] // Need to cast for the same reason as above\n    );\n}\nfunction getMarkStyleConfig(prop, mark, styleConfigIndex) {\n    return getStyleConfig(prop, getStyles(mark), styleConfigIndex);\n}\nfunction getStyleConfig(p, styles, styleConfigIndex) {\n    styles = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(styles);\n    let value;\n    for (const style of styles) {\n        const styleConfig = styleConfigIndex[style];\n        if (styleConfig && styleConfig[p] !== undefined) {\n            value = styleConfig[p];\n        }\n    }\n    return value;\n}\n/**\n * Return Vega sort parameters (tuple of field and order).\n */\nfunction sortParams(orderDef, fieldRefOption) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(orderDef).reduce((s, orderChannelDef) => {\n        var _a;\n        s.field.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(orderChannelDef, fieldRefOption));\n        s.order.push((_a = orderChannelDef.sort) !== null && _a !== void 0 ? _a : 'ascending');\n        return s;\n    }, { field: [], order: [] });\n}\nfunction mergeTitleFieldDefs(f1, f2) {\n    const merged = [...f1];\n    f2.forEach(fdToMerge => {\n        for (const fieldDef1 of merged) {\n            // If already exists, no need to append to merged array\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"deepEqual\"])(fieldDef1, fdToMerge)) {\n                return;\n            }\n        }\n        merged.push(fdToMerge);\n    });\n    return merged;\n}\nfunction mergeTitle(title1, title2) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"deepEqual\"])(title1, title2) || !title2) {\n        // if titles are the same or title2 is falsy\n        return title1;\n    }\n    else if (!title1) {\n        // if title1 is falsy\n        return title2;\n    }\n    else {\n        return [...Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(title1), ...Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(title2)].join(', ');\n    }\n}\nfunction mergeTitleComponent(v1, v2) {\n    const v1Val = v1.value;\n    const v2Val = v2.value;\n    if (v1Val == null || v2Val === null) {\n        return {\n            explicit: v1.explicit,\n            value: null\n        };\n    }\n    else if ((Object(_title__WEBPACK_IMPORTED_MODULE_3__[\"isText\"])(v1Val) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v1Val)) && (Object(_title__WEBPACK_IMPORTED_MODULE_3__[\"isText\"])(v2Val) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v2Val))) {\n        return {\n            explicit: v1.explicit,\n            value: mergeTitle(v1Val, v2Val)\n        };\n    }\n    else if (Object(_title__WEBPACK_IMPORTED_MODULE_3__[\"isText\"])(v1Val) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v1Val)) {\n        return {\n            explicit: v1.explicit,\n            value: v1Val\n        };\n    }\n    else if (Object(_title__WEBPACK_IMPORTED_MODULE_3__[\"isText\"])(v2Val) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v2Val)) {\n        return {\n            explicit: v1.explicit,\n            value: v2Val\n        };\n    }\n    else if (!Object(_title__WEBPACK_IMPORTED_MODULE_3__[\"isText\"])(v1Val) && !Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v1Val) && !Object(_title__WEBPACK_IMPORTED_MODULE_3__[\"isText\"])(v2Val) && !Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(v2Val)) {\n        return {\n            explicit: v1.explicit,\n            value: mergeTitleFieldDefs(v1Val, v2Val)\n        };\n    }\n    /* istanbul ignore next: Condition should not happen -- only for warning in development. */\n    throw new Error('It should never reach here');\n}\n//# sourceMappingURL=common.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/common.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/compile.js":
/*!*************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/compile.js ***!
  \*************************************************************/
/*! exports provided: compile */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compile\", function() { return compile; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _normalize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../normalize */ \"./node_modules/vega-lite/build/src/normalize/index.js\");\n/* harmony import */ var _parameter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../parameter */ \"./node_modules/vega-lite/build/src/parameter.js\");\n/* harmony import */ var _spec_toplevel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../spec/toplevel */ \"./node_modules/vega-lite/build/src/spec/toplevel.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _buildmodel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./buildmodel */ \"./node_modules/vega-lite/build/src/compile/buildmodel.js\");\n/* harmony import */ var _data_assemble__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data/assemble */ \"./node_modules/vega-lite/build/src/compile/data/assemble.js\");\n/* harmony import */ var _data_optimize__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./data/optimize */ \"./node_modules/vega-lite/build/src/compile/data/optimize.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Vega-Lite's main function, for compiling Vega-Lite spec into Vega spec.\n *\n * At a high-level, we make the following transformations in different phases:\n *\n * Input spec\n *     |\n *     |  (Normalization)\n *     v\n * Normalized Spec (Row/Column channels in single-view specs becomes faceted specs, composite marks becomes layered specs.)\n *     |\n *     |  (Build Model)\n *     v\n * A model tree of the spec\n *     |\n *     |  (Parse)\n *     v\n * A model tree with parsed components (intermediate structure of visualization primitives in a format that can be easily merged)\n *     |\n *     | (Optimize)\n *     v\n * A model tree with parsed components with the data component optimized\n *     |\n *     | (Assemble)\n *     v\n * Vega spec\n *\n * @param inputSpec The Vega-Lite specification.\n * @param opt       Optional arguments passed to the Vega-Lite compiler.\n * @returns         An object containing the compiled Vega spec and normalized Vega-Lite spec.\n */\nfunction compile(inputSpec, opt = {}) {\n    // 0. Augment opt with default opts\n    if (opt.logger) {\n        // set the singleton logger to the provided logger\n        _log__WEBPACK_IMPORTED_MODULE_4__[\"set\"](opt.logger);\n    }\n    if (opt.fieldTitle) {\n        // set the singleton field title formatter\n        _channeldef__WEBPACK_IMPORTED_MODULE_2__[\"setTitleFormatter\"](opt.fieldTitle);\n    }\n    try {\n        // 1. Initialize config by deep merging default config with the config provided via option and the input spec.\n        const config = Object(_config__WEBPACK_IMPORTED_MODULE_3__[\"initConfig\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"mergeConfig\"])(opt.config, inputSpec.config));\n        // 2. Normalize: Convert input spec -> normalized spec\n        // - Decompose all extended unit specs into composition of unit spec. For example, a box plot get expanded into multiple layers of bars, ticks, and rules. The shorthand row/column channel is also expanded to a facet spec.\n        // - Normalize autosize and width or height spec\n        const spec = Object(_normalize__WEBPACK_IMPORTED_MODULE_5__[\"normalize\"])(inputSpec, config);\n        // 3. Build Model: normalized spec -> Model (a tree structure)\n        // This phases instantiates the models with default config by doing a top-down traversal. This allows us to pass properties that child models derive from their parents via their constructors.\n        // See the abstract `Model` class and its children (UnitModel, LayerModel, FacetModel, ConcatModel) for different types of models.\n        const model = Object(_buildmodel__WEBPACK_IMPORTED_MODULE_9__[\"buildModel\"])(spec, null, '', undefined, config);\n        // 4 Parse: Model --> Model with components\n        // Note that components = intermediate representations that are equivalent to Vega specs.\n        // We need these intermediate representation because we need to merge many visualization \"components\" like projections, scales, axes, and legends.\n        // We will later convert these components into actual Vega specs in the assemble phase.\n        // In this phase, we do a bottom-up traversal over the whole tree to\n        // parse for each type of components once (e.g., data, layout, mark, scale).\n        // By doing bottom-up traversal, we start parsing components of unit specs and\n        // then merge child components of parent composite specs.\n        //\n        // Please see inside model.parse() for order of different components parsed.\n        model.parse();\n        // drawDataflow(model.component.data.sources);\n        // 5. Optimize the dataflow. This will modify the data component of the model.\n        Object(_data_optimize__WEBPACK_IMPORTED_MODULE_11__[\"optimizeDataflow\"])(model.component.data, model);\n        // drawDataflow(model.component.data.sources);\n        // 6. Assemble: convert model components --> Vega Spec.\n        const vgSpec = assembleTopLevelModel(model, getTopLevelProperties(inputSpec, spec.autosize, config, model), inputSpec.datasets, inputSpec.usermeta);\n        return {\n            spec: vgSpec,\n            normalized: spec\n        };\n    }\n    finally {\n        // Reset the singleton logger if a logger is provided\n        if (opt.logger) {\n            _log__WEBPACK_IMPORTED_MODULE_4__[\"reset\"]();\n        }\n        // Reset the singleton field title formatter if provided\n        if (opt.fieldTitle) {\n            _channeldef__WEBPACK_IMPORTED_MODULE_2__[\"resetTitleFormatter\"]();\n        }\n    }\n}\nfunction getTopLevelProperties(inputSpec, autosize, config, model) {\n    const width = model.component.layoutSize.get('width');\n    const height = model.component.layoutSize.get('height');\n    if (autosize === undefined) {\n        autosize = { type: 'pad' };\n        if (model.hasAxisOrientSignalRef()) {\n            autosize.resize = true;\n        }\n    }\n    else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(autosize)) {\n        autosize = { type: autosize };\n    }\n    if (width && height && Object(_spec_toplevel__WEBPACK_IMPORTED_MODULE_7__[\"isFitType\"])(autosize.type)) {\n        if (width === 'step' && height === 'step') {\n            _log__WEBPACK_IMPORTED_MODULE_4__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_4__[\"message\"].droppingFit());\n            autosize.type = 'pad';\n        }\n        else if (width === 'step' || height === 'step') {\n            // effectively XOR, because else if\n            // get step dimension\n            const sizeType = width === 'step' ? 'width' : 'height';\n            // log that we're dropping fit for respective channel\n            _log__WEBPACK_IMPORTED_MODULE_4__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_4__[\"message\"].droppingFit(Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"getPositionScaleChannel\"])(sizeType)));\n            // setting type to inverse fit (so if we dropped fit-x, type is now fit-y)\n            const inverseSizeType = sizeType === 'width' ? 'height' : 'width';\n            autosize.type = Object(_spec_toplevel__WEBPACK_IMPORTED_MODULE_7__[\"getFitType\"])(inverseSizeType);\n        }\n    }\n    return Object.assign(Object.assign(Object.assign({}, (Object(_util__WEBPACK_IMPORTED_MODULE_8__[\"keys\"])(autosize).length === 1 && autosize.type\n        ? autosize.type === 'pad'\n            ? {}\n            : { autosize: autosize.type }\n        : { autosize })), Object(_spec_toplevel__WEBPACK_IMPORTED_MODULE_7__[\"extractTopLevelProperties\"])(config, false)), Object(_spec_toplevel__WEBPACK_IMPORTED_MODULE_7__[\"extractTopLevelProperties\"])(inputSpec, true));\n}\n/*\n * Assemble the top-level model to a Vega spec.\n *\n * Note: this couldn't be `model.assemble()` since the top-level model\n * needs some special treatment to generate top-level properties.\n */\nfunction assembleTopLevelModel(model, topLevelProperties, datasets = {}, usermeta) {\n    // Config with Vega-Lite only config removed.\n    const vgConfig = model.config ? Object(_config__WEBPACK_IMPORTED_MODULE_3__[\"stripAndRedirectConfig\"])(model.config) : undefined;\n    const data = [].concat(model.assembleSelectionData([]), \n    // only assemble data in the root\n    Object(_data_assemble__WEBPACK_IMPORTED_MODULE_10__[\"assembleRootData\"])(model.component.data, datasets));\n    const projections = model.assembleProjections();\n    const title = model.assembleTitle();\n    const style = model.assembleGroupStyle();\n    const encodeEntry = model.assembleGroupEncodeEntry(true);\n    let layoutSignals = model.assembleLayoutSignals();\n    // move width and height signals with values to top level\n    layoutSignals = layoutSignals.filter(signal => {\n        if ((signal.name === 'width' || signal.name === 'height') && signal.value !== undefined) {\n            topLevelProperties[signal.name] = +signal.value;\n            return false;\n        }\n        return true;\n    });\n    const { params } = topLevelProperties, otherTopLevelProps = __rest(topLevelProperties, [\"params\"]);\n    return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ $schema: 'https://vega.github.io/schema/vega/v5.json' }, (model.description ? { description: model.description } : {})), otherTopLevelProps), (title ? { title } : {})), (style ? { style } : {})), (encodeEntry ? { encode: { update: encodeEntry } } : {})), { data }), (projections.length > 0 ? { projections: projections } : {})), model.assembleGroup([\n        ...layoutSignals,\n        ...model.assembleSelectionTopLevelSignals([]),\n        ...Object(_parameter__WEBPACK_IMPORTED_MODULE_6__[\"assembleParameterSignals\"])(params)\n    ])), (vgConfig ? { config: vgConfig } : {})), (usermeta ? { usermeta } : {}));\n}\n//# sourceMappingURL=compile.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/compile.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/concat.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/concat.js ***!
  \************************************************************/
/*! exports provided: ConcatModel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ConcatModel\", function() { return ConcatModel; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../spec */ \"./node_modules/vega-lite/build/src/spec/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _buildmodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./buildmodel */ \"./node_modules/vega-lite/build/src/compile/buildmodel.js\");\n/* harmony import */ var _data_parse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./data/parse */ \"./node_modules/vega-lite/build/src/compile/data/parse.js\");\n/* harmony import */ var _layoutsize_assemble__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./layoutsize/assemble */ \"./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js\");\n/* harmony import */ var _layoutsize_parse__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layoutsize/parse */ \"./node_modules/vega-lite/build/src/compile/layoutsize/parse.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n\n\n\n\n\n\n\n\nclass ConcatModel extends _model__WEBPACK_IMPORTED_MODULE_7__[\"Model\"] {\n    constructor(spec, parent, parentGivenName, config) {\n        var _a, _b, _c, _d;\n        super(spec, 'concat', parent, parentGivenName, config, spec.resolve);\n        if (((_b = (_a = spec.resolve) === null || _a === void 0 ? void 0 : _a.axis) === null || _b === void 0 ? void 0 : _b.x) === 'shared' || ((_d = (_c = spec.resolve) === null || _c === void 0 ? void 0 : _c.axis) === null || _d === void 0 ? void 0 : _d.y) === 'shared') {\n            _log__WEBPACK_IMPORTED_MODULE_0__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].CONCAT_CANNOT_SHARE_AXIS);\n        }\n        this.children = this.getChildren(spec).map((child, i) => {\n            return Object(_buildmodel__WEBPACK_IMPORTED_MODULE_3__[\"buildModel\"])(child, this, this.getName('concat_' + i), undefined, config);\n        });\n    }\n    parseData() {\n        this.component.data = Object(_data_parse__WEBPACK_IMPORTED_MODULE_4__[\"parseData\"])(this);\n        for (const child of this.children) {\n            child.parseData();\n        }\n    }\n    parseSelections() {\n        // Merge selections up the hierarchy so that they may be referenced\n        // across unit specs. Persist their definitions within each child\n        // to assemble signals which remain within output Vega unit groups.\n        this.component.selection = {};\n        for (const child of this.children) {\n            child.parseSelections();\n            for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"keys\"])(child.component.selection)) {\n                this.component.selection[key] = child.component.selection[key];\n            }\n        }\n    }\n    parseMarkGroup() {\n        for (const child of this.children) {\n            child.parseMarkGroup();\n        }\n    }\n    parseAxesAndHeaders() {\n        for (const child of this.children) {\n            child.parseAxesAndHeaders();\n        }\n        // TODO(#2415): support shared axes\n    }\n    getChildren(spec) {\n        if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isVConcatSpec\"])(spec)) {\n            return spec.vconcat;\n        }\n        else if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isHConcatSpec\"])(spec)) {\n            return spec.hconcat;\n        }\n        return spec.concat;\n    }\n    parseLayoutSize() {\n        Object(_layoutsize_parse__WEBPACK_IMPORTED_MODULE_6__[\"parseConcatLayoutSize\"])(this);\n    }\n    parseAxisGroup() {\n        return null;\n    }\n    assembleSelectionTopLevelSignals(signals) {\n        return this.children.reduce((sg, child) => child.assembleSelectionTopLevelSignals(sg), signals);\n    }\n    assembleSignals() {\n        this.children.forEach(child => child.assembleSignals());\n        return [];\n    }\n    assembleLayoutSignals() {\n        const layoutSignals = Object(_layoutsize_assemble__WEBPACK_IMPORTED_MODULE_5__[\"assembleLayoutSignals\"])(this);\n        for (const child of this.children) {\n            layoutSignals.push(...child.assembleLayoutSignals());\n        }\n        return layoutSignals;\n    }\n    assembleSelectionData(data) {\n        return this.children.reduce((db, child) => child.assembleSelectionData(db), data);\n    }\n    assembleMarks() {\n        // only children have marks\n        return this.children.map(child => {\n            const title = child.assembleTitle();\n            const style = child.assembleGroupStyle();\n            const encodeEntry = child.assembleGroupEncodeEntry(false);\n            return Object.assign(Object.assign(Object.assign(Object.assign({ type: 'group', name: child.getName('group') }, (title ? { title } : {})), (style ? { style } : {})), (encodeEntry ? { encode: { update: encodeEntry } } : {})), child.assembleGroup());\n        });\n    }\n    assembleDefaultLayout() {\n        const columns = this.layout.columns;\n        return Object.assign(Object.assign({}, (columns != null ? { columns: columns } : {})), { bounds: 'full', \n            // Use align each so it can work with multiple plots with different size\n            align: 'each' });\n    }\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/concat.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/aggregate.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/aggregate.js ***!
  \********************************************************************/
/*! exports provided: AggregateNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AggregateNode\", function() { return AggregateNode; });\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\n\n\nfunction addDimension(dims, channel, fieldDef, model) {\n    const channelDef2 = Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model) ? model.encoding[Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"getSecondaryRangeChannel\"])(channel)] : undefined;\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isTypedFieldDef\"])(fieldDef) &&\n        Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model) &&\n        Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"hasBand\"])(channel, fieldDef, channelDef2, model.stack, model.markDef, model.config)) {\n        dims.add(Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, {}));\n        dims.add(Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { suffix: 'end' }));\n        if (fieldDef.bin && Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"binRequiresRange\"])(fieldDef, channel)) {\n            dims.add(Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { binSuffix: 'range' }));\n        }\n    }\n    else if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isGeoPositionChannel\"])(channel)) {\n        const posChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"getPositionChannelFromLatLong\"])(channel);\n        dims.add(model.getName(posChannel));\n    }\n    else {\n        dims.add(Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef));\n    }\n    return dims;\n}\nfunction mergeMeasures(parentMeasures, childMeasures) {\n    var _a;\n    for (const field of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(childMeasures)) {\n        // when we merge a measure, we either have to add an aggregation operator or even a new field\n        const ops = childMeasures[field];\n        for (const op of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(ops)) {\n            if (field in parentMeasures) {\n                // add operator to existing measure field\n                parentMeasures[field][op] = new Set([...((_a = parentMeasures[field][op]) !== null && _a !== void 0 ? _a : []), ...ops[op]]);\n            }\n            else {\n                parentMeasures[field] = { [op]: ops[op] };\n            }\n        }\n    }\n}\nclass AggregateNode extends _dataflow__WEBPACK_IMPORTED_MODULE_6__[\"DataFlowNode\"] {\n    /**\n     * @param dimensions string set for dimensions\n     * @param measures dictionary mapping field name => dict of aggregation functions and names to use\n     */\n    constructor(parent, dimensions, measures) {\n        super(parent);\n        this.dimensions = dimensions;\n        this.measures = measures;\n    }\n    clone() {\n        return new AggregateNode(null, new Set(this.dimensions), Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"duplicate\"])(this.measures));\n    }\n    get groupBy() {\n        return this.dimensions;\n    }\n    static makeFromEncoding(parent, model) {\n        let isAggregate = false;\n        model.forEachFieldDef(fd => {\n            if (fd.aggregate) {\n                isAggregate = true;\n            }\n        });\n        const meas = {};\n        const dims = new Set();\n        if (!isAggregate) {\n            // no need to create this node if the model has no aggregation\n            return null;\n        }\n        model.forEachFieldDef((fieldDef, channel) => {\n            var _a, _b, _c, _d;\n            const { aggregate, field } = fieldDef;\n            if (aggregate) {\n                if (aggregate === 'count') {\n                    meas['*'] = (_a = meas['*']) !== null && _a !== void 0 ? _a : {};\n                    meas['*']['count'] = new Set([Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { forAs: true })]);\n                }\n                else {\n                    if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_0__[\"isArgminDef\"])(aggregate) || Object(_aggregate__WEBPACK_IMPORTED_MODULE_0__[\"isArgmaxDef\"])(aggregate)) {\n                        const op = Object(_aggregate__WEBPACK_IMPORTED_MODULE_0__[\"isArgminDef\"])(aggregate) ? 'argmin' : 'argmax';\n                        const argField = aggregate[op];\n                        meas[argField] = (_b = meas[argField]) !== null && _b !== void 0 ? _b : {};\n                        meas[argField][op] = new Set([Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])({ op, field: argField }, { forAs: true })]);\n                    }\n                    else {\n                        meas[field] = (_c = meas[field]) !== null && _c !== void 0 ? _c : {};\n                        meas[field][aggregate] = new Set([Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { forAs: true })]);\n                    }\n                    // For scale channel with domain === 'unaggregated', add min/max so we can use their union as unaggregated domain\n                    if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isScaleChannel\"])(channel) && model.scaleDomain(channel) === 'unaggregated') {\n                        meas[field] = (_d = meas[field]) !== null && _d !== void 0 ? _d : {};\n                        meas[field]['min'] = new Set([Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])({ field, aggregate: 'min' }, { forAs: true })]);\n                        meas[field]['max'] = new Set([Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])({ field, aggregate: 'max' }, { forAs: true })]);\n                    }\n                }\n            }\n            else {\n                addDimension(dims, channel, fieldDef, model);\n            }\n        });\n        if (dims.size + Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(meas).length === 0) {\n            return null;\n        }\n        return new AggregateNode(parent, dims, meas);\n    }\n    static makeFromTransform(parent, t) {\n        var _a, _b, _c;\n        const dims = new Set();\n        const meas = {};\n        for (const s of t.aggregate) {\n            const { op, field, as } = s;\n            if (op) {\n                if (op === 'count') {\n                    meas['*'] = (_a = meas['*']) !== null && _a !== void 0 ? _a : {};\n                    meas['*']['count'] = new Set([as ? as : Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(s, { forAs: true })]);\n                }\n                else {\n                    meas[field] = (_b = meas[field]) !== null && _b !== void 0 ? _b : {};\n                    meas[field][op] = new Set([as ? as : Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(s, { forAs: true })]);\n                }\n            }\n        }\n        for (const s of (_c = t.groupby) !== null && _c !== void 0 ? _c : []) {\n            dims.add(s);\n        }\n        if (dims.size + Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(meas).length === 0) {\n            return null;\n        }\n        return new AggregateNode(parent, dims, meas);\n    }\n    merge(other) {\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"setEqual\"])(this.dimensions, other.dimensions)) {\n            mergeMeasures(this.measures, other.measures);\n            return true;\n        }\n        else {\n            _log__WEBPACK_IMPORTED_MODULE_3__[\"debug\"]('different dimensions, cannot merge');\n            return false;\n        }\n    }\n    addDimensions(fields) {\n        fields.forEach(this.dimensions.add, this.dimensions);\n    }\n    dependentFields() {\n        return new Set([...this.dimensions, ...Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.measures)]);\n    }\n    producedFields() {\n        const out = new Set();\n        for (const field of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.measures)) {\n            for (const op of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.measures[field])) {\n                const m = this.measures[field][op];\n                if (m.size === 0) {\n                    out.add(`${op}_${field}`);\n                }\n                else {\n                    m.forEach(out.add, out);\n                }\n            }\n        }\n        return out;\n    }\n    hash() {\n        return `Aggregate ${Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"hash\"])({ dimensions: this.dimensions, measures: this.measures })}`;\n    }\n    assemble() {\n        const ops = [];\n        const fields = [];\n        const as = [];\n        for (const field of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.measures)) {\n            for (const op of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.measures[field])) {\n                for (const alias of this.measures[field][op]) {\n                    as.push(alias);\n                    ops.push(op);\n                    fields.push(field === '*' ? null : Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"replacePathInField\"])(field));\n                }\n            }\n        }\n        const result = {\n            type: 'aggregate',\n            groupby: [...this.dimensions].map(_util__WEBPACK_IMPORTED_MODULE_4__[\"replacePathInField\"]),\n            ops,\n            fields,\n            as\n        };\n        return result;\n    }\n}\n//# sourceMappingURL=aggregate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/aggregate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/assemble.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/assemble.js ***!
  \*******************************************************************/
/*! exports provided: assembleFacetData, assembleRootData */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleFacetData\", function() { return assembleFacetData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleRootData\", function() { return assembleRootData; });\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/compile/data/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bin */ \"./node_modules/vega-lite/build/src/compile/data/bin.js\");\n/* harmony import */ var _calculate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./calculate */ \"./node_modules/vega-lite/build/src/compile/data/calculate.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _density__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./density */ \"./node_modules/vega-lite/build/src/compile/data/density.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/compile/data/facet.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./filter */ \"./node_modules/vega-lite/build/src/compile/data/filter.js\");\n/* harmony import */ var _filterinvalid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./filterinvalid */ \"./node_modules/vega-lite/build/src/compile/data/filterinvalid.js\");\n/* harmony import */ var _flatten__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./flatten */ \"./node_modules/vega-lite/build/src/compile/data/flatten.js\");\n/* harmony import */ var _fold__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./fold */ \"./node_modules/vega-lite/build/src/compile/data/fold.js\");\n/* harmony import */ var _formatparse__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./formatparse */ \"./node_modules/vega-lite/build/src/compile/data/formatparse.js\");\n/* harmony import */ var _geojson__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./geojson */ \"./node_modules/vega-lite/build/src/compile/data/geojson.js\");\n/* harmony import */ var _geopoint__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./geopoint */ \"./node_modules/vega-lite/build/src/compile/data/geopoint.js\");\n/* harmony import */ var _graticule__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./graticule */ \"./node_modules/vega-lite/build/src/compile/data/graticule.js\");\n/* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./identifier */ \"./node_modules/vega-lite/build/src/compile/data/identifier.js\");\n/* harmony import */ var _impute__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./impute */ \"./node_modules/vega-lite/build/src/compile/data/impute.js\");\n/* harmony import */ var _joinaggregate__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./joinaggregate */ \"./node_modules/vega-lite/build/src/compile/data/joinaggregate.js\");\n/* harmony import */ var _loess__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./loess */ \"./node_modules/vega-lite/build/src/compile/data/loess.js\");\n/* harmony import */ var _lookup__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./lookup */ \"./node_modules/vega-lite/build/src/compile/data/lookup.js\");\n/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./quantile */ \"./node_modules/vega-lite/build/src/compile/data/quantile.js\");\n/* harmony import */ var _regression__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./regression */ \"./node_modules/vega-lite/build/src/compile/data/regression.js\");\n/* harmony import */ var _pivot__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./pivot */ \"./node_modules/vega-lite/build/src/compile/data/pivot.js\");\n/* harmony import */ var _sample__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./sample */ \"./node_modules/vega-lite/build/src/compile/data/sample.js\");\n/* harmony import */ var _sequence__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sequence */ \"./node_modules/vega-lite/build/src/compile/data/sequence.js\");\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./source */ \"./node_modules/vega-lite/build/src/compile/data/source.js\");\n/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./stack */ \"./node_modules/vega-lite/build/src/compile/data/stack.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./timeunit */ \"./node_modules/vega-lite/build/src/compile/data/timeunit.js\");\n/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./window */ \"./node_modules/vega-lite/build/src/compile/data/window.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction makeWalkTree(data) {\n    // to name datasources\n    let datasetIndex = 0;\n    /**\n     * Recursively walk down the tree.\n     */\n    function walkTree(node, dataSource) {\n        var _a;\n        if (node instanceof _source__WEBPACK_IMPORTED_MODULE_25__[\"SourceNode\"]) {\n            // If the source is a named data source or a data source with values, we need\n            // to put it in a different data source. Otherwise, Vega may override the data.\n            if (!node.isGenerator && !Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isUrlData\"])(node.data)) {\n                data.push(dataSource);\n                const newData = {\n                    name: null,\n                    source: dataSource.name,\n                    transform: []\n                };\n                dataSource = newData;\n            }\n        }\n        if (node instanceof _formatparse__WEBPACK_IMPORTED_MODULE_11__[\"ParseNode\"]) {\n            if (node.parent instanceof _source__WEBPACK_IMPORTED_MODULE_25__[\"SourceNode\"] && !dataSource.source) {\n                // If node's parent is a root source and the data source does not refer to another data source, use normal format parse\n                dataSource.format = Object.assign(Object.assign({}, ((_a = dataSource.format) !== null && _a !== void 0 ? _a : {})), { parse: node.assembleFormatParse() });\n                // add calculates for all nested fields\n                dataSource.transform.push(...node.assembleTransforms(true));\n            }\n            else {\n                // Otherwise use Vega expression to parse\n                dataSource.transform.push(...node.assembleTransforms());\n            }\n        }\n        if (node instanceof _facet__WEBPACK_IMPORTED_MODULE_6__[\"FacetNode\"]) {\n            if (!dataSource.name) {\n                dataSource.name = `data_${datasetIndex++}`;\n            }\n            if (!dataSource.source || dataSource.transform.length > 0) {\n                data.push(dataSource);\n                node.data = dataSource.name;\n            }\n            else {\n                node.data = dataSource.source;\n            }\n            for (const d of node.assemble()) {\n                data.push(d);\n            }\n            // break here because the rest of the tree has to be taken care of by the facet.\n            return;\n        }\n        if (node instanceof _graticule__WEBPACK_IMPORTED_MODULE_14__[\"GraticuleNode\"] ||\n            node instanceof _sequence__WEBPACK_IMPORTED_MODULE_24__[\"SequenceNode\"] ||\n            node instanceof _filterinvalid__WEBPACK_IMPORTED_MODULE_8__[\"FilterInvalidNode\"] ||\n            node instanceof _filter__WEBPACK_IMPORTED_MODULE_7__[\"FilterNode\"] ||\n            node instanceof _calculate__WEBPACK_IMPORTED_MODULE_3__[\"CalculateNode\"] ||\n            node instanceof _geopoint__WEBPACK_IMPORTED_MODULE_13__[\"GeoPointNode\"] ||\n            node instanceof _geojson__WEBPACK_IMPORTED_MODULE_12__[\"GeoJSONNode\"] ||\n            node instanceof _aggregate__WEBPACK_IMPORTED_MODULE_1__[\"AggregateNode\"] ||\n            node instanceof _lookup__WEBPACK_IMPORTED_MODULE_19__[\"LookupNode\"] ||\n            node instanceof _window__WEBPACK_IMPORTED_MODULE_28__[\"WindowTransformNode\"] ||\n            node instanceof _joinaggregate__WEBPACK_IMPORTED_MODULE_17__[\"JoinAggregateTransformNode\"] ||\n            node instanceof _fold__WEBPACK_IMPORTED_MODULE_10__[\"FoldTransformNode\"] ||\n            node instanceof _flatten__WEBPACK_IMPORTED_MODULE_9__[\"FlattenTransformNode\"] ||\n            node instanceof _density__WEBPACK_IMPORTED_MODULE_5__[\"DensityTransformNode\"] ||\n            node instanceof _loess__WEBPACK_IMPORTED_MODULE_18__[\"LoessTransformNode\"] ||\n            node instanceof _quantile__WEBPACK_IMPORTED_MODULE_20__[\"QuantileTransformNode\"] ||\n            node instanceof _regression__WEBPACK_IMPORTED_MODULE_21__[\"RegressionTransformNode\"] ||\n            node instanceof _identifier__WEBPACK_IMPORTED_MODULE_15__[\"IdentifierNode\"] ||\n            node instanceof _sample__WEBPACK_IMPORTED_MODULE_23__[\"SampleTransformNode\"] ||\n            node instanceof _pivot__WEBPACK_IMPORTED_MODULE_22__[\"PivotTransformNode\"]) {\n            dataSource.transform.push(node.assemble());\n        }\n        if (node instanceof _bin__WEBPACK_IMPORTED_MODULE_2__[\"BinNode\"] ||\n            node instanceof _timeunit__WEBPACK_IMPORTED_MODULE_27__[\"TimeUnitNode\"] ||\n            node instanceof _impute__WEBPACK_IMPORTED_MODULE_16__[\"ImputeNode\"] ||\n            node instanceof _stack__WEBPACK_IMPORTED_MODULE_26__[\"StackNode\"]) {\n            dataSource.transform.push(...node.assemble());\n        }\n        if (node instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"]) {\n            if (dataSource.source && dataSource.transform.length === 0) {\n                node.setSource(dataSource.source);\n            }\n            else if (node.parent instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"]) {\n                // Note that an output node may be required but we still do not assemble a\n                // separate data source for it.\n                node.setSource(dataSource.name);\n            }\n            else {\n                if (!dataSource.name) {\n                    dataSource.name = `data_${datasetIndex++}`;\n                }\n                // Here we set the name of the datasource we generated. From now on\n                // other assemblers can use it.\n                node.setSource(dataSource.name);\n                // if this node has more than one child, we will add a datasource automatically\n                if (node.numChildren() === 1) {\n                    data.push(dataSource);\n                    const newData = {\n                        name: null,\n                        source: dataSource.name,\n                        transform: []\n                    };\n                    dataSource = newData;\n                }\n            }\n        }\n        switch (node.numChildren()) {\n            case 0:\n                // done\n                if (node instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"] && (!dataSource.source || dataSource.transform.length > 0)) {\n                    // do not push empty datasources that are simply references\n                    data.push(dataSource);\n                }\n                break;\n            case 1:\n                walkTree(node.children[0], dataSource);\n                break;\n            default: {\n                if (!dataSource.name) {\n                    dataSource.name = `data_${datasetIndex++}`;\n                }\n                let source = dataSource.name;\n                if (!dataSource.source || dataSource.transform.length > 0) {\n                    data.push(dataSource);\n                }\n                else {\n                    source = dataSource.source;\n                }\n                for (const child of node.children) {\n                    const newData = {\n                        name: null,\n                        source: source,\n                        transform: []\n                    };\n                    walkTree(child, newData);\n                }\n                break;\n            }\n        }\n    }\n    return walkTree;\n}\n/**\n * Assemble data sources that are derived from faceted data.\n */\nfunction assembleFacetData(root) {\n    const data = [];\n    const walkTree = makeWalkTree(data);\n    for (const child of root.children) {\n        walkTree(child, {\n            source: root.name,\n            name: null,\n            transform: []\n        });\n    }\n    return data;\n}\n/**\n * Create Vega data array from a given compiled model and append all of them to the given array\n *\n * @param  model\n * @param  data array\n * @return modified data array\n */\nfunction assembleRootData(dataComponent, datasets) {\n    var _a, _b;\n    const data = [];\n    // dataComponent.sources.forEach(debug);\n    // draw(dataComponent.sources);\n    const walkTree = makeWalkTree(data);\n    let sourceIndex = 0;\n    for (const root of dataComponent.sources) {\n        // assign a name if the source does not have a name yet\n        if (!root.hasName()) {\n            root.dataName = `source_${sourceIndex++}`;\n        }\n        const newData = root.assemble();\n        walkTree(root, newData);\n    }\n    // remove empty transform arrays for cleaner output\n    for (const d of data) {\n        if (d.transform.length === 0) {\n            delete d.transform;\n        }\n    }\n    // move sources without transforms (the ones that are potentially used in lookups) to the beginning\n    let whereTo = 0;\n    for (const [i, d] of data.entries()) {\n        if (((_a = d.transform) !== null && _a !== void 0 ? _a : []).length === 0 && !d.source) {\n            data.splice(whereTo++, 0, data.splice(i, 1)[0]);\n        }\n    }\n    // now fix the from references in lookup transforms\n    for (const d of data) {\n        for (const t of (_b = d.transform) !== null && _b !== void 0 ? _b : []) {\n            if (t.type === 'lookup') {\n                t.from = dataComponent.outputNodes[t.from].getSource();\n            }\n        }\n    }\n    // inline values for datasets that are in the datastore\n    for (const d of data) {\n        if (d.name in datasets) {\n            d.values = datasets[d.name];\n        }\n    }\n    return data;\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/bin.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/bin.js ***!
  \**************************************************************/
/*! exports provided: getBinSignalName, BinNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getBinSignalName\", function() { return getBinSignalName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BinNode\", function() { return BinNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _selection_parse__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../selection/parse */ \"./node_modules/vega-lite/build/src/compile/selection/parse.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\nfunction rangeFormula(model, fieldDef, channel, config) {\n    var _a, _b;\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"binRequiresRange\"])(fieldDef, channel)) {\n        // read format from axis or legend, if there is no format then use config.numberFormat\n        const guide = Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model)\n            ? (_b = (_a = model.axis(channel)) !== null && _a !== void 0 ? _a : model.legend(channel)) !== null && _b !== void 0 ? _b : {} : {};\n        const startField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { expr: 'datum' });\n        const endField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { expr: 'datum', binSuffix: 'end' });\n        return {\n            formulaAs: Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldDef, { binSuffix: 'range', forAs: true }),\n            formula: Object(_format__WEBPACK_IMPORTED_MODULE_4__[\"binFormatExpression\"])(startField, endField, guide.format, guide.formatType, config)\n        };\n    }\n    return {};\n}\nfunction binKey(bin, field) {\n    return `${Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"binToString\"])(bin)}_${field}`;\n}\nfunction getSignalsFromModel(model, key) {\n    return {\n        signal: model.getName(`${key}_bins`),\n        extentSignal: model.getName(`${key}_extent`)\n    };\n}\nfunction getBinSignalName(model, field, bin) {\n    var _a;\n    const normalizedBin = (_a = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"normalizeBin\"])(bin, undefined)) !== null && _a !== void 0 ? _a : {};\n    const key = binKey(normalizedBin, field);\n    return model.getName(`${key}_bins`);\n}\nfunction isBinTransform(t) {\n    return 'as' in t;\n}\nfunction createBinComponent(t, bin, model) {\n    let as;\n    let span;\n    if (isBinTransform(t)) {\n        as = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(t.as) ? [t.as, `${t.as}_end`] : [t.as[0], t.as[1]];\n    }\n    else {\n        as = [Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(t, { forAs: true }), Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(t, { binSuffix: 'end', forAs: true })];\n    }\n    const normalizedBin = Object.assign({}, Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"normalizeBin\"])(bin, undefined));\n    const key = binKey(normalizedBin, t.field);\n    const { signal, extentSignal } = getSignalsFromModel(model, key);\n    if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isSelectionExtent\"])(normalizedBin.extent)) {\n        const ext = normalizedBin.extent;\n        const selName = ext.selection;\n        span = Object(_selection_parse__WEBPACK_IMPORTED_MODULE_6__[\"parseSelectionBinExtent\"])(model.getSelectionComponent(Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(selName), selName), ext);\n        delete normalizedBin.extent; // Vega-Lite selection extent map to Vega's span property.\n    }\n    const binComponent = Object.assign(Object.assign(Object.assign({ bin: normalizedBin, field: t.field, as: [as] }, (signal ? { signal } : {})), (extentSignal ? { extentSignal } : {})), (span ? { span } : {}));\n    return { key, binComponent };\n}\nclass BinNode extends _dataflow__WEBPACK_IMPORTED_MODULE_7__[\"DataFlowNode\"] {\n    constructor(parent, bins) {\n        super(parent);\n        this.bins = bins;\n    }\n    clone() {\n        return new BinNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.bins));\n    }\n    static makeFromEncoding(parent, model) {\n        const bins = model.reduceFieldDef((binComponentIndex, fieldDef, channel) => {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isTypedFieldDef\"])(fieldDef) && Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldDef.bin)) {\n                const { key, binComponent } = createBinComponent(fieldDef, fieldDef.bin, model);\n                binComponentIndex[key] = Object.assign(Object.assign(Object.assign({}, binComponent), binComponentIndex[key]), rangeFormula(model, fieldDef, channel, model.config));\n            }\n            return binComponentIndex;\n        }, {});\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isEmpty\"])(bins)) {\n            return null;\n        }\n        return new BinNode(parent, bins);\n    }\n    /**\n     * Creates a bin node from BinTransform.\n     * The optional parameter should provide\n     */\n    static makeFromTransform(parent, t, model) {\n        const { key, binComponent } = createBinComponent(t, t.bin, model);\n        return new BinNode(parent, {\n            [key]: binComponent\n        });\n    }\n    /**\n     * Merge bin nodes. This method either integrates the bin config from the other node\n     * or if this node already has a bin config, renames the corresponding signal in the model.\n     */\n    merge(other, renameSignal) {\n        for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(other.bins)) {\n            if (key in this.bins) {\n                renameSignal(other.bins[key].signal, this.bins[key].signal);\n                // Ensure that we don't have duplicate names for signal pairs\n                this.bins[key].as = Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"unique\"])([...this.bins[key].as, ...other.bins[key].as], _util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"]);\n            }\n            else {\n                this.bins[key] = other.bins[key];\n            }\n        }\n        for (const child of other.children) {\n            other.removeChild(child);\n            child.parent = this;\n        }\n        other.remove();\n    }\n    producedFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(this.bins)\n            .map(c => c.as)\n            .flat(2));\n    }\n    dependentFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(this.bins).map(c => c.field));\n    }\n    hash() {\n        return `Bin ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(this.bins)}`;\n    }\n    assemble() {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(this.bins).flatMap(bin => {\n            const transform = [];\n            const [binAs, ...remainingAs] = bin.as;\n            const _a = bin.bin, { extent } = _a, params = __rest(_a, [\"extent\"]);\n            const binTrans = Object.assign(Object.assign(Object.assign({ type: 'bin', field: Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"replacePathInField\"])(bin.field), as: binAs, signal: bin.signal }, (!Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isSelectionExtent\"])(extent) ? { extent } : { extent: null })), (bin.span ? { span: { signal: `span(${bin.span})` } } : {})), params);\n            if (!extent && bin.extentSignal) {\n                transform.push({\n                    type: 'extent',\n                    field: Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"replacePathInField\"])(bin.field),\n                    signal: bin.extentSignal\n                });\n                binTrans.extent = { signal: bin.extentSignal };\n            }\n            transform.push(binTrans);\n            for (const as of remainingAs) {\n                for (let i = 0; i < 2; i++) {\n                    transform.push({\n                        type: 'formula',\n                        expr: Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])({ field: binAs[i] }, { expr: 'datum' }),\n                        as: as[i]\n                    });\n                }\n            }\n            if (bin.formula) {\n                transform.push({\n                    type: 'formula',\n                    expr: bin.formula,\n                    as: bin.formulaAs\n                });\n            }\n            return transform;\n        });\n    }\n}\n//# sourceMappingURL=bin.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/bin.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/calculate.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/calculate.js ***!
  \********************************************************************/
/*! exports provided: CalculateNode, sortArrayIndexField */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CalculateNode\", function() { return CalculateNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sortArrayIndexField\", function() { return sortArrayIndexField; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../predicate */ \"./node_modules/vega-lite/build/src/predicate.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _expressions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./expressions */ \"./node_modules/vega-lite/build/src/compile/data/expressions.js\");\n\n\n\n\n\n\nclass CalculateNode extends _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n        this._dependentFields = Object(_expressions__WEBPACK_IMPORTED_MODULE_5__[\"getDependentFields\"])(this.transform.calculate);\n    }\n    clone() {\n        return new CalculateNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.transform));\n    }\n    static parseAllForSortIndex(parent, model) {\n        // get all the encoding with sort fields from model\n        model.forEachFieldDef((fieldDef, channel) => {\n            if (!Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isScaleFieldDef\"])(fieldDef)) {\n                return;\n            }\n            if (Object(_sort__WEBPACK_IMPORTED_MODULE_2__[\"isSortArray\"])(fieldDef.sort)) {\n                const { field, timeUnit } = fieldDef;\n                const sort = fieldDef.sort;\n                // generate `datum[\"a\"] === val0 ? 0 : datum[\"a\"] === val1 ? 1 : ... : n` via FieldEqualPredicate\n                const calculate = sort\n                    .map((sortValue, i) => {\n                    return `${Object(_predicate__WEBPACK_IMPORTED_MODULE_1__[\"fieldFilterExpression\"])({ field, timeUnit, equal: sortValue })} ? ${i} : `;\n                })\n                    .join('') + sort.length;\n                parent = new CalculateNode(parent, {\n                    calculate,\n                    as: sortArrayIndexField(fieldDef, channel, { forAs: true })\n                });\n            }\n        });\n        return parent;\n    }\n    producedFields() {\n        return new Set([this.transform.as]);\n    }\n    dependentFields() {\n        return this._dependentFields;\n    }\n    assemble() {\n        return {\n            type: 'formula',\n            expr: this.transform.calculate,\n            as: this.transform.as\n        };\n    }\n    hash() {\n        return `Calculate ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(this.transform)}`;\n    }\n}\nfunction sortArrayIndexField(fieldDef, channel, opt) {\n    return Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"vgField\"])(fieldDef, Object.assign({ prefix: channel, suffix: 'sort_index' }, (opt !== null && opt !== void 0 ? opt : {})));\n}\n//# sourceMappingURL=calculate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/calculate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/dataflow.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/dataflow.js ***!
  \*******************************************************************/
/*! exports provided: DataFlowNode, OutputNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DataFlowNode\", function() { return DataFlowNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"OutputNode\", function() { return OutputNode; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\n/**\n * A node in the dataflow tree.\n */\nclass DataFlowNode {\n    constructor(parent, debugName) {\n        this.debugName = debugName;\n        this._children = [];\n        this._parent = null;\n        if (parent) {\n            this.parent = parent;\n        }\n    }\n    /**\n     * Clone this node with a deep copy but don't clone links to children or parents.\n     */\n    clone() {\n        throw new Error('Cannot clone node');\n    }\n    get parent() {\n        return this._parent;\n    }\n    /**\n     * Set the parent of the node and also add this node to the parent's children.\n     */\n    set parent(parent) {\n        this._parent = parent;\n        if (parent) {\n            parent.addChild(this);\n        }\n    }\n    get children() {\n        return this._children;\n    }\n    numChildren() {\n        return this._children.length;\n    }\n    addChild(child, loc) {\n        // do not add the same child twice\n        if (this._children.indexOf(child) > -1) {\n            _log__WEBPACK_IMPORTED_MODULE_0__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].ADD_SAME_CHILD_TWICE);\n            return;\n        }\n        if (loc !== undefined) {\n            this._children.splice(loc, 0, child);\n        }\n        else {\n            this._children.push(child);\n        }\n    }\n    removeChild(oldChild) {\n        const loc = this._children.indexOf(oldChild);\n        this._children.splice(loc, 1);\n        return loc;\n    }\n    /**\n     * Remove node from the dataflow.\n     */\n    remove() {\n        let loc = this._parent.removeChild(this);\n        for (const child of this._children) {\n            // do not use the set method because we want to insert at a particular location\n            child._parent = this._parent;\n            this._parent.addChild(child, loc++);\n        }\n    }\n    /**\n     * Insert another node as a parent of this node.\n     */\n    insertAsParentOf(other) {\n        const parent = other.parent;\n        parent.removeChild(this);\n        this.parent = parent;\n        other.parent = this;\n    }\n    swapWithParent() {\n        const parent = this._parent;\n        const newParent = parent.parent;\n        // reconnect the children\n        for (const child of this._children) {\n            child.parent = parent;\n        }\n        // remove old links\n        this._children = []; // equivalent to removing every child link one by one\n        parent.removeChild(this);\n        parent.parent.removeChild(parent);\n        // swap two nodes\n        this.parent = newParent;\n        parent.parent = this;\n    }\n}\nclass OutputNode extends DataFlowNode {\n    /**\n     * @param source The name of the source. Will change in assemble.\n     * @param type The type of the output node.\n     * @param refCounts A global ref counter map.\n     */\n    constructor(parent, source, type, refCounts) {\n        super(parent, source);\n        this.type = type;\n        this.refCounts = refCounts;\n        this._source = this._name = source;\n        if (this.refCounts && !(this._name in this.refCounts)) {\n            this.refCounts[this._name] = 0;\n        }\n    }\n    clone() {\n        const cloneObj = new this.constructor();\n        cloneObj.debugName = 'clone_' + this.debugName;\n        cloneObj._source = this._source;\n        cloneObj._name = 'clone_' + this._name;\n        cloneObj.type = this.type;\n        cloneObj.refCounts = this.refCounts;\n        cloneObj.refCounts[cloneObj._name] = 0;\n        return cloneObj;\n    }\n    dependentFields() {\n        return new Set();\n    }\n    producedFields() {\n        return new Set();\n    }\n    hash() {\n        if (this._hash === undefined) {\n            this._hash = `Output ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"uniqueId\"])()}`;\n        }\n        return this._hash;\n    }\n    /**\n     * Request the datasource name and increase the ref counter.\n     *\n     * During the parsing phase, this will return the simple name such as 'main' or 'raw'.\n     * It is crucial to request the name from an output node to mark it as a required node.\n     * If nobody ever requests the name, this datasource will not be instantiated in the assemble phase.\n     *\n     * In the assemble phase, this will return the correct name.\n     */\n    getSource() {\n        this.refCounts[this._name]++;\n        return this._source;\n    }\n    isRequired() {\n        return !!this.refCounts[this._name];\n    }\n    setSource(source) {\n        this._source = source;\n    }\n}\n//# sourceMappingURL=dataflow.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/dataflow.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/density.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/density.js ***!
  \******************************************************************/
/*! exports provided: DensityTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DensityTransformNode\", function() { return DensityTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n/**\n * A class for density transform nodes\n */\nclass DensityTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        var _a, _b, _c;\n        super(parent);\n        this.transform = transform;\n        this.transform = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(transform); // duplicate to prevent side effects\n        const specifiedAs = (_a = this.transform.as) !== null && _a !== void 0 ? _a : [undefined, undefined];\n        this.transform.as = [(_b = specifiedAs[0]) !== null && _b !== void 0 ? _b : 'value', (_c = specifiedAs[1]) !== null && _c !== void 0 ? _c : 'density'];\n    }\n    clone() {\n        return new DensityTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        var _a;\n        return new Set([this.transform.density, ...((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : [])]);\n    }\n    producedFields() {\n        return new Set(this.transform.as);\n    }\n    hash() {\n        return `DensityTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const _a = this.transform, { density } = _a, rest = __rest(_a, [\"density\"]);\n        const result = Object.assign({ type: 'kde', field: density }, rest);\n        return result;\n    }\n}\n//# sourceMappingURL=density.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/density.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/expressions.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/expressions.js ***!
  \**********************************************************************/
/*! exports provided: getDependentFields */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDependentFields\", function() { return getDependentFields; });\n/* harmony import */ var vega_expression__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-expression */ \"./node_modules/vega-expression/build/vega-expression.module.js\");\n\nfunction getName(node) {\n    const name = [];\n    if (node.type === 'Identifier') {\n        return [node.name];\n    }\n    if (node.type === 'Literal') {\n        return [node.value];\n    }\n    if (node.type === 'MemberExpression') {\n        name.push(...getName(node.object));\n        name.push(...getName(node.property));\n    }\n    return name;\n}\nfunction startsWithDatum(node) {\n    if (node.object.type === 'MemberExpression') {\n        return startsWithDatum(node.object);\n    }\n    return node.object.name === 'datum';\n}\nfunction getDependentFields(expression) {\n    const ast = Object(vega_expression__WEBPACK_IMPORTED_MODULE_0__[\"parse\"])(expression);\n    const dependents = new Set();\n    ast.visit((node) => {\n        if (node.type === 'MemberExpression' && startsWithDatum(node)) {\n            dependents.add(getName(node).slice(1).join('.'));\n        }\n    });\n    return dependents;\n}\n//# sourceMappingURL=expressions.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/expressions.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/facet.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/facet.js ***!
  \****************************************************************/
/*! exports provided: FacetNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FacetNode\", function() { return FacetNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _header_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../header/component */ \"./node_modules/vega-lite/build/src/compile/header/component.js\");\n/* harmony import */ var _scale_domain__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../scale/domain */ \"./node_modules/vega-lite/build/src/compile/scale/domain.js\");\n/* harmony import */ var _calculate__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./calculate */ \"./node_modules/vega-lite/build/src/compile/data/calculate.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A node that helps us track what fields we are faceting by.\n */\nclass FacetNode extends _dataflow__WEBPACK_IMPORTED_MODULE_12__[\"DataFlowNode\"] {\n    /**\n     * @param model The facet model.\n     * @param name The name that this facet source will have.\n     * @param data The source data for this facet data.\n     */\n    constructor(parent, model, name, data) {\n        super(parent);\n        this.model = model;\n        this.name = name;\n        this.data = data;\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"]) {\n            const fieldDef = model.facet[channel];\n            if (fieldDef) {\n                const { bin, sort } = fieldDef;\n                this[channel] = Object.assign({ name: model.getName(`${channel}_domain`), fields: [Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef), ...(Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(bin) ? [Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef, { binSuffix: 'end' })] : [])] }, (Object(_sort__WEBPACK_IMPORTED_MODULE_6__[\"isSortField\"])(sort)\n                    ? { sortField: sort }\n                    : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(sort)\n                        ? { sortIndexField: Object(_calculate__WEBPACK_IMPORTED_MODULE_11__[\"sortArrayIndexField\"])(fieldDef, channel) }\n                        : {}));\n            }\n        }\n        this.childModel = model.child;\n    }\n    hash() {\n        let out = `Facet`;\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"]) {\n            if (this[channel]) {\n                out += ` ${channel.charAt(0)}:${Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"hash\"])(this[channel])}`;\n            }\n        }\n        return out;\n    }\n    get fields() {\n        var _a;\n        const f = [];\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"]) {\n            if ((_a = this[channel]) === null || _a === void 0 ? void 0 : _a.fields) {\n                f.push(...this[channel].fields);\n            }\n        }\n        return f;\n    }\n    dependentFields() {\n        const depFields = new Set(this.fields);\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"]) {\n            if (this[channel]) {\n                if (this[channel].sortField) {\n                    depFields.add(this[channel].sortField.field);\n                }\n                if (this[channel].sortIndexField) {\n                    depFields.add(this[channel].sortIndexField);\n                }\n            }\n        }\n        return depFields;\n    }\n    producedFields() {\n        return new Set(); // facet does not produce any new fields\n    }\n    /**\n     * The name to reference this source is its name.\n     */\n    getSource() {\n        return this.name;\n    }\n    getChildIndependentFieldsWithStep() {\n        const childIndependentFieldsWithStep = {};\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNELS\"]) {\n            const childScaleComponent = this.childModel.component.scales[channel];\n            if (childScaleComponent && !childScaleComponent.merged) {\n                // independent scale\n                const type = childScaleComponent.get('type');\n                const range = childScaleComponent.get('range');\n                if (Object(_scale__WEBPACK_IMPORTED_MODULE_5__[\"hasDiscreteDomain\"])(type) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isVgRangeStep\"])(range)) {\n                    const domain = Object(_scale_domain__WEBPACK_IMPORTED_MODULE_10__[\"assembleDomain\"])(this.childModel, channel);\n                    const field = Object(_scale_domain__WEBPACK_IMPORTED_MODULE_10__[\"getFieldFromDomain\"])(domain);\n                    if (field) {\n                        childIndependentFieldsWithStep[channel] = field;\n                    }\n                    else {\n                        _log__WEBPACK_IMPORTED_MODULE_4__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_4__[\"message\"].unknownField(channel));\n                    }\n                }\n            }\n        }\n        return childIndependentFieldsWithStep;\n    }\n    assembleRowColumnHeaderData(channel, crossedDataName, childIndependentFieldsWithStep) {\n        const childChannel = { row: 'y', column: 'x' }[channel];\n        const fields = [];\n        const ops = [];\n        const as = [];\n        if (childIndependentFieldsWithStep && childIndependentFieldsWithStep[childChannel]) {\n            if (crossedDataName) {\n                // If there is a crossed data, calculate max\n                fields.push(`distinct_${childIndependentFieldsWithStep[childChannel]}`);\n                ops.push('max');\n            }\n            else {\n                // If there is no crossed data, just calculate distinct\n                fields.push(childIndependentFieldsWithStep[childChannel]);\n                ops.push('distinct');\n            }\n            // Although it is technically a max, just name it distinct so it's easier to refer to it\n            as.push(`distinct_${childIndependentFieldsWithStep[childChannel]}`);\n        }\n        const { sortField, sortIndexField } = this[channel];\n        if (sortField) {\n            const { op = _sort__WEBPACK_IMPORTED_MODULE_6__[\"DEFAULT_SORT_OP\"], field } = sortField;\n            fields.push(field);\n            ops.push(op);\n            as.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(sortField, { forAs: true }));\n        }\n        else if (sortIndexField) {\n            fields.push(sortIndexField);\n            ops.push('max');\n            as.push(sortIndexField);\n        }\n        return {\n            name: this[channel].name,\n            // Use data from the crossed one if it exist\n            source: crossedDataName !== null && crossedDataName !== void 0 ? crossedDataName : this.data,\n            transform: [\n                Object.assign({ type: 'aggregate', groupby: this[channel].fields }, (fields.length\n                    ? {\n                        fields,\n                        ops,\n                        as\n                    }\n                    : {}))\n            ]\n        };\n    }\n    assembleFacetHeaderData(childIndependentFieldsWithStep) {\n        var _a, _b;\n        const { columns } = this.model.layout;\n        const { layoutHeaders } = this.model.component;\n        const data = [];\n        const hasSharedAxis = {};\n        for (const headerChannel of _header_component__WEBPACK_IMPORTED_MODULE_9__[\"HEADER_CHANNELS\"]) {\n            for (const headerType of _header_component__WEBPACK_IMPORTED_MODULE_9__[\"HEADER_TYPES\"]) {\n                const headers = (_a = (layoutHeaders[headerChannel] && layoutHeaders[headerChannel][headerType])) !== null && _a !== void 0 ? _a : [];\n                for (const header of headers) {\n                    if (((_b = header.axes) === null || _b === void 0 ? void 0 : _b.length) > 0) {\n                        hasSharedAxis[headerChannel] = true;\n                        break;\n                    }\n                }\n            }\n            if (hasSharedAxis[headerChannel]) {\n                const cardinality = `length(data(\"${this.facet.name}\"))`;\n                const stop = headerChannel === 'row'\n                    ? columns\n                        ? { signal: `ceil(${cardinality} / ${columns})` }\n                        : 1\n                    : columns\n                        ? { signal: `min(${cardinality}, ${columns})` }\n                        : { signal: cardinality };\n                data.push({\n                    name: `${this.facet.name}_${headerChannel}`,\n                    transform: [\n                        {\n                            type: 'sequence',\n                            start: 0,\n                            stop\n                        }\n                    ]\n                });\n            }\n        }\n        const { row, column } = hasSharedAxis;\n        if (row || column) {\n            data.unshift(this.assembleRowColumnHeaderData('facet', null, childIndependentFieldsWithStep));\n        }\n        return data;\n    }\n    assemble() {\n        var _a, _b;\n        const data = [];\n        let crossedDataName = null;\n        const childIndependentFieldsWithStep = this.getChildIndependentFieldsWithStep();\n        const { column, row, facet } = this;\n        if (column && row && (childIndependentFieldsWithStep.x || childIndependentFieldsWithStep.y)) {\n            // Need to create a cross dataset to correctly calculate cardinality\n            crossedDataName = `cross_${this.column.name}_${this.row.name}`;\n            const fields = [].concat((_a = childIndependentFieldsWithStep.x) !== null && _a !== void 0 ? _a : [], (_b = childIndependentFieldsWithStep.y) !== null && _b !== void 0 ? _b : []);\n            const ops = fields.map(() => 'distinct');\n            data.push({\n                name: crossedDataName,\n                source: this.data,\n                transform: [\n                    {\n                        type: 'aggregate',\n                        groupby: this.fields,\n                        fields,\n                        ops\n                    }\n                ]\n            });\n        }\n        for (const channel of [_channel__WEBPACK_IMPORTED_MODULE_2__[\"COLUMN\"], _channel__WEBPACK_IMPORTED_MODULE_2__[\"ROW\"]]) {\n            if (this[channel]) {\n                data.push(this.assembleRowColumnHeaderData(channel, crossedDataName, childIndependentFieldsWithStep));\n            }\n        }\n        if (facet) {\n            const facetData = this.assembleFacetHeaderData(childIndependentFieldsWithStep);\n            if (facetData) {\n                data.push(...facetData);\n            }\n        }\n        return data;\n    }\n}\n//# sourceMappingURL=facet.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/facet.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/filter.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/filter.js ***!
  \*****************************************************************/
/*! exports provided: FilterNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FilterNode\", function() { return FilterNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../predicate */ \"./node_modules/vega-lite/build/src/compile/predicate.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _expressions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./expressions */ \"./node_modules/vega-lite/build/src/compile/data/expressions.js\");\n\n\n\n\nclass FilterNode extends _dataflow__WEBPACK_IMPORTED_MODULE_2__[\"DataFlowNode\"] {\n    constructor(parent, model, filter) {\n        super(parent);\n        this.model = model;\n        this.filter = filter;\n        // TODO: refactor this to not take a node and\n        // then add a static function makeFromOperand and make the constructor take only an expression\n        this.expr = Object(_predicate__WEBPACK_IMPORTED_MODULE_1__[\"expression\"])(this.model, this.filter, this);\n        this._dependentFields = Object(_expressions__WEBPACK_IMPORTED_MODULE_3__[\"getDependentFields\"])(this.expr);\n    }\n    clone() {\n        return new FilterNode(null, this.model, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.filter));\n    }\n    dependentFields() {\n        return this._dependentFields;\n    }\n    producedFields() {\n        return new Set(); // filter does not produce any new fields\n    }\n    assemble() {\n        return {\n            type: 'filter',\n            expr: this.expr\n        };\n    }\n    hash() {\n        return `Filter ${this.expr}`;\n    }\n}\n//# sourceMappingURL=filter.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/filter.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/filterinvalid.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/filterinvalid.js ***!
  \************************************************************************/
/*! exports provided: FilterInvalidNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FilterInvalidNode\", function() { return FilterInvalidNode; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\n\n\nclass FilterInvalidNode extends _dataflow__WEBPACK_IMPORTED_MODULE_6__[\"DataFlowNode\"] {\n    constructor(parent, filter) {\n        super(parent);\n        this.filter = filter;\n    }\n    clone() {\n        return new FilterInvalidNode(null, Object.assign({}, this.filter));\n    }\n    static make(parent, model) {\n        const { config, mark, markDef } = model;\n        const invalid = Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"getMarkPropOrConfig\"])('invalid', markDef, config);\n        if (invalid !== 'filter') {\n            return null;\n        }\n        const filter = model.reduceFieldDef((aggregator, fieldDef, channel) => {\n            const scaleComponent = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"isScaleChannel\"])(channel) && model.getScaleComponent(channel);\n            if (scaleComponent) {\n                const scaleType = scaleComponent.get('type');\n                // While discrete domain scales can handle invalid values, continuous scales can't.\n                // Thus, for non-path marks, we have to filter null for scales with continuous domains.\n                // (For path marks, we will use \"defined\" property and skip these values instead.)\n                if (Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"hasContinuousDomain\"])(scaleType) && fieldDef.aggregate !== 'count' && !Object(_mark__WEBPACK_IMPORTED_MODULE_2__[\"isPathMark\"])(mark)) {\n                    aggregator[fieldDef.field] = fieldDef; // we know that the fieldDef is a typed field def\n                }\n            }\n            return aggregator;\n        }, {});\n        if (!Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(filter).length) {\n            return null;\n        }\n        return new FilterInvalidNode(parent, filter);\n    }\n    dependentFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.filter));\n    }\n    producedFields() {\n        return new Set(); // filter does not produce any new fields\n    }\n    hash() {\n        return `FilterInvalid ${Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"hash\"])(this.filter)}`;\n    }\n    /**\n     * Create the VgTransforms for each of the filtered fields.\n     */\n    assemble() {\n        const filters = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(this.filter).reduce((vegaFilters, field) => {\n            const fieldDef = this.filter[field];\n            const ref = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(fieldDef, { expr: 'datum' });\n            if (fieldDef !== null) {\n                if (fieldDef.type === 'temporal') {\n                    vegaFilters.push(`(isDate(${ref}) || (isValid(${ref}) && isFinite(+${ref})))`);\n                }\n                else if (fieldDef.type === 'quantitative') {\n                    vegaFilters.push(`isValid(${ref})`);\n                    vegaFilters.push(`isFinite(+${ref})`);\n                }\n                else {\n                    // should never get here\n                }\n            }\n            return vegaFilters;\n        }, []);\n        return filters.length > 0\n            ? {\n                type: 'filter',\n                expr: filters.join(' && ')\n            }\n            : null;\n    }\n}\n//# sourceMappingURL=filterinvalid.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/filterinvalid.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/flatten.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/flatten.js ***!
  \******************************************************************/
/*! exports provided: FlattenTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FlattenTransformNode\", function() { return FlattenTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n/**\n * A class for flatten transform nodes\n */\nclass FlattenTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n        this.transform = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(transform); // duplicate to prevent side effects\n        const { flatten, as = [] } = this.transform;\n        this.transform.as = flatten.map((f, i) => { var _a; return (_a = as[i]) !== null && _a !== void 0 ? _a : f; });\n    }\n    clone() {\n        return new FlattenTransformNode(this.parent, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        return new Set(this.transform.flatten);\n    }\n    producedFields() {\n        return new Set(this.transform.as);\n    }\n    hash() {\n        return `FlattenTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const { flatten: fields, as } = this.transform;\n        const result = {\n            type: 'flatten',\n            fields,\n            as\n        };\n        return result;\n    }\n}\n//# sourceMappingURL=flatten.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/flatten.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/fold.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/fold.js ***!
  \***************************************************************/
/*! exports provided: FoldTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FoldTransformNode\", function() { return FoldTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n/**\n * A class for flatten transform nodes\n */\nclass FoldTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        var _a, _b, _c;\n        super(parent);\n        this.transform = transform;\n        this.transform = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(transform); // duplicate to prevent side effects\n        const specifiedAs = (_a = this.transform.as) !== null && _a !== void 0 ? _a : [undefined, undefined];\n        this.transform.as = [(_b = specifiedAs[0]) !== null && _b !== void 0 ? _b : 'key', (_c = specifiedAs[1]) !== null && _c !== void 0 ? _c : 'value'];\n    }\n    clone() {\n        return new FoldTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        return new Set(this.transform.fold);\n    }\n    producedFields() {\n        return new Set(this.transform.as);\n    }\n    hash() {\n        return `FoldTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const { fold, as } = this.transform;\n        const result = {\n            type: 'fold',\n            fields: fold,\n            as\n        };\n        return result;\n    }\n}\n//# sourceMappingURL=fold.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/fold.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/formatparse.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/formatparse.js ***!
  \**********************************************************************/
/*! exports provided: getImplicitFromFilterTransform, getImplicitFromEncoding, getImplicitFromSelection, ParseNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getImplicitFromFilterTransform\", function() { return getImplicitFromFilterTransform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getImplicitFromEncoding\", function() { return getImplicitFromEncoding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getImplicitFromSelection\", function() { return getImplicitFromSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ParseNode\", function() { return ParseNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../datetime */ \"./node_modules/vega-lite/build/src/datetime.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _logical__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logical */ \"./node_modules/vega-lite/build/src/logical.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../predicate */ \"./node_modules/vega-lite/build/src/predicate.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Remove quotes from a string.\n */\nfunction unquote(pattern) {\n    if ((pattern[0] === \"'\" && pattern[pattern.length - 1] === \"'\") ||\n        (pattern[0] === '\"' && pattern[pattern.length - 1] === '\"')) {\n        return pattern.slice(1, -1);\n    }\n    return pattern;\n}\n/**\n * @param field The field.\n * @param parse What to parse the field as.\n */\nfunction parseExpression(field, parse) {\n    const f = Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"accessPathWithDatum\"])(field);\n    if (parse === 'number') {\n        return `toNumber(${f})`;\n    }\n    else if (parse === 'boolean') {\n        return `toBoolean(${f})`;\n    }\n    else if (parse === 'string') {\n        return `toString(${f})`;\n    }\n    else if (parse === 'date') {\n        return `toDate(${f})`;\n    }\n    else if (parse === 'flatten') {\n        return f;\n    }\n    else if (parse.indexOf('date:') === 0) {\n        const specifier = unquote(parse.slice(5, parse.length));\n        return `timeParse(${f},'${specifier}')`;\n    }\n    else if (parse.indexOf('utc:') === 0) {\n        const specifier = unquote(parse.slice(4, parse.length));\n        return `utcParse(${f},'${specifier}')`;\n    }\n    else {\n        _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].unrecognizedParse(parse));\n        return null;\n    }\n}\nfunction getImplicitFromFilterTransform(transform) {\n    const implicit = {};\n    Object(_logical__WEBPACK_IMPORTED_MODULE_7__[\"forEachLeaf\"])(transform.filter, filter => {\n        var _a;\n        if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldPredicate\"])(filter)) {\n            // Automatically add a parse node for filters with filter objects\n            let val = null;\n            // For EqualFilter, just use the equal property.\n            // For RangeFilter and OneOfFilter, all array members should have\n            // the same type, so we only use the first one.\n            if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldEqualPredicate\"])(filter)) {\n                val = Object(_common__WEBPACK_IMPORTED_MODULE_12__[\"signalRefOrValue\"])(filter.equal);\n            }\n            else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldLTEPredicate\"])(filter)) {\n                val = Object(_common__WEBPACK_IMPORTED_MODULE_12__[\"signalRefOrValue\"])(filter.lte);\n            }\n            else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldLTPredicate\"])(filter)) {\n                val = Object(_common__WEBPACK_IMPORTED_MODULE_12__[\"signalRefOrValue\"])(filter.lt);\n            }\n            else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldGTPredicate\"])(filter)) {\n                val = Object(_common__WEBPACK_IMPORTED_MODULE_12__[\"signalRefOrValue\"])(filter.gt);\n            }\n            else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldGTEPredicate\"])(filter)) {\n                val = Object(_common__WEBPACK_IMPORTED_MODULE_12__[\"signalRefOrValue\"])(filter.gte);\n            }\n            else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldRangePredicate\"])(filter)) {\n                val = filter.range[0];\n            }\n            else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"isFieldOneOfPredicate\"])(filter)) {\n                val = ((_a = filter.oneOf) !== null && _a !== void 0 ? _a : filter['in'])[0];\n            } // else -- for filter expression, we can't infer anything\n            if (val) {\n                if (Object(_datetime__WEBPACK_IMPORTED_MODULE_5__[\"isDateTime\"])(val)) {\n                    implicit[filter.field] = 'date';\n                }\n                else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(val)) {\n                    implicit[filter.field] = 'number';\n                }\n                else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(val)) {\n                    implicit[filter.field] = 'string';\n                }\n            }\n            if (filter.timeUnit) {\n                implicit[filter.field] = 'date';\n            }\n        }\n    });\n    return implicit;\n}\n/**\n * Creates a parse node for implicit parsing from a model and updates ancestorParse.\n */\nfunction getImplicitFromEncoding(model) {\n    const implicit = {};\n    function add(fieldDef) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDefForTimeFormat\"])(fieldDef)) {\n            implicit[fieldDef.field] = 'date';\n        }\n        else if (fieldDef.type === 'quantitative' &&\n            Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isMinMaxOp\"])(fieldDef.aggregate) // we need to parse numbers to support correct min and max\n        ) {\n            implicit[fieldDef.field] = 'number';\n        }\n        else if (Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"accessPathDepth\"])(fieldDef.field) > 1) {\n            // For non-date/non-number (strings and booleans), derive a flattened field for a referenced nested field.\n            // (Parsing numbers / dates already flattens numeric and temporal fields.)\n            if (!(fieldDef.field in implicit)) {\n                implicit[fieldDef.field] = 'flatten';\n            }\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isScaleFieldDef\"])(fieldDef) && Object(_sort__WEBPACK_IMPORTED_MODULE_10__[\"isSortField\"])(fieldDef.sort) && Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"accessPathDepth\"])(fieldDef.sort.field) > 1) {\n            // Flatten fields that we sort by but that are not otherwise flattened.\n            if (!(fieldDef.sort.field in implicit)) {\n                implicit[fieldDef.sort.field] = 'flatten';\n            }\n        }\n    }\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_13__[\"isUnitModel\"])(model) || Object(_model__WEBPACK_IMPORTED_MODULE_13__[\"isFacetModel\"])(model)) {\n        // Parse encoded fields\n        model.forEachFieldDef((fieldDef, channel) => {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isTypedFieldDef\"])(fieldDef)) {\n                add(fieldDef);\n            }\n            else {\n                const mainChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getMainRangeChannel\"])(channel);\n                const mainFieldDef = model.fieldDef(mainChannel);\n                add(Object.assign(Object.assign({}, fieldDef), { type: mainFieldDef.type }));\n            }\n        });\n    }\n    // Parse quantitative dimension fields of path marks as numbers so that we sort them correctly.\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_13__[\"isUnitModel\"])(model)) {\n        const { mark, markDef, encoding } = model;\n        if (Object(_mark__WEBPACK_IMPORTED_MODULE_8__[\"isPathMark\"])(mark) &&\n            // No need to sort by dimension if we have a connected scatterplot (order channel is present)\n            !model.encoding.order) {\n            const dimensionChannel = markDef.orient === 'horizontal' ? 'y' : 'x';\n            const dimensionChannelDef = encoding[dimensionChannel];\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(dimensionChannelDef) &&\n                dimensionChannelDef.type === 'quantitative' &&\n                !(dimensionChannelDef.field in implicit)) {\n                implicit[dimensionChannelDef.field] = 'number';\n            }\n        }\n    }\n    return implicit;\n}\n/**\n * Creates a parse node for implicit parsing from a model and updates ancestorParse.\n */\nfunction getImplicitFromSelection(model) {\n    const implicit = {};\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_13__[\"isUnitModel\"])(model) && model.component.selection) {\n        for (const name of Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(model.component.selection)) {\n            const selCmpt = model.component.selection[name];\n            for (const proj of selCmpt.project.items) {\n                if (!proj.channel && Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"accessPathDepth\"])(proj.field) > 1) {\n                    implicit[proj.field] = 'flatten';\n                }\n            }\n        }\n    }\n    return implicit;\n}\nclass ParseNode extends _dataflow__WEBPACK_IMPORTED_MODULE_15__[\"DataFlowNode\"] {\n    constructor(parent, parse) {\n        super(parent);\n        this._parse = parse;\n    }\n    clone() {\n        return new ParseNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"duplicate\"])(this._parse));\n    }\n    hash() {\n        return `Parse ${Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"hash\"])(this._parse)}`;\n    }\n    /**\n     * Creates a parse node from a data.format.parse and updates ancestorParse.\n     */\n    static makeExplicit(parent, model, ancestorParse) {\n        // Custom parse\n        let explicit = {};\n        const data = model.data;\n        if (!Object(_data__WEBPACK_IMPORTED_MODULE_4__[\"isGenerator\"])(data) && data && data.format && data.format.parse) {\n            explicit = data.format.parse;\n        }\n        return this.makeWithAncestors(parent, explicit, {}, ancestorParse);\n    }\n    /**\n     * Creates a parse node from \"explicit\" parse and \"implicit\" parse and updates ancestorParse.\n     */\n    static makeWithAncestors(parent, explicit, implicit, ancestorParse) {\n        // We should not parse what has already been parsed in a parent (explicitly or implicitly) or what has been derived (maked as \"derived\"). We also don't need to flatten a field that has already been parsed.\n        for (const field of Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(implicit)) {\n            const parsedAs = ancestorParse.getWithExplicit(field);\n            if (parsedAs.value !== undefined) {\n                // We always ignore derived fields even if they are implicitly defined because we expect users to create the right types.\n                if (parsedAs.explicit ||\n                    parsedAs.value === implicit[field] ||\n                    parsedAs.value === 'derived' ||\n                    implicit[field] === 'flatten') {\n                    delete implicit[field];\n                }\n                else {\n                    _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].differentParse(field, implicit[field], parsedAs.value));\n                }\n            }\n        }\n        for (const field of Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(explicit)) {\n            const parsedAs = ancestorParse.get(field);\n            if (parsedAs !== undefined) {\n                // Don't parse a field again if it has been parsed with the same type already.\n                if (parsedAs === explicit[field]) {\n                    delete explicit[field];\n                }\n                else {\n                    _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].differentParse(field, explicit[field], parsedAs));\n                }\n            }\n        }\n        const parse = new _split__WEBPACK_IMPORTED_MODULE_14__[\"Split\"](explicit, implicit);\n        // add the format parse from this model so that children don't parse the same field again\n        ancestorParse.copyAll(parse);\n        // copy only non-null parses\n        const p = {};\n        for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(parse.combine())) {\n            const val = parse.get(key);\n            if (val !== null) {\n                p[key] = val;\n            }\n        }\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(p).length === 0 || ancestorParse.parseNothing) {\n            return null;\n        }\n        return new ParseNode(parent, p);\n    }\n    get parse() {\n        return this._parse;\n    }\n    merge(other) {\n        this._parse = Object.assign(Object.assign({}, this._parse), other.parse);\n        other.remove();\n    }\n    /**\n     * Assemble an object for Vega's format.parse property.\n     */\n    assembleFormatParse() {\n        const formatParse = {};\n        for (const field of Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(this._parse)) {\n            const p = this._parse[field];\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"accessPathDepth\"])(field) === 1) {\n                formatParse[field] = p;\n            }\n        }\n        return formatParse;\n    }\n    // format parse depends and produces all fields in its parse\n    producedFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(this._parse));\n    }\n    dependentFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(this._parse));\n    }\n    assembleTransforms(onlyNested = false) {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(this._parse)\n            .filter(field => (onlyNested ? Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"accessPathDepth\"])(field) > 1 : true))\n            .map(field => {\n            const expr = parseExpression(field, this._parse[field]);\n            if (!expr) {\n                return null;\n            }\n            const formula = {\n                type: 'formula',\n                expr,\n                as: Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"removePathFromField\"])(field) // Vega output is always flattened\n            };\n            return formula;\n        })\n            .filter(t => t !== null);\n    }\n}\n//# sourceMappingURL=formatparse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/formatparse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/geojson.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/geojson.js ***!
  \******************************************************************/
/*! exports provided: GeoJSONNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GeoJSONNode\", function() { return GeoJSONNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\n\nclass GeoJSONNode extends _dataflow__WEBPACK_IMPORTED_MODULE_5__[\"DataFlowNode\"] {\n    constructor(parent, fields, geojson, signal) {\n        super(parent);\n        this.fields = fields;\n        this.geojson = geojson;\n        this.signal = signal;\n    }\n    clone() {\n        return new GeoJSONNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"duplicate\"])(this.fields), this.geojson, this.signal);\n    }\n    static parseAll(parent, model) {\n        if (model.component.projection && !model.component.projection.isFit) {\n            return parent;\n        }\n        let geoJsonCounter = 0;\n        for (const coordinates of [\n            [_channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"LATITUDE\"]],\n            [_channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE2\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"LATITUDE2\"]]\n        ]) {\n            const pair = coordinates.map(channel => {\n                const def = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"getFieldOrDatumDef\"])(model.encoding[channel]);\n                return Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(def)\n                    ? def.field\n                    : Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isDatumDef\"])(def)\n                        ? { expr: `${def.datum}` }\n                        : Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isValueDef\"])(def)\n                            ? { expr: `${def['value']}` }\n                            : undefined;\n            });\n            if (pair[0] || pair[1]) {\n                parent = new GeoJSONNode(parent, pair, null, model.getName(`geojson_${geoJsonCounter++}`));\n            }\n        }\n        if (model.channelHasField(_channel__WEBPACK_IMPORTED_MODULE_1__[\"SHAPE\"])) {\n            const fieldDef = model.typedFieldDef(_channel__WEBPACK_IMPORTED_MODULE_1__[\"SHAPE\"]);\n            if (fieldDef.type === _type__WEBPACK_IMPORTED_MODULE_3__[\"GEOJSON\"]) {\n                parent = new GeoJSONNode(parent, null, fieldDef.field, model.getName(`geojson_${geoJsonCounter++}`));\n            }\n        }\n        return parent;\n    }\n    dependentFields() {\n        var _a;\n        const fields = ((_a = this.fields) !== null && _a !== void 0 ? _a : []).filter(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"]);\n        return new Set([...(this.geojson ? [this.geojson] : []), ...fields]);\n    }\n    producedFields() {\n        return new Set();\n    }\n    hash() {\n        return `GeoJSON ${this.geojson} ${this.signal} ${Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"hash\"])(this.fields)}`;\n    }\n    assemble() {\n        return Object.assign(Object.assign(Object.assign({ type: 'geojson' }, (this.fields ? { fields: this.fields } : {})), (this.geojson ? { geojson: this.geojson } : {})), { signal: this.signal });\n    }\n}\n//# sourceMappingURL=geojson.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/geojson.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/geopoint.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/geopoint.js ***!
  \*******************************************************************/
/*! exports provided: GeoPointNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GeoPointNode\", function() { return GeoPointNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\nclass GeoPointNode extends _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"DataFlowNode\"] {\n    constructor(parent, projection, fields, as) {\n        super(parent);\n        this.projection = projection;\n        this.fields = fields;\n        this.as = as;\n    }\n    clone() {\n        return new GeoPointNode(null, this.projection, Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.fields), Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.as));\n    }\n    static parseAll(parent, model) {\n        if (!model.projectionName()) {\n            return parent;\n        }\n        for (const coordinates of [\n            [_channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"LATITUDE\"]],\n            [_channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE2\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"LATITUDE2\"]]\n        ]) {\n            const pair = coordinates.map(channel => {\n                const def = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"getFieldOrDatumDef\"])(model.encoding[channel]);\n                return Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(def)\n                    ? def.field\n                    : Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isDatumDef\"])(def)\n                        ? { expr: `${def.datum}` }\n                        : Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isValueDef\"])(def)\n                            ? { expr: `${def['value']}` }\n                            : undefined;\n            });\n            const suffix = coordinates[0] === _channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE2\"] ? '2' : '';\n            if (pair[0] || pair[1]) {\n                parent = new GeoPointNode(parent, model.projectionName(), pair, [\n                    model.getName('x' + suffix),\n                    model.getName('y' + suffix)\n                ]);\n            }\n        }\n        return parent;\n    }\n    dependentFields() {\n        return new Set(this.fields.filter(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"]));\n    }\n    producedFields() {\n        return new Set(this.as);\n    }\n    hash() {\n        return `Geopoint ${this.projection} ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(this.fields)} ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(this.as)}`;\n    }\n    assemble() {\n        return {\n            type: 'geopoint',\n            projection: this.projection,\n            fields: this.fields,\n            as: this.as\n        };\n    }\n}\n//# sourceMappingURL=geopoint.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/geopoint.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/graticule.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/graticule.js ***!
  \********************************************************************/
/*! exports provided: GraticuleNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GraticuleNode\", function() { return GraticuleNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\nclass GraticuleNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, params) {\n        super(parent);\n        this.params = params;\n    }\n    clone() {\n        return new GraticuleNode(null, this.params);\n    }\n    dependentFields() {\n        return new Set();\n    }\n    producedFields() {\n        return undefined; // there should never be a node before graticule\n    }\n    hash() {\n        return `Graticule ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.params)}`;\n    }\n    assemble() {\n        return Object.assign({ type: 'graticule' }, (this.params === true ? {} : this.params));\n    }\n}\n//# sourceMappingURL=graticule.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/graticule.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/identifier.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/identifier.js ***!
  \*********************************************************************/
/*! exports provided: IdentifierNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IdentifierNode\", function() { return IdentifierNode; });\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../selection */ \"./node_modules/vega-lite/build/src/selection.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\nclass IdentifierNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    clone() {\n        return new IdentifierNode(null);\n    }\n    constructor(parent) {\n        super(parent);\n    }\n    dependentFields() {\n        return new Set();\n    }\n    producedFields() {\n        return new Set([_selection__WEBPACK_IMPORTED_MODULE_0__[\"SELECTION_ID\"]]);\n    }\n    hash() {\n        return 'Identifier';\n    }\n    assemble() {\n        return { type: 'identifier', as: _selection__WEBPACK_IMPORTED_MODULE_0__[\"SELECTION_ID\"] };\n    }\n}\n//# sourceMappingURL=identifier.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/identifier.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/impute.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/impute.js ***!
  \*****************************************************************/
/*! exports provided: ImputeNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ImputeNode\", function() { return ImputeNode; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../transform */ \"./node_modules/vega-lite/build/src/transform.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\nclass ImputeNode extends _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n    }\n    clone() {\n        return new ImputeNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        var _a;\n        return new Set([this.transform.impute, this.transform.key, ...((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : [])]);\n    }\n    producedFields() {\n        return new Set([this.transform.impute]);\n    }\n    processSequence(keyvals) {\n        const { start = 0, stop, step } = keyvals;\n        const result = [start, stop, ...(step ? [step] : [])].join(',');\n        return { signal: `sequence(${result})` };\n    }\n    static makeFromTransform(parent, imputeTransform) {\n        return new ImputeNode(parent, imputeTransform);\n    }\n    static makeFromEncoding(parent, model) {\n        const encoding = model.encoding;\n        const xDef = encoding.x;\n        const yDef = encoding.y;\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldDef\"])(xDef) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldDef\"])(yDef)) {\n            const imputedChannel = xDef.impute ? xDef : yDef.impute ? yDef : undefined;\n            if (imputedChannel === undefined) {\n                return undefined;\n            }\n            const keyChannel = xDef.impute ? yDef : yDef.impute ? xDef : undefined;\n            const { method, value, frame, keyvals } = imputedChannel.impute;\n            const groupbyFields = Object(_encoding__WEBPACK_IMPORTED_MODULE_1__[\"pathGroupingFields\"])(model.mark, encoding);\n            return new ImputeNode(parent, Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ impute: imputedChannel.field, key: keyChannel.field }, (method ? { method } : {})), (value !== undefined ? { value } : {})), (frame ? { frame } : {})), (keyvals !== undefined ? { keyvals } : {})), (groupbyFields.length ? { groupby: groupbyFields } : {})));\n        }\n        return null;\n    }\n    hash() {\n        return `Impute ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const { impute, key, keyvals, method, groupby, value, frame = [null, null] } = this.transform;\n        const imputeTransform = Object.assign(Object.assign(Object.assign(Object.assign({ type: 'impute', field: impute, key }, (keyvals ? { keyvals: Object(_transform__WEBPACK_IMPORTED_MODULE_2__[\"isImputeSequence\"])(keyvals) ? this.processSequence(keyvals) : keyvals } : {})), { method: 'value' }), (groupby ? { groupby } : {})), { value: !method || method === 'value' ? value : null });\n        if (method && method !== 'value') {\n            const deriveNewField = Object.assign({ type: 'window', as: [`imputed_${impute}_value`], ops: [method], fields: [impute], frame, ignorePeers: false }, (groupby ? { groupby } : {}));\n            const replaceOriginal = {\n                type: 'formula',\n                expr: `datum.${impute} === null ? datum.imputed_${impute}_value : datum.${impute}`,\n                as: impute\n            };\n            return [imputeTransform, deriveNewField, replaceOriginal];\n        }\n        else {\n            return [imputeTransform];\n        }\n    }\n}\n//# sourceMappingURL=impute.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/impute.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/index.js ***!
  \****************************************************************/
/*! exports provided: AncestorParse */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AncestorParse\", function() { return AncestorParse; });\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n\n/**\n * Class to track interesting properties (see https://15721.courses.cs.cmu.edu/spring2016/papers/graefe-ieee1995.pdf)\n * about how fields have been parsed or whether they have been derived in a transform. We use this to not parse the\n * same field again (or differently).\n */\nclass AncestorParse extends _split__WEBPACK_IMPORTED_MODULE_0__[\"Split\"] {\n    constructor(explicit = {}, implicit = {}, parseNothing = false) {\n        super(explicit, implicit);\n        this.explicit = explicit;\n        this.implicit = implicit;\n        this.parseNothing = parseNothing;\n    }\n    clone() {\n        const clone = super.clone();\n        clone.parseNothing = this.parseNothing;\n        return clone;\n    }\n}\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/joinaggregate.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/joinaggregate.js ***!
  \************************************************************************/
/*! exports provided: JoinAggregateTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"JoinAggregateTransformNode\", function() { return JoinAggregateTransformNode; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n/**\n * A class for the join aggregate transform nodes.\n */\nclass JoinAggregateTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_2__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n    }\n    clone() {\n        return new JoinAggregateTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"duplicate\"])(this.transform));\n    }\n    addDimensions(fields) {\n        this.transform.groupby = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"unique\"])(this.transform.groupby.concat(fields), d => d);\n    }\n    dependentFields() {\n        const out = new Set();\n        if (this.transform.groupby) {\n            this.transform.groupby.forEach(out.add, out);\n        }\n        this.transform.joinaggregate\n            .map(w => w.field)\n            .filter(f => f !== undefined)\n            .forEach(out.add, out);\n        return out;\n    }\n    producedFields() {\n        return new Set(this.transform.joinaggregate.map(this.getDefaultName));\n    }\n    getDefaultName(joinAggregateFieldDef) {\n        var _a;\n        return (_a = joinAggregateFieldDef.as) !== null && _a !== void 0 ? _a : Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"vgField\"])(joinAggregateFieldDef);\n    }\n    hash() {\n        return `JoinAggregateTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const fields = [];\n        const ops = [];\n        const as = [];\n        for (const joinaggregate of this.transform.joinaggregate) {\n            ops.push(joinaggregate.op);\n            as.push(this.getDefaultName(joinaggregate));\n            fields.push(joinaggregate.field === undefined ? null : joinaggregate.field);\n        }\n        const groupby = this.transform.groupby;\n        return Object.assign({ type: 'joinaggregate', as,\n            ops,\n            fields }, (groupby !== undefined ? { groupby } : {}));\n    }\n}\n//# sourceMappingURL=joinaggregate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/joinaggregate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/joinaggregatefacet.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/joinaggregatefacet.js ***!
  \*****************************************************************************/
/*! exports provided: makeJoinAggregateFromFacet */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeJoinAggregateFromFacet\", function() { return makeJoinAggregateFromFacet; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../facet */ \"./node_modules/vega-lite/build/src/compile/facet.js\");\n/* harmony import */ var _joinaggregate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./joinaggregate */ \"./node_modules/vega-lite/build/src/compile/data/joinaggregate.js\");\n\n\n\n\nfunction makeJoinAggregateFromFacet(parent, facet) {\n    const { row, column } = facet;\n    if (row && column) {\n        let newParent = null;\n        // only need to make one for crossed facet\n        for (const fieldDef of [row, column]) {\n            if (Object(_sort__WEBPACK_IMPORTED_MODULE_1__[\"isSortField\"])(fieldDef.sort)) {\n                const { field, op = _sort__WEBPACK_IMPORTED_MODULE_1__[\"DEFAULT_SORT_OP\"] } = fieldDef.sort;\n                parent = newParent = new _joinaggregate__WEBPACK_IMPORTED_MODULE_3__[\"JoinAggregateTransformNode\"](parent, {\n                    joinaggregate: [\n                        {\n                            op,\n                            field,\n                            as: Object(_facet__WEBPACK_IMPORTED_MODULE_2__[\"facetSortFieldName\"])(fieldDef, fieldDef.sort, { forAs: true })\n                        }\n                    ],\n                    groupby: [Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"vgField\"])(fieldDef)]\n                });\n            }\n        }\n        return newParent;\n    }\n    return null;\n}\n//# sourceMappingURL=joinaggregatefacet.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/joinaggregatefacet.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/loess.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/loess.js ***!
  \****************************************************************/
/*! exports provided: LoessTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LoessTransformNode\", function() { return LoessTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n/**\n * A class for loess transform nodes\n */\nclass LoessTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        var _a, _b, _c;\n        super(parent);\n        this.transform = transform;\n        this.transform = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(transform); // duplicate to prevent side effects\n        const specifiedAs = (_a = this.transform.as) !== null && _a !== void 0 ? _a : [undefined, undefined];\n        this.transform.as = [(_b = specifiedAs[0]) !== null && _b !== void 0 ? _b : transform.on, (_c = specifiedAs[1]) !== null && _c !== void 0 ? _c : transform.loess];\n    }\n    clone() {\n        return new LoessTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        var _a;\n        return new Set([this.transform.loess, this.transform.on, ...((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : [])]);\n    }\n    producedFields() {\n        return new Set(this.transform.as);\n    }\n    hash() {\n        return `LoessTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const _a = this.transform, { loess, on } = _a, rest = __rest(_a, [\"loess\", \"on\"]);\n        const result = Object.assign({ type: 'loess', x: on, y: loess }, rest);\n        return result;\n    }\n}\n//# sourceMappingURL=loess.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/loess.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/lookup.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/lookup.js ***!
  \*****************************************************************/
/*! exports provided: LookupNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LookupNode\", function() { return LookupNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../transform */ \"./node_modules/vega-lite/build/src/transform.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parse */ \"./node_modules/vega-lite/build/src/compile/data/parse.js\");\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./source */ \"./node_modules/vega-lite/build/src/compile/data/source.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n\n\n\n\n\n\n\n\nclass LookupNode extends _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"DataFlowNode\"] {\n    constructor(parent, transform, secondary) {\n        super(parent);\n        this.transform = transform;\n        this.secondary = secondary;\n    }\n    clone() {\n        return new LookupNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.transform), this.secondary);\n    }\n    static make(parent, model, transform, counter) {\n        const sources = model.component.data.sources;\n        const { from } = transform;\n        let fromOutputNode = null;\n        if (Object(_transform__WEBPACK_IMPORTED_MODULE_2__[\"isLookupData\"])(from)) {\n            let fromSource = Object(_parse__WEBPACK_IMPORTED_MODULE_5__[\"findSource\"])(from.data, sources);\n            if (!fromSource) {\n                fromSource = new _source__WEBPACK_IMPORTED_MODULE_6__[\"SourceNode\"](from.data);\n                sources.push(fromSource);\n            }\n            const fromOutputName = model.getName(`lookup_${counter}`);\n            fromOutputNode = new _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"](fromSource, fromOutputName, _data__WEBPACK_IMPORTED_MODULE_7__[\"DataSourceType\"].Lookup, model.component.data.outputNodeRefCounts);\n            model.component.data.outputNodes[fromOutputName] = fromOutputNode;\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_2__[\"isLookupSelection\"])(from)) {\n            const selName = from.selection;\n            transform = Object.assign({ as: selName }, transform);\n            fromOutputNode = model.getSelectionComponent(Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(selName), selName).materialized;\n            if (!fromOutputNode) {\n                throw new Error(_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].noSameUnitLookup(selName));\n            }\n        }\n        return new LookupNode(parent, transform, fromOutputNode.getSource());\n    }\n    dependentFields() {\n        return new Set([this.transform.lookup]);\n    }\n    producedFields() {\n        return new Set(this.transform.as ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(this.transform.as) : this.transform.from.fields);\n    }\n    hash() {\n        return `Lookup ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])({ transform: this.transform, secondary: this.secondary })}`;\n    }\n    assemble() {\n        let foreign;\n        if (this.transform.from.fields) {\n            // lookup a few fields and add create a flat output\n            foreign = Object.assign({ values: this.transform.from.fields }, (this.transform.as ? { as: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(this.transform.as) } : {}));\n        }\n        else {\n            // lookup full record and nest it\n            let asName = this.transform.as;\n            if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(asName)) {\n                _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].NO_FIELDS_NEEDS_AS);\n                asName = '_lookup';\n            }\n            foreign = {\n                as: [asName]\n            };\n        }\n        return Object.assign(Object.assign({ type: 'lookup', from: this.secondary, key: this.transform.from.key, fields: [this.transform.lookup] }, foreign), (this.transform.default ? { default: this.transform.default } : {}));\n    }\n}\n//# sourceMappingURL=lookup.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/lookup.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/optimize.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/optimize.js ***!
  \*******************************************************************/
/*! exports provided: FACET_SCALE_PREFIX, MAX_OPTIMIZATION_RUNS, checkLinks, optimizeDataflow */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FACET_SCALE_PREFIX\", function() { return FACET_SCALE_PREFIX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_OPTIMIZATION_RUNS\", function() { return MAX_OPTIMIZATION_RUNS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkLinks\", function() { return checkLinks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"optimizeDataflow\", function() { return optimizeDataflow; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _optimizers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./optimizers */ \"./node_modules/vega-lite/build/src/compile/data/optimizers.js\");\n/* harmony import */ var _subtree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./subtree */ \"./node_modules/vega-lite/build/src/compile/data/subtree.js\");\n\n\n\nconst FACET_SCALE_PREFIX = 'scale_';\nconst MAX_OPTIMIZATION_RUNS = 5;\n/**\n * Iterates over a dataflow graph and checks whether all links are consistent.\n */\nfunction checkLinks(nodes) {\n    for (const node of nodes) {\n        for (const child of node.children) {\n            if (child.parent !== node) {\n                // log.error('Dataflow graph is inconsistent.', node, child);\n                return false;\n            }\n        }\n        if (!checkLinks(node.children)) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Run the specified optimizer on the provided nodes.\n *\n * @param optimizer The optimizer instance to run.\n * @param nodes A set of nodes to optimize.\n */\nfunction runOptimizer(optimizer, nodes) {\n    let modified = false;\n    for (const node of nodes) {\n        modified = optimizer.optimize(node) || modified;\n    }\n    return modified;\n}\nfunction optimizationDataflowHelper(dataComponent, model, firstPass) {\n    let roots = dataComponent.sources;\n    let modified = false;\n    modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"RemoveUnnecessaryOutputNodes\"](), roots) || modified;\n    modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"RemoveUnnecessaryIdentifierNodes\"](model), roots) || modified;\n    // remove source nodes that don't have any children because they also don't have output nodes\n    roots = roots.filter(r => r.numChildren() > 0);\n    modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"RemoveUnusedSubtrees\"](), roots) || modified;\n    roots = roots.filter(r => r.numChildren() > 0);\n    if (!firstPass) {\n        // Only run these optimizations after the optimizer has moved down the facet node.\n        // With this change, we can be more aggressive in the optimizations.\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MoveParseUp\"](), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MergeBins\"](model), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"RemoveDuplicateTimeUnits\"](), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MergeParse\"](), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MergeAggregates\"](), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MergeTimeUnits\"](), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MergeIdenticalNodes\"](), roots) || modified;\n        modified = runOptimizer(new _optimizers__WEBPACK_IMPORTED_MODULE_1__[\"MergeOutputs\"](), roots) || modified;\n    }\n    dataComponent.sources = roots;\n    return modified;\n}\n/**\n * Optimizes the dataflow of the passed in data component.\n */\nfunction optimizeDataflow(data, model) {\n    // check before optimizations\n    checkLinks(data.sources);\n    let firstPassCounter = 0;\n    let secondPassCounter = 0;\n    for (let i = 0; i < MAX_OPTIMIZATION_RUNS; i++) {\n        if (!optimizationDataflowHelper(data, model, true)) {\n            break;\n        }\n        firstPassCounter++;\n    }\n    // move facets down and make a copy of the subtree so that we can have scales at the top level\n    data.sources.map(_subtree__WEBPACK_IMPORTED_MODULE_2__[\"moveFacetDown\"]);\n    for (let i = 0; i < MAX_OPTIMIZATION_RUNS; i++) {\n        if (!optimizationDataflowHelper(data, model, false)) {\n            break;\n        }\n        secondPassCounter++;\n    }\n    // check after optimizations\n    checkLinks(data.sources);\n    if (Math.max(firstPassCounter, secondPassCounter) === MAX_OPTIMIZATION_RUNS) {\n        _log__WEBPACK_IMPORTED_MODULE_0__[\"warn\"](`Maximum optimization runs(${MAX_OPTIMIZATION_RUNS}) reached.`);\n    }\n}\n//# sourceMappingURL=optimize.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/optimize.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/optimizer.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/optimizer.js ***!
  \********************************************************************/
/*! exports provided: isDataSourceNode, Optimizer, BottomUpOptimizer, TopDownOptimizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDataSourceNode\", function() { return isDataSourceNode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Optimizer\", function() { return Optimizer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BottomUpOptimizer\", function() { return BottomUpOptimizer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TopDownOptimizer\", function() { return TopDownOptimizer; });\n/* harmony import */ var _graticule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./graticule */ \"./node_modules/vega-lite/build/src/compile/data/graticule.js\");\n/* harmony import */ var _sequence__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sequence */ \"./node_modules/vega-lite/build/src/compile/data/sequence.js\");\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./source */ \"./node_modules/vega-lite/build/src/compile/data/source.js\");\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, privateMap, value) {\n    if (!privateMap.has(receiver)) {\n        throw new TypeError(\"attempted to set private field on non-instance\");\n    }\n    privateMap.set(receiver, value);\n    return value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, privateMap) {\n    if (!privateMap.has(receiver)) {\n        throw new TypeError(\"attempted to get private field on non-instance\");\n    }\n    return privateMap.get(receiver);\n};\nvar _modified;\n\n\n\n/**\n * Whether this dataflow node is the source of the dataflow that produces data i.e. a source or a generator.\n */\nfunction isDataSourceNode(node) {\n    return node instanceof _source__WEBPACK_IMPORTED_MODULE_2__[\"SourceNode\"] || node instanceof _graticule__WEBPACK_IMPORTED_MODULE_0__[\"GraticuleNode\"] || node instanceof _sequence__WEBPACK_IMPORTED_MODULE_1__[\"SequenceNode\"];\n}\n/**\n * Abstract base class for Dataflow optimizers.\n * Contains only mutation handling logic. Subclasses need to implement iteration logic.\n */\nclass Optimizer {\n    constructor() {\n        _modified.set(this, void 0);\n        __classPrivateFieldSet(this, _modified, false);\n    }\n    // Once true, #modified is never set to false\n    setModified() {\n        __classPrivateFieldSet(this, _modified, true);\n    }\n    get modifiedFlag() {\n        return __classPrivateFieldGet(this, _modified);\n    }\n}\n_modified = new WeakMap();\n/**\n * Starts from a node and runs the optimization function (the \"run\" method) upwards to the root,\n * depending on the continue and modified flag values returned by the optimization function.\n */\nclass BottomUpOptimizer extends Optimizer {\n    /**\n     * Compute a map of node depths that we can use to determine a topological sort order.\n     */\n    getNodeDepths(node, depth, depths) {\n        depths.set(node, depth);\n        for (const child of node.children) {\n            this.getNodeDepths(child, depth + 1, depths);\n        }\n        return depths;\n    }\n    /**\n     * Run the optimizer on all nodes starting from the leaves.\n     */\n    optimize(node) {\n        const depths = this.getNodeDepths(node, 0, new Map());\n        const topologicalSort = [...depths.entries()].sort((a, b) => b[1] - a[1]);\n        for (const tuple of topologicalSort) {\n            this.run(tuple[0]);\n        }\n        return this.modifiedFlag;\n    }\n}\n/**\n * The optimizer function (the \"run\" method), is invoked on the given node and then continues recursively.\n */\nclass TopDownOptimizer extends Optimizer {\n    /**\n     * Run the optimizer depth first on all nodes starting from the roots.\n     */\n    optimize(node) {\n        this.run(node);\n        for (const child of node.children) {\n            this.optimize(child);\n        }\n        return this.modifiedFlag;\n    }\n}\n//# sourceMappingURL=optimizer.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/optimizer.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/optimizers.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/optimizers.js ***!
  \*********************************************************************/
/*! exports provided: MergeIdenticalNodes, RemoveUnnecessaryIdentifierNodes, RemoveDuplicateTimeUnits, RemoveUnnecessaryOutputNodes, MoveParseUp, MergeParse, RemoveUnusedSubtrees, MergeTimeUnits, MergeAggregates, MergeBins, MergeOutputs */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeIdenticalNodes\", function() { return MergeIdenticalNodes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveUnnecessaryIdentifierNodes\", function() { return RemoveUnnecessaryIdentifierNodes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveDuplicateTimeUnits\", function() { return RemoveDuplicateTimeUnits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveUnnecessaryOutputNodes\", function() { return RemoveUnnecessaryOutputNodes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MoveParseUp\", function() { return MoveParseUp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeParse\", function() { return MergeParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RemoveUnusedSubtrees\", function() { return RemoveUnusedSubtrees; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeTimeUnits\", function() { return MergeTimeUnits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeAggregates\", function() { return MergeAggregates; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeBins\", function() { return MergeBins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MergeOutputs\", function() { return MergeOutputs; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/compile/data/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bin */ \"./node_modules/vega-lite/build/src/compile/data/bin.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/compile/data/facet.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./filter */ \"./node_modules/vega-lite/build/src/compile/data/filter.js\");\n/* harmony import */ var _formatparse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./formatparse */ \"./node_modules/vega-lite/build/src/compile/data/formatparse.js\");\n/* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./identifier */ \"./node_modules/vega-lite/build/src/compile/data/identifier.js\");\n/* harmony import */ var _optimizer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./optimizer */ \"./node_modules/vega-lite/build/src/compile/data/optimizer.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./timeunit */ \"./node_modules/vega-lite/build/src/compile/data/timeunit.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Merge identical nodes at forks by comparing hashes.\n *\n * Does not need to iterate from leaves so we implement this with recursion as it's a bit simpler.\n */\nclass MergeIdenticalNodes extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"TopDownOptimizer\"] {\n    mergeNodes(parent, nodes) {\n        const mergedNode = nodes.shift();\n        for (const node of nodes) {\n            parent.removeChild(node);\n            node.parent = mergedNode;\n            node.remove();\n        }\n    }\n    run(node) {\n        const hashes = node.children.map(x => x.hash());\n        const buckets = {};\n        for (let i = 0; i < hashes.length; i++) {\n            if (buckets[hashes[i]] === undefined) {\n                buckets[hashes[i]] = [node.children[i]];\n            }\n            else {\n                buckets[hashes[i]].push(node.children[i]);\n            }\n        }\n        for (const k of Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(buckets)) {\n            if (buckets[k].length > 1) {\n                this.setModified();\n                this.mergeNodes(node, buckets[k]);\n            }\n        }\n    }\n}\n/**\n * Optimizer that removes identifier nodes that are not needed for selections.\n */\nclass RemoveUnnecessaryIdentifierNodes extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"TopDownOptimizer\"] {\n    constructor(model) {\n        super();\n        this.requiresSelectionId = model && Object(_selection__WEBPACK_IMPORTED_MODULE_1__[\"requiresSelectionId\"])(model);\n    }\n    run(node) {\n        if (node instanceof _identifier__WEBPACK_IMPORTED_MODULE_8__[\"IdentifierNode\"]) {\n            // Only preserve IdentifierNodes if we have default discrete selections\n            // in our model tree, and if the nodes come after tuple producing nodes.\n            if (!(this.requiresSelectionId &&\n                (Object(_optimizer__WEBPACK_IMPORTED_MODULE_9__[\"isDataSourceNode\"])(node.parent) || node.parent instanceof _aggregate__WEBPACK_IMPORTED_MODULE_2__[\"AggregateNode\"] || node.parent instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"]))) {\n                this.setModified();\n                node.remove();\n            }\n        }\n    }\n}\n/**\n * Removes duplicate time unit nodes (as determined by the name of the output field) that may be generated due to\n * selections projected over time units. Only keeps the first time unit in any branch.\n *\n * This optimizer is a custom top down optimizer that keep track of produced fields in a branch.\n */\nclass RemoveDuplicateTimeUnits extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"Optimizer\"] {\n    optimize(node) {\n        this.run(node, new Set());\n        return this.modifiedFlag;\n    }\n    run(node, timeUnitFields) {\n        let producedFields = new Set();\n        if (node instanceof _timeunit__WEBPACK_IMPORTED_MODULE_10__[\"TimeUnitNode\"]) {\n            producedFields = node.producedFields();\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hasIntersection\"])(producedFields, timeUnitFields)) {\n                this.setModified();\n                node.removeFormulas(timeUnitFields);\n                if (node.producedFields.length === 0) {\n                    node.remove();\n                }\n            }\n        }\n        for (const child of node.children) {\n            this.run(child, new Set([...timeUnitFields, ...producedFields]));\n        }\n    }\n}\n/**\n * Remove output nodes that are not required.\n */\nclass RemoveUnnecessaryOutputNodes extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"TopDownOptimizer\"] {\n    constructor() {\n        super();\n    }\n    run(node) {\n        if (node instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"] && !node.isRequired()) {\n            this.setModified();\n            node.remove();\n        }\n    }\n}\n/**\n * Move parse nodes up to forks and merges them if possible.\n */\nclass MoveParseUp extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    run(node) {\n        if (Object(_optimizer__WEBPACK_IMPORTED_MODULE_9__[\"isDataSourceNode\"])(node)) {\n            return;\n        }\n        if (node.numChildren() > 1) {\n            // Don't move parse further up but continue with parent.\n            return;\n        }\n        for (const child of node.children) {\n            if (child instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"]) {\n                if (node instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"]) {\n                    this.setModified();\n                    node.merge(child);\n                }\n                else {\n                    // Don't swap with nodes that produce something that the parse node depends on (e.g. lookup).\n                    if (Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"fieldIntersection\"])(node.producedFields(), child.dependentFields())) {\n                        continue;\n                    }\n                    this.setModified();\n                    child.swapWithParent();\n                }\n            }\n        }\n        return;\n    }\n}\n/**\n * Inserts an intermediate ParseNode containing all non-conflicting parse fields and removes the empty ParseNodes.\n *\n * We assume that dependent paths that do not have a parse node can be just merged.\n */\nclass MergeParse extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    run(node) {\n        const originalChildren = [...node.children];\n        const parseChildren = node.children.filter((child) => child instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"]);\n        if (node.numChildren() > 1 && parseChildren.length >= 1) {\n            const commonParse = {};\n            const conflictingParse = new Set();\n            for (const parseNode of parseChildren) {\n                const parse = parseNode.parse;\n                for (const k of Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(parse)) {\n                    if (!(k in commonParse)) {\n                        commonParse[k] = parse[k];\n                    }\n                    else if (commonParse[k] !== parse[k]) {\n                        conflictingParse.add(k);\n                    }\n                }\n            }\n            for (const field of conflictingParse) {\n                delete commonParse[field];\n            }\n            if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(commonParse)) {\n                this.setModified();\n                const mergedParseNode = new _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"](node, commonParse);\n                for (const childNode of originalChildren) {\n                    if (childNode instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"]) {\n                        for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(commonParse)) {\n                            delete childNode.parse[key];\n                        }\n                    }\n                    node.removeChild(childNode);\n                    childNode.parent = mergedParseNode;\n                    // remove empty parse nodes\n                    if (childNode instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"] && Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(childNode.parse).length === 0) {\n                        childNode.remove();\n                    }\n                }\n            }\n        }\n    }\n}\n/**\n * Repeatedly remove leaf nodes that are not output or facet nodes.\n * The reason is that we don't need subtrees that don't have any output nodes.\n * Facet nodes are needed for the row or column domains.\n */\nclass RemoveUnusedSubtrees extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    run(node) {\n        if (node instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"] || node.numChildren() > 0 || node instanceof _facet__WEBPACK_IMPORTED_MODULE_5__[\"FacetNode\"]) {\n            // no need to continue with parent because it is output node or will have children (there was a fork)\n        }\n        else {\n            this.setModified();\n            node.remove();\n        }\n    }\n}\n/**\n * Merge adjacent time unit nodes.\n */\nclass MergeTimeUnits extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    run(node) {\n        const timeUnitChildren = node.children.filter((x) => x instanceof _timeunit__WEBPACK_IMPORTED_MODULE_10__[\"TimeUnitNode\"]);\n        const combination = timeUnitChildren.pop();\n        for (const timeUnit of timeUnitChildren) {\n            this.setModified();\n            combination.merge(timeUnit);\n        }\n    }\n}\nclass MergeAggregates extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    run(node) {\n        const aggChildren = node.children.filter((child) => child instanceof _aggregate__WEBPACK_IMPORTED_MODULE_2__[\"AggregateNode\"]);\n        // Object which we'll use to map the fields which an aggregate is grouped by to\n        // the set of aggregates with that grouping. This is useful as only aggregates\n        // with the same group by can be merged\n        const groupedAggregates = {};\n        // Build groupedAggregates\n        for (const agg of aggChildren) {\n            const groupBys = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(agg.groupBy);\n            if (!(groupBys in groupedAggregates)) {\n                groupedAggregates[groupBys] = [];\n            }\n            groupedAggregates[groupBys].push(agg);\n        }\n        // Merge aggregateNodes with same key in groupedAggregates\n        for (const group of Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(groupedAggregates)) {\n            const mergeableAggs = groupedAggregates[group];\n            if (mergeableAggs.length > 1) {\n                const mergedAggs = mergeableAggs.pop();\n                for (const agg of mergeableAggs) {\n                    if (mergedAggs.merge(agg)) {\n                        node.removeChild(agg);\n                        agg.parent = mergedAggs;\n                        agg.remove();\n                        this.setModified();\n                    }\n                }\n            }\n        }\n    }\n}\n/**\n * Merge bin nodes and move them up through forks. Stop at filters, parse, identifier as we want them to stay before the bin node.\n */\nclass MergeBins extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    constructor(model) {\n        super();\n        this.model = model;\n    }\n    run(node) {\n        const moveBinsUp = !(Object(_optimizer__WEBPACK_IMPORTED_MODULE_9__[\"isDataSourceNode\"])(node) ||\n            node instanceof _filter__WEBPACK_IMPORTED_MODULE_6__[\"FilterNode\"] ||\n            node instanceof _formatparse__WEBPACK_IMPORTED_MODULE_7__[\"ParseNode\"] ||\n            node instanceof _identifier__WEBPACK_IMPORTED_MODULE_8__[\"IdentifierNode\"]);\n        const promotableBins = [];\n        const remainingBins = [];\n        for (const child of node.children) {\n            if (child instanceof _bin__WEBPACK_IMPORTED_MODULE_3__[\"BinNode\"]) {\n                if (moveBinsUp && !Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"fieldIntersection\"])(node.producedFields(), child.dependentFields())) {\n                    promotableBins.push(child);\n                }\n                else {\n                    remainingBins.push(child);\n                }\n            }\n        }\n        if (promotableBins.length > 0) {\n            const promotedBin = promotableBins.pop();\n            for (const bin of promotableBins) {\n                promotedBin.merge(bin, this.model.renameSignal.bind(this.model));\n            }\n            this.setModified();\n            if (node instanceof _bin__WEBPACK_IMPORTED_MODULE_3__[\"BinNode\"]) {\n                node.merge(promotedBin, this.model.renameSignal.bind(this.model));\n            }\n            else {\n                promotedBin.swapWithParent();\n            }\n        }\n        if (remainingBins.length > 1) {\n            const remainingBin = remainingBins.pop();\n            for (const bin of remainingBins) {\n                remainingBin.merge(bin, this.model.renameSignal.bind(this.model));\n            }\n            this.setModified();\n        }\n    }\n}\n/**\n * This optimizer takes output nodes that are at a fork and moves them before the fork.\n *\n * The algorithm iterates over the children and tries to find the last output node in a chain of output nodes.\n * It then moves all output nodes before that main output node. All other children (and the children of the output nodes)\n * are inserted after the main output node.\n */\nclass MergeOutputs extends _optimizer__WEBPACK_IMPORTED_MODULE_9__[\"BottomUpOptimizer\"] {\n    run(node) {\n        const children = [...node.children];\n        const hasOutputChild = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"some\"])(children, child => child instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"]);\n        if (!hasOutputChild || node.numChildren() <= 1) {\n            return;\n        }\n        const otherChildren = [];\n        // The output node we will connect all other nodes to.\n        // Output nodes will be added before the new node, other nodes after.\n        let mainOutput;\n        for (const child of children) {\n            if (child instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"]) {\n                let lastOutput = child;\n                while (lastOutput.numChildren() === 1) {\n                    const [theChild] = lastOutput.children;\n                    if (theChild instanceof _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"OutputNode\"]) {\n                        lastOutput = theChild;\n                    }\n                    else {\n                        break;\n                    }\n                }\n                otherChildren.push(...lastOutput.children);\n                if (mainOutput) {\n                    // Move the output nodes before the mainOutput. We do this by setting\n                    // the parent of the first not to the parent of the main output and\n                    // the main output's parent to the last output.\n                    // note: the child is the first output\n                    node.removeChild(child);\n                    child.parent = mainOutput.parent;\n                    mainOutput.parent.removeChild(mainOutput);\n                    mainOutput.parent = lastOutput;\n                    this.setModified();\n                }\n                else {\n                    mainOutput = lastOutput;\n                }\n            }\n            else {\n                otherChildren.push(child);\n            }\n        }\n        if (otherChildren.length) {\n            this.setModified();\n            for (const child of otherChildren) {\n                child.parent.removeChild(child);\n                child.parent = mainOutput;\n            }\n        }\n    }\n}\n//# sourceMappingURL=optimizers.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/optimizers.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/parse.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/parse.js ***!
  \****************************************************************/
/*! exports provided: findSource, parseTransformArray, parseData */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findSource\", function() { return findSource; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseTransformArray\", function() { return parseTransformArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseData\", function() { return parseData; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ \"./node_modules/vega-lite/build/src/compile/data/index.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../transform */ \"./node_modules/vega-lite/build/src/transform.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../selection */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _selection_parse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../selection/parse */ \"./node_modules/vega-lite/build/src/compile/selection/parse.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/compile/data/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./bin */ \"./node_modules/vega-lite/build/src/compile/data/bin.js\");\n/* harmony import */ var _calculate__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./calculate */ \"./node_modules/vega-lite/build/src/compile/data/calculate.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _density__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./density */ \"./node_modules/vega-lite/build/src/compile/data/density.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/compile/data/facet.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./filter */ \"./node_modules/vega-lite/build/src/compile/data/filter.js\");\n/* harmony import */ var _filterinvalid__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./filterinvalid */ \"./node_modules/vega-lite/build/src/compile/data/filterinvalid.js\");\n/* harmony import */ var _flatten__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./flatten */ \"./node_modules/vega-lite/build/src/compile/data/flatten.js\");\n/* harmony import */ var _fold__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./fold */ \"./node_modules/vega-lite/build/src/compile/data/fold.js\");\n/* harmony import */ var _formatparse__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./formatparse */ \"./node_modules/vega-lite/build/src/compile/data/formatparse.js\");\n/* harmony import */ var _geojson__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./geojson */ \"./node_modules/vega-lite/build/src/compile/data/geojson.js\");\n/* harmony import */ var _geopoint__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./geopoint */ \"./node_modules/vega-lite/build/src/compile/data/geopoint.js\");\n/* harmony import */ var _graticule__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./graticule */ \"./node_modules/vega-lite/build/src/compile/data/graticule.js\");\n/* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./identifier */ \"./node_modules/vega-lite/build/src/compile/data/identifier.js\");\n/* harmony import */ var _impute__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./impute */ \"./node_modules/vega-lite/build/src/compile/data/impute.js\");\n/* harmony import */ var _joinaggregate__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./joinaggregate */ \"./node_modules/vega-lite/build/src/compile/data/joinaggregate.js\");\n/* harmony import */ var _joinaggregatefacet__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./joinaggregatefacet */ \"./node_modules/vega-lite/build/src/compile/data/joinaggregatefacet.js\");\n/* harmony import */ var _loess__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./loess */ \"./node_modules/vega-lite/build/src/compile/data/loess.js\");\n/* harmony import */ var _lookup__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./lookup */ \"./node_modules/vega-lite/build/src/compile/data/lookup.js\");\n/* harmony import */ var _pivot__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./pivot */ \"./node_modules/vega-lite/build/src/compile/data/pivot.js\");\n/* harmony import */ var _quantile__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./quantile */ \"./node_modules/vega-lite/build/src/compile/data/quantile.js\");\n/* harmony import */ var _regression__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./regression */ \"./node_modules/vega-lite/build/src/compile/data/regression.js\");\n/* harmony import */ var _sample__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./sample */ \"./node_modules/vega-lite/build/src/compile/data/sample.js\");\n/* harmony import */ var _sequence__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./sequence */ \"./node_modules/vega-lite/build/src/compile/data/sequence.js\");\n/* harmony import */ var _source__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./source */ \"./node_modules/vega-lite/build/src/compile/data/source.js\");\n/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./stack */ \"./node_modules/vega-lite/build/src/compile/data/stack.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./timeunit */ \"./node_modules/vega-lite/build/src/compile/data/timeunit.js\");\n/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./window */ \"./node_modules/vega-lite/build/src/compile/data/window.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction findSource(data, sources) {\n    var _a, _b, _c, _d;\n    for (const other of sources) {\n        const otherData = other.data;\n        // if both datasets have a name defined, we cannot merge\n        if (data.name && other.hasName() && data.name !== other.dataName) {\n            continue;\n        }\n        const formatMesh = (_a = data['format']) === null || _a === void 0 ? void 0 : _a.mesh;\n        const otherFeature = (_b = otherData.format) === null || _b === void 0 ? void 0 : _b.feature;\n        // feature and mesh are mutually exclusive\n        if (formatMesh && otherFeature) {\n            continue;\n        }\n        // we have to extract the same feature or mesh\n        const formatFeature = (_c = data['format']) === null || _c === void 0 ? void 0 : _c.feature;\n        if ((formatFeature || otherFeature) && formatFeature !== otherFeature) {\n            continue;\n        }\n        const otherMesh = (_d = otherData.format) === null || _d === void 0 ? void 0 : _d.mesh;\n        if ((formatMesh || otherMesh) && formatMesh !== otherMesh) {\n            continue;\n        }\n        if (Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isInlineData\"])(data) && Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isInlineData\"])(otherData)) {\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"deepEqual\"])(data.values, otherData.values)) {\n                return other;\n            }\n        }\n        else if (Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isUrlData\"])(data) && Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isUrlData\"])(otherData)) {\n            if (data.url === otherData.url) {\n                return other;\n            }\n        }\n        else if (Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isNamedData\"])(data)) {\n            if (data.name === other.dataName) {\n                return other;\n            }\n        }\n    }\n    return null;\n}\nfunction parseRoot(model, sources) {\n    if (model.data || !model.parent) {\n        // if the model defines a data source or is the root, create a source node\n        if (model.data === null) {\n            // data: null means we should ignore the parent's data so we just create a new data source\n            const source = new _source__WEBPACK_IMPORTED_MODULE_33__[\"SourceNode\"]({ values: [] });\n            sources.push(source);\n            return source;\n        }\n        const existingSource = findSource(model.data, sources);\n        if (existingSource) {\n            if (!Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isGenerator\"])(model.data)) {\n                existingSource.data.format = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"mergeDeep\"])({}, model.data.format, existingSource.data.format);\n            }\n            // if the new source has a name but the existing one does not, we can set it\n            if (!existingSource.hasName() && model.data.name) {\n                existingSource.dataName = model.data.name;\n            }\n            return existingSource;\n        }\n        else {\n            const source = new _source__WEBPACK_IMPORTED_MODULE_33__[\"SourceNode\"](model.data);\n            sources.push(source);\n            return source;\n        }\n    }\n    else {\n        // If we don't have a source defined (overriding parent's data), use the parent's facet root or main.\n        return model.parent.component.data.facetRoot\n            ? model.parent.component.data.facetRoot\n            : model.parent.component.data.main;\n    }\n}\n/**\n * Parses a transform array into a chain of connected dataflow nodes.\n */\nfunction parseTransformArray(head, model, ancestorParse) {\n    var _a, _b;\n    let lookupCounter = 0;\n    for (const t of model.transforms) {\n        let derivedType = undefined;\n        let transformNode;\n        if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isCalculate\"])(t)) {\n            transformNode = head = new _calculate__WEBPACK_IMPORTED_MODULE_10__[\"CalculateNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isFilter\"])(t)) {\n            const implicit = Object(_formatparse__WEBPACK_IMPORTED_MODULE_18__[\"getImplicitFromFilterTransform\"])(t);\n            transformNode = head = (_a = _formatparse__WEBPACK_IMPORTED_MODULE_18__[\"ParseNode\"].makeWithAncestors(head, {}, implicit, ancestorParse)) !== null && _a !== void 0 ? _a : head;\n            head = new _filter__WEBPACK_IMPORTED_MODULE_14__[\"FilterNode\"](head, model, t.filter);\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isBin\"])(t)) {\n            transformNode = head = _bin__WEBPACK_IMPORTED_MODULE_9__[\"BinNode\"].makeFromTransform(head, t, model);\n            derivedType = 'number';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isTimeUnit\"])(t)) {\n            derivedType = 'date';\n            const parsedAs = ancestorParse.getWithExplicit(t.field);\n            // Create parse node because the input to time unit is always date.\n            if (parsedAs.value === undefined) {\n                head = new _formatparse__WEBPACK_IMPORTED_MODULE_18__[\"ParseNode\"](head, { [t.field]: derivedType });\n                ancestorParse.set(t.field, derivedType, false);\n            }\n            transformNode = head = _timeunit__WEBPACK_IMPORTED_MODULE_35__[\"TimeUnitNode\"].makeFromTransform(head, t);\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isAggregate\"])(t)) {\n            transformNode = head = _aggregate__WEBPACK_IMPORTED_MODULE_8__[\"AggregateNode\"].makeFromTransform(head, t);\n            derivedType = 'number';\n            if (Object(_selection__WEBPACK_IMPORTED_MODULE_6__[\"requiresSelectionId\"])(model)) {\n                head = new _identifier__WEBPACK_IMPORTED_MODULE_22__[\"IdentifierNode\"](head);\n            }\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isLookup\"])(t)) {\n            transformNode = head = _lookup__WEBPACK_IMPORTED_MODULE_27__[\"LookupNode\"].make(head, model, t, lookupCounter++);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isWindow\"])(t)) {\n            transformNode = head = new _window__WEBPACK_IMPORTED_MODULE_36__[\"WindowTransformNode\"](head, t);\n            derivedType = 'number';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isJoinAggregate\"])(t)) {\n            transformNode = head = new _joinaggregate__WEBPACK_IMPORTED_MODULE_24__[\"JoinAggregateTransformNode\"](head, t);\n            derivedType = 'number';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isStack\"])(t)) {\n            transformNode = head = _stack__WEBPACK_IMPORTED_MODULE_34__[\"StackNode\"].makeFromTransform(head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isFold\"])(t)) {\n            transformNode = head = new _fold__WEBPACK_IMPORTED_MODULE_17__[\"FoldTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isFlatten\"])(t)) {\n            transformNode = head = new _flatten__WEBPACK_IMPORTED_MODULE_16__[\"FlattenTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isPivot\"])(t)) {\n            transformNode = head = new _pivot__WEBPACK_IMPORTED_MODULE_28__[\"PivotTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isSample\"])(t)) {\n            head = new _sample__WEBPACK_IMPORTED_MODULE_31__[\"SampleTransformNode\"](head, t);\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isImpute\"])(t)) {\n            transformNode = head = _impute__WEBPACK_IMPORTED_MODULE_23__[\"ImputeNode\"].makeFromTransform(head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isDensity\"])(t)) {\n            transformNode = head = new _density__WEBPACK_IMPORTED_MODULE_12__[\"DensityTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isQuantile\"])(t)) {\n            transformNode = head = new _quantile__WEBPACK_IMPORTED_MODULE_29__[\"QuantileTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isRegression\"])(t)) {\n            transformNode = head = new _regression__WEBPACK_IMPORTED_MODULE_30__[\"RegressionTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else if (Object(_transform__WEBPACK_IMPORTED_MODULE_3__[\"isLoess\"])(t)) {\n            transformNode = head = new _loess__WEBPACK_IMPORTED_MODULE_26__[\"LoessTransformNode\"](head, t);\n            derivedType = 'derived';\n        }\n        else {\n            _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].invalidTransformIgnored(t));\n            continue;\n        }\n        if (transformNode && derivedType !== undefined) {\n            for (const field of (_b = transformNode.producedFields()) !== null && _b !== void 0 ? _b : []) {\n                ancestorParse.set(field, derivedType, false);\n            }\n        }\n    }\n    return head;\n}\n/*\nDescription of the dataflow (http://asciiflow.com/):\n     +--------+\n     | Source |\n     +---+----+\n         |\n         v\n     FormatParse\n     (explicit)\n         |\n         v\n     Transforms\n(Filter, Calculate, Binning, TimeUnit, Aggregate, Window, ...)\n         |\n         v\n     FormatParse\n     (implicit)\n         |\n         v\n Binning (in `encoding`)\n         |\n         v\n Timeunit (in `encoding`)\n         |\n         v\nFormula From Sort Array\n         |\n         v\n      +--+--+\n      | Raw |\n      +-----+\n         |\n         v\n  Aggregate (in `encoding`)\n         |\n         v\n  Stack (in `encoding`)\n         |\n         v\n  Invalid Filter\n         |\n         v\n   +----------+\n   |   Main   |\n   +----------+\n         |\n         v\n     +-------+\n     | Facet |----> \"column\", \"column-layout\", and \"row\"\n     +-------+\n         |\n         v\n  ...Child data...\n*/\nfunction parseData(model) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n    let head = parseRoot(model, model.component.data.sources);\n    const { outputNodes, outputNodeRefCounts } = model.component.data;\n    const ancestorParse = model.parent ? model.parent.component.data.ancestorParse.clone() : new ___WEBPACK_IMPORTED_MODULE_0__[\"AncestorParse\"]();\n    const data = model.data;\n    if (Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isGenerator\"])(data)) {\n        // insert generator transform\n        if (Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isSequenceGenerator\"])(data)) {\n            head = new _sequence__WEBPACK_IMPORTED_MODULE_32__[\"SequenceNode\"](head, data.sequence);\n        }\n        else if (Object(_data__WEBPACK_IMPORTED_MODULE_1__[\"isGraticuleGenerator\"])(data)) {\n            head = new _graticule__WEBPACK_IMPORTED_MODULE_21__[\"GraticuleNode\"](head, data.graticule);\n        }\n        // no parsing necessary for generator\n        ancestorParse.parseNothing = true;\n    }\n    else if (((_a = data === null || data === void 0 ? void 0 : data.format) === null || _a === void 0 ? void 0 : _a.parse) === null) {\n        // format.parse: null means disable parsing\n        ancestorParse.parseNothing = true;\n    }\n    head = (_b = _formatparse__WEBPACK_IMPORTED_MODULE_18__[\"ParseNode\"].makeExplicit(head, model, ancestorParse)) !== null && _b !== void 0 ? _b : head;\n    // Default discrete selections require an identifer transform to\n    // uniquely identify data points. Add this transform at the head of\n    // the pipeline such that the identifier field is available for all\n    // subsequent datasets. During optimization, we will remove this\n    // transform if it proves to be unnecessary. Additional identifier\n    // transforms will be necessary when new tuples are constructed\n    // (e.g., post-aggregation).\n    head = new _identifier__WEBPACK_IMPORTED_MODULE_22__[\"IdentifierNode\"](head);\n    // HACK: This is equivalent for merging bin extent for union scale.\n    // FIXME(https://github.com/vega/vega-lite/issues/2270): Correctly merge extent / bin node for shared bin scale\n    const parentIsLayer = model.parent && Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isLayerModel\"])(model.parent);\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model) || Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isFacetModel\"])(model)) {\n        if (parentIsLayer) {\n            head = (_c = _bin__WEBPACK_IMPORTED_MODULE_9__[\"BinNode\"].makeFromEncoding(head, model)) !== null && _c !== void 0 ? _c : head;\n        }\n    }\n    if (model.transforms.length > 0) {\n        head = parseTransformArray(head, model, ancestorParse);\n    }\n    // create parse nodes for fields that need to be parsed (or flattened) implicitly\n    const implicitSelection = Object(_formatparse__WEBPACK_IMPORTED_MODULE_18__[\"getImplicitFromSelection\"])(model);\n    const implicitEncoding = Object(_formatparse__WEBPACK_IMPORTED_MODULE_18__[\"getImplicitFromEncoding\"])(model);\n    head = (_d = _formatparse__WEBPACK_IMPORTED_MODULE_18__[\"ParseNode\"].makeWithAncestors(head, {}, Object.assign(Object.assign({}, implicitSelection), implicitEncoding), ancestorParse)) !== null && _d !== void 0 ? _d : head;\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model)) {\n        head = _geojson__WEBPACK_IMPORTED_MODULE_19__[\"GeoJSONNode\"].parseAll(head, model);\n        head = _geopoint__WEBPACK_IMPORTED_MODULE_20__[\"GeoPointNode\"].parseAll(head, model);\n    }\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model) || Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isFacetModel\"])(model)) {\n        if (!parentIsLayer) {\n            head = (_e = _bin__WEBPACK_IMPORTED_MODULE_9__[\"BinNode\"].makeFromEncoding(head, model)) !== null && _e !== void 0 ? _e : head;\n        }\n        head = (_f = _timeunit__WEBPACK_IMPORTED_MODULE_35__[\"TimeUnitNode\"].makeFromEncoding(head, model)) !== null && _f !== void 0 ? _f : head;\n        head = _calculate__WEBPACK_IMPORTED_MODULE_10__[\"CalculateNode\"].parseAllForSortIndex(head, model);\n    }\n    // add an output node pre aggregation\n    const rawName = model.getDataName(_data__WEBPACK_IMPORTED_MODULE_1__[\"DataSourceType\"].Raw);\n    const raw = new _dataflow__WEBPACK_IMPORTED_MODULE_11__[\"OutputNode\"](head, rawName, _data__WEBPACK_IMPORTED_MODULE_1__[\"DataSourceType\"].Raw, outputNodeRefCounts);\n    outputNodes[rawName] = raw;\n    head = raw;\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model)) {\n        const agg = _aggregate__WEBPACK_IMPORTED_MODULE_8__[\"AggregateNode\"].makeFromEncoding(head, model);\n        if (agg) {\n            head = agg;\n            if (Object(_selection__WEBPACK_IMPORTED_MODULE_6__[\"requiresSelectionId\"])(model)) {\n                head = new _identifier__WEBPACK_IMPORTED_MODULE_22__[\"IdentifierNode\"](head);\n            }\n        }\n        head = (_g = _impute__WEBPACK_IMPORTED_MODULE_23__[\"ImputeNode\"].makeFromEncoding(head, model)) !== null && _g !== void 0 ? _g : head;\n        head = (_h = _stack__WEBPACK_IMPORTED_MODULE_34__[\"StackNode\"].makeFromEncoding(head, model)) !== null && _h !== void 0 ? _h : head;\n    }\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model)) {\n        head = (_j = _filterinvalid__WEBPACK_IMPORTED_MODULE_15__[\"FilterInvalidNode\"].make(head, model)) !== null && _j !== void 0 ? _j : head;\n    }\n    // output node for marks\n    const mainName = model.getDataName(_data__WEBPACK_IMPORTED_MODULE_1__[\"DataSourceType\"].Main);\n    const main = new _dataflow__WEBPACK_IMPORTED_MODULE_11__[\"OutputNode\"](head, mainName, _data__WEBPACK_IMPORTED_MODULE_1__[\"DataSourceType\"].Main, outputNodeRefCounts);\n    outputNodes[mainName] = main;\n    head = main;\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(model)) {\n        Object(_selection_parse__WEBPACK_IMPORTED_MODULE_7__[\"materializeSelections\"])(model, main);\n    }\n    // add facet marker\n    let facetRoot = null;\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isFacetModel\"])(model)) {\n        const facetName = model.getName('facet');\n        // Derive new aggregate for facet's sort field\n        // augment data source with new fields for crossed facet\n        head = (_k = Object(_joinaggregatefacet__WEBPACK_IMPORTED_MODULE_25__[\"makeJoinAggregateFromFacet\"])(head, model.facet)) !== null && _k !== void 0 ? _k : head;\n        facetRoot = new _facet__WEBPACK_IMPORTED_MODULE_13__[\"FacetNode\"](head, model, facetName, main.getSource());\n        outputNodes[facetName] = facetRoot;\n    }\n    return Object.assign(Object.assign({}, model.component.data), { outputNodes,\n        outputNodeRefCounts,\n        raw,\n        main,\n        facetRoot,\n        ancestorParse });\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/pivot.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/pivot.js ***!
  \****************************************************************/
/*! exports provided: PivotTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PivotTransformNode\", function() { return PivotTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n/**\n * A class for pivot transform nodes.\n */\nclass PivotTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n    }\n    clone() {\n        return new PivotTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    addDimensions(fields) {\n        var _a;\n        this.transform.groupby = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"unique\"])(((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : []).concat(fields), d => d);\n    }\n    producedFields() {\n        return undefined; // return undefined so that potentially everything can depend on the pivot\n    }\n    dependentFields() {\n        var _a;\n        return new Set([this.transform.pivot, this.transform.value, ...((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : [])]);\n    }\n    hash() {\n        return `PivotTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const { pivot, value, groupby, limit, op } = this.transform;\n        return Object.assign(Object.assign(Object.assign({ type: 'pivot', field: pivot, value }, (limit !== undefined ? { limit } : {})), (op !== undefined ? { op } : {})), (groupby !== undefined ? { groupby } : {}));\n    }\n}\n//# sourceMappingURL=pivot.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/pivot.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/quantile.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/quantile.js ***!
  \*******************************************************************/
/*! exports provided: QuantileTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QuantileTransformNode\", function() { return QuantileTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n/**\n * A class for quantile transform nodes\n */\nclass QuantileTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        var _a, _b, _c;\n        super(parent);\n        this.transform = transform;\n        this.transform = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(transform); // duplicate to prevent side effects\n        const specifiedAs = (_a = this.transform.as) !== null && _a !== void 0 ? _a : [undefined, undefined];\n        this.transform.as = [(_b = specifiedAs[0]) !== null && _b !== void 0 ? _b : 'prob', (_c = specifiedAs[1]) !== null && _c !== void 0 ? _c : 'value'];\n    }\n    clone() {\n        return new QuantileTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        var _a;\n        return new Set([this.transform.quantile, ...((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : [])]);\n    }\n    producedFields() {\n        return new Set(this.transform.as);\n    }\n    hash() {\n        return `QuantileTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const _a = this.transform, { quantile } = _a, rest = __rest(_a, [\"quantile\"]);\n        const result = Object.assign({ type: 'quantile', field: quantile }, rest);\n        return result;\n    }\n}\n//# sourceMappingURL=quantile.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/quantile.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/regression.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/regression.js ***!
  \*********************************************************************/
/*! exports provided: RegressionTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RegressionTransformNode\", function() { return RegressionTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n/**\n * A class for regression transform nodes\n */\nclass RegressionTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        var _a, _b, _c;\n        super(parent);\n        this.transform = transform;\n        this.transform = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(transform); // duplicate to prevent side effects\n        const specifiedAs = (_a = this.transform.as) !== null && _a !== void 0 ? _a : [undefined, undefined];\n        this.transform.as = [(_b = specifiedAs[0]) !== null && _b !== void 0 ? _b : transform.on, (_c = specifiedAs[1]) !== null && _c !== void 0 ? _c : transform.regression];\n    }\n    clone() {\n        return new RegressionTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        var _a;\n        return new Set([this.transform.regression, this.transform.on, ...((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : [])]);\n    }\n    producedFields() {\n        return new Set(this.transform.as);\n    }\n    hash() {\n        return `RegressionTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        const _a = this.transform, { regression, on } = _a, rest = __rest(_a, [\"regression\", \"on\"]);\n        const result = Object.assign({ type: 'regression', x: on, y: regression }, rest);\n        return result;\n    }\n}\n//# sourceMappingURL=regression.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/regression.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/sample.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/sample.js ***!
  \*****************************************************************/
/*! exports provided: SampleTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SampleTransformNode\", function() { return SampleTransformNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n/**\n * A class for the sample transform nodes\n */\nclass SampleTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n    }\n    clone() {\n        return new SampleTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"duplicate\"])(this.transform));\n    }\n    dependentFields() {\n        return new Set();\n    }\n    producedFields() {\n        return new Set();\n    }\n    hash() {\n        return `SampleTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        return {\n            type: 'sample',\n            size: this.transform.sample\n        };\n    }\n}\n//# sourceMappingURL=sample.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/sample.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/sequence.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/sequence.js ***!
  \*******************************************************************/
/*! exports provided: SequenceNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SequenceNode\", function() { return SequenceNode; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\nclass SequenceNode extends _dataflow__WEBPACK_IMPORTED_MODULE_1__[\"DataFlowNode\"] {\n    constructor(parent, params) {\n        super(parent);\n        this.params = params;\n    }\n    clone() {\n        return new SequenceNode(null, this.params);\n    }\n    dependentFields() {\n        return new Set();\n    }\n    producedFields() {\n        var _a;\n        return new Set([(_a = this.params.as) !== null && _a !== void 0 ? _a : 'data']);\n    }\n    hash() {\n        return `Hash ${Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"hash\"])(this.params)}`;\n    }\n    assemble() {\n        return Object.assign({ type: 'sequence' }, this.params);\n    }\n}\n//# sourceMappingURL=sequence.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/sequence.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/source.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/source.js ***!
  \*****************************************************************/
/*! exports provided: SourceNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SourceNode\", function() { return SourceNode; });\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\nclass SourceNode extends _dataflow__WEBPACK_IMPORTED_MODULE_2__[\"DataFlowNode\"] {\n    constructor(data) {\n        super(null); // source cannot have parent\n        data = data !== null && data !== void 0 ? data : { name: 'source' };\n        let format;\n        if (!Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isGenerator\"])(data)) {\n            format = data.format ? Object.assign({}, Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"omit\"])(data.format, ['parse'])) : {};\n        }\n        if (Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isInlineData\"])(data)) {\n            this._data = { values: data.values };\n        }\n        else if (Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isUrlData\"])(data)) {\n            this._data = { url: data.url };\n            if (!format.type) {\n                // Extract extension from URL using snippet from\n                // http://stackoverflow.com/questions/680929/how-to-extract-extension-from-filename-string-in-javascript\n                let defaultExtension = /(?:\\.([^.]+))?$/.exec(data.url)[1];\n                if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"contains\"])(['json', 'csv', 'tsv', 'dsv', 'topojson'], defaultExtension)) {\n                    defaultExtension = 'json';\n                }\n                // defaultExtension has type string but we ensure that it is DataFormatType above\n                format.type = defaultExtension;\n            }\n        }\n        else if (Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isSphereGenerator\"])(data)) {\n            // hardwire GeoJSON sphere data into output specification\n            this._data = { values: [{ type: 'Sphere' }] };\n        }\n        else if (Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isNamedData\"])(data) || Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isGenerator\"])(data)) {\n            this._data = {};\n        }\n        // set flag to check if generator\n        this._generator = Object(_data__WEBPACK_IMPORTED_MODULE_0__[\"isGenerator\"])(data);\n        // any dataset can be named\n        if (data.name) {\n            this._name = data.name;\n        }\n        if (format && !Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"isEmpty\"])(format)) {\n            this._data.format = format;\n        }\n    }\n    dependentFields() {\n        return new Set();\n    }\n    producedFields() {\n        return undefined; // we don't know what this source produces\n    }\n    get data() {\n        return this._data;\n    }\n    hasName() {\n        return !!this._name;\n    }\n    get isGenerator() {\n        return this._generator;\n    }\n    get dataName() {\n        return this._name;\n    }\n    set dataName(name) {\n        this._name = name;\n    }\n    set parent(parent) {\n        throw new Error('Source nodes have to be roots.');\n    }\n    remove() {\n        throw new Error('Source nodes are roots and cannot be removed.');\n    }\n    hash() {\n        throw new Error('Cannot hash sources');\n    }\n    assemble() {\n        return Object.assign(Object.assign({ name: this._name }, this._data), { transform: [] });\n    }\n}\n//# sourceMappingURL=source.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/source.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/stack.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/stack.js ***!
  \****************************************************************/
/*! exports provided: StackNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StackNode\", function() { return StackNode; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\nfunction getStackByFields(model) {\n    return model.stack.stackBy.reduce((fields, by) => {\n        const fieldDef = by.fieldDef;\n        const _field = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(fieldDef);\n        if (_field) {\n            fields.push(_field);\n        }\n        return fields;\n    }, []);\n}\nfunction isValidAsArray(as) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(as) && as.every(s => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(s)) && as.length > 1;\n}\nclass StackNode extends _dataflow__WEBPACK_IMPORTED_MODULE_4__[\"DataFlowNode\"] {\n    constructor(parent, stack) {\n        super(parent);\n        this._stack = stack;\n    }\n    clone() {\n        return new StackNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"duplicate\"])(this._stack));\n    }\n    static makeFromTransform(parent, stackTransform) {\n        const { stack, groupby, as, offset = 'zero' } = stackTransform;\n        const sortFields = [];\n        const sortOrder = [];\n        if (stackTransform.sort !== undefined) {\n            for (const sortField of stackTransform.sort) {\n                sortFields.push(sortField.field);\n                sortOrder.push(Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"getFirstDefined\"])(sortField.order, 'ascending'));\n            }\n        }\n        const sort = {\n            field: sortFields,\n            order: sortOrder\n        };\n        let normalizedAs;\n        if (isValidAsArray(as)) {\n            normalizedAs = as;\n        }\n        else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(as)) {\n            normalizedAs = [as, as + '_end'];\n        }\n        else {\n            normalizedAs = [stackTransform.stack + '_start', stackTransform.stack + '_end'];\n        }\n        return new StackNode(parent, {\n            stackField: stack,\n            groupby,\n            offset,\n            sort,\n            facetby: [],\n            as: normalizedAs\n        });\n    }\n    static makeFromEncoding(parent, model) {\n        const stackProperties = model.stack;\n        const { encoding } = model;\n        if (!stackProperties) {\n            return null;\n        }\n        const { groupbyChannel, fieldChannel, offset, impute } = stackProperties;\n        let dimensionFieldDef;\n        if (groupbyChannel) {\n            const cDef = encoding[groupbyChannel];\n            dimensionFieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldDef\"])(cDef); // Fair to cast as groupByChannel is always either x or y\n        }\n        const stackby = getStackByFields(model);\n        const orderDef = model.encoding.order;\n        let sort;\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(orderDef) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(orderDef)) {\n            sort = Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"sortParams\"])(orderDef);\n        }\n        else {\n            // default = descending by stackFields\n            // FIXME is the default here correct for binned fields?\n            sort = stackby.reduce((s, field) => {\n                s.field.push(field);\n                s.order.push(fieldChannel === 'y' ? 'descending' : 'ascending');\n                return s;\n            }, { field: [], order: [] });\n        }\n        return new StackNode(parent, {\n            dimensionFieldDef,\n            stackField: model.vgField(fieldChannel),\n            facetby: [],\n            stackby,\n            sort,\n            offset,\n            impute,\n            as: [\n                model.vgField(fieldChannel, { suffix: 'start', forAs: true }),\n                model.vgField(fieldChannel, { suffix: 'end', forAs: true })\n            ]\n        });\n    }\n    get stack() {\n        return this._stack;\n    }\n    addDimensions(fields) {\n        this._stack.facetby.push(...fields);\n    }\n    dependentFields() {\n        const out = new Set();\n        out.add(this._stack.stackField);\n        this.getGroupbyFields().forEach(out.add, out);\n        this._stack.facetby.forEach(out.add, out);\n        this._stack.sort.field.forEach(out.add, out);\n        return out;\n    }\n    producedFields() {\n        return new Set(this._stack.as);\n    }\n    hash() {\n        return `Stack ${Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"hash\"])(this._stack)}`;\n    }\n    getGroupbyFields() {\n        const { dimensionFieldDef, impute, groupby } = this._stack;\n        if (dimensionFieldDef) {\n            if (dimensionFieldDef.bin) {\n                if (impute) {\n                    // For binned group by field with impute, we calculate bin_mid\n                    // as we cannot impute two fields simultaneously\n                    return [Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, { binSuffix: 'mid' })];\n                }\n                return [\n                    // For binned group by field without impute, we need both bin (start) and bin_end\n                    Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, {}),\n                    Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, { binSuffix: 'end' })\n                ];\n            }\n            return [Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef)];\n        }\n        return groupby !== null && groupby !== void 0 ? groupby : [];\n    }\n    assemble() {\n        const transform = [];\n        const { facetby, dimensionFieldDef, stackField: field, stackby, sort, offset, impute, as } = this._stack;\n        // Impute\n        if (impute && dimensionFieldDef) {\n            const { band = 0.5, bin } = dimensionFieldDef;\n            if (bin) {\n                // As we can only impute one field at a time, we need to calculate\n                // mid point for a binned field\n                transform.push({\n                    type: 'formula',\n                    expr: `${band}*` +\n                        Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, { expr: 'datum' }) +\n                        `+${1 - band}*` +\n                        Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, { expr: 'datum', binSuffix: 'end' }),\n                    as: Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, { binSuffix: 'mid', forAs: true })\n                });\n            }\n            transform.push({\n                type: 'impute',\n                field,\n                groupby: [...stackby, ...facetby],\n                key: Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionFieldDef, { binSuffix: 'mid' }),\n                method: 'value',\n                value: 0\n            });\n        }\n        // Stack\n        transform.push({\n            type: 'stack',\n            groupby: [...this.getGroupbyFields(), ...facetby],\n            field,\n            sort,\n            as,\n            offset\n        });\n        return transform;\n    }\n}\n//# sourceMappingURL=stack.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/stack.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/subtree.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/subtree.js ***!
  \******************************************************************/
/*! exports provided: moveFacetDown */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"moveFacetDown\", function() { return moveFacetDown; });\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/compile/data/aggregate.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/compile/data/facet.js\");\n/* harmony import */ var _joinaggregate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./joinaggregate */ \"./node_modules/vega-lite/build/src/compile/data/joinaggregate.js\");\n/* harmony import */ var _optimize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./optimize */ \"./node_modules/vega-lite/build/src/compile/data/optimize.js\");\n/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./stack */ \"./node_modules/vega-lite/build/src/compile/data/stack.js\");\n/* harmony import */ var _window__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./window */ \"./node_modules/vega-lite/build/src/compile/data/window.js\");\n\n\n\n\n\n\n\n\n/**\n * Clones the subtree and ignores output nodes except for the leaves, which are renamed.\n */\nfunction cloneSubtree(facet) {\n    function clone(node) {\n        if (!(node instanceof _facet__WEBPACK_IMPORTED_MODULE_3__[\"FacetNode\"])) {\n            const copy = node.clone();\n            if (copy instanceof _dataflow__WEBPACK_IMPORTED_MODULE_2__[\"OutputNode\"]) {\n                const newName = _optimize__WEBPACK_IMPORTED_MODULE_5__[\"FACET_SCALE_PREFIX\"] + copy.getSource();\n                copy.setSource(newName);\n                facet.model.component.data.outputNodes[newName] = copy;\n            }\n            else if (copy instanceof _aggregate__WEBPACK_IMPORTED_MODULE_1__[\"AggregateNode\"] ||\n                copy instanceof _stack__WEBPACK_IMPORTED_MODULE_6__[\"StackNode\"] ||\n                copy instanceof _window__WEBPACK_IMPORTED_MODULE_7__[\"WindowTransformNode\"] ||\n                copy instanceof _joinaggregate__WEBPACK_IMPORTED_MODULE_4__[\"JoinAggregateTransformNode\"]) {\n                copy.addDimensions(facet.fields);\n            }\n            for (const n of node.children.flatMap(clone)) {\n                n.parent = copy;\n            }\n            return [copy];\n        }\n        return node.children.flatMap(clone);\n    }\n    return clone;\n}\n/**\n * Move facet nodes down to the next fork or output node. Also pull the main output with the facet node.\n * After moving down the facet node, make a copy of the subtree and make it a child of the main output.\n */\nfunction moveFacetDown(node) {\n    if (node instanceof _facet__WEBPACK_IMPORTED_MODULE_3__[\"FacetNode\"]) {\n        if (node.numChildren() === 1 && !(node.children[0] instanceof _dataflow__WEBPACK_IMPORTED_MODULE_2__[\"OutputNode\"])) {\n            // move down until we hit a fork or output node\n            const child = node.children[0];\n            if (child instanceof _aggregate__WEBPACK_IMPORTED_MODULE_1__[\"AggregateNode\"] ||\n                child instanceof _stack__WEBPACK_IMPORTED_MODULE_6__[\"StackNode\"] ||\n                child instanceof _window__WEBPACK_IMPORTED_MODULE_7__[\"WindowTransformNode\"] ||\n                child instanceof _joinaggregate__WEBPACK_IMPORTED_MODULE_4__[\"JoinAggregateTransformNode\"]) {\n                child.addDimensions(node.fields);\n            }\n            child.swapWithParent();\n            moveFacetDown(node);\n        }\n        else {\n            // move main to facet\n            const facetMain = node.model.component.data.main;\n            moveMainDownToFacet(facetMain);\n            // replicate the subtree and place it before the facet's main node\n            const cloner = cloneSubtree(node);\n            const copy = node.children.map(cloner).flat();\n            for (const c of copy) {\n                c.parent = facetMain;\n            }\n        }\n    }\n    else {\n        node.children.map(moveFacetDown);\n    }\n}\nfunction moveMainDownToFacet(node) {\n    if (node instanceof _dataflow__WEBPACK_IMPORTED_MODULE_2__[\"OutputNode\"] && node.type === _data__WEBPACK_IMPORTED_MODULE_0__[\"DataSourceType\"].Main) {\n        if (node.numChildren() === 1) {\n            const child = node.children[0];\n            if (!(child instanceof _facet__WEBPACK_IMPORTED_MODULE_3__[\"FacetNode\"])) {\n                child.swapWithParent();\n                moveMainDownToFacet(node);\n            }\n        }\n    }\n}\n//# sourceMappingURL=subtree.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/subtree.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/timeunit.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/timeunit.js ***!
  \*******************************************************************/
/*! exports provided: TimeUnitNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TimeUnitNode\", function() { return TimeUnitNode; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\nclass TimeUnitNode extends _dataflow__WEBPACK_IMPORTED_MODULE_5__[\"DataFlowNode\"] {\n    constructor(parent, formula) {\n        super(parent);\n        this.formula = formula;\n    }\n    clone() {\n        return new TimeUnitNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(this.formula));\n    }\n    static makeFromEncoding(parent, model) {\n        const formula = model.reduceFieldDef((timeUnitComponent, fieldDef, channel) => {\n            const { field, timeUnit } = fieldDef;\n            const channelDef2 = Object(_model__WEBPACK_IMPORTED_MODULE_4__[\"isUnitModel\"])(model) ? model.encoding[Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSecondaryRangeChannel\"])(channel)] : undefined;\n            const band = Object(_model__WEBPACK_IMPORTED_MODULE_4__[\"isUnitModel\"])(model) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"hasBand\"])(channel, fieldDef, channelDef2, model.stack, model.markDef, model.config);\n            if (timeUnit) {\n                const as = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(fieldDef, { forAs: true });\n                timeUnitComponent[Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])({\n                    as,\n                    field,\n                    timeUnit\n                })] = Object.assign({ as,\n                    field,\n                    timeUnit }, (band ? { band: true } : {}));\n            }\n            return timeUnitComponent;\n        }, {});\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isEmpty\"])(formula)) {\n            return null;\n        }\n        return new TimeUnitNode(parent, formula);\n    }\n    static makeFromTransform(parent, t) {\n        const _a = Object.assign({}, t), { timeUnit } = _a, other = __rest(_a, [\"timeUnit\"]);\n        const normalizedTimeUnit = Object(_timeunit__WEBPACK_IMPORTED_MODULE_2__[\"normalizeTimeUnit\"])(timeUnit);\n        const component = Object.assign(Object.assign({}, other), { timeUnit: normalizedTimeUnit });\n        return new TimeUnitNode(parent, {\n            [Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(component)]: component\n        });\n    }\n    /**\n     * Merge together TimeUnitNodes assigning the children of `other` to `this`\n     * and removing `other`.\n     */\n    merge(other) {\n        this.formula = Object.assign({}, this.formula);\n        // if the same hash happen twice, merge \"band\"\n        for (const key in other.formula) {\n            if (!this.formula[key] || other.formula[key].band) {\n                // copy if it's not a duplicate or if we need to copy band over\n                this.formula[key] = other.formula[key];\n            }\n        }\n        for (const child of other.children) {\n            other.removeChild(child);\n            child.parent = this;\n        }\n        other.remove();\n    }\n    /**\n     * Remove time units coming from the other node.\n     */\n    removeFormulas(fields) {\n        const newFormula = {};\n        for (const [key, timeUnit] of Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"entries\"])(this.formula)) {\n            if (!fields.has(timeUnit.as)) {\n                newFormula[key] = timeUnit;\n            }\n        }\n        this.formula = newFormula;\n    }\n    producedFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(this.formula).map(f => f.as));\n    }\n    dependentFields() {\n        return new Set(Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(this.formula).map(f => f.field));\n    }\n    hash() {\n        return `TimeUnit ${Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"])(this.formula)}`;\n    }\n    assemble() {\n        const transforms = [];\n        for (const f of Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(this.formula)) {\n            const { field, as, timeUnit } = f;\n            const _a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_2__[\"normalizeTimeUnit\"])(timeUnit), { unit, utc } = _a, params = __rest(_a, [\"unit\", \"utc\"]);\n            transforms.push(Object.assign(Object.assign(Object.assign(Object.assign({ field: Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"replacePathInField\"])(field), type: 'timeunit' }, (unit ? { units: Object(_timeunit__WEBPACK_IMPORTED_MODULE_2__[\"getTimeUnitParts\"])(unit) } : {})), (utc ? { timezone: 'utc' } : {})), params), { as: [as, `${as}_end`] }));\n        }\n        return transforms;\n    }\n}\n//# sourceMappingURL=timeunit.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/timeunit.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/data/window.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/data/window.js ***!
  \*****************************************************************/
/*! exports provided: WindowTransformNode */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WindowTransformNode\", function() { return WindowTransformNode; });\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _dataflow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n\n\n\n\n\n/**\n * A class for the window transform nodes\n */\nclass WindowTransformNode extends _dataflow__WEBPACK_IMPORTED_MODULE_3__[\"DataFlowNode\"] {\n    constructor(parent, transform) {\n        super(parent);\n        this.transform = transform;\n    }\n    clone() {\n        return new WindowTransformNode(null, Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"duplicate\"])(this.transform));\n    }\n    addDimensions(fields) {\n        this.transform.groupby = Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"unique\"])(this.transform.groupby.concat(fields), d => d);\n    }\n    dependentFields() {\n        var _a, _b;\n        const out = new Set();\n        ((_a = this.transform.groupby) !== null && _a !== void 0 ? _a : []).forEach(out.add, out);\n        ((_b = this.transform.sort) !== null && _b !== void 0 ? _b : []).forEach(m => out.add(m.field));\n        this.transform.window\n            .map(w => w.field)\n            .filter(f => f !== undefined)\n            .forEach(out.add, out);\n        return out;\n    }\n    producedFields() {\n        return new Set(this.transform.window.map(this.getDefaultName));\n    }\n    getDefaultName(windowFieldDef) {\n        var _a;\n        return (_a = windowFieldDef.as) !== null && _a !== void 0 ? _a : Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(windowFieldDef);\n    }\n    hash() {\n        return `WindowTransform ${Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"hash\"])(this.transform)}`;\n    }\n    assemble() {\n        var _a;\n        const fields = [];\n        const ops = [];\n        const as = [];\n        const params = [];\n        for (const window of this.transform.window) {\n            ops.push(window.op);\n            as.push(this.getDefaultName(window));\n            params.push(window.param === undefined ? null : window.param);\n            fields.push(window.field === undefined ? null : window.field);\n        }\n        const frame = this.transform.frame;\n        const groupby = this.transform.groupby;\n        if (frame && frame[0] === null && frame[1] === null && ops.every(o => Object(_aggregate__WEBPACK_IMPORTED_MODULE_0__[\"isAggregateOp\"])(o))) {\n            // when the window does not rely on any particular window ops or frame, switch to a simpler and more efficient joinaggregate\n            return Object.assign({ type: 'joinaggregate', as, ops: ops, fields }, (groupby !== undefined ? { groupby } : {}));\n        }\n        const sortFields = [];\n        const sortOrder = [];\n        if (this.transform.sort !== undefined) {\n            for (const sortField of this.transform.sort) {\n                sortFields.push(sortField.field);\n                sortOrder.push((_a = sortField.order) !== null && _a !== void 0 ? _a : 'ascending');\n            }\n        }\n        const sort = {\n            field: sortFields,\n            order: sortOrder\n        };\n        const ignorePeers = this.transform.ignorePeers;\n        return Object.assign(Object.assign(Object.assign({ type: 'window', params,\n            as,\n            ops,\n            fields,\n            sort }, (ignorePeers !== undefined ? { ignorePeers } : {})), (groupby !== undefined ? { groupby } : {})), (frame !== undefined ? { frame } : {}));\n    }\n}\n//# sourceMappingURL=window.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/data/window.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/facet.js":
/*!***********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/facet.js ***!
  \***********************************************************/
/*! exports provided: facetSortFieldName, FacetModel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"facetSortFieldName\", function() { return facetSortFieldName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FacetModel\", function() { return FacetModel; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _spec_facet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../spec/facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _buildmodel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./buildmodel */ \"./node_modules/vega-lite/build/src/compile/buildmodel.js\");\n/* harmony import */ var _data_assemble__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./data/assemble */ \"./node_modules/vega-lite/build/src/compile/data/assemble.js\");\n/* harmony import */ var _data_calculate__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./data/calculate */ \"./node_modules/vega-lite/build/src/compile/data/calculate.js\");\n/* harmony import */ var _data_parse__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./data/parse */ \"./node_modules/vega-lite/build/src/compile/data/parse.js\");\n/* harmony import */ var _header_assemble__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./header/assemble */ \"./node_modules/vega-lite/build/src/compile/header/assemble.js\");\n/* harmony import */ var _header_common__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./header/common */ \"./node_modules/vega-lite/build/src/compile/header/common.js\");\n/* harmony import */ var _header_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./header/component */ \"./node_modules/vega-lite/build/src/compile/header/component.js\");\n/* harmony import */ var _header_parse__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./header/parse */ \"./node_modules/vega-lite/build/src/compile/header/parse.js\");\n/* harmony import */ var _layoutsize_parse__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./layoutsize/parse */ \"./node_modules/vega-lite/build/src/compile/layoutsize/parse.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _scale_domain__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./scale/domain */ \"./node_modules/vega-lite/build/src/compile/scale/domain.js\");\n/* harmony import */ var _selection_assemble__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./selection/assemble */ \"./node_modules/vega-lite/build/src/compile/selection/assemble.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction facetSortFieldName(fieldDef, sort, opt) {\n    return Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(sort, Object.assign({ suffix: `by_${Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef)}` }, (opt !== null && opt !== void 0 ? opt : {})));\n}\nclass FacetModel extends _model__WEBPACK_IMPORTED_MODULE_20__[\"ModelWithField\"] {\n    constructor(spec, parent, parentGivenName, config) {\n        super(spec, 'facet', parent, parentGivenName, config, spec.resolve);\n        this.child = Object(_buildmodel__WEBPACK_IMPORTED_MODULE_11__[\"buildModel\"])(spec.spec, this, this.getName('child'), undefined, config);\n        this.children = [this.child];\n        this.facet = this.initFacet(spec.facet);\n    }\n    initFacet(facet) {\n        // clone to prevent side effect to the original spec\n        if (!Object(_spec_facet__WEBPACK_IMPORTED_MODULE_8__[\"isFacetMapping\"])(facet)) {\n            return { facet: this.initFacetFieldDef(facet, 'facet') };\n        }\n        const channels = Object(_util__WEBPACK_IMPORTED_MODULE_9__[\"keys\"])(facet);\n        const normalizedFacet = {};\n        for (const channel of channels) {\n            if (!Object(_util__WEBPACK_IMPORTED_MODULE_9__[\"contains\"])([_channel__WEBPACK_IMPORTED_MODULE_2__[\"ROW\"], _channel__WEBPACK_IMPORTED_MODULE_2__[\"COLUMN\"]], channel)) {\n                // Drop unsupported channel\n                _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].incompatibleChannel(channel, 'facet'));\n                break;\n            }\n            const fieldDef = facet[channel];\n            if (fieldDef.field === undefined) {\n                _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].emptyFieldDef(fieldDef, channel));\n                break;\n            }\n            normalizedFacet[channel] = this.initFacetFieldDef(fieldDef, channel);\n        }\n        return normalizedFacet;\n    }\n    initFacetFieldDef(fieldDef, channel) {\n        const { header } = fieldDef, rest = __rest(fieldDef, [\"header\"]);\n        // Cast because we call initFieldDef, which assumes general FieldDef.\n        // However, FacetFieldDef is a bit more constrained than the general FieldDef\n        const facetFieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"initFieldDef\"])(rest, channel);\n        if (header) {\n            facetFieldDef.header = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(header);\n        }\n        return facetFieldDef;\n    }\n    channelHasField(channel) {\n        return !!this.facet[channel];\n    }\n    fieldDef(channel) {\n        return this.facet[channel];\n    }\n    parseData() {\n        this.component.data = Object(_data_parse__WEBPACK_IMPORTED_MODULE_14__[\"parseData\"])(this);\n        this.child.parseData();\n    }\n    parseLayoutSize() {\n        Object(_layoutsize_parse__WEBPACK_IMPORTED_MODULE_19__[\"parseChildrenLayoutSize\"])(this);\n    }\n    parseSelections() {\n        // As a facet has a single child, the selection components are the same.\n        // The child maintains its selections to assemble signals, which remain\n        // within its unit.\n        this.child.parseSelections();\n        this.component.selection = this.child.component.selection;\n    }\n    parseMarkGroup() {\n        this.child.parseMarkGroup();\n    }\n    parseAxesAndHeaders() {\n        this.child.parseAxesAndHeaders();\n        Object(_header_parse__WEBPACK_IMPORTED_MODULE_18__[\"parseFacetHeaders\"])(this);\n    }\n    assembleSelectionTopLevelSignals(signals) {\n        return this.child.assembleSelectionTopLevelSignals(signals);\n    }\n    assembleSignals() {\n        this.child.assembleSignals();\n        return [];\n    }\n    assembleSelectionData(data) {\n        return this.child.assembleSelectionData(data);\n    }\n    getHeaderLayoutMixins() {\n        var _a, _b, _c;\n        const layoutMixins = {};\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"]) {\n            for (const headerType of _header_component__WEBPACK_IMPORTED_MODULE_17__[\"HEADER_TYPES\"]) {\n                const layoutHeaderComponent = this.component.layoutHeaders[channel];\n                const headerComponent = layoutHeaderComponent[headerType];\n                const { facetFieldDef } = layoutHeaderComponent;\n                if (facetFieldDef) {\n                    const titleOrient = Object(_header_common__WEBPACK_IMPORTED_MODULE_16__[\"getHeaderProperty\"])('titleOrient', facetFieldDef.header, this.config, channel);\n                    if (Object(_util__WEBPACK_IMPORTED_MODULE_9__[\"contains\"])(['right', 'bottom'], titleOrient)) {\n                        const headerChannel = Object(_header_common__WEBPACK_IMPORTED_MODULE_16__[\"getHeaderChannel\"])(channel, titleOrient);\n                        layoutMixins.titleAnchor = (_a = layoutMixins.titleAnchor) !== null && _a !== void 0 ? _a : {};\n                        layoutMixins.titleAnchor[headerChannel] = 'end';\n                    }\n                }\n                if (headerComponent === null || headerComponent === void 0 ? void 0 : headerComponent[0]) {\n                    // set header/footerBand\n                    const sizeType = channel === 'row' ? 'height' : 'width';\n                    const bandType = headerType === 'header' ? 'headerBand' : 'footerBand';\n                    if (channel !== 'facet' && !this.child.component.layoutSize.get(sizeType)) {\n                        // If facet child does not have size signal, then apply headerBand\n                        layoutMixins[bandType] = (_b = layoutMixins[bandType]) !== null && _b !== void 0 ? _b : {};\n                        layoutMixins[bandType][channel] = 0.5;\n                    }\n                    if (layoutHeaderComponent.title) {\n                        layoutMixins.offset = (_c = layoutMixins.offset) !== null && _c !== void 0 ? _c : {};\n                        layoutMixins.offset[channel === 'row' ? 'rowTitle' : 'columnTitle'] = 10;\n                    }\n                }\n            }\n        }\n        return layoutMixins;\n    }\n    assembleDefaultLayout() {\n        const { column, row } = this.facet;\n        const columns = column ? this.columnDistinctSignal() : row ? 1 : undefined;\n        let align = 'all';\n        // Do not align the cells if the scale corresponding to the direction is indepent.\n        // We always align when we facet into both row and column.\n        if (!row && this.component.resolve.scale.x === 'independent') {\n            align = 'none';\n        }\n        else if (!column && this.component.resolve.scale.y === 'independent') {\n            align = 'none';\n        }\n        return Object.assign(Object.assign(Object.assign({}, this.getHeaderLayoutMixins()), (columns ? { columns } : {})), { bounds: 'full', align });\n    }\n    assembleLayoutSignals() {\n        // FIXME(https://github.com/vega/vega-lite/issues/1193): this can be incorrect if we have independent scales.\n        return this.child.assembleLayoutSignals();\n    }\n    columnDistinctSignal() {\n        if (this.parent && this.parent instanceof FacetModel) {\n            // For nested facet, we will add columns to group mark instead\n            // See discussion in https://github.com/vega/vega/issues/952\n            // and https://github.com/vega/vega-view/releases/tag/v1.2.6\n            return undefined;\n        }\n        else {\n            // In facetNode.assemble(), the name is always this.getName('column') + '_layout'.\n            const facetLayoutDataName = this.getName('column_domain');\n            return { signal: `length(data('${facetLayoutDataName}'))` };\n        }\n    }\n    assembleGroup(signals) {\n        if (this.parent && this.parent instanceof FacetModel) {\n            // Provide number of columns for layout.\n            // See discussion in https://github.com/vega/vega/issues/952\n            // and https://github.com/vega/vega-view/releases/tag/v1.2.6\n            return Object.assign(Object.assign({}, (this.channelHasField('column')\n                ? {\n                    encode: {\n                        update: {\n                            // TODO(https://github.com/vega/vega-lite/issues/2759):\n                            // Correct the signal for facet of concat of facet_column\n                            columns: { field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(this.facet.column, { prefix: 'distinct' }) }\n                        }\n                    }\n                }\n                : {})), super.assembleGroup(signals));\n        }\n        return super.assembleGroup(signals);\n    }\n    /**\n     * Aggregate cardinality for calculating size\n     */\n    getCardinalityAggregateForChild() {\n        const fields = [];\n        const ops = [];\n        const as = [];\n        if (this.child instanceof FacetModel) {\n            if (this.child.channelHasField('column')) {\n                const field = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(this.child.facet.column);\n                fields.push(field);\n                ops.push('distinct');\n                as.push(`distinct_${field}`);\n            }\n        }\n        else {\n            for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNELS\"]) {\n                const childScaleComponent = this.child.component.scales[channel];\n                if (childScaleComponent && !childScaleComponent.merged) {\n                    const type = childScaleComponent.get('type');\n                    const range = childScaleComponent.get('range');\n                    if (Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasDiscreteDomain\"])(type) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_10__[\"isVgRangeStep\"])(range)) {\n                        const domain = Object(_scale_domain__WEBPACK_IMPORTED_MODULE_21__[\"assembleDomain\"])(this.child, channel);\n                        const field = Object(_scale_domain__WEBPACK_IMPORTED_MODULE_21__[\"getFieldFromDomain\"])(domain);\n                        if (field) {\n                            fields.push(field);\n                            ops.push('distinct');\n                            as.push(`distinct_${field}`);\n                        }\n                        else {\n                            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].unknownField(channel));\n                        }\n                    }\n                }\n            }\n        }\n        return { fields, ops, as };\n    }\n    assembleFacet() {\n        const { name, data } = this.component.data.facetRoot;\n        const { row, column } = this.facet;\n        const { fields, ops, as } = this.getCardinalityAggregateForChild();\n        const groupby = [];\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"]) {\n            const fieldDef = this.facet[channel];\n            if (fieldDef) {\n                groupby.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef));\n                const { bin, sort } = fieldDef;\n                if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(bin)) {\n                    groupby.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef, { binSuffix: 'end' }));\n                }\n                if (Object(_sort__WEBPACK_IMPORTED_MODULE_7__[\"isSortField\"])(sort)) {\n                    const { field, op = _sort__WEBPACK_IMPORTED_MODULE_7__[\"DEFAULT_SORT_OP\"] } = sort;\n                    const outputName = facetSortFieldName(fieldDef, sort);\n                    if (row && column) {\n                        // For crossed facet, use pre-calculate field as it requires a different groupby\n                        // For each calculated field, apply max and assign them to the same name as\n                        // all values of the same group should be the same anyway.\n                        fields.push(outputName);\n                        ops.push('max');\n                        as.push(outputName);\n                    }\n                    else {\n                        fields.push(field);\n                        ops.push(op);\n                        as.push(outputName);\n                    }\n                }\n                else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(sort)) {\n                    const outputName = Object(_data_calculate__WEBPACK_IMPORTED_MODULE_13__[\"sortArrayIndexField\"])(fieldDef, channel);\n                    fields.push(outputName);\n                    ops.push('max');\n                    as.push(outputName);\n                }\n            }\n        }\n        const cross = !!row && !!column;\n        return Object.assign({ name,\n            data,\n            groupby }, (cross || fields.length > 0\n            ? {\n                aggregate: Object.assign(Object.assign({}, (cross ? { cross } : {})), (fields.length ? { fields, ops, as } : {}))\n            }\n            : {}));\n    }\n    facetSortFields(channel) {\n        const { facet } = this;\n        const fieldDef = facet[channel];\n        if (fieldDef) {\n            if (Object(_sort__WEBPACK_IMPORTED_MODULE_7__[\"isSortField\"])(fieldDef.sort)) {\n                return [facetSortFieldName(fieldDef, fieldDef.sort, { expr: 'datum' })];\n            }\n            else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(fieldDef.sort)) {\n                return [Object(_data_calculate__WEBPACK_IMPORTED_MODULE_13__[\"sortArrayIndexField\"])(fieldDef, channel, { expr: 'datum' })];\n            }\n            return [Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef, { expr: 'datum' })];\n        }\n        return [];\n    }\n    facetSortOrder(channel) {\n        const { facet } = this;\n        const fieldDef = facet[channel];\n        if (fieldDef) {\n            const { sort } = fieldDef;\n            const order = (Object(_sort__WEBPACK_IMPORTED_MODULE_7__[\"isSortField\"])(sort) ? sort.order : !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(sort) && sort) || 'ascending';\n            return [order];\n        }\n        return [];\n    }\n    assembleLabelTitle() {\n        var _a;\n        const { facet, config } = this;\n        if (facet.facet) {\n            // Facet always uses title to display labels\n            return Object(_header_assemble__WEBPACK_IMPORTED_MODULE_15__[\"assembleLabelTitle\"])(facet.facet, 'facet', config);\n        }\n        const ORTHOGONAL_ORIENT = {\n            row: ['top', 'bottom'],\n            column: ['left', 'right']\n        };\n        for (const channel of _header_component__WEBPACK_IMPORTED_MODULE_17__[\"HEADER_CHANNELS\"]) {\n            if (facet[channel]) {\n                const labelOrient = Object(_header_common__WEBPACK_IMPORTED_MODULE_16__[\"getHeaderProperty\"])('labelOrient', (_a = facet[channel]) === null || _a === void 0 ? void 0 : _a.header, config, channel);\n                if (Object(_util__WEBPACK_IMPORTED_MODULE_9__[\"contains\"])(ORTHOGONAL_ORIENT[channel], labelOrient)) {\n                    // Row/Column with orthogonal labelOrient must use title to display labels\n                    return Object(_header_assemble__WEBPACK_IMPORTED_MODULE_15__[\"assembleLabelTitle\"])(facet[channel], channel, config);\n                }\n            }\n        }\n        return undefined;\n    }\n    assembleMarks() {\n        const { child } = this;\n        // If we facet by two dimensions, we need to add a cross operator to the aggregation\n        // so that we create all groups\n        const facetRoot = this.component.data.facetRoot;\n        const data = Object(_data_assemble__WEBPACK_IMPORTED_MODULE_12__[\"assembleFacetData\"])(facetRoot);\n        const encodeEntry = child.assembleGroupEncodeEntry(false);\n        const title = this.assembleLabelTitle() || child.assembleTitle();\n        const style = child.assembleGroupStyle();\n        const markGroup = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: this.getName('cell'), type: 'group' }, (title ? { title } : {})), (style ? { style } : {})), { from: {\n                facet: this.assembleFacet()\n            }, \n            // TODO: move this to after data\n            sort: {\n                field: _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"].map(c => this.facetSortFields(c)).flat(),\n                order: _channel__WEBPACK_IMPORTED_MODULE_2__[\"FACET_CHANNELS\"].map(c => this.facetSortOrder(c)).flat()\n            } }), (data.length > 0 ? { data: data } : {})), (encodeEntry ? { encode: { update: encodeEntry } } : {})), child.assembleGroup(Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_22__[\"assembleFacetSignals\"])(this, [])));\n        return [markGroup];\n    }\n    getMapping() {\n        return this.facet;\n    }\n}\n//# sourceMappingURL=facet.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/facet.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/format.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/format.js ***!
  \************************************************************/
/*! exports provided: isCustomFormatType, BIN_RANGE_DELIMITER, formatSignalRef, formatCustomType, guideFormat, guideFormatType, numberFormat, timeFormat, binFormatExpression, timeFormatExpression */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCustomFormatType\", function() { return isCustomFormatType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BIN_RANGE_DELIMITER\", function() { return BIN_RANGE_DELIMITER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatSignalRef\", function() { return formatSignalRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatCustomType\", function() { return formatCustomType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guideFormat\", function() { return guideFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guideFormatType\", function() { return guideFormatType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"numberFormat\", function() { return numberFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormat\", function() { return timeFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"binFormatExpression\", function() { return binFormatExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFormatExpression\", function() { return timeFormatExpression; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../predicate */ \"./node_modules/vega-lite/build/src/predicate.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _mark_encode_valueref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./mark/encode/valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n\n\n\n\n\n\n\n\n\nfunction isCustomFormatType(formatType) {\n    return formatType && formatType !== 'number' && formatType !== 'time';\n}\nfunction customFormatExpr(formatType, field, format) {\n    return `${formatType}(${field}${format ? `, ${JSON.stringify(format)}` : ''})`;\n}\nconst BIN_RANGE_DELIMITER = ' \\u2013 ';\nfunction formatSignalRef({ fieldOrDatumDef, format, formatType, expr, normalizeStack, config }) {\n    var _a, _b;\n    if (isCustomFormatType(formatType)) {\n        return formatCustomType({\n            fieldOrDatumDef,\n            format,\n            formatType,\n            expr,\n            config\n        });\n    }\n    const field = fieldToFormat(fieldOrDatumDef, expr, normalizeStack);\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldOrDatumDefForTimeFormat\"])(fieldOrDatumDef)) {\n        const signal = timeFormatExpression(field, Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef) ? (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"normalizeTimeUnit\"])(fieldOrDatumDef.timeUnit)) === null || _a === void 0 ? void 0 : _a.unit : undefined, format, config.timeFormat, Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isScaleFieldDef\"])(fieldOrDatumDef) && ((_b = fieldOrDatumDef.scale) === null || _b === void 0 ? void 0 : _b.type) === _scale__WEBPACK_IMPORTED_MODULE_4__[\"ScaleType\"].UTC);\n        return signal ? { signal } : undefined;\n    }\n    format = numberFormat(Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"channelDefType\"])(fieldOrDatumDef), format, config);\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef) && Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldOrDatumDef.bin)) {\n        const endField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldOrDatumDef, { expr, binSuffix: 'end' });\n        return {\n            signal: binFormatExpression(field, endField, format, formatType, config)\n        };\n    }\n    else if (format || Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"channelDefType\"])(fieldOrDatumDef) === 'quantitative') {\n        return {\n            signal: `${formatExpr(field, format)}`\n        };\n    }\n    else {\n        return { signal: `isValid(${field}) ? ${field} : \"\"+${field}` };\n    }\n}\nfunction fieldToFormat(fieldOrDatumDef, expr, normalizeStack) {\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef)) {\n        if (normalizeStack) {\n            return `${Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldOrDatumDef, { expr, suffix: 'end' })}-${Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldOrDatumDef, {\n                expr,\n                suffix: 'start'\n            })}`;\n        }\n        else {\n            return Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldOrDatumDef, { expr });\n        }\n    }\n    else {\n        return Object(_mark_encode_valueref__WEBPACK_IMPORTED_MODULE_8__[\"datumDefToExpr\"])(fieldOrDatumDef);\n    }\n}\nfunction formatCustomType({ fieldOrDatumDef, format, formatType, expr, normalizeStack, config, field }) {\n    field = field !== null && field !== void 0 ? field : fieldToFormat(fieldOrDatumDef, expr, normalizeStack);\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef) && Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldOrDatumDef.bin)) {\n        const endField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(fieldOrDatumDef, { expr, binSuffix: 'end' });\n        return {\n            signal: binFormatExpression(field, endField, format, formatType, config)\n        };\n    }\n    return { signal: customFormatExpr(formatType, field, format) };\n}\nfunction guideFormat(fieldOrDatumDef, type, format, formatType, config, omitTimeFormatConfig // axis doesn't use config.timeFormat\n) {\n    var _a;\n    if (isCustomFormatType(formatType)) {\n        return undefined; // handled in encode block\n    }\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldOrDatumDefForTimeFormat\"])(fieldOrDatumDef)) {\n        const timeUnit = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef) ? (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"normalizeTimeUnit\"])(fieldOrDatumDef.timeUnit)) === null || _a === void 0 ? void 0 : _a.unit : undefined;\n        return timeFormat(format, timeUnit, config, omitTimeFormatConfig);\n    }\n    return numberFormat(type, format, config);\n}\nfunction guideFormatType(formatType, fieldOrDatumDef, scaleType) {\n    if (formatType && (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_7__[\"isSignalRef\"])(formatType) || formatType === 'number' || formatType === 'time')) {\n        return formatType;\n    }\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldOrDatumDefForTimeFormat\"])(fieldOrDatumDef) && scaleType !== 'time' && scaleType !== 'utc') {\n        return 'time';\n    }\n    return undefined;\n}\n/**\n * Returns number format for a fieldDef.\n */\nfunction numberFormat(type, specifiedFormat, config) {\n    // Specified format in axis/legend has higher precedence than fieldDef.format\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(specifiedFormat)) {\n        return specifiedFormat;\n    }\n    if (type === _type__WEBPACK_IMPORTED_MODULE_6__[\"QUANTITATIVE\"]) {\n        // we only apply the default if the field is quantitative\n        return config.numberFormat;\n    }\n    return undefined;\n}\n/**\n * Returns time format for a fieldDef for use in guides.\n */\nfunction timeFormat(specifiedFormat, timeUnit, config, omitTimeFormatConfig) {\n    if (specifiedFormat) {\n        return specifiedFormat;\n    }\n    if (timeUnit) {\n        return {\n            signal: Object(_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"timeUnitSpecifierExpression\"])(timeUnit)\n        };\n    }\n    return omitTimeFormatConfig ? undefined : config.timeFormat;\n}\nfunction formatExpr(field, format) {\n    return `format(${field}, \"${format || ''}\")`;\n}\nfunction binNumberFormatExpr(field, format, formatType, config) {\n    var _a;\n    if (isCustomFormatType(formatType)) {\n        return customFormatExpr(formatType, field, format);\n    }\n    return formatExpr(field, (_a = (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(format) ? format : undefined)) !== null && _a !== void 0 ? _a : config.numberFormat);\n}\nfunction binFormatExpression(startField, endField, format, formatType, config) {\n    const start = binNumberFormatExpr(startField, format, formatType, config);\n    const end = binNumberFormatExpr(endField, format, formatType, config);\n    return `${Object(_predicate__WEBPACK_IMPORTED_MODULE_3__[\"fieldValidPredicate\"])(startField, false)} ? \"null\" : ${start} + \"${BIN_RANGE_DELIMITER}\" + ${end}`;\n}\n/**\n * Returns the time expression used for axis/legend labels or text mark for a temporal field\n */\nfunction timeFormatExpression(field, timeUnit, format, rawTimeFormat, // should be provided only for actual text and headers, not axis/legend labels\nisUTCScale) {\n    if (!timeUnit || format) {\n        // If there is no time unit, or if user explicitly specifies format for axis/legend/text.\n        format = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(format) ? format : rawTimeFormat; // only use provided timeFormat if there is no timeUnit.\n        return `${isUTCScale ? 'utc' : 'time'}Format(${field}, '${format}')`;\n    }\n    else {\n        return Object(_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"formatExpression\"])(timeUnit, field, isUTCScale);\n    }\n}\n//# sourceMappingURL=format.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/format.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/guide.js":
/*!***********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/guide.js ***!
  \***********************************************************/
/*! exports provided: guideEncodeEntry */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guideEncodeEntry\", function() { return guideEncodeEntry; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _mark_encode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mark/encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\n\n\nfunction guideEncodeEntry(encoding, model) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(encoding).reduce((encode, channel) => {\n        const valueDef = encoding[channel];\n        return Object.assign(Object.assign({}, encode), Object(_mark_encode__WEBPACK_IMPORTED_MODULE_2__[\"wrapCondition\"])(model, valueDef, channel, def => Object(_common__WEBPACK_IMPORTED_MODULE_1__[\"signalOrValueRef\"])(def.value)));\n    }, {});\n}\n//# sourceMappingURL=guide.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/guide.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/header/assemble.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/header/assemble.js ***!
  \*********************************************************************/
/*! exports provided: assembleTitleGroup, defaultHeaderGuideAlign, defaultHeaderGuideBaseline, assembleHeaderGroups, assembleLabelTitle, assembleHeaderGroup, getLayoutTitleBand, assembleLayoutTitleBand, assembleHeaderProperties */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleTitleGroup\", function() { return assembleTitleGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultHeaderGuideAlign\", function() { return defaultHeaderGuideAlign; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultHeaderGuideBaseline\", function() { return defaultHeaderGuideBaseline; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleHeaderGroups\", function() { return assembleHeaderGroups; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleLabelTitle\", function() { return assembleLabelTitle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleHeaderGroup\", function() { return assembleHeaderGroup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLayoutTitleBand\", function() { return getLayoutTitleBand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleLayoutTitleBand\", function() { return assembleLayoutTitleBand; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleHeaderProperties\", function() { return assembleHeaderProperties; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../header */ \"./node_modules/vega-lite/build/src/header.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _spec_facet__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../spec/facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _axis_properties__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../axis/properties */ \"./node_modules/vega-lite/build/src/compile/axis/properties.js\");\n/* harmony import */ var _data_calculate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../data/calculate */ \"./node_modules/vega-lite/build/src/compile/data/calculate.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compile/header/common.js\");\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./component */ \"./node_modules/vega-lite/build/src/compile/header/component.js\");\n/**\n * Utility for generating row / column headers\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n// TODO: rename to assembleHeaderTitleGroup\nfunction assembleTitleGroup(model, channel) {\n    const title = model.component.layoutHeaders[channel].title;\n    const config = model.config ? model.config : undefined;\n    const facetFieldDef = model.component.layoutHeaders[channel].facetFieldDef\n        ? model.component.layoutHeaders[channel].facetFieldDef\n        : undefined;\n    const { titleAnchor, titleAngle: ta, titleOrient } = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderProperties\"])(['titleAnchor', 'titleAngle', 'titleOrient'], facetFieldDef.header, config, channel);\n    const headerChannel = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderChannel\"])(channel, titleOrient);\n    const titleAngle = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"normalizeAngle\"])(ta);\n    return {\n        name: `${channel}-title`,\n        type: 'group',\n        role: `${headerChannel}-title`,\n        title: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ text: title }, (channel === 'row' ? { orient: 'left' } : {})), { style: 'guide-title' }), defaultHeaderGuideBaseline(titleAngle, headerChannel)), defaultHeaderGuideAlign(headerChannel, titleAngle, titleAnchor)), assembleHeaderProperties(config, facetFieldDef, channel, _header__WEBPACK_IMPORTED_MODULE_3__[\"HEADER_TITLE_PROPERTIES\"], _header__WEBPACK_IMPORTED_MODULE_3__[\"HEADER_TITLE_PROPERTIES_MAP\"]))\n    };\n}\nfunction defaultHeaderGuideAlign(headerChannel, angle, anchor = 'middle') {\n    switch (anchor) {\n        case 'start':\n            return { align: 'left' };\n        case 'end':\n            return { align: 'right' };\n    }\n    const align = Object(_axis_properties__WEBPACK_IMPORTED_MODULE_7__[\"defaultLabelAlign\"])(angle, headerChannel === 'row' ? 'left' : 'top', headerChannel === 'row' ? 'y' : 'x');\n    return align ? { align } : {};\n}\nfunction defaultHeaderGuideBaseline(angle, channel) {\n    const baseline = Object(_axis_properties__WEBPACK_IMPORTED_MODULE_7__[\"defaultLabelBaseline\"])(angle, channel === 'row' ? 'left' : 'top', channel === 'row' ? 'y' : 'x', true);\n    return baseline ? { baseline } : {};\n}\nfunction assembleHeaderGroups(model, channel) {\n    const layoutHeader = model.component.layoutHeaders[channel];\n    const groups = [];\n    for (const headerType of _component__WEBPACK_IMPORTED_MODULE_12__[\"HEADER_TYPES\"]) {\n        if (layoutHeader[headerType]) {\n            for (const headerComponent of layoutHeader[headerType]) {\n                const group = assembleHeaderGroup(model, channel, headerType, layoutHeader, headerComponent);\n                if (group != null) {\n                    groups.push(group);\n                }\n            }\n        }\n    }\n    return groups;\n}\nfunction getSort(facetFieldDef, channel) {\n    var _a;\n    const { sort } = facetFieldDef;\n    if (Object(_sort__WEBPACK_IMPORTED_MODULE_4__[\"isSortField\"])(sort)) {\n        return {\n            field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(sort, { expr: 'datum' }),\n            order: (_a = sort.order) !== null && _a !== void 0 ? _a : 'ascending'\n        };\n    }\n    else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(sort)) {\n        return {\n            field: Object(_data_calculate__WEBPACK_IMPORTED_MODULE_8__[\"sortArrayIndexField\"])(facetFieldDef, channel, { expr: 'datum' }),\n            order: 'ascending'\n        };\n    }\n    else {\n        return {\n            field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(facetFieldDef, { expr: 'datum' }),\n            order: sort !== null && sort !== void 0 ? sort : 'ascending'\n        };\n    }\n}\nfunction assembleLabelTitle(facetFieldDef, channel, config) {\n    const { format, formatType, labelAngle, labelAnchor, labelOrient, labelExpr } = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderProperties\"])(['format', 'formatType', 'labelAngle', 'labelAnchor', 'labelOrient', 'labelExpr'], facetFieldDef.header, config, channel);\n    const titleTextExpr = Object(_format__WEBPACK_IMPORTED_MODULE_9__[\"formatSignalRef\"])({ fieldOrDatumDef: facetFieldDef, format, formatType, expr: 'parent', config })\n        .signal;\n    const headerChannel = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderChannel\"])(channel, labelOrient);\n    return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ text: {\n            signal: labelExpr\n                ? Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"replaceAll\"])(Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"replaceAll\"])(labelExpr, 'datum.label', titleTextExpr), 'datum.value', Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"vgField\"])(facetFieldDef, { expr: 'parent' }))\n                : titleTextExpr\n        } }, (channel === 'row' ? { orient: 'left' } : {})), { style: 'guide-label', frame: 'group' }), defaultHeaderGuideBaseline(labelAngle, headerChannel)), defaultHeaderGuideAlign(headerChannel, labelAngle, labelAnchor)), assembleHeaderProperties(config, facetFieldDef, channel, _header__WEBPACK_IMPORTED_MODULE_3__[\"HEADER_LABEL_PROPERTIES\"], _header__WEBPACK_IMPORTED_MODULE_3__[\"HEADER_LABEL_PROPERTIES_MAP\"]));\n}\nfunction assembleHeaderGroup(model, channel, headerType, layoutHeader, headerComponent) {\n    if (headerComponent) {\n        let title = null;\n        const { facetFieldDef } = layoutHeader;\n        const config = model.config ? model.config : undefined;\n        if (facetFieldDef && headerComponent.labels) {\n            const { labelOrient } = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderProperties\"])(['labelOrient'], facetFieldDef.header, config, channel);\n            // Include label title in the header if orient aligns with the channel\n            if ((channel === 'row' && !Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"contains\"])(['top', 'bottom'], labelOrient)) ||\n                (channel === 'column' && !Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"contains\"])(['left', 'right'], labelOrient))) {\n                title = assembleLabelTitle(facetFieldDef, channel, config);\n            }\n        }\n        const isFacetWithoutRowCol = Object(_model__WEBPACK_IMPORTED_MODULE_10__[\"isFacetModel\"])(model) && !Object(_spec_facet__WEBPACK_IMPORTED_MODULE_5__[\"isFacetMapping\"])(model.facet);\n        const axes = headerComponent.axes;\n        const hasAxes = (axes === null || axes === void 0 ? void 0 : axes.length) > 0;\n        if (title || hasAxes) {\n            const sizeChannel = channel === 'row' ? 'height' : 'width';\n            return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: model.getName(`${channel}_${headerType}`), type: 'group', role: `${channel}-${headerType}` }, (layoutHeader.facetFieldDef\n                ? {\n                    from: { data: model.getName(channel + '_domain') },\n                    sort: getSort(facetFieldDef, channel)\n                }\n                : {})), (hasAxes && isFacetWithoutRowCol\n                ? {\n                    from: { data: model.getName(`facet_domain_${channel}`) }\n                }\n                : {})), (title ? { title } : {})), (headerComponent.sizeSignal\n                ? {\n                    encode: {\n                        update: {\n                            [sizeChannel]: headerComponent.sizeSignal\n                        }\n                    }\n                }\n                : {})), (hasAxes ? { axes } : {}));\n        }\n    }\n    return null;\n}\nconst LAYOUT_TITLE_BAND = {\n    column: {\n        start: 0,\n        end: 1\n    },\n    row: {\n        start: 1,\n        end: 0\n    }\n};\nfunction getLayoutTitleBand(titleAnchor, headerChannel) {\n    return LAYOUT_TITLE_BAND[headerChannel][titleAnchor];\n}\nfunction assembleLayoutTitleBand(headerComponentIndex, config) {\n    const titleBand = {};\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_1__[\"FACET_CHANNELS\"]) {\n        const headerComponent = headerComponentIndex[channel];\n        if (headerComponent === null || headerComponent === void 0 ? void 0 : headerComponent.facetFieldDef) {\n            const { titleAnchor, titleOrient } = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderProperties\"])(['titleAnchor', 'titleOrient'], headerComponent.facetFieldDef.header, config, channel);\n            const headerChannel = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderChannel\"])(channel, titleOrient);\n            const band = getLayoutTitleBand(titleAnchor, headerChannel);\n            if (band !== undefined) {\n                titleBand[headerChannel] = band;\n            }\n        }\n    }\n    return Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"isEmpty\"])(titleBand) ? undefined : titleBand;\n}\nfunction assembleHeaderProperties(config, facetFieldDef, channel, properties, propertiesMap) {\n    const props = {};\n    for (const prop of properties) {\n        if (!propertiesMap[prop]) {\n            continue;\n        }\n        const value = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"getHeaderProperty\"])(prop, facetFieldDef === null || facetFieldDef === void 0 ? void 0 : facetFieldDef.header, config, channel);\n        if (value !== undefined) {\n            props[propertiesMap[prop]] = value;\n        }\n    }\n    return props;\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/header/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/header/common.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/header/common.js ***!
  \*******************************************************************/
/*! exports provided: getHeaderChannel, getHeaderProperty, getHeaderProperties */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderChannel\", function() { return getHeaderChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderProperty\", function() { return getHeaderProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderProperties\", function() { return getHeaderProperties; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n/**\n * Get header channel, which can be different from facet channel when orient is specified or when the facet channel is facet.\n */\nfunction getHeaderChannel(channel, orient) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"contains\"])(['top', 'bottom'], orient)) {\n        return 'column';\n    }\n    else if (Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"contains\"])(['left', 'right'], orient)) {\n        return 'row';\n    }\n    return channel === 'row' ? 'row' : 'column';\n}\nfunction getHeaderProperty(prop, header, config, channel) {\n    const headerSpecificConfig = channel === 'row' ? config.headerRow : channel === 'column' ? config.headerColumn : config.headerFacet;\n    return Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"getFirstDefined\"])((header || {})[prop], headerSpecificConfig[prop], config.header[prop]);\n}\nfunction getHeaderProperties(properties, header, config, channel) {\n    const props = {};\n    for (const prop of properties) {\n        const value = getHeaderProperty(prop, header || {}, config, channel);\n        if (value !== undefined) {\n            props[prop] = value;\n        }\n    }\n    return props;\n}\n//# sourceMappingURL=common.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/header/common.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/header/component.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/header/component.js ***!
  \**********************************************************************/
/*! exports provided: HEADER_CHANNELS, HEADER_TYPES */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_CHANNELS\", function() { return HEADER_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TYPES\", function() { return HEADER_TYPES; });\nconst HEADER_CHANNELS = ['row', 'column'];\nconst HEADER_TYPES = ['header', 'footer'];\n//# sourceMappingURL=component.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/header/component.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/header/parse.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/header/parse.js ***!
  \******************************************************************/
/*! exports provided: getHeaderType, parseFacetHeaders */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHeaderType\", function() { return getHeaderType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseFacetHeaders\", function() { return parseFacetHeaders; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _axis_assemble__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../axis/assemble */ \"./node_modules/vega-lite/build/src/compile/axis/assemble.js\");\n/* harmony import */ var _resolve__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../resolve */ \"./node_modules/vega-lite/build/src/compile/resolve.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compile/header/common.js\");\n\n\n\n\n\n\n\n\nfunction getHeaderType(orient) {\n    if (orient === 'top' || orient === 'left' || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_4__[\"isSignalRef\"])(orient)) {\n        // we always use header for orient signal since we can't dynamically make header becomes footer\n        return 'header';\n    }\n    return 'footer';\n}\nfunction parseFacetHeaders(model) {\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_1__[\"FACET_CHANNELS\"]) {\n        parseFacetHeader(model, channel);\n    }\n    mergeChildAxis(model, 'x');\n    mergeChildAxis(model, 'y');\n}\nfunction parseFacetHeader(model, channel) {\n    var _a;\n    const { facet, config, child, component } = model;\n    if (model.channelHasField(channel)) {\n        const fieldDef = facet[channel];\n        const titleConfig = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"getHeaderProperty\"])('title', null, config, channel);\n        let title = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"title\"])(fieldDef, config, {\n            allowDisabling: true,\n            includeDefault: titleConfig === undefined || !!titleConfig\n        });\n        if (child.component.layoutHeaders[channel].title) {\n            // TODO: better handle multiline titles\n            title = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(title) ? title.join(', ') : title;\n            // merge title with child to produce \"Title / Subtitle / Sub-subtitle\"\n            title += ' / ' + child.component.layoutHeaders[channel].title;\n            child.component.layoutHeaders[channel].title = null;\n        }\n        const labelOrient = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"getHeaderProperty\"])('labelOrient', fieldDef, config, channel);\n        const header = (_a = fieldDef.header) !== null && _a !== void 0 ? _a : {};\n        const labels = Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"getFirstDefined\"])(header.labels, config.header.labels, true);\n        const headerType = Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"contains\"])(['bottom', 'right'], labelOrient) ? 'footer' : 'header';\n        component.layoutHeaders[channel] = {\n            title,\n            facetFieldDef: fieldDef,\n            [headerType]: channel === 'facet' ? [] : [makeHeaderComponent(model, channel, labels)]\n        };\n    }\n}\nfunction makeHeaderComponent(model, channel, labels) {\n    const sizeType = channel === 'row' ? 'height' : 'width';\n    return {\n        labels,\n        sizeSignal: model.child.component.layoutSize.get(sizeType) ? model.child.getSizeSignalRef(sizeType) : undefined,\n        axes: []\n    };\n}\nfunction mergeChildAxis(model, channel) {\n    var _a;\n    const { child } = model;\n    if (child.component.axes[channel]) {\n        const { layoutHeaders, resolve } = model.component;\n        resolve.axis[channel] = Object(_resolve__WEBPACK_IMPORTED_MODULE_6__[\"parseGuideResolve\"])(resolve, channel);\n        if (resolve.axis[channel] === 'shared') {\n            // For shared axis, move the axes to facet's header or footer\n            const headerChannel = channel === 'x' ? 'column' : 'row';\n            const layoutHeader = layoutHeaders[headerChannel];\n            for (const axisComponent of child.component.axes[channel]) {\n                const headerType = getHeaderType(axisComponent.get('orient'));\n                layoutHeader[headerType] = (_a = layoutHeader[headerType]) !== null && _a !== void 0 ? _a : [makeHeaderComponent(model, headerChannel, false)];\n                // FIXME: assemble shouldn't be called here, but we do it this way so we only extract the main part of the axes\n                const mainAxis = Object(_axis_assemble__WEBPACK_IMPORTED_MODULE_5__[\"assembleAxis\"])(axisComponent, 'main', model.config, { header: true });\n                if (mainAxis) {\n                    // LayoutHeader no longer keep track of property precedence, thus let's combine.\n                    layoutHeader[headerType][0].axes.push(mainAxis);\n                }\n                axisComponent.mainExtracted = true;\n            }\n        }\n        else {\n            // Otherwise do nothing for independent axes\n        }\n    }\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/header/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/layer.js":
/*!***********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/layer.js ***!
  \***********************************************************/
/*! exports provided: LayerModel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LayerModel\", function() { return LayerModel; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../spec */ \"./node_modules/vega-lite/build/src/spec/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _axis_assemble__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./axis/assemble */ \"./node_modules/vega-lite/build/src/compile/axis/assemble.js\");\n/* harmony import */ var _axis_parse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./axis/parse */ \"./node_modules/vega-lite/build/src/compile/axis/parse.js\");\n/* harmony import */ var _data_parse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data/parse */ \"./node_modules/vega-lite/build/src/compile/data/parse.js\");\n/* harmony import */ var _layoutsize_assemble__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layoutsize/assemble */ \"./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js\");\n/* harmony import */ var _layoutsize_parse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./layoutsize/parse */ \"./node_modules/vega-lite/build/src/compile/layoutsize/parse.js\");\n/* harmony import */ var _legend_assemble__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./legend/assemble */ \"./node_modules/vega-lite/build/src/compile/legend/assemble.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _selection_assemble__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selection/assemble */ \"./node_modules/vega-lite/build/src/compile/selection/assemble.js\");\n/* harmony import */ var _unit__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./unit */ \"./node_modules/vega-lite/build/src/compile/unit.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nclass LayerModel extends _model__WEBPACK_IMPORTED_MODULE_9__[\"Model\"] {\n    constructor(spec, parent, parentGivenName, parentGivenSize, config) {\n        super(spec, 'layer', parent, parentGivenName, config, spec.resolve, spec.view);\n        const layoutSize = Object.assign(Object.assign(Object.assign({}, parentGivenSize), (spec.width ? { width: spec.width } : {})), (spec.height ? { height: spec.height } : {}));\n        this.children = spec.layer.map((layer, i) => {\n            if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isLayerSpec\"])(layer)) {\n                return new LayerModel(layer, this, this.getName('layer_' + i), layoutSize, config);\n            }\n            else if (Object(_spec__WEBPACK_IMPORTED_MODULE_1__[\"isUnitSpec\"])(layer)) {\n                return new _unit__WEBPACK_IMPORTED_MODULE_11__[\"UnitModel\"](layer, this, this.getName('layer_' + i), layoutSize, config);\n            }\n            throw new Error(_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].invalidSpec(layer));\n        });\n    }\n    parseData() {\n        this.component.data = Object(_data_parse__WEBPACK_IMPORTED_MODULE_5__[\"parseData\"])(this);\n        for (const child of this.children) {\n            child.parseData();\n        }\n    }\n    parseLayoutSize() {\n        Object(_layoutsize_parse__WEBPACK_IMPORTED_MODULE_7__[\"parseLayerLayoutSize\"])(this);\n    }\n    parseSelections() {\n        // Merge selections up the hierarchy so that they may be referenced\n        // across unit specs. Persist their definitions within each child\n        // to assemble signals which remain within output Vega unit groups.\n        this.component.selection = {};\n        for (const child of this.children) {\n            child.parseSelections();\n            for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"keys\"])(child.component.selection)) {\n                this.component.selection[key] = child.component.selection[key];\n            }\n        }\n    }\n    parseMarkGroup() {\n        for (const child of this.children) {\n            child.parseMarkGroup();\n        }\n    }\n    parseAxesAndHeaders() {\n        Object(_axis_parse__WEBPACK_IMPORTED_MODULE_4__[\"parseLayerAxes\"])(this);\n    }\n    assembleSelectionTopLevelSignals(signals) {\n        return this.children.reduce((sg, child) => child.assembleSelectionTopLevelSignals(sg), signals);\n    }\n    // TODO: Support same named selections across children.\n    assembleSignals() {\n        return this.children.reduce((signals, child) => {\n            return signals.concat(child.assembleSignals());\n        }, Object(_axis_assemble__WEBPACK_IMPORTED_MODULE_3__[\"assembleAxisSignals\"])(this));\n    }\n    assembleLayoutSignals() {\n        return this.children.reduce((signals, child) => {\n            return signals.concat(child.assembleLayoutSignals());\n        }, Object(_layoutsize_assemble__WEBPACK_IMPORTED_MODULE_6__[\"assembleLayoutSignals\"])(this));\n    }\n    assembleSelectionData(data) {\n        return this.children.reduce((db, child) => child.assembleSelectionData(db), data);\n    }\n    assembleTitle() {\n        let title = super.assembleTitle();\n        if (title) {\n            return title;\n        }\n        // If title does not provide layer, look into children\n        for (const child of this.children) {\n            title = child.assembleTitle();\n            if (title) {\n                return title;\n            }\n        }\n        return undefined;\n    }\n    assembleLayout() {\n        return null;\n    }\n    assembleMarks() {\n        return Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_10__[\"assembleLayerSelectionMarks\"])(this, this.children.flatMap(child => {\n            return child.assembleMarks();\n        }));\n    }\n    assembleLegends() {\n        return this.children.reduce((legends, child) => {\n            return legends.concat(child.assembleLegends());\n        }, Object(_legend_assemble__WEBPACK_IMPORTED_MODULE_8__[\"assembleLegends\"])(this));\n    }\n}\n//# sourceMappingURL=layer.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/layer.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js ***!
  \*************************************************************************/
/*! exports provided: assembleLayoutSignals, sizeSignals, sizeExpr */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleLayoutSignals\", function() { return assembleLayoutSignals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sizeSignals\", function() { return sizeSignals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sizeExpr\", function() { return sizeExpr; });\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n\n\n\n\n\n\nfunction assembleLayoutSignals(model) {\n    return [\n        ...sizeSignals(model, 'width'),\n        ...sizeSignals(model, 'height'),\n        ...sizeSignals(model, 'childWidth'),\n        ...sizeSignals(model, 'childHeight')\n    ];\n}\nfunction sizeSignals(model, sizeType) {\n    const channel = sizeType === 'width' ? 'x' : 'y';\n    const size = model.component.layoutSize.get(sizeType);\n    if (!size || size === 'merged') {\n        return [];\n    }\n    // Read size signal name from name map, just in case it is the top-level size signal that got renamed.\n    const name = model.getSizeSignalRef(sizeType).signal;\n    if (size === 'step') {\n        const scaleComponent = model.getScaleComponent(channel);\n        if (scaleComponent) {\n            const type = scaleComponent.get('type');\n            const range = scaleComponent.get('range');\n            if (Object(_scale__WEBPACK_IMPORTED_MODULE_1__[\"hasDiscreteDomain\"])(type) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isVgRangeStep\"])(range)) {\n                const scaleName = model.scaleName(channel);\n                if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isFacetModel\"])(model.parent)) {\n                    // If parent is facet and this is an independent scale, return only signal signal\n                    // as the width/height will be calculated using the cardinality from\n                    // facet's aggregate rather than reading from scale domain\n                    const parentResolve = model.parent.component.resolve;\n                    if (parentResolve.scale[channel] === 'independent') {\n                        return [stepSignal(scaleName, range)];\n                    }\n                }\n                return [\n                    stepSignal(scaleName, range),\n                    {\n                        name,\n                        update: sizeExpr(scaleName, scaleComponent, `domain('${scaleName}').length`)\n                    }\n                ];\n            }\n        }\n        /* istanbul ignore next: Condition should not happen -- only for warning in development. */\n        throw new Error('layout size is step although width/height is not step.');\n    }\n    else if (size == 'container') {\n        const isWidth = name.endsWith('width');\n        const expr = isWidth ? 'containerSize()[0]' : 'containerSize()[1]';\n        const defaultValue = Object(_config__WEBPACK_IMPORTED_MODULE_0__[\"getViewConfigContinuousSize\"])(model.config.view, isWidth ? 'width' : 'height');\n        const safeExpr = `isFinite(${expr}) ? ${expr} : ${defaultValue}`;\n        return [{ name, init: safeExpr, on: [{ update: safeExpr, events: 'window:resize' }] }];\n    }\n    else {\n        return [\n            {\n                name,\n                value: size\n            }\n        ];\n    }\n}\nfunction stepSignal(scaleName, range) {\n    return {\n        name: scaleName + '_step',\n        value: range.step\n    };\n}\nfunction sizeExpr(scaleName, scaleComponent, cardinality) {\n    const type = scaleComponent.get('type');\n    const padding = scaleComponent.get('padding');\n    const paddingOuter = Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"getFirstDefined\"])(scaleComponent.get('paddingOuter'), padding);\n    let paddingInner = scaleComponent.get('paddingInner');\n    paddingInner =\n        type === 'band'\n            ? // only band has real paddingInner\n                paddingInner !== undefined\n                    ? paddingInner\n                    : padding\n            : // For point, as calculated in https://github.com/vega/vega-scale/blob/master/src/band.js#L128,\n                // it's equivalent to have paddingInner = 1 since there is only n-1 steps between n points.\n                1;\n    return `bandspace(${cardinality}, ${Object(_common__WEBPACK_IMPORTED_MODULE_4__[\"signalOrStringValue\"])(paddingInner)}, ${Object(_common__WEBPACK_IMPORTED_MODULE_4__[\"signalOrStringValue\"])(paddingOuter)}) * ${scaleName}_step`;\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/layoutsize/component.js":
/*!**************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/layoutsize/component.js ***!
  \**************************************************************************/
/*! exports provided: getSizeTypeFromLayoutSizeType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSizeTypeFromLayoutSizeType\", function() { return getSizeTypeFromLayoutSizeType; });\nfunction getSizeTypeFromLayoutSizeType(layoutSizeType) {\n    return layoutSizeType === 'childWidth' ? 'width' : layoutSizeType === 'childHeight' ? 'height' : layoutSizeType;\n}\n//# sourceMappingURL=component.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/layoutsize/component.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/layoutsize/init.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/layoutsize/init.js ***!
  \*********************************************************************/
/*! exports provided: initLayoutSize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initLayoutSize\", function() { return initLayoutSize; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../spec/base */ \"./node_modules/vega-lite/build/src/spec/base.js\");\n\n\n\n\nfunction initLayoutSize({ encoding, size }) {\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_0__[\"POSITION_SCALE_CHANNELS\"]) {\n        const sizeType = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel);\n        if (Object(_spec_base__WEBPACK_IMPORTED_MODULE_3__[\"isStep\"])(size[sizeType])) {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isContinuousFieldOrDatumDef\"])(encoding[channel])) {\n                delete size[sizeType];\n                _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].stepDropped(sizeType));\n            }\n        }\n    }\n    return size;\n}\n//# sourceMappingURL=init.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/layoutsize/init.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/layoutsize/parse.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/layoutsize/parse.js ***!
  \**********************************************************************/
/*! exports provided: parseLayerLayoutSize, parseRepeatLayoutSize, parseConcatLayoutSize, parseChildrenLayoutSize, parseUnitLayoutSize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseLayerLayoutSize\", function() { return parseLayerLayoutSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseRepeatLayoutSize\", function() { return parseRepeatLayoutSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseConcatLayoutSize\", function() { return parseConcatLayoutSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseChildrenLayoutSize\", function() { return parseChildrenLayoutSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseUnitLayoutSize\", function() { return parseUnitLayoutSize; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _spec_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../spec/base */ \"./node_modules/vega-lite/build/src/spec/base.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./component */ \"./node_modules/vega-lite/build/src/compile/layoutsize/component.js\");\n\n\n\n\n\n\n\nfunction parseLayerLayoutSize(model) {\n    parseChildrenLayoutSize(model);\n    parseNonUnitLayoutSizeForChannel(model, 'width');\n    parseNonUnitLayoutSizeForChannel(model, 'height');\n}\nconst parseRepeatLayoutSize = parseConcatLayoutSize;\nfunction parseConcatLayoutSize(model) {\n    parseChildrenLayoutSize(model);\n    // for columns === 1 (vconcat), we can completely merge width. Otherwise, we can treat merged width as childWidth.\n    const widthType = model.layout.columns === 1 ? 'width' : 'childWidth';\n    // for columns === undefined (hconcat), we can completely merge height. Otherwise, we can treat merged height as childHeight.\n    const heightType = model.layout.columns === undefined ? 'height' : 'childHeight';\n    parseNonUnitLayoutSizeForChannel(model, widthType);\n    parseNonUnitLayoutSizeForChannel(model, heightType);\n}\nfunction parseChildrenLayoutSize(model) {\n    for (const child of model.children) {\n        child.parseLayoutSize();\n    }\n}\n/**\n * Merge child layout size (width or height).\n */\nfunction parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {\n    /*\n     * For concat, the parent width or height might not be the same as the children's shared height.\n     * For example, hconcat's subviews may share width, but the shared width is not the hconcat view's width.\n     *\n     * layoutSizeType represents the output of the view (could be childWidth/childHeight/width/height)\n     * while the sizeType represents the properties of the child.\n     */\n    const sizeType = Object(_component__WEBPACK_IMPORTED_MODULE_6__[\"getSizeTypeFromLayoutSizeType\"])(layoutSizeType);\n    const channel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getPositionScaleChannel\"])(sizeType);\n    const resolve = model.component.resolve;\n    const layoutSizeCmpt = model.component.layoutSize;\n    let mergedSize;\n    // Try to merge layout size\n    for (const child of model.children) {\n        const childSize = child.component.layoutSize.getWithExplicit(sizeType);\n        const scaleResolve = resolve.scale[channel];\n        if (scaleResolve === 'independent' && childSize.value === 'step') {\n            // Do not merge independent scales with range-step as their size depends\n            // on the scale domains, which can be different between scales.\n            mergedSize = undefined;\n            break;\n        }\n        if (mergedSize) {\n            if (scaleResolve === 'independent' && mergedSize.value !== childSize.value) {\n                // For independent scale, only merge if all the sizes are the same.\n                // If the values are different, abandon the merge!\n                mergedSize = undefined;\n                break;\n            }\n            mergedSize = Object(_split__WEBPACK_IMPORTED_MODULE_5__[\"mergeValuesWithExplicit\"])(mergedSize, childSize, sizeType, '');\n        }\n        else {\n            mergedSize = childSize;\n        }\n    }\n    if (mergedSize) {\n        // If merged, rename size and set size of all children.\n        for (const child of model.children) {\n            model.renameSignal(child.getName(sizeType), model.getName(layoutSizeType));\n            child.component.layoutSize.set(sizeType, 'merged', false);\n        }\n        layoutSizeCmpt.setWithExplicit(layoutSizeType, mergedSize);\n    }\n    else {\n        layoutSizeCmpt.setWithExplicit(layoutSizeType, {\n            explicit: false,\n            value: undefined\n        });\n    }\n}\nfunction parseUnitLayoutSize(model) {\n    const { size, component } = model;\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_0__[\"POSITION_SCALE_CHANNELS\"]) {\n        const sizeType = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel);\n        if (size[sizeType]) {\n            const specifiedSize = size[sizeType];\n            component.layoutSize.set(sizeType, Object(_spec_base__WEBPACK_IMPORTED_MODULE_3__[\"isStep\"])(specifiedSize) ? 'step' : specifiedSize, true);\n        }\n        else {\n            const defaultSize = defaultUnitSize(model, sizeType);\n            component.layoutSize.set(sizeType, defaultSize, false);\n        }\n    }\n}\nfunction defaultUnitSize(model, sizeType) {\n    const channel = sizeType === 'width' ? 'x' : 'y';\n    const config = model.config;\n    const scaleComponent = model.getScaleComponent(channel);\n    if (scaleComponent) {\n        const scaleType = scaleComponent.get('type');\n        const range = scaleComponent.get('range');\n        if (Object(_scale__WEBPACK_IMPORTED_MODULE_2__[\"hasDiscreteDomain\"])(scaleType)) {\n            const size = Object(_config__WEBPACK_IMPORTED_MODULE_1__[\"getViewConfigDiscreteSize\"])(config.view, sizeType);\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_4__[\"isVgRangeStep\"])(range) || Object(_spec_base__WEBPACK_IMPORTED_MODULE_3__[\"isStep\"])(size)) {\n                // For discrete domain with range.step, use dynamic width/height\n                return 'step';\n            }\n            else {\n                return size;\n            }\n        }\n        else {\n            return Object(_config__WEBPACK_IMPORTED_MODULE_1__[\"getViewConfigContinuousSize\"])(config.view, sizeType);\n        }\n    }\n    else if (model.hasProjection || model.mark === 'arc') {\n        // arc should use continuous size by default otherwise the pie is extremely small\n        return Object(_config__WEBPACK_IMPORTED_MODULE_1__[\"getViewConfigContinuousSize\"])(config.view, sizeType);\n    }\n    else {\n        const size = Object(_config__WEBPACK_IMPORTED_MODULE_1__[\"getViewConfigDiscreteSize\"])(config.view, sizeType);\n        return Object(_spec_base__WEBPACK_IMPORTED_MODULE_3__[\"isStep\"])(size) ? size.step : size;\n    }\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/layoutsize/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/legend/assemble.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/legend/assemble.js ***!
  \*********************************************************************/
/*! exports provided: assembleLegends, assembleLegend */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleLegends\", function() { return assembleLegends; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleLegend\", function() { return assembleLegend; });\n/* harmony import */ var _legend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../legend */ \"./node_modules/vega-lite/build/src/legend.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parse */ \"./node_modules/vega-lite/build/src/compile/legend/parse.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\nfunction setLegendEncode(legend, part, vgProp, vgRef) {\n    var _a, _b, _c;\n    legend.encode = (_a = legend.encode) !== null && _a !== void 0 ? _a : {};\n    legend.encode[part] = (_b = legend.encode[part]) !== null && _b !== void 0 ? _b : {};\n    legend.encode[part].update = (_c = legend.encode[part].update) !== null && _c !== void 0 ? _c : {};\n    // TODO: remove as any after https://github.com/prisma/nexus-prisma/issues/291\n    legend.encode[part].update[vgProp] = vgRef;\n}\nfunction assembleLegends(model) {\n    const legendComponentIndex = model.component.legends;\n    const legendByDomain = {};\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(legendComponentIndex)) {\n        const scaleComponent = model.getScaleComponent(channel);\n        const domainHash = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(scaleComponent.get('domains'));\n        if (legendByDomain[domainHash]) {\n            for (const mergedLegendComponent of legendByDomain[domainHash]) {\n                const merged = Object(_parse__WEBPACK_IMPORTED_MODULE_3__[\"mergeLegendComponent\"])(mergedLegendComponent, legendComponentIndex[channel]);\n                if (!merged) {\n                    // If cannot merge, need to add this legend separately\n                    legendByDomain[domainHash].push(legendComponentIndex[channel]);\n                }\n            }\n        }\n        else {\n            legendByDomain[domainHash] = [legendComponentIndex[channel].clone()];\n        }\n    }\n    const legends = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"vals\"])(legendByDomain)\n        .flat()\n        .map(l => assembleLegend(l, model.config))\n        .filter(l => l !== undefined);\n    return legends;\n}\nfunction assembleLegend(legendCmpt, config) {\n    var _a, _b, _c;\n    const _d = legendCmpt.combine(), { disable, labelExpr, selections } = _d, legend = __rest(_d, [\"disable\", \"labelExpr\", \"selections\"]);\n    if (disable) {\n        return undefined;\n    }\n    if (config.aria === false && legend.aria == undefined) {\n        legend.aria = false;\n    }\n    if ((_a = legend.encode) === null || _a === void 0 ? void 0 : _a.symbols) {\n        const out = legend.encode.symbols.update;\n        if (out.fill && out.fill['value'] !== 'transparent' && !out.stroke && !legend.stroke) {\n            // For non color channel's legend, we need to override symbol stroke config from Vega config if stroke channel is not used.\n            out.stroke = { value: 'transparent' };\n        }\n        // Remove properties that the legend is encoding.\n        for (const property of _legend__WEBPACK_IMPORTED_MODULE_0__[\"LEGEND_SCALE_CHANNELS\"]) {\n            if (legend[property]) {\n                delete out[property];\n            }\n        }\n    }\n    if (!legend.title) {\n        // title schema doesn't include null, ''\n        delete legend.title;\n    }\n    if (labelExpr !== undefined) {\n        let expr = labelExpr;\n        if (((_c = (_b = legend.encode) === null || _b === void 0 ? void 0 : _b.labels) === null || _c === void 0 ? void 0 : _c.update) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_2__[\"isSignalRef\"])(legend.encode.labels.update.text)) {\n            expr = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"replaceAll\"])(labelExpr, 'datum.label', legend.encode.labels.update.text.signal);\n        }\n        setLegendEncode(legend, 'labels', 'text', { signal: expr });\n    }\n    return legend;\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/legend/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/legend/component.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/legend/component.js ***!
  \**********************************************************************/
/*! exports provided: LEGEND_COMPONENT_PROPERTIES, LegendComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LEGEND_COMPONENT_PROPERTIES\", function() { return LEGEND_COMPONENT_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LegendComponent\", function() { return LegendComponent; });\n/* harmony import */ var _legend__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../legend */ \"./node_modules/vega-lite/build/src/legend.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n\n\n\nconst LEGEND_COMPONENT_PROPERTY_INDEX = Object.assign(Object.assign({}, _legend__WEBPACK_IMPORTED_MODULE_0__[\"COMMON_LEGEND_PROPERTY_INDEX\"]), { disable: 1, labelExpr: 1, selections: 1, \n    // channel scales\n    opacity: 1, shape: 1, stroke: 1, fill: 1, size: 1, strokeWidth: 1, strokeDash: 1, \n    // encode\n    encode: 1 });\nconst LEGEND_COMPONENT_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(LEGEND_COMPONENT_PROPERTY_INDEX);\nclass LegendComponent extends _split__WEBPACK_IMPORTED_MODULE_2__[\"Split\"] {\n}\n//# sourceMappingURL=component.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/legend/component.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/legend/encode.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/legend/encode.js ***!
  \*******************************************************************/
/*! exports provided: legendEncodeRules, symbols, gradient, labels, entries, getFirstConditionValue */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"legendEncodeRules\", function() { return legendEncodeRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"symbols\", function() { return symbols; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gradient\", function() { return gradient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labels\", function() { return labels; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFirstConditionValue\", function() { return getFirstConditionValue; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _mark_encode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../mark/encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../selection */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n\n\n\n\n\n\n\n\n\nconst legendEncodeRules = {\n    symbols,\n    gradient,\n    labels,\n    entries\n};\nfunction symbols(symbolsSpec, { fieldOrDatumDef, model, channel, legendCmpt, legendType }) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    if (legendType !== 'symbol') {\n        return undefined;\n    }\n    const { markDef, encoding, config, mark } = model;\n    const filled = markDef.filled && mark !== 'trail';\n    let out = Object.assign(Object.assign({}, Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"applyMarkConfig\"])({}, model, _mark__WEBPACK_IMPORTED_MODULE_3__[\"FILL_STROKE_CONFIG\"])), _mark_encode__WEBPACK_IMPORTED_MODULE_7__[\"color\"](model, { filled })); // FIXME: remove this when VgEncodeEntry is compatible with SymbolEncodeEntry\n    const symbolOpacity = (_a = legendCmpt.get('symbolOpacity')) !== null && _a !== void 0 ? _a : config.legend.symbolOpacity;\n    const symbolFillColor = (_b = legendCmpt.get('symbolFillColor')) !== null && _b !== void 0 ? _b : config.legend.symbolFillColor;\n    const symbolStrokeColor = (_c = legendCmpt.get('symbolStrokeColor')) !== null && _c !== void 0 ? _c : config.legend.symbolStrokeColor;\n    const opacity = symbolOpacity === undefined ? (_d = getMaxValue(encoding.opacity)) !== null && _d !== void 0 ? _d : markDef.opacity : undefined;\n    if (out.fill) {\n        // for fill legend, we don't want any fill in symbol\n        if (channel === 'fill' || (filled && channel === _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLOR\"])) {\n            delete out.fill;\n        }\n        else {\n            if (out.fill['field']) {\n                // For others, set fill to some opaque value (or nothing if a color is already set)\n                if (symbolFillColor) {\n                    delete out.fill;\n                }\n                else {\n                    out.fill = Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])((_e = config.legend.symbolBaseFillColor) !== null && _e !== void 0 ? _e : 'black');\n                    out.fillOpacity = Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])(opacity !== null && opacity !== void 0 ? opacity : 1);\n                }\n            }\n            else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(out.fill)) {\n                const fill = (_h = (_g = getFirstConditionValue((_f = encoding.fill) !== null && _f !== void 0 ? _f : encoding.color)) !== null && _g !== void 0 ? _g : markDef.fill) !== null && _h !== void 0 ? _h : (filled && markDef.color);\n                if (fill) {\n                    out.fill = Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])(fill);\n                }\n            }\n        }\n    }\n    if (out.stroke) {\n        if (channel === 'stroke' || (!filled && channel === _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLOR\"])) {\n            delete out.stroke;\n        }\n        else {\n            if (out.stroke['field'] || symbolStrokeColor) {\n                // For others, remove stroke field\n                delete out.stroke;\n            }\n            else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(out.stroke)) {\n                const stroke = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"getFirstDefined\"])(getFirstConditionValue(encoding.stroke || encoding.color), markDef.stroke, filled ? markDef.color : undefined);\n                if (stroke) {\n                    out.stroke = { value: stroke };\n                }\n            }\n        }\n    }\n    if (channel !== _channel__WEBPACK_IMPORTED_MODULE_1__[\"OPACITY\"]) {\n        const condition = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef) && selectedCondition(model, legendCmpt, fieldOrDatumDef);\n        if (condition) {\n            out.opacity = [\n                Object.assign({ test: condition }, Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])(opacity !== null && opacity !== void 0 ? opacity : 1)),\n                Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])(config.legend.unselectedOpacity)\n            ];\n        }\n        else if (opacity) {\n            out.opacity = Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])(opacity);\n        }\n    }\n    out = Object.assign(Object.assign({}, out), symbolsSpec);\n    return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"isEmpty\"])(out) ? undefined : out;\n}\nfunction gradient(gradientSpec, { model, legendType, legendCmpt }) {\n    var _a;\n    if (legendType !== 'gradient') {\n        return undefined;\n    }\n    const { config, markDef, encoding } = model;\n    let out = {};\n    const gradientOpacity = (_a = legendCmpt.get('gradientOpacity')) !== null && _a !== void 0 ? _a : config.legend.gradientOpacity;\n    const opacity = gradientOpacity === undefined ? getMaxValue(encoding.opacity) || markDef.opacity : undefined;\n    if (opacity) {\n        // only apply opacity if it is neither zero or undefined\n        out.opacity = Object(_common__WEBPACK_IMPORTED_MODULE_5__[\"signalOrValueRef\"])(opacity);\n    }\n    out = Object.assign(Object.assign({}, out), gradientSpec);\n    return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"isEmpty\"])(out) ? undefined : out;\n}\nfunction labels(specifiedlabelsSpec, { fieldOrDatumDef, model, channel, legendCmpt }) {\n    const legend = model.legend(channel) || {};\n    const config = model.config;\n    const condition = Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldOrDatumDef) ? selectedCondition(model, legendCmpt, fieldOrDatumDef) : undefined;\n    const opacity = condition ? [{ test: condition, value: 1 }, { value: config.legend.unselectedOpacity }] : undefined;\n    const { format, formatType } = legend;\n    const text = Object(_format__WEBPACK_IMPORTED_MODULE_6__[\"isCustomFormatType\"])(formatType)\n        ? Object(_format__WEBPACK_IMPORTED_MODULE_6__[\"formatCustomType\"])({\n            fieldOrDatumDef,\n            field: 'datum.value',\n            format,\n            formatType,\n            config\n        })\n        : undefined;\n    const labelsSpec = Object.assign(Object.assign(Object.assign({}, (opacity ? { opacity } : {})), (text ? { text } : {})), specifiedlabelsSpec);\n    return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"isEmpty\"])(labelsSpec) ? undefined : labelsSpec;\n}\nfunction entries(entriesSpec, { legendCmpt }) {\n    const selections = legendCmpt.get('selections');\n    return (selections === null || selections === void 0 ? void 0 : selections.length) ? Object.assign(Object.assign({}, entriesSpec), { fill: { value: 'transparent' } }) : entriesSpec;\n}\nfunction getMaxValue(channelDef) {\n    return getConditionValue(channelDef, (v, conditionalDef) => Math.max(v, conditionalDef.value));\n}\nfunction getFirstConditionValue(channelDef) {\n    return getConditionValue(channelDef, (v, conditionalDef) => {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"getFirstDefined\"])(v, conditionalDef.value);\n    });\n}\nfunction getConditionValue(channelDef, reducer) {\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"hasConditionalValueDef\"])(channelDef)) {\n        return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(channelDef.condition).reduce(reducer, channelDef.value);\n    }\n    else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isValueDef\"])(channelDef)) {\n        return channelDef.value;\n    }\n    return undefined;\n}\nfunction selectedCondition(model, legendCmpt, fieldDef) {\n    const selections = legendCmpt.get('selections');\n    if (!(selections === null || selections === void 0 ? void 0 : selections.length))\n        return undefined;\n    const field = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(fieldDef.field);\n    return selections\n        .map(name => {\n        const store = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"varName\"])(name) + _selection__WEBPACK_IMPORTED_MODULE_8__[\"STORE\"]);\n        return `(!length(data(${store})) || (${name}[${field}] && indexof(${name}[${field}], datum.value) >= 0))`;\n    })\n        .join(' || ');\n}\n//# sourceMappingURL=encode.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/legend/encode.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/legend/parse.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/legend/parse.js ***!
  \******************************************************************/
/*! exports provided: parseLegend, parseLegendForChannel, mergeLegendComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseLegend\", function() { return parseLegend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseLegendForChannel\", function() { return parseLegendForChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeLegendComponent\", function() { return mergeLegendComponent; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _legend__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../legend */ \"./node_modules/vega-lite/build/src/legend.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _guide__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../guide */ \"./node_modules/vega-lite/build/src/compile/guide.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _resolve__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../resolve */ \"./node_modules/vega-lite/build/src/compile/resolve.js\");\n/* harmony import */ var _selection_transforms_legends__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../selection/transforms/legends */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/legends.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./component */ \"./node_modules/vega-lite/build/src/compile/legend/component.js\");\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/legend/encode.js\");\n/* harmony import */ var _properties__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./properties */ \"./node_modules/vega-lite/build/src/compile/legend/properties.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction parseLegend(model) {\n    const legendComponent = Object(_model__WEBPACK_IMPORTED_MODULE_8__[\"isUnitModel\"])(model) ? parseUnitLegend(model) : parseNonUnitLegend(model);\n    model.component.legends = legendComponent;\n    return legendComponent;\n}\nfunction parseUnitLegend(model) {\n    const { encoding } = model;\n    const legendComponent = {};\n    for (const channel of [_channel__WEBPACK_IMPORTED_MODULE_0__[\"COLOR\"], ..._legend__WEBPACK_IMPORTED_MODULE_2__[\"LEGEND_SCALE_CHANNELS\"]]) {\n        const def = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldOrDatumDef\"])(encoding[channel]);\n        if (!def || !model.getScaleComponent(channel)) {\n            continue;\n        }\n        if (channel === _channel__WEBPACK_IMPORTED_MODULE_0__[\"SHAPE\"] && Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(def) && def.type === _type__WEBPACK_IMPORTED_MODULE_4__[\"GEOJSON\"]) {\n            continue;\n        }\n        legendComponent[channel] = parseLegendForChannel(model, channel);\n    }\n    return legendComponent;\n}\nfunction getLegendDefWithScale(model, channel) {\n    const scale = model.scaleName(channel);\n    if (model.mark === 'trail') {\n        if (channel === 'color') {\n            // trail is a filled mark, but its default symbolType (\"stroke\") should use \"stroke\"\n            return { stroke: scale };\n        }\n        else if (channel === 'size') {\n            return { strokeWidth: scale };\n        }\n    }\n    if (channel === 'color') {\n        return model.markDef.filled ? { fill: scale } : { stroke: scale };\n    }\n    return { [channel]: scale };\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isExplicit(value, property, legend, fieldDef) {\n    switch (property) {\n        case 'disable':\n            return legend !== undefined; // if axis is specified or null/false, then it's enable/disable state is explicit\n        case 'values':\n            // specified legend.values is already respected, but may get transformed.\n            return !!(legend === null || legend === void 0 ? void 0 : legend.values);\n        case 'title':\n            // title can be explicit if fieldDef.title is set\n            if (property === 'title' && value === (fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.title)) {\n                return true;\n            }\n    }\n    // Otherwise, things are explicit if the returned value matches the specified property\n    return value === (legend || {})[property];\n}\nfunction parseLegendForChannel(model, channel) {\n    var _a, _b, _c;\n    let legend = model.legend(channel);\n    const { markDef, encoding, config } = model;\n    const legendConfig = config.legend;\n    const legendCmpt = new _component__WEBPACK_IMPORTED_MODULE_12__[\"LegendComponent\"]({}, getLegendDefWithScale(model, channel));\n    Object(_selection_transforms_legends__WEBPACK_IMPORTED_MODULE_10__[\"parseInteractiveLegend\"])(model, channel, legendCmpt);\n    const disable = legend !== undefined ? !legend : legendConfig.disable;\n    legendCmpt.set('disable', disable, legend !== undefined);\n    if (disable) {\n        return legendCmpt;\n    }\n    legend = legend || {};\n    const scaleType = model.getScaleComponent(channel).get('type');\n    const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldOrDatumDef\"])(encoding[channel]);\n    const timeUnit = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(fieldOrDatumDef) ? (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_3__[\"normalizeTimeUnit\"])(fieldOrDatumDef.timeUnit)) === null || _a === void 0 ? void 0 : _a.unit : undefined;\n    const orient = legend.orient || config.legend.orient || 'right';\n    const legendType = Object(_properties__WEBPACK_IMPORTED_MODULE_14__[\"getLegendType\"])({ legend, channel, timeUnit, scaleType });\n    const direction = Object(_properties__WEBPACK_IMPORTED_MODULE_14__[\"getDirection\"])({ legend, legendType, orient, legendConfig });\n    const ruleParams = {\n        legend,\n        channel,\n        model,\n        markDef,\n        encoding,\n        fieldOrDatumDef,\n        legendConfig,\n        config,\n        scaleType,\n        orient,\n        legendType,\n        direction\n    };\n    for (const property of _component__WEBPACK_IMPORTED_MODULE_12__[\"LEGEND_COMPONENT_PROPERTIES\"]) {\n        if ((legendType === 'gradient' && property.startsWith('symbol')) ||\n            (legendType === 'symbol' && property.startsWith('gradient'))) {\n            continue;\n        }\n        const value = property in _properties__WEBPACK_IMPORTED_MODULE_14__[\"legendRules\"] ? _properties__WEBPACK_IMPORTED_MODULE_14__[\"legendRules\"][property](ruleParams) : legend[property];\n        if (value !== undefined) {\n            const explicit = isExplicit(value, property, legend, model.fieldDef(channel));\n            if (explicit || config.legend[property] === undefined) {\n                legendCmpt.set(property, value, explicit);\n            }\n        }\n    }\n    const legendEncoding = (_b = legend === null || legend === void 0 ? void 0 : legend.encoding) !== null && _b !== void 0 ? _b : {};\n    const selections = legendCmpt.get('selections');\n    const legendEncode = {};\n    const legendEncodeParams = { fieldOrDatumDef, model, channel, legendCmpt, legendType };\n    for (const part of ['labels', 'legend', 'title', 'symbols', 'gradient', 'entries']) {\n        const legendEncodingPart = Object(_guide__WEBPACK_IMPORTED_MODULE_7__[\"guideEncodeEntry\"])((_c = legendEncoding[part]) !== null && _c !== void 0 ? _c : {}, model);\n        const value = part in _encode__WEBPACK_IMPORTED_MODULE_13__[\"legendEncodeRules\"]\n            ? _encode__WEBPACK_IMPORTED_MODULE_13__[\"legendEncodeRules\"][part](legendEncodingPart, legendEncodeParams) // apply rule\n            : legendEncodingPart; // no rule -- just default values\n        if (value !== undefined && !Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"isEmpty\"])(value)) {\n            legendEncode[part] = Object.assign(Object.assign(Object.assign({}, ((selections === null || selections === void 0 ? void 0 : selections.length) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(fieldOrDatumDef)\n                ? { name: `${Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"varName\"])(fieldOrDatumDef.field)}_legend_${part}` }\n                : {})), ((selections === null || selections === void 0 ? void 0 : selections.length) ? { interactive: !!selections } : {})), { update: value });\n        }\n    }\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"isEmpty\"])(legendEncode)) {\n        legendCmpt.set('encode', legendEncode, !!(legend === null || legend === void 0 ? void 0 : legend.encoding));\n    }\n    return legendCmpt;\n}\nfunction parseNonUnitLegend(model) {\n    const { legends, resolve } = model.component;\n    for (const child of model.children) {\n        parseLegend(child);\n        for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(child.component.legends)) {\n            resolve.legend[channel] = Object(_resolve__WEBPACK_IMPORTED_MODULE_9__[\"parseGuideResolve\"])(model.component.resolve, channel);\n            if (resolve.legend[channel] === 'shared') {\n                // If the resolve says shared (and has not been overridden)\n                // We will try to merge and see if there is a conflict\n                legends[channel] = mergeLegendComponent(legends[channel], child.component.legends[channel]);\n                if (!legends[channel]) {\n                    // If merge returns nothing, there is a conflict so we cannot make the legend shared.\n                    // Thus, mark legend as independent and remove the legend component.\n                    resolve.legend[channel] = 'independent';\n                    delete legends[channel];\n                }\n            }\n        }\n    }\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(legends)) {\n        for (const child of model.children) {\n            if (!child.component.legends[channel]) {\n                // skip if the child does not have a particular legend\n                continue;\n            }\n            if (resolve.legend[channel] === 'shared') {\n                // After merging shared legend, make sure to remove legend from child\n                delete child.component.legends[channel];\n            }\n        }\n    }\n    return legends;\n}\nfunction mergeLegendComponent(mergedLegend, childLegend) {\n    var _a, _b, _c, _d;\n    if (!mergedLegend) {\n        return childLegend.clone();\n    }\n    const mergedOrient = mergedLegend.getWithExplicit('orient');\n    const childOrient = childLegend.getWithExplicit('orient');\n    if (mergedOrient.explicit && childOrient.explicit && mergedOrient.value !== childOrient.value) {\n        // TODO: throw warning if resolve is explicit (We don't have info about explicit/implicit resolve yet.)\n        // Cannot merge due to inconsistent orient\n        return undefined;\n    }\n    let typeMerged = false;\n    // Otherwise, let's merge\n    for (const prop of _component__WEBPACK_IMPORTED_MODULE_12__[\"LEGEND_COMPONENT_PROPERTIES\"]) {\n        const mergedValueWithExplicit = Object(_split__WEBPACK_IMPORTED_MODULE_11__[\"mergeValuesWithExplicit\"])(mergedLegend.getWithExplicit(prop), childLegend.getWithExplicit(prop), prop, 'legend', \n        // Tie breaker function\n        (v1, v2) => {\n            switch (prop) {\n                case 'symbolType':\n                    return mergeSymbolType(v1, v2);\n                case 'title':\n                    return Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"mergeTitleComponent\"])(v1, v2);\n                case 'type':\n                    // There are only two types. If we have different types, then prefer symbol over gradient.\n                    typeMerged = true;\n                    return Object(_split__WEBPACK_IMPORTED_MODULE_11__[\"makeImplicit\"])('symbol');\n            }\n            return Object(_split__WEBPACK_IMPORTED_MODULE_11__[\"defaultTieBreaker\"])(v1, v2, prop, 'legend');\n        });\n        mergedLegend.setWithExplicit(prop, mergedValueWithExplicit);\n    }\n    if (typeMerged) {\n        if ((_b = (_a = mergedLegend.implicit) === null || _a === void 0 ? void 0 : _a.encode) === null || _b === void 0 ? void 0 : _b.gradient) {\n            Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"deleteNestedProperty\"])(mergedLegend.implicit, ['encode', 'gradient']);\n        }\n        if ((_d = (_c = mergedLegend.explicit) === null || _c === void 0 ? void 0 : _c.encode) === null || _d === void 0 ? void 0 : _d.gradient) {\n            Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"deleteNestedProperty\"])(mergedLegend.explicit, ['encode', 'gradient']);\n        }\n    }\n    return mergedLegend;\n}\nfunction mergeSymbolType(st1, st2) {\n    if (st2.value === 'circle') {\n        // prefer \"circle\" over \"stroke\"\n        return st2;\n    }\n    return st1;\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/legend/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/legend/properties.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/legend/properties.js ***!
  \***********************************************************************/
/*! exports provided: legendRules, values, defaultSymbolType, clipHeight, getLegendType, defaultType, getDirection, defaultDirection, defaultGradientLength, defaultLabelOverlap */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"legendRules\", function() { return legendRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultSymbolType\", function() { return defaultSymbolType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clipHeight\", function() { return clipHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLegendType\", function() { return getLegendType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultType\", function() { return defaultType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDirection\", function() { return getDirection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultDirection\", function() { return defaultDirection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultGradientLength\", function() { return defaultGradientLength; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLabelOverlap\", function() { return defaultLabelOverlap; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/legend/encode.js\");\n\n\n\n\n\n\n\n\nconst legendRules = {\n    direction: ({ direction }) => direction,\n    format: ({ fieldOrDatumDef, legend, config }) => {\n        const { format, formatType } = legend;\n        return Object(_format__WEBPACK_IMPORTED_MODULE_6__[\"guideFormat\"])(fieldOrDatumDef, fieldOrDatumDef.type, format, formatType, config, false);\n    },\n    formatType: ({ legend, fieldOrDatumDef, scaleType }) => {\n        const { formatType } = legend;\n        return Object(_format__WEBPACK_IMPORTED_MODULE_6__[\"guideFormatType\"])(formatType, fieldOrDatumDef, scaleType);\n    },\n    gradientLength: params => {\n        var _a, _b;\n        const { legend, legendConfig } = params;\n        return (_b = (_a = legend.gradientLength) !== null && _a !== void 0 ? _a : legendConfig.gradientLength) !== null && _b !== void 0 ? _b : defaultGradientLength(params);\n    },\n    labelOverlap: ({ legend, legendConfig, scaleType }) => { var _a, _b; return (_b = (_a = legend.labelOverlap) !== null && _a !== void 0 ? _a : legendConfig.labelOverlap) !== null && _b !== void 0 ? _b : defaultLabelOverlap(scaleType); },\n    symbolType: ({ legend, markDef, channel, encoding }) => { var _a; return (_a = legend.symbolType) !== null && _a !== void 0 ? _a : defaultSymbolType(markDef.type, channel, encoding.shape, markDef.shape); },\n    title: ({ fieldOrDatumDef, config }) => Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"title\"])(fieldOrDatumDef, config, { allowDisabling: true }),\n    type: ({ legendType, scaleType, channel }) => {\n        if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isColorChannel\"])(channel) && Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"isContinuousToContinuous\"])(scaleType)) {\n            if (legendType === 'gradient') {\n                return undefined;\n            }\n        }\n        else if (legendType === 'symbol') {\n            return undefined;\n        }\n        return legendType;\n    },\n    values: ({ fieldOrDatumDef, legend }) => values(legend, fieldOrDatumDef)\n};\nfunction values(legend, fieldOrDatumDef) {\n    const vals = legend.values;\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(vals)) {\n        return Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"valueArray\"])(fieldOrDatumDef, vals);\n    }\n    else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"isSignalRef\"])(vals)) {\n        return vals;\n    }\n    return undefined;\n}\nfunction defaultSymbolType(mark, channel, shapeChannelDef, markShape) {\n    var _a;\n    if (channel !== 'shape') {\n        // use the value from the shape encoding or the mark config if they exist\n        const shape = (_a = Object(_encode__WEBPACK_IMPORTED_MODULE_7__[\"getFirstConditionValue\"])(shapeChannelDef)) !== null && _a !== void 0 ? _a : markShape;\n        if (shape) {\n            return shape;\n        }\n    }\n    switch (mark) {\n        case 'bar':\n        case 'rect':\n        case 'image':\n        case 'square':\n            return 'square';\n        case 'line':\n        case 'trail':\n        case 'rule':\n            return 'stroke';\n        case 'arc':\n        case 'point':\n        case 'circle':\n        case 'tick':\n        case 'geoshape':\n        case 'area':\n        case 'text':\n            return 'circle';\n    }\n}\nfunction clipHeight(legendType) {\n    if (legendType === 'gradient') {\n        return 20;\n    }\n    return undefined;\n}\nfunction getLegendType(params) {\n    const { legend } = params;\n    return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"getFirstDefined\"])(legend.type, defaultType(params));\n}\nfunction defaultType({ channel, timeUnit, scaleType }) {\n    // Following the logic in https://github.com/vega/vega-parser/blob/master/src/parsers/legend.js\n    if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isColorChannel\"])(channel)) {\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['quarter', 'month', 'day'], timeUnit)) {\n            return 'symbol';\n        }\n        if (Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"isContinuousToContinuous\"])(scaleType)) {\n            return 'gradient';\n        }\n    }\n    return 'symbol';\n}\nfunction getDirection({ legendConfig, legendType, orient, legend }) {\n    var _a, _b;\n    return ((_b = (_a = legend.direction) !== null && _a !== void 0 ? _a : legendConfig[legendType ? 'gradientDirection' : 'symbolDirection']) !== null && _b !== void 0 ? _b : defaultDirection(orient, legendType));\n}\nfunction defaultDirection(orient, legendType) {\n    switch (orient) {\n        case 'top':\n        case 'bottom':\n            return 'horizontal';\n        case 'left':\n        case 'right':\n        case 'none':\n        case undefined: // undefined = \"right\" in Vega\n            return undefined; // vertical is Vega's default\n        default:\n            // top-left / ...\n            // For inner legend, uses compact layout like Tableau\n            return legendType === 'gradient' ? 'horizontal' : undefined;\n    }\n}\nfunction defaultGradientLength({ legendConfig, model, direction, orient, scaleType }) {\n    const { gradientHorizontalMaxLength, gradientHorizontalMinLength, gradientVerticalMaxLength, gradientVerticalMinLength } = legendConfig;\n    if (Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"isContinuousToContinuous\"])(scaleType)) {\n        if (direction === 'horizontal') {\n            if (orient === 'top' || orient === 'bottom') {\n                return gradientLengthSignal(model, 'width', gradientHorizontalMinLength, gradientHorizontalMaxLength);\n            }\n            else {\n                return gradientHorizontalMinLength;\n            }\n        }\n        else {\n            // vertical / undefined (Vega uses vertical by default)\n            return gradientLengthSignal(model, 'height', gradientVerticalMinLength, gradientVerticalMaxLength);\n        }\n    }\n    return undefined;\n}\nfunction gradientLengthSignal(model, sizeType, min, max) {\n    const sizeSignal = model.getSizeSignalRef(sizeType).signal;\n    return { signal: `clamp(${sizeSignal}, ${min}, ${max})` };\n}\nfunction defaultLabelOverlap(scaleType) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['quantile', 'threshold', 'log'], scaleType)) {\n        return 'greedy';\n    }\n    return undefined;\n}\n//# sourceMappingURL=properties.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/legend/properties.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/arc.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/arc.js ***!
  \**************************************************************/
/*! exports provided: arc */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"arc\", function() { return arc; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst arc = {\n    vgMark: 'arc',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            size: 'ignore',\n            orient: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('x', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('y', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'radius', 'arc')), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'theta', 'arc'));\n    }\n};\n//# sourceMappingURL=arc.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/arc.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/area.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/area.js ***!
  \***************************************************************/
/*! exports provided: area */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"area\", function() { return area; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst area = {\n    vgMark: 'area',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            orient: 'include',\n            size: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointOrRangePosition\"]('x', model, {\n            defaultPos: 'zeroOrMin',\n            defaultPos2: 'zeroOrMin',\n            range: model.markDef.orient === 'horizontal'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointOrRangePosition\"]('y', model, {\n            defaultPos: 'zeroOrMin',\n            defaultPos2: 'zeroOrMin',\n            range: model.markDef.orient === 'vertical'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"defined\"](model));\n    }\n};\n//# sourceMappingURL=area.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/area.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/bar.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/bar.js ***!
  \**************************************************************/
/*! exports provided: bar */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bar\", function() { return bar; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst bar = {\n    vgMark: 'rect',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            orient: 'ignore',\n            size: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'x', 'bar')), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'y', 'bar'));\n    }\n};\n//# sourceMappingURL=bar.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/bar.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/aria.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/aria.js ***!
  \**********************************************************************/
/*! exports provided: aria, description */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"aria\", function() { return aria; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"description\", function() { return description; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./text */ \"./node_modules/vega-lite/build/src/compile/mark/encode/text.js\");\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tooltip */ \"./node_modules/vega-lite/build/src/compile/mark/encode/tooltip.js\");\n\n\n\n\n\n\nfunction aria(model) {\n    const { markDef, config } = model;\n    const enableAria = Object(_common__WEBPACK_IMPORTED_MODULE_1__[\"getMarkPropOrConfig\"])('aria', markDef, config);\n    // We can ignore other aria properties if ariaHidden is true.\n    if (enableAria === false) {\n        // getMarkGroups sets aria to false already so we don't have to set it in the encode block\n        return {};\n    }\n    return Object.assign(Object.assign(Object.assign({}, (enableAria ? { aria: enableAria } : {})), ariaRoleDescription(model)), description(model));\n}\nfunction ariaRoleDescription(model) {\n    const { mark, markDef, config } = model;\n    if (config.aria === false) {\n        return {};\n    }\n    const ariaRoleDesc = Object(_common__WEBPACK_IMPORTED_MODULE_1__[\"getMarkPropOrConfig\"])('ariaRoleDescription', markDef, config);\n    if (ariaRoleDesc != null) {\n        return { ariaRoleDescription: { value: ariaRoleDesc } };\n    }\n    return mark in _vega_schema__WEBPACK_IMPORTED_MODULE_2__[\"VG_MARK_INDEX\"] ? {} : { ariaRoleDescription: { value: mark } };\n}\nfunction description(model) {\n    const { encoding, markDef, config, stack } = model;\n    const channelDef = encoding.description;\n    if (channelDef) {\n        return Object(_conditional__WEBPACK_IMPORTED_MODULE_3__[\"wrapCondition\"])(model, channelDef, 'description', cDef => Object(_text__WEBPACK_IMPORTED_MODULE_4__[\"textRef\"])(cDef, model.config));\n    }\n    // Use default from mark def or config if defined.\n    // Functions in encode usually just return undefined but since we are defining a default below, we need to check the default here.\n    const descriptionValue = Object(_common__WEBPACK_IMPORTED_MODULE_1__[\"getMarkPropOrConfig\"])('description', markDef, config);\n    if (descriptionValue != null) {\n        return {\n            description: Object(_common__WEBPACK_IMPORTED_MODULE_1__[\"signalOrValueRef\"])(descriptionValue)\n        };\n    }\n    if (config.aria === false) {\n        return {};\n    }\n    const data = Object(_tooltip__WEBPACK_IMPORTED_MODULE_5__[\"tooltipData\"])(encoding, stack, config);\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"isEmpty\"])(data)) {\n        return undefined;\n    }\n    return {\n        description: {\n            signal: Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"entries\"])(data)\n                .map(([key, value], index) => `\"${index > 0 ? '; ' : ''}${key}: \" + (${value})`)\n                .join(' + ')\n        }\n    };\n}\n//# sourceMappingURL=aria.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/aria.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/base.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/base.js ***!
  \**********************************************************************/
/*! exports provided: color, wrapCondition, nonPosition, pointPosition, pointOrRangePosition, rangePosition, rectPosition, text, tooltip, baseEncodeEntry */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"baseEncodeEntry\", function() { return baseEncodeEntry; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./aria */ \"./node_modules/vega-lite/build/src/compile/mark/encode/aria.js\");\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./color */ \"./node_modules/vega-lite/build/src/compile/mark/encode/color.js\");\n/* harmony import */ var _nonposition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./nonposition */ \"./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./text */ \"./node_modules/vega-lite/build/src/compile/mark/encode/text.js\");\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./tooltip */ \"./node_modules/vega-lite/build/src/compile/mark/encode/tooltip.js\");\n/* harmony import */ var _valueref__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n/* harmony import */ var _zindex__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./zindex */ \"./node_modules/vega-lite/build/src/compile/mark/encode/zindex.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return _color__WEBPACK_IMPORTED_MODULE_8__[\"color\"]; });\n\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"wrapCondition\", function() { return _conditional__WEBPACK_IMPORTED_MODULE_14__[\"wrapCondition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nonPosition\", function() { return _nonposition__WEBPACK_IMPORTED_MODULE_9__[\"nonPosition\"]; });\n\n/* harmony import */ var _position_point__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./position-point */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointPosition\", function() { return _position_point__WEBPACK_IMPORTED_MODULE_15__[\"pointPosition\"]; });\n\n/* harmony import */ var _position_range__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./position-range */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointOrRangePosition\", function() { return _position_range__WEBPACK_IMPORTED_MODULE_16__[\"pointOrRangePosition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rangePosition\", function() { return _position_range__WEBPACK_IMPORTED_MODULE_16__[\"rangePosition\"]; });\n\n/* harmony import */ var _position_rect__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./position-rect */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-rect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectPosition\", function() { return _position_rect__WEBPACK_IMPORTED_MODULE_17__[\"rectPosition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"text\", function() { return _text__WEBPACK_IMPORTED_MODULE_10__[\"text\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tooltip\", function() { return _tooltip__WEBPACK_IMPORTED_MODULE_11__[\"tooltip\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ALWAYS_IGNORE = new Set(['aria']);\nfunction baseEncodeEntry(model, ignore) {\n    const { fill = undefined, stroke = undefined } = ignore.color === 'include' ? Object(_color__WEBPACK_IMPORTED_MODULE_8__[\"color\"])(model) : {};\n    return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, markDefProperties(model.markDef, ignore)), wrapAllFieldsInvalid(model, 'fill', fill)), wrapAllFieldsInvalid(model, 'stroke', stroke)), Object(_nonposition__WEBPACK_IMPORTED_MODULE_9__[\"nonPosition\"])('opacity', model)), Object(_nonposition__WEBPACK_IMPORTED_MODULE_9__[\"nonPosition\"])('fillOpacity', model)), Object(_nonposition__WEBPACK_IMPORTED_MODULE_9__[\"nonPosition\"])('strokeOpacity', model)), Object(_nonposition__WEBPACK_IMPORTED_MODULE_9__[\"nonPosition\"])('strokeWidth', model)), Object(_nonposition__WEBPACK_IMPORTED_MODULE_9__[\"nonPosition\"])('strokeDash', model)), Object(_zindex__WEBPACK_IMPORTED_MODULE_13__[\"zindex\"])(model)), Object(_tooltip__WEBPACK_IMPORTED_MODULE_11__[\"tooltip\"])(model)), Object(_text__WEBPACK_IMPORTED_MODULE_10__[\"text\"])(model, 'href')), Object(_aria__WEBPACK_IMPORTED_MODULE_7__[\"aria\"])(model));\n}\n// TODO: mark VgValueRef[] as readonly after https://github.com/vega/vega/pull/1987\nfunction wrapAllFieldsInvalid(model, channel, valueRef) {\n    const { config, mark, markDef } = model;\n    const invalid = Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"getMarkPropOrConfig\"])('invalid', markDef, config);\n    if (invalid === 'hide' && valueRef && !Object(_mark__WEBPACK_IMPORTED_MODULE_2__[\"isPathMark\"])(mark)) {\n        // For non-path marks, we have to exclude invalid values (null and NaN) for scales with continuous domains.\n        // For path marks, we will use \"defined\" property and skip these values instead.\n        const test = allFieldsInvalidPredicate(model, { invalid: true, channels: _channel__WEBPACK_IMPORTED_MODULE_1__[\"SCALE_CHANNELS\"] });\n        if (test) {\n            return {\n                [channel]: [\n                    // prepend the invalid case\n                    // TODO: support custom value\n                    { test, value: null },\n                    ...Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(valueRef)\n                ]\n            };\n        }\n    }\n    return valueRef ? { [channel]: valueRef } : {};\n}\nfunction markDefProperties(mark, ignore) {\n    return _vega_schema__WEBPACK_IMPORTED_MODULE_5__[\"VG_MARK_CONFIGS\"].reduce((m, prop) => {\n        if (!ALWAYS_IGNORE.has(prop) && mark[prop] !== undefined && ignore[prop] !== 'ignore') {\n            m[prop] = Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"signalOrValueRef\"])(mark[prop]);\n        }\n        return m;\n    }, {});\n}\nfunction allFieldsInvalidPredicate(model, { invalid = false, channels }) {\n    const filterIndex = channels.reduce((aggregator, channel) => {\n        const scaleComponent = model.getScaleComponent(channel);\n        if (scaleComponent) {\n            const scaleType = scaleComponent.get('type');\n            const field = model.vgField(channel, { expr: 'datum' });\n            // While discrete domain scales can handle invalid values, continuous scales can't.\n            if (field && Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"hasContinuousDomain\"])(scaleType)) {\n                aggregator[field] = true;\n            }\n        }\n        return aggregator;\n    }, {});\n    const fields = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(filterIndex);\n    if (fields.length > 0) {\n        const op = invalid ? '||' : '&&';\n        return fields.map(field => Object(_valueref__WEBPACK_IMPORTED_MODULE_12__[\"fieldInvalidPredicate\"])(field, invalid)).join(` ${op} `);\n    }\n    return undefined;\n}\n//# sourceMappingURL=base.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/base.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/color.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/color.js ***!
  \***********************************************************************/
/*! exports provided: color */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return color; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _nonposition__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonposition */ \"./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js\");\n\n\n\n\nfunction color(model, opt = { filled: undefined }) {\n    var _a, _b, _c, _d;\n    const { markDef, encoding, config } = model;\n    const { type: markType } = markDef;\n    // Allow filled to be overridden (for trail's \"filled\")\n    const filled = (_a = opt.filled) !== null && _a !== void 0 ? _a : Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"getMarkPropOrConfig\"])('filled', markDef, config);\n    const transparentIfNeeded = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"contains\"])(['bar', 'point', 'circle', 'square', 'geoshape'], markType)\n        ? 'transparent'\n        : undefined;\n    const defaultFill = (_c = (_b = Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"getMarkPropOrConfig\"])(filled === true ? 'color' : undefined, markDef, config, { vgChannel: 'fill' })) !== null && _b !== void 0 ? _b : \n    // need to add this manually as getMarkConfig normally drops config.mark[channel] if vgChannel is specified\n    config.mark[filled === true && 'color']) !== null && _c !== void 0 ? _c : \n    // If there is no fill, always fill symbols, bar, geoshape\n    // with transparent fills https://github.com/vega/vega-lite/issues/1316\n    transparentIfNeeded;\n    const defaultStroke = (_d = Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"getMarkPropOrConfig\"])(filled === false ? 'color' : undefined, markDef, config, { vgChannel: 'stroke' })) !== null && _d !== void 0 ? _d : \n    // need to add this manually as getMarkConfig normally drops config.mark[channel] if vgChannel is specified\n    config.mark[filled === false && 'color'];\n    const colorVgChannel = filled ? 'fill' : 'stroke';\n    const fillStrokeMarkDefAndConfig = Object.assign(Object.assign({}, (defaultFill ? { fill: Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"signalOrValueRef\"])(defaultFill) } : {})), (defaultStroke ? { stroke: Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"signalOrValueRef\"])(defaultStroke) } : {}));\n    if (markDef.color && (filled ? markDef.fill : markDef.stroke)) {\n        _log__WEBPACK_IMPORTED_MODULE_0__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].droppingColor('property', { fill: 'fill' in markDef, stroke: 'stroke' in markDef }));\n    }\n    return Object.assign(Object.assign(Object.assign(Object.assign({}, fillStrokeMarkDefAndConfig), Object(_nonposition__WEBPACK_IMPORTED_MODULE_3__[\"nonPosition\"])('color', model, {\n        vgChannel: colorVgChannel,\n        defaultValue: filled ? defaultFill : defaultStroke\n    })), Object(_nonposition__WEBPACK_IMPORTED_MODULE_3__[\"nonPosition\"])('fill', model, {\n        // if there is encoding.fill, include default fill just in case we have conditional-only fill encoding\n        defaultValue: encoding.fill ? defaultFill : undefined\n    })), Object(_nonposition__WEBPACK_IMPORTED_MODULE_3__[\"nonPosition\"])('stroke', model, {\n        // if there is encoding.stroke, include default fill just in case we have conditional-only stroke encoding\n        defaultValue: encoding.stroke ? defaultStroke : undefined\n    }));\n}\n//# sourceMappingURL=color.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/color.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js ***!
  \*****************************************************************************/
/*! exports provided: wrapCondition */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wrapCondition\", function() { return wrapCondition; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../predicate */ \"./node_modules/vega-lite/build/src/compile/predicate.js\");\n/* harmony import */ var _selection_parse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../selection/parse */ \"./node_modules/vega-lite/build/src/compile/selection/parse.js\");\n\n\n\n\n/**\n * Return a mixin that includes a Vega production rule for a Vega-Lite conditional channel definition\n * or a simple mixin if channel def has no condition.\n */\nfunction wrapCondition(model, channelDef, vgChannel, refFn) {\n    const condition = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalDef\"])(channelDef) && channelDef.condition;\n    const valueRef = refFn(channelDef);\n    if (condition) {\n        const conditions = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(condition);\n        const vgConditions = conditions.map(c => {\n            const conditionValueRef = refFn(c);\n            const test = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalSelection\"])(c)\n                ? Object(_selection_parse__WEBPACK_IMPORTED_MODULE_3__[\"parseSelectionPredicate\"])(model, c.selection) // FIXME: remove casting once TS is no longer dumb about it\n                : Object(_predicate__WEBPACK_IMPORTED_MODULE_2__[\"expression\"])(model, c.test); // FIXME: remove casting once TS is no longer dumb about it\n            return Object.assign({ test }, conditionValueRef);\n        });\n        return {\n            [vgChannel]: [...vgConditions, ...(valueRef !== undefined ? [valueRef] : [])]\n        };\n    }\n    else {\n        return valueRef !== undefined ? { [vgChannel]: valueRef } : {};\n    }\n}\n//# sourceMappingURL=conditional.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/defined.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/defined.js ***!
  \*************************************************************************/
/*! exports provided: defined, valueIfDefined */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defined\", function() { return defined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueIfDefined\", function() { return valueIfDefined; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _valueref__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n\n\n\n\n\nfunction defined(model) {\n    const { config, markDef } = model;\n    const invalid = Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"getMarkPropOrConfig\"])('invalid', markDef, config);\n    if (invalid) {\n        const signal = allFieldsInvalidPredicate(model, { channels: _channel__WEBPACK_IMPORTED_MODULE_0__[\"POSITION_SCALE_CHANNELS\"] });\n        if (signal) {\n            return { defined: { signal } };\n        }\n    }\n    return {};\n}\nfunction allFieldsInvalidPredicate(model, { invalid = false, channels }) {\n    const filterIndex = channels.reduce((aggregator, channel) => {\n        const scaleComponent = model.getScaleComponent(channel);\n        if (scaleComponent) {\n            const scaleType = scaleComponent.get('type');\n            const field = model.vgField(channel, { expr: 'datum' });\n            // While discrete domain scales can handle invalid values, continuous scales can't.\n            if (field && Object(_scale__WEBPACK_IMPORTED_MODULE_1__[\"hasContinuousDomain\"])(scaleType)) {\n                aggregator[field] = true;\n            }\n        }\n        return aggregator;\n    }, {});\n    const fields = Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"keys\"])(filterIndex);\n    if (fields.length > 0) {\n        const op = invalid ? '||' : '&&';\n        return fields.map(field => Object(_valueref__WEBPACK_IMPORTED_MODULE_4__[\"fieldInvalidPredicate\"])(field, invalid)).join(` ${op} `);\n    }\n    return undefined;\n}\nfunction valueIfDefined(prop, value) {\n    if (value !== undefined) {\n        return { [prop]: Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"signalOrValueRef\"])(value) };\n    }\n    return undefined;\n}\n//# sourceMappingURL=defined.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/defined.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/index.js":
/*!***********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/index.js ***!
  \***********************************************************************/
/*! exports provided: baseEncodeEntry, color, wrapCondition, defined, valueIfDefined, nonPosition, pointPosition, pointOrRangePosition, rangePosition, rectBinPosition, rectPosition, text, tooltip, tooltipRefForEncoding, aria */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ \"./node_modules/vega-lite/build/src/compile/mark/encode/base.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"baseEncodeEntry\", function() { return _base__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"]; });\n\n/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color */ \"./node_modules/vega-lite/build/src/compile/mark/encode/color.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"color\", function() { return _color__WEBPACK_IMPORTED_MODULE_1__[\"color\"]; });\n\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"wrapCondition\", function() { return _conditional__WEBPACK_IMPORTED_MODULE_2__[\"wrapCondition\"]; });\n\n/* harmony import */ var _defined__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defined */ \"./node_modules/vega-lite/build/src/compile/mark/encode/defined.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defined\", function() { return _defined__WEBPACK_IMPORTED_MODULE_3__[\"defined\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"valueIfDefined\", function() { return _defined__WEBPACK_IMPORTED_MODULE_3__[\"valueIfDefined\"]; });\n\n/* harmony import */ var _nonposition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nonposition */ \"./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"nonPosition\", function() { return _nonposition__WEBPACK_IMPORTED_MODULE_4__[\"nonPosition\"]; });\n\n/* harmony import */ var _position_point__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./position-point */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointPosition\", function() { return _position_point__WEBPACK_IMPORTED_MODULE_5__[\"pointPosition\"]; });\n\n/* harmony import */ var _position_range__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./position-range */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-range.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pointOrRangePosition\", function() { return _position_range__WEBPACK_IMPORTED_MODULE_6__[\"pointOrRangePosition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rangePosition\", function() { return _position_range__WEBPACK_IMPORTED_MODULE_6__[\"rangePosition\"]; });\n\n/* harmony import */ var _position_rect__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./position-rect */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-rect.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectBinPosition\", function() { return _position_rect__WEBPACK_IMPORTED_MODULE_7__[\"rectBinPosition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"rectPosition\", function() { return _position_rect__WEBPACK_IMPORTED_MODULE_7__[\"rectPosition\"]; });\n\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./text */ \"./node_modules/vega-lite/build/src/compile/mark/encode/text.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"text\", function() { return _text__WEBPACK_IMPORTED_MODULE_8__[\"text\"]; });\n\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tooltip */ \"./node_modules/vega-lite/build/src/compile/mark/encode/tooltip.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tooltip\", function() { return _tooltip__WEBPACK_IMPORTED_MODULE_9__[\"tooltip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tooltipRefForEncoding\", function() { return _tooltip__WEBPACK_IMPORTED_MODULE_9__[\"tooltipRefForEncoding\"]; });\n\n/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./aria */ \"./node_modules/vega-lite/build/src/compile/mark/encode/aria.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"aria\", function() { return _aria__WEBPACK_IMPORTED_MODULE_10__[\"aria\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js ***!
  \*****************************************************************************/
/*! exports provided: nonPosition */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nonPosition\", function() { return nonPosition; });\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n/* harmony import */ var _valueref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n\n\n\n/**\n * Return encode for non-positional channels with scales. (Text doesn't have scale.)\n */\nfunction nonPosition(channel, model, opt = {}) {\n    const { markDef, encoding, config } = model;\n    const { vgChannel } = opt;\n    let { defaultRef, defaultValue } = opt;\n    if (defaultRef === undefined) {\n        // prettier-ignore\n        defaultValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : Object(_common__WEBPACK_IMPORTED_MODULE_0__[\"getMarkPropOrConfig\"])(channel, markDef, config, { vgChannel, ignoreVgConfig: true });\n        if (defaultValue !== undefined) {\n            defaultRef = Object(_common__WEBPACK_IMPORTED_MODULE_0__[\"signalOrValueRef\"])(defaultValue);\n        }\n    }\n    const channelDef = encoding[channel];\n    return Object(_conditional__WEBPACK_IMPORTED_MODULE_1__[\"wrapCondition\"])(model, channelDef, vgChannel !== null && vgChannel !== void 0 ? vgChannel : channel, cDef => {\n        return _valueref__WEBPACK_IMPORTED_MODULE_2__[\"midPoint\"]({\n            channel,\n            channelDef: cDef,\n            markDef,\n            config,\n            scaleName: model.scaleName(channel),\n            scale: model.getScaleComponent(channel),\n            stack: null,\n            defaultRef\n        });\n    });\n}\n//# sourceMappingURL=nonposition.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/offset.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/offset.js ***!
  \************************************************************************/
/*! exports provided: getOffset */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOffset\", function() { return getOffset; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n\nfunction getOffset(channel, markDef) {\n    const offsetChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getOffsetChannel\"])(channel);\n    // TODO: in the future read from encoding channel too\n    const markDefOffsetValue = markDef[offsetChannel];\n    if (markDefOffsetValue) {\n        return markDefOffsetValue;\n    }\n    return undefined;\n}\n//# sourceMappingURL=offset.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/offset.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/position-align.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/position-align.js ***!
  \********************************************************************************/
/*! exports provided: vgAlignedPositionChannel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vgAlignedPositionChannel\", function() { return vgAlignedPositionChannel; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n\n\n\n\nconst ALIGNED_X_CHANNEL = {\n    left: 'x',\n    center: 'xc',\n    right: 'x2'\n};\nconst BASELINED_Y_CHANNEL = {\n    top: 'y',\n    middle: 'yc',\n    bottom: 'y2'\n};\nfunction vgAlignedPositionChannel(channel, markDef, config, defaultAlign = 'middle') {\n    if (channel === 'radius' || channel === 'theta') {\n        return Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getVgPositionChannel\"])(channel);\n    }\n    const alignChannel = channel === 'x' ? 'align' : 'baseline';\n    const align = Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"getMarkPropOrConfig\"])(alignChannel, markDef, config);\n    let alignExcludingSignal;\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_2__[\"isSignalRef\"])(align)) {\n        _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].rangeMarkAlignmentCannotBeExpression(alignChannel));\n        alignExcludingSignal = undefined;\n    }\n    else {\n        alignExcludingSignal = align;\n    }\n    if (channel === 'x') {\n        return ALIGNED_X_CHANNEL[alignExcludingSignal || (defaultAlign === 'top' ? 'left' : 'center')];\n    }\n    else {\n        return BASELINED_Y_CHANNEL[alignExcludingSignal || defaultAlign];\n    }\n}\n//# sourceMappingURL=position-align.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/position-align.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js ***!
  \********************************************************************************/
/*! exports provided: pointPosition, positionRef, pointPositionDefaultRef */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pointPosition\", function() { return pointPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"positionRef\", function() { return positionRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pointPositionDefaultRef\", function() { return pointPositionDefaultRef; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./offset */ \"./node_modules/vega-lite/build/src/compile/mark/encode/offset.js\");\n/* harmony import */ var _valueref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n\n\n\n\n\n\n\n/**\n * Return encode for point (non-band) position channels.\n */\nfunction pointPosition(channel, model, { defaultPos, vgChannel, isMidPoint }) {\n    const { encoding, markDef, config, stack } = model;\n    const channelDef = encoding[channel];\n    const channel2Def = encoding[Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSecondaryRangeChannel\"])(channel)];\n    const scaleName = model.scaleName(channel);\n    const scale = model.getScaleComponent(channel);\n    const offset = Object(_offset__WEBPACK_IMPORTED_MODULE_5__[\"getOffset\"])(channel, markDef);\n    // Get default position or position from mark def\n    const defaultRef = pointPositionDefaultRef({\n        model,\n        defaultPos,\n        channel,\n        scaleName,\n        scale\n    });\n    const valueRef = !channelDef && Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"isXorY\"])(channel) && (encoding.latitude || encoding.longitude)\n        ? // use geopoint output if there are lat/long and there is no point position overriding lat/long.\n            { field: model.getName(channel) }\n        : positionRef({\n            channel,\n            channelDef,\n            channel2Def,\n            markDef,\n            config,\n            isMidPoint,\n            scaleName,\n            scale,\n            stack,\n            offset,\n            defaultRef\n        });\n    return valueRef ? { [vgChannel || channel]: valueRef } : undefined;\n}\n// TODO: we need to find a way to refactor these so that scaleName is a part of scale\n// but that's complicated. For now, this is a huge step moving forward.\n/**\n * @return Vega ValueRef for normal x- or y-position without projection\n */\nfunction positionRef(params) {\n    const { channel, channelDef, isMidPoint, scaleName, stack, offset, markDef, config } = params;\n    // This isn't a part of midPoint because we use midPoint for non-position too\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDef\"])(channelDef) && stack && channel === stack.fieldChannel) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(channelDef)) {\n            const band = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getBand\"])({\n                channel,\n                fieldDef: channelDef,\n                isMidPoint,\n                markDef,\n                stack,\n                config\n            });\n            if (band !== undefined) {\n                return _valueref__WEBPACK_IMPORTED_MODULE_6__[\"interpolatedSignalRef\"]({\n                    scaleName,\n                    fieldOrDatumDef: channelDef,\n                    startSuffix: 'start',\n                    band,\n                    offset\n                });\n            }\n        }\n        // x or y use stack_end so that stacked line's point mark use stack_end too.\n        return _valueref__WEBPACK_IMPORTED_MODULE_6__[\"valueRefForFieldOrDatumDef\"](channelDef, scaleName, { suffix: 'end' }, { offset });\n    }\n    return _valueref__WEBPACK_IMPORTED_MODULE_6__[\"midPointRefWithPositionInvalidTest\"](params);\n}\nfunction pointPositionDefaultRef({ model, defaultPos, channel, scaleName, scale }) {\n    const { markDef, config } = model;\n    return () => {\n        const mainChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getMainRangeChannel\"])(channel);\n        const vgChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getVgPositionChannel\"])(channel);\n        const definedValueOrConfig = Object(_common__WEBPACK_IMPORTED_MODULE_4__[\"getMarkPropOrConfig\"])(channel, markDef, config, { vgChannel });\n        if (definedValueOrConfig !== undefined) {\n            return _valueref__WEBPACK_IMPORTED_MODULE_6__[\"widthHeightValueOrSignalRef\"](channel, definedValueOrConfig);\n        }\n        switch (defaultPos) {\n            case 'zeroOrMin':\n            case 'zeroOrMax':\n                if (scaleName) {\n                    const scaleType = scale.get('type');\n                    if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"contains\"])([_scale__WEBPACK_IMPORTED_MODULE_2__[\"ScaleType\"].LOG, _scale__WEBPACK_IMPORTED_MODULE_2__[\"ScaleType\"].TIME, _scale__WEBPACK_IMPORTED_MODULE_2__[\"ScaleType\"].UTC], scaleType)) {\n                        // Log scales cannot have zero.\n                        // Zero in time scale is arbitrary, and does not affect ratio.\n                        // (Time is an interval level of measurement, not ratio).\n                        // See https://en.wikipedia.org/wiki/Level_of_measurement for more info.\n                    }\n                    else {\n                        if (scale.domainDefinitelyIncludesZero()) {\n                            return {\n                                scale: scaleName,\n                                value: 0\n                            };\n                        }\n                    }\n                }\n                if (defaultPos === 'zeroOrMin') {\n                    return mainChannel === 'y' ? { field: { group: 'height' } } : { value: 0 };\n                }\n                else {\n                    // zeroOrMax\n                    switch (mainChannel) {\n                        case 'radius':\n                            // max of radius is min(width, height) / 2\n                            return {\n                                signal: `min(${model.width.signal},${model.height.signal})/2`\n                            };\n                        case 'theta':\n                            return { signal: '2*PI' };\n                        case 'x':\n                            return { field: { group: 'width' } };\n                        case 'y':\n                            return { value: 0 };\n                    }\n                }\n                break;\n            case 'mid': {\n                const sizeRef = model[Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel)];\n                return Object.assign(Object.assign({}, sizeRef), { mult: 0.5 });\n            }\n        }\n        // defaultPos === null\n        return undefined;\n    };\n}\n//# sourceMappingURL=position-point.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/position-range.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/position-range.js ***!
  \********************************************************************************/
/*! exports provided: pointOrRangePosition, rangePosition, position2Ref */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pointOrRangePosition\", function() { return pointOrRangePosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rangePosition\", function() { return rangePosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"position2Ref\", function() { return position2Ref; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./offset */ \"./node_modules/vega-lite/build/src/compile/mark/encode/offset.js\");\n/* harmony import */ var _position_align__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./position-align */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-align.js\");\n/* harmony import */ var _position_point__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./position-point */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js\");\n/* harmony import */ var _valueref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n\n\n\n\n\n\n\n/**\n * Utility for area/rule position, which can be either point or range. (One of the axes should be point and the other should be range.)\n */\nfunction pointOrRangePosition(channel, model, { defaultPos, defaultPos2, range }) {\n    if (range) {\n        return rangePosition(channel, model, { defaultPos, defaultPos2 });\n    }\n    return Object(_position_point__WEBPACK_IMPORTED_MODULE_5__[\"pointPosition\"])(channel, model, { defaultPos });\n}\nfunction rangePosition(channel, model, { defaultPos, defaultPos2 }) {\n    const { markDef, config } = model;\n    const channel2 = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSecondaryRangeChannel\"])(channel);\n    const sizeChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel);\n    const pos2Mixins = pointPosition2OrSize(model, defaultPos2, channel2);\n    const vgChannel = pos2Mixins[sizeChannel]\n        ? // If there is width/height, we need to position the marks based on the alignment.\n            Object(_position_align__WEBPACK_IMPORTED_MODULE_4__[\"vgAlignedPositionChannel\"])(channel, markDef, config)\n        : // Otherwise, make sure to apply to the right Vg Channel (for arc mark)\n            Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getVgPositionChannel\"])(channel);\n    return Object.assign(Object.assign({}, Object(_position_point__WEBPACK_IMPORTED_MODULE_5__[\"pointPosition\"])(channel, model, { defaultPos, vgChannel })), pos2Mixins);\n}\n/**\n * Return encode for x2, y2.\n * If channel is not specified, return one channel based on orientation.\n */\nfunction pointPosition2OrSize(model, defaultPos, channel) {\n    const { encoding, mark, markDef, stack, config } = model;\n    const baseChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getMainRangeChannel\"])(channel);\n    const sizeChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel);\n    const vgChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getVgPositionChannel\"])(channel);\n    const channelDef = encoding[baseChannel];\n    const scaleName = model.scaleName(baseChannel);\n    const scale = model.getScaleComponent(baseChannel);\n    const offset = channel in encoding || channel in markDef\n        ? Object(_offset__WEBPACK_IMPORTED_MODULE_3__[\"getOffset\"])(channel, model.markDef)\n        : Object(_offset__WEBPACK_IMPORTED_MODULE_3__[\"getOffset\"])(baseChannel, model.markDef);\n    if (!channelDef && (channel === 'x2' || channel === 'y2') && (encoding.latitude || encoding.longitude)) {\n        // use geopoint output if there are lat2/long2 and there is no point position2 overriding lat2/long2.\n        return { [vgChannel]: { field: model.getName(channel) } };\n    }\n    const valueRef = position2Ref({\n        channel,\n        channelDef,\n        channel2Def: encoding[channel],\n        markDef,\n        config,\n        scaleName,\n        scale,\n        stack,\n        offset,\n        defaultRef: undefined\n    });\n    if (valueRef !== undefined) {\n        return { [vgChannel]: valueRef };\n    }\n    // TODO: check width/height encoding here once we add them\n    // no x2/y2 encoding, then try to read x2/y2 or width/height based on precedence:\n    // markDef > config.style > mark-specific config (config[mark]) > general mark config (config.mark)\n    return (position2orSize(channel, markDef) ||\n        position2orSize(channel, {\n            [channel]: Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"getMarkStyleConfig\"])(channel, markDef, config.style),\n            [sizeChannel]: Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"getMarkStyleConfig\"])(sizeChannel, markDef, config.style)\n        }) ||\n        position2orSize(channel, config[mark]) ||\n        position2orSize(channel, config.mark) || {\n        [vgChannel]: Object(_position_point__WEBPACK_IMPORTED_MODULE_5__[\"pointPositionDefaultRef\"])({\n            model,\n            defaultPos,\n            channel,\n            scaleName,\n            scale\n        })()\n    });\n}\nfunction position2Ref({ channel, channelDef, channel2Def, markDef, config, scaleName, scale, stack, offset, defaultRef }) {\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDef\"])(channelDef) &&\n        stack &&\n        // If fieldChannel is X and channel is X2 (or Y and Y2)\n        channel.charAt(0) === stack.fieldChannel.charAt(0)) {\n        return _valueref__WEBPACK_IMPORTED_MODULE_6__[\"valueRefForFieldOrDatumDef\"](channelDef, scaleName, { suffix: 'start' }, { offset });\n    }\n    return _valueref__WEBPACK_IMPORTED_MODULE_6__[\"midPointRefWithPositionInvalidTest\"]({\n        channel,\n        channelDef: channel2Def,\n        scaleName,\n        scale,\n        stack,\n        markDef,\n        config,\n        offset,\n        defaultRef\n    });\n}\nfunction position2orSize(channel, markDef) {\n    const sizeChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel);\n    const vgChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getVgPositionChannel\"])(channel);\n    if (markDef[vgChannel] !== undefined) {\n        return { [vgChannel]: _valueref__WEBPACK_IMPORTED_MODULE_6__[\"widthHeightValueOrSignalRef\"](channel, markDef[vgChannel]) };\n    }\n    else if (markDef[channel] !== undefined) {\n        return { [vgChannel]: _valueref__WEBPACK_IMPORTED_MODULE_6__[\"widthHeightValueOrSignalRef\"](channel, markDef[channel]) };\n    }\n    else if (markDef[sizeChannel]) {\n        return { [sizeChannel]: _valueref__WEBPACK_IMPORTED_MODULE_6__[\"widthHeightValueOrSignalRef\"](channel, markDef[sizeChannel]) };\n    }\n    return undefined;\n}\n//# sourceMappingURL=position-range.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/position-range.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/position-rect.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/position-rect.js ***!
  \*******************************************************************************/
/*! exports provided: rectPosition, rectBinPosition, rectBinRef */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rectPosition\", function() { return rectPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rectBinPosition\", function() { return rectBinPosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rectBinRef\", function() { return rectBinRef; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _nonposition__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./nonposition */ \"./node_modules/vega-lite/build/src/compile/mark/encode/nonposition.js\");\n/* harmony import */ var _offset__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./offset */ \"./node_modules/vega-lite/build/src/compile/mark/encode/offset.js\");\n/* harmony import */ var _position_align__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./position-align */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-align.js\");\n/* harmony import */ var _position_point__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./position-point */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-point.js\");\n/* harmony import */ var _position_range__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./position-range */ \"./node_modules/vega-lite/build/src/compile/mark/encode/position-range.js\");\n/* harmony import */ var _valueref__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./valueref */ \"./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction rectPosition(model, channel, mark) {\n    var _a, _b, _c, _d;\n    const { config, encoding, markDef, stack } = model;\n    const channel2 = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getSecondaryRangeChannel\"])(channel);\n    const sizeChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getSizeChannel\"])(channel);\n    const channelDef = encoding[channel];\n    const channelDef2 = encoding[channel2];\n    const scale = model.getScaleComponent(channel);\n    const scaleType = scale ? scale.get('type') : undefined;\n    const scaleName = model.scaleName(channel);\n    const orient = markDef.orient;\n    const hasSizeDef = (_b = (_a = encoding[sizeChannel]) !== null && _a !== void 0 ? _a : encoding.size) !== null && _b !== void 0 ? _b : Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"getMarkPropOrConfig\"])('size', markDef, config, { vgChannel: sizeChannel });\n    const isBarBand = mark === 'bar' && (channel === 'x' ? orient === 'vertical' : orient === 'horizontal');\n    // x, x2, and width -- we must specify two of these in all conditions\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(channelDef) &&\n        (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(channelDef.bin) || Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinned\"])(channelDef.bin) || (channelDef.timeUnit && !channelDef2)) &&\n        !hasSizeDef &&\n        !Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasDiscreteDomain\"])(scaleType)) {\n        const band = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getBand\"])({ channel, fieldDef: channelDef, stack, markDef, config });\n        const axis = (_c = model.component.axes[channel]) === null || _c === void 0 ? void 0 : _c[0];\n        const axisTranslate = (_d = axis === null || axis === void 0 ? void 0 : axis.get('translate')) !== null && _d !== void 0 ? _d : 0.5; // vega default is 0.5\n        return rectBinPosition({\n            fieldDef: channelDef,\n            fieldDef2: channelDef2,\n            channel,\n            markDef,\n            scaleName,\n            band,\n            axisTranslate,\n            spacing: Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"isXorY\"])(channel) ? Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"getMarkPropOrConfig\"])('binSpacing', markDef, config) : undefined,\n            reverse: scale.get('reverse'),\n            config\n        });\n    }\n    else if (((Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(channelDef) && Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasDiscreteDomain\"])(scaleType)) || isBarBand) && !channelDef2) {\n        return positionAndSize(mark, channelDef, channel, model);\n    }\n    else {\n        return Object(_position_range__WEBPACK_IMPORTED_MODULE_14__[\"rangePosition\"])(channel, model, { defaultPos: 'zeroOrMax', defaultPos2: 'zeroOrMin' });\n    }\n}\nfunction defaultSizeRef(mark, sizeChannel, scaleName, scale, config, band) {\n    if (scale) {\n        const scaleType = scale.get('type');\n        if (scaleType === 'point' || scaleType === 'band') {\n            if (config[mark].discreteBandSize !== undefined) {\n                return { value: config[mark].discreteBandSize };\n            }\n            if (scaleType === _scale__WEBPACK_IMPORTED_MODULE_6__[\"ScaleType\"].POINT) {\n                const scaleRange = scale.get('range');\n                if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isVgRangeStep\"])(scaleRange) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(scaleRange.step)) {\n                    return { value: scaleRange.step - 2 };\n                }\n                return { value: _config__WEBPACK_IMPORTED_MODULE_4__[\"DEFAULT_STEP\"] - 2 };\n            }\n            else {\n                // BAND\n                return { scale: scaleName, band };\n            }\n        }\n        else {\n            // continuous scale\n            return { value: config[mark].continuousBandSize };\n        }\n    }\n    // No Scale\n    const step = Object(_config__WEBPACK_IMPORTED_MODULE_4__[\"getViewConfigDiscreteStep\"])(config.view, sizeChannel);\n    const value = Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"getFirstDefined\"])(\n    // No scale is like discrete bar (with one item)\n    config[mark].discreteBandSize, step - 2);\n    return value !== undefined ? { value } : undefined;\n}\n/**\n * Output position encoding and its size encoding for continuous, point, and band scales.\n */\nfunction positionAndSize(mark, fieldDef, channel, model) {\n    var _a;\n    const { markDef, encoding, config, stack } = model;\n    const orient = markDef.orient;\n    const scaleName = model.scaleName(channel);\n    const scale = model.getScaleComponent(channel);\n    const vgSizeChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getSizeChannel\"])(channel);\n    const channel2 = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getSecondaryRangeChannel\"])(channel);\n    // use \"size\" channel for bars, if there is orient and the channel matches the right orientation\n    const useVlSizeChannel = (orient === 'horizontal' && channel === 'y') || (orient === 'vertical' && channel === 'x');\n    const sizeFromMarkOrConfig = Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"getMarkPropOrConfig\"])(useVlSizeChannel ? 'size' : vgSizeChannel, markDef, config, {\n        vgChannel: vgSizeChannel\n    });\n    // Use size encoding / mark property / config if it exists\n    let sizeMixins;\n    if (encoding.size || sizeFromMarkOrConfig !== undefined) {\n        if (useVlSizeChannel) {\n            sizeMixins = Object(_nonposition__WEBPACK_IMPORTED_MODULE_10__[\"nonPosition\"])('size', model, { vgChannel: vgSizeChannel, defaultValue: sizeFromMarkOrConfig });\n        }\n        else {\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].cannotApplySizeToNonOrientedMark(markDef.type));\n        }\n    }\n    // Otherwise, apply default value\n    const band = (_a = (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(fieldDef) ? Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getBand\"])({ channel, fieldDef, markDef, stack, config }) : undefined)) !== null && _a !== void 0 ? _a : 1;\n    sizeMixins = sizeMixins || { [vgSizeChannel]: defaultSizeRef(mark, vgSizeChannel, scaleName, scale, config, band) };\n    /*\n      Band scales with size value and all point scales, use xc/yc + band=0.5\n  \n      Otherwise (band scales that has size based on a band ref), use x/y with position band = (1 - size_band) / 2.\n      In this case, size_band is the band specified in the x/y-encoding.\n      By default band is 1, so `(1 - band) / 2` = 0.\n      If band is 0.6, the the x/y position in such case should be `(1 - band) / 2` = 0.2\n     */\n    const center = (scale === null || scale === void 0 ? void 0 : scale.get('type')) !== 'band' || !('band' in sizeMixins[vgSizeChannel]);\n    const vgChannel = Object(_position_align__WEBPACK_IMPORTED_MODULE_12__[\"vgAlignedPositionChannel\"])(channel, markDef, config, center ? 'middle' : 'top');\n    const offset = Object(_offset__WEBPACK_IMPORTED_MODULE_11__[\"getOffset\"])(channel, markDef);\n    const posRef = _valueref__WEBPACK_IMPORTED_MODULE_15__[\"midPointRefWithPositionInvalidTest\"]({\n        channel,\n        channelDef: fieldDef,\n        markDef,\n        config,\n        scaleName,\n        scale,\n        stack,\n        offset,\n        defaultRef: Object(_position_point__WEBPACK_IMPORTED_MODULE_13__[\"pointPositionDefaultRef\"])({ model, defaultPos: 'mid', channel, scaleName, scale }),\n        band: center ? 0.5 : (1 - band) / 2\n    });\n    if (vgSizeChannel) {\n        return Object.assign({ [vgChannel]: posRef }, sizeMixins);\n    }\n    else {\n        // otherwise, we must simulate size by setting position2 = position + size\n        // (for theta/radius since Vega doesn't have thetaWidth/radiusWidth)\n        const vgChannel2 = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getVgPositionChannel\"])(channel2);\n        const sizeRef = sizeMixins[vgSizeChannel];\n        const sizeOffset = offset ? Object.assign(Object.assign({}, sizeRef), { offset }) : sizeRef;\n        return {\n            [vgChannel]: posRef,\n            // posRef might be an array that wraps position invalid test\n            [vgChannel2]: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(posRef)\n                ? [posRef[0], Object.assign(Object.assign({}, posRef[1]), { offset: sizeOffset })]\n                : Object.assign(Object.assign({}, posRef), { offset: sizeOffset })\n        };\n    }\n}\nfunction getBinSpacing(channel, spacing, reverse, translate, offset) {\n    if (Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"isPolarPositionChannel\"])(channel)) {\n        return 0;\n    }\n    const spacingOffset = channel === 'x' || channel === 'y2' ? -spacing / 2 : spacing / 2;\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(reverse) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(offset) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(translate)) {\n        const reverseExpr = Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"signalOrStringValue\"])(reverse);\n        const offsetExpr = Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"signalOrStringValue\"])(offset);\n        const translateExpr = Object(_common__WEBPACK_IMPORTED_MODULE_9__[\"signalOrStringValue\"])(translate);\n        const t = translateExpr ? `${translateExpr} + ` : '';\n        const r = reverseExpr ? `(${reverseExpr} ? -1 : 1) * ` : '';\n        const o = offsetExpr ? `(${offsetExpr} + ${spacingOffset})` : spacingOffset;\n        return {\n            signal: t + r + o\n        };\n    }\n    else {\n        offset = offset || 0;\n        return translate + (reverse ? -offset - spacingOffset : +offset + spacingOffset);\n    }\n}\nfunction rectBinPosition({ fieldDef, fieldDef2, channel, band, scaleName, markDef, spacing = 0, axisTranslate, reverse, config }) {\n    const channel2 = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getSecondaryRangeChannel\"])(channel);\n    const vgChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getVgPositionChannel\"])(channel);\n    const vgChannel2 = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getVgPositionChannel\"])(channel2);\n    const offset = Object(_offset__WEBPACK_IMPORTED_MODULE_11__[\"getOffset\"])(channel, markDef);\n    if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldDef.bin) || fieldDef.timeUnit) {\n        return {\n            [vgChannel2]: rectBinRef({\n                channel,\n                fieldDef,\n                scaleName,\n                markDef,\n                band: (1 - band) / 2,\n                offset: getBinSpacing(channel2, spacing, reverse, axisTranslate, offset),\n                config\n            }),\n            [vgChannel]: rectBinRef({\n                channel,\n                fieldDef,\n                scaleName,\n                markDef,\n                band: 1 - (1 - band) / 2,\n                offset: getBinSpacing(channel, spacing, reverse, axisTranslate, offset),\n                config\n            })\n        };\n    }\n    else if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinned\"])(fieldDef.bin)) {\n        const startRef = _valueref__WEBPACK_IMPORTED_MODULE_15__[\"valueRefForFieldOrDatumDef\"](fieldDef, scaleName, {}, { offset: getBinSpacing(channel2, spacing, reverse, axisTranslate, offset) });\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldDef2)) {\n            return {\n                [vgChannel2]: startRef,\n                [vgChannel]: _valueref__WEBPACK_IMPORTED_MODULE_15__[\"valueRefForFieldOrDatumDef\"](fieldDef2, scaleName, {}, { offset: getBinSpacing(channel, spacing, reverse, axisTranslate, offset) })\n            };\n        }\n        else if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinParams\"])(fieldDef.bin) && fieldDef.bin.step) {\n            return {\n                [vgChannel2]: startRef,\n                [vgChannel]: {\n                    signal: `scale(\"${scaleName}\", ${Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef, { expr: 'datum' })} + ${fieldDef.bin.step})`,\n                    offset: getBinSpacing(channel, spacing, reverse, axisTranslate, offset)\n                }\n            };\n        }\n    }\n    _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].channelRequiredForBinned(channel2));\n    return undefined;\n}\n/**\n * Value Ref for binned fields\n */\nfunction rectBinRef({ channel, fieldDef, scaleName, markDef, band, offset, config }) {\n    const r = _valueref__WEBPACK_IMPORTED_MODULE_15__[\"interpolatedSignalRef\"]({\n        scaleName,\n        fieldOrDatumDef: fieldDef,\n        band,\n        offset\n    });\n    return _valueref__WEBPACK_IMPORTED_MODULE_15__[\"wrapPositionInvalidTest\"]({\n        fieldDef,\n        channel,\n        markDef,\n        ref: r,\n        config\n    });\n}\n//# sourceMappingURL=position-rect.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/position-rect.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/text.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/text.js ***!
  \**********************************************************************/
/*! exports provided: text, textRef */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"text\", function() { return text; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"textRef\", function() { return textRef; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n\n\n\n\nfunction text(model, channel = 'text') {\n    const channelDef = model.encoding[channel];\n    return Object(_conditional__WEBPACK_IMPORTED_MODULE_3__[\"wrapCondition\"])(model, channelDef, channel, cDef => textRef(cDef, model.config));\n}\nfunction textRef(channelDef, config, expr = 'datum') {\n    // text\n    if (channelDef) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isValueDef\"])(channelDef)) {\n            return Object(_common__WEBPACK_IMPORTED_MODULE_1__[\"signalOrValueRef\"])(channelDef.value);\n        }\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(channelDef)) {\n            const { format, formatType } = Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"getFormatMixins\"])(channelDef);\n            return Object(_format__WEBPACK_IMPORTED_MODULE_2__[\"formatSignalRef\"])({ fieldOrDatumDef: channelDef, format, formatType, expr, config });\n        }\n    }\n    return undefined;\n}\n//# sourceMappingURL=text.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/text.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/tooltip.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/tooltip.js ***!
  \*************************************************************************/
/*! exports provided: tooltip, tooltipData, tooltipRefForEncoding */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tooltip\", function() { return tooltip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tooltipData\", function() { return tooltipData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tooltipRefForEncoding\", function() { return tooltipRefForEncoding; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _format__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../format */ \"./node_modules/vega-lite/build/src/compile/format.js\");\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./text */ \"./node_modules/vega-lite/build/src/compile/mark/encode/text.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction tooltip(model, opt = {}) {\n    const { encoding, markDef, config, stack } = model;\n    const channelDef = encoding.tooltip;\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef)) {\n        return { tooltip: tooltipRefForEncoding({ tooltip: channelDef }, stack, config, opt) };\n    }\n    else {\n        const datum = opt.reactiveGeom ? 'datum.datum' : 'datum';\n        return Object(_conditional__WEBPACK_IMPORTED_MODULE_9__[\"wrapCondition\"])(model, channelDef, 'tooltip', cDef => {\n            // use valueRef based on channelDef first\n            const tooltipRefFromChannelDef = Object(_text__WEBPACK_IMPORTED_MODULE_10__[\"textRef\"])(cDef, config, datum);\n            if (tooltipRefFromChannelDef) {\n                return tooltipRefFromChannelDef;\n            }\n            if (cDef === null) {\n                // Allow using encoding.tooltip = null to disable tooltip\n                return undefined;\n            }\n            let markTooltip = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"getMarkPropOrConfig\"])('tooltip', markDef, config);\n            if (markTooltip === true) {\n                markTooltip = { content: 'encoding' };\n            }\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(markTooltip)) {\n                return { value: markTooltip };\n            }\n            else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(markTooltip)) {\n                // `tooltip` is `{fields: 'encodings' | 'fields'}`\n                if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_6__[\"isSignalRef\"])(markTooltip)) {\n                    return markTooltip;\n                }\n                else if (markTooltip.content === 'encoding') {\n                    return tooltipRefForEncoding(encoding, stack, config, opt);\n                }\n                else {\n                    return { signal: datum };\n                }\n            }\n            return undefined;\n        });\n    }\n}\nfunction tooltipData(encoding, stack, config, { reactiveGeom } = {}) {\n    const toSkip = {};\n    const expr = reactiveGeom ? 'datum.datum' : 'datum';\n    const tuples = [];\n    function add(fDef, channel) {\n        const mainChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getMainRangeChannel\"])(channel);\n        const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isTypedFieldDef\"])(fDef)\n            ? fDef\n            : Object.assign(Object.assign({}, fDef), { type: encoding[mainChannel].type // for secondary field def, copy type from main channel\n             });\n        const title = fieldDef.title || Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"defaultTitle\"])(fieldDef, config);\n        const key = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(title).join(', ');\n        let value;\n        if (Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"isXorY\"])(channel)) {\n            const channel2 = channel === 'x' ? 'x2' : 'y2';\n            const fieldDef2 = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldDef\"])(encoding[channel2]);\n            if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinned\"])(fieldDef.bin) && fieldDef2) {\n                const startField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef, { expr });\n                const endField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef2, { expr });\n                const { format, formatType } = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFormatMixins\"])(fieldDef);\n                value = Object(_format__WEBPACK_IMPORTED_MODULE_8__[\"binFormatExpression\"])(startField, endField, format, formatType, config);\n                toSkip[channel2] = true;\n            }\n            else if (stack && stack.fieldChannel === channel && stack.offset === 'normalize') {\n                const { format, formatType } = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFormatMixins\"])(fieldDef);\n                value = Object(_format__WEBPACK_IMPORTED_MODULE_8__[\"formatSignalRef\"])({ fieldOrDatumDef: fieldDef, format, formatType, expr, config, normalizeStack: true })\n                    .signal;\n            }\n        }\n        value = value !== null && value !== void 0 ? value : Object(_text__WEBPACK_IMPORTED_MODULE_10__[\"textRef\"])(fieldDef, config, expr).signal;\n        tuples.push({ channel, key, value });\n    }\n    Object(_encoding__WEBPACK_IMPORTED_MODULE_4__[\"forEach\"])(encoding, (channelDef, channel) => {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(channelDef)) {\n            add(channelDef, channel);\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"hasConditionalFieldDef\"])(channelDef)) {\n            add(channelDef.condition, channel);\n        }\n    });\n    const out = {};\n    for (const { channel, key, value } of tuples) {\n        if (!toSkip[channel] && !out[key]) {\n            out[key] = value;\n        }\n    }\n    return out;\n}\nfunction tooltipRefForEncoding(encoding, stack, config, { reactiveGeom } = {}) {\n    const data = tooltipData(encoding, stack, config, { reactiveGeom });\n    const keyValues = Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"entries\"])(data).map(([key, value]) => `\"${key}\": ${value}`);\n    return keyValues.length > 0 ? { signal: `{${keyValues.join(', ')}}` } : undefined;\n}\n//# sourceMappingURL=tooltip.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/tooltip.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js":
/*!**************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js ***!
  \**************************************************************************/
/*! exports provided: midPointRefWithPositionInvalidTest, wrapPositionInvalidTest, fieldInvalidTestValueRef, fieldInvalidPredicate, datumDefToExpr, valueRefForFieldOrDatumDef, interpolatedSignalRef, midPoint, widthHeightValueOrSignalRef */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"midPointRefWithPositionInvalidTest\", function() { return midPointRefWithPositionInvalidTest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wrapPositionInvalidTest\", function() { return wrapPositionInvalidTest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldInvalidTestValueRef\", function() { return fieldInvalidTestValueRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldInvalidPredicate\", function() { return fieldInvalidPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"datumDefToExpr\", function() { return datumDefToExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"valueRefForFieldOrDatumDef\", function() { return valueRefForFieldOrDatumDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolatedSignalRef\", function() { return interpolatedSignalRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"midPoint\", function() { return midPoint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"widthHeightValueOrSignalRef\", function() { return widthHeightValueOrSignalRef; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../datetime */ \"./node_modules/vega-lite/build/src/datetime.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../predicate */ \"./node_modules/vega-lite/build/src/predicate.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction midPointRefWithPositionInvalidTest(params) {\n    const { channel, channelDef, markDef, scale, config } = params;\n    const ref = midPoint(params);\n    // Wrap to check if the positional value is invalid, if so, plot the point on the min value\n    if (\n    // Only this for field def without counting aggregate (as count wouldn't be null)\n    Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(channelDef) &&\n        !Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isCountingAggregateOp\"])(channelDef.aggregate) &&\n        // and only for continuous scale without zero (otherwise, null / invalid will be interpreted as zero, which doesn't cause layout problem)\n        scale &&\n        Object(_scale__WEBPACK_IMPORTED_MODULE_10__[\"isContinuousToContinuous\"])(scale.get('type')) &&\n        scale.get('zero') === false) {\n        return wrapPositionInvalidTest({\n            fieldDef: channelDef,\n            channel,\n            markDef,\n            ref,\n            config\n        });\n    }\n    return ref;\n}\nfunction wrapPositionInvalidTest({ fieldDef, channel, markDef, ref, config }) {\n    if (Object(_mark__WEBPACK_IMPORTED_MODULE_8__[\"isPathMark\"])(markDef.type)) {\n        // path mark already use defined to skip points, no need to do it here.\n        return ref;\n    }\n    const invalid = Object(_common__WEBPACK_IMPORTED_MODULE_14__[\"getMarkPropOrConfig\"])('invalid', markDef, config);\n    if (invalid === null) {\n        // if there is no invalid filter, don't do the invalid test\n        return ref;\n    }\n    return [fieldInvalidTestValueRef(fieldDef, channel), ref];\n}\nfunction fieldInvalidTestValueRef(fieldDef, channel) {\n    const test = fieldInvalidPredicate(fieldDef, true);\n    const mainChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"getMainRangeChannel\"])(channel); // we can cast here as the output can't be other things.\n    const zeroValueRef = mainChannel === 'y'\n        ? { field: { group: 'height' } }\n        : // x / angle / radius can all use 0\n            { value: 0 };\n    return Object.assign({ test }, zeroValueRef);\n}\nfunction fieldInvalidPredicate(field, invalid = true) {\n    return Object(_predicate__WEBPACK_IMPORTED_MODULE_9__[\"fieldValidPredicate\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(field) ? field : Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(field, { expr: 'datum' }), !invalid);\n}\nfunction datumDefToExpr(datumDef) {\n    const { datum } = datumDef;\n    if (Object(_datetime__WEBPACK_IMPORTED_MODULE_5__[\"isDateTime\"])(datum)) {\n        return Object(_datetime__WEBPACK_IMPORTED_MODULE_5__[\"dateTimeToExpr\"])(datum);\n    }\n    return `${JSON.stringify(datum)}`;\n}\nfunction valueRefForFieldOrDatumDef(fieldDef, scaleName, opt, encode) {\n    const ref = {};\n    if (scaleName) {\n        ref.scale = scaleName;\n    }\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isDatumDef\"])(fieldDef)) {\n        const { datum } = fieldDef;\n        if (Object(_datetime__WEBPACK_IMPORTED_MODULE_5__[\"isDateTime\"])(datum)) {\n            ref.signal = Object(_datetime__WEBPACK_IMPORTED_MODULE_5__[\"dateTimeToExpr\"])(datum);\n        }\n        else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_13__[\"isSignalRef\"])(datum)) {\n            ref.signal = datum.signal;\n        }\n        else if (Object(_expr__WEBPACK_IMPORTED_MODULE_6__[\"isExprRef\"])(datum)) {\n            ref.signal = datum.expr;\n        }\n        else {\n            ref.value = datum;\n        }\n    }\n    else {\n        ref.field = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldDef, opt);\n    }\n    if (encode) {\n        const { offset, band } = encode;\n        if (offset) {\n            ref.offset = offset;\n        }\n        if (band) {\n            ref.band = band;\n        }\n    }\n    return ref;\n}\n/**\n * Signal that returns the middle of a bin from start and end field. Should only be used with x and y.\n */\nfunction interpolatedSignalRef({ scaleName, fieldOrDatumDef, fieldOrDatumDef2, offset, startSuffix, band = 0.5 }) {\n    const expr = 0 < band && band < 1 ? 'datum' : undefined;\n    const start = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldOrDatumDef, { expr, suffix: startSuffix });\n    const end = fieldOrDatumDef2 !== undefined\n        ? Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldOrDatumDef2, { expr })\n        : Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldOrDatumDef, { suffix: 'end', expr });\n    const ref = {};\n    if (band === 0 || band === 1) {\n        ref.scale = scaleName;\n        const val = band === 0 ? start : end;\n        ref.field = val;\n    }\n    else {\n        const datum = `${band} * ${start} + ${1 - band} * ${end}`;\n        ref.signal = `scale(\"${scaleName}\", ${datum})`;\n    }\n    if (offset) {\n        ref.offset = offset;\n    }\n    return ref;\n}\n/**\n * @returns {VgValueRef} Value Ref for xc / yc or mid point for other channels.\n */\nfunction midPoint({ channel, channelDef, channel2Def, markDef, config, scaleName, scale, stack, offset, defaultRef, band }) {\n    var _a;\n    // TODO: datum support\n    if (channelDef) {\n        /* istanbul ignore else */\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldOrDatumDef\"])(channelDef)) {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isTypedFieldDef\"])(channelDef)) {\n                band = band !== null && band !== void 0 ? band : Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getBand\"])({\n                    channel,\n                    fieldDef: channelDef,\n                    fieldDef2: channel2Def,\n                    markDef,\n                    stack,\n                    config,\n                    isMidPoint: true\n                });\n                const { bin, timeUnit, type } = channelDef;\n                if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin) || (band && timeUnit && type === _type__WEBPACK_IMPORTED_MODULE_11__[\"TEMPORAL\"])) {\n                    // Use middle only for x an y to place marks in the center between start and end of the bin range.\n                    // We do not use the mid point for other channels (e.g. size) so that properties of legends and marks match.\n                    if (stack && stack.impute) {\n                        // For stack, we computed bin_mid so we can impute.\n                        return valueRefForFieldOrDatumDef(channelDef, scaleName, { binSuffix: 'mid' }, { offset });\n                    }\n                    if (band) {\n                        // if band = 0, no need to call interpolation\n                        // For non-stack, we can just calculate bin mid on the fly using signal.\n                        return interpolatedSignalRef({ scaleName, fieldOrDatumDef: channelDef, band, offset });\n                    }\n                    return valueRefForFieldOrDatumDef(channelDef, scaleName, Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"binRequiresRange\"])(channelDef, channel) ? { binSuffix: 'range' } : {}, {\n                        offset\n                    });\n                }\n                else if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinned\"])(bin)) {\n                    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(channel2Def)) {\n                        return interpolatedSignalRef({\n                            scaleName,\n                            fieldOrDatumDef: channelDef,\n                            fieldOrDatumDef2: channel2Def,\n                            band,\n                            offset\n                        });\n                    }\n                    else {\n                        const channel2 = channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"X\"] ? _channel__WEBPACK_IMPORTED_MODULE_3__[\"X2\"] : _channel__WEBPACK_IMPORTED_MODULE_3__[\"Y2\"];\n                        _log__WEBPACK_IMPORTED_MODULE_7__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_7__[\"message\"].channelRequiredForBinned(channel2));\n                    }\n                }\n            }\n            const scaleType = scale === null || scale === void 0 ? void 0 : scale.get('type');\n            return valueRefForFieldOrDatumDef(channelDef, scaleName, Object(_scale__WEBPACK_IMPORTED_MODULE_10__[\"hasDiscreteDomain\"])(scaleType) ? { binSuffix: 'range' } : {}, // no need for bin suffix if there is no scale\n            {\n                offset,\n                // For band, to get mid point, need to offset by half of the band\n                band: scaleType === 'band' ? (_a = band !== null && band !== void 0 ? band : channelDef.band) !== null && _a !== void 0 ? _a : 0.5 : undefined\n            });\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isValueDef\"])(channelDef)) {\n            const value = channelDef.value;\n            const offsetMixins = offset ? { offset } : {};\n            return Object.assign(Object.assign({}, widthHeightValueOrSignalRef(channel, value)), offsetMixins);\n        }\n        // If channelDef is neither field def or value def, it's a condition-only def.\n        // In such case, we will use default ref.\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(defaultRef)) {\n        defaultRef = defaultRef();\n    }\n    if (defaultRef) {\n        // for non-position, ref could be undefined.\n        return Object.assign(Object.assign({}, defaultRef), (offset ? { offset } : {}));\n    }\n    return defaultRef;\n}\n/**\n * Convert special \"width\" and \"height\" values in Vega-Lite into Vega value ref.\n */\nfunction widthHeightValueOrSignalRef(channel, value) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"contains\"])(['x', 'x2'], channel) && value === 'width') {\n        return { field: { group: 'width' } };\n    }\n    else if (Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"contains\"])(['y', 'y2'], channel) && value === 'height') {\n        return { field: { group: 'height' } };\n    }\n    return Object(_common__WEBPACK_IMPORTED_MODULE_14__[\"signalOrValueRef\"])(value);\n}\n//# sourceMappingURL=valueref.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/valueref.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/encode/zindex.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/encode/zindex.js ***!
  \************************************************************************/
/*! exports provided: zindex */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zindex\", function() { return zindex; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _conditional__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./conditional */ \"./node_modules/vega-lite/build/src/compile/mark/encode/conditional.js\");\n\n\n\n\nfunction zindex(model) {\n    const { encoding, mark } = model;\n    const order = encoding.order;\n    if (!Object(_mark__WEBPACK_IMPORTED_MODULE_1__[\"isPathMark\"])(mark) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isValueDef\"])(order)) {\n        return Object(_conditional__WEBPACK_IMPORTED_MODULE_3__[\"wrapCondition\"])(model, order, 'zindex', cd => Object(_common__WEBPACK_IMPORTED_MODULE_2__[\"signalOrValueRef\"])(cd.value));\n    }\n    return {};\n}\n//# sourceMappingURL=zindex.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/encode/zindex.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/geoshape.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/geoshape.js ***!
  \*******************************************************************/
/*! exports provided: geoshape */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"geoshape\", function() { return geoshape; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\n\n\nconst geoshape = {\n    vgMark: 'shape',\n    encodeEntry: (model) => {\n        return Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_2__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            size: 'ignore',\n            orient: 'ignore',\n            theta: 'ignore'\n        }));\n    },\n    postEncodingTransform: (model) => {\n        const { encoding } = model;\n        const shapeDef = encoding.shape;\n        const transform = Object.assign({ type: 'geoshape', projection: model.projectionName() }, (shapeDef && Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldDef\"])(shapeDef) && shapeDef.type === _type__WEBPACK_IMPORTED_MODULE_1__[\"GEOJSON\"]\n            ? { field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"vgField\"])(shapeDef, { expr: 'datum' }) }\n            : {}));\n        return [transform];\n    }\n};\n//# sourceMappingURL=geoshape.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/geoshape.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/image.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/image.js ***!
  \****************************************************************/
/*! exports provided: image */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"image\", function() { return image; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst image = {\n    vgMark: 'image',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'ignore',\n            orient: 'ignore',\n            size: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'x', 'image')), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'y', 'image')), _encode__WEBPACK_IMPORTED_MODULE_0__[\"text\"](model, 'url'));\n    }\n};\n//# sourceMappingURL=image.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/image.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/init.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/init.js ***!
  \***************************************************************/
/*! exports provided: initMarkdef, defaultFilled */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initMarkdef\", function() { return initMarkdef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultFilled\", function() { return defaultFilled; });\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n\n\n\n\n\n\n\n\n\nfunction initMarkdef(originalMarkDef, encoding, config) {\n    const markDef = Object(_expr__WEBPACK_IMPORTED_MODULE_3__[\"replaceExprRefInIndex\"])(originalMarkDef);\n    // set orient, which can be overridden by rules as sometimes the specified orient is invalid.\n    const specifiedOrient = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('orient', markDef, config);\n    markDef.orient = orient(markDef.type, encoding, specifiedOrient);\n    if (specifiedOrient !== undefined && specifiedOrient !== markDef.orient) {\n        _log__WEBPACK_IMPORTED_MODULE_4__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_4__[\"message\"].orientOverridden(markDef.orient, specifiedOrient));\n    }\n    if (markDef.type === 'bar' && markDef.orient) {\n        const cornerRadiusEnd = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('cornerRadiusEnd', markDef, config);\n        if (cornerRadiusEnd !== undefined) {\n            const newProps = (markDef.orient === 'horizontal' && encoding.x2) || (markDef.orient === 'vertical' && encoding.y2)\n                ? ['cornerRadius']\n                : _mark__WEBPACK_IMPORTED_MODULE_5__[\"BAR_CORNER_RADIUS_INDEX\"][markDef.orient];\n            for (const newProp of newProps) {\n                markDef[newProp] = cornerRadiusEnd;\n            }\n            if (markDef.cornerRadiusEnd !== undefined) {\n                delete markDef.cornerRadiusEnd; // no need to keep the original cap cornerRadius\n            }\n        }\n    }\n    // set opacity and filled if not specified in mark config\n    const specifiedOpacity = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('opacity', markDef, config);\n    if (specifiedOpacity === undefined) {\n        markDef.opacity = opacity(markDef.type, encoding);\n    }\n    // set cursor, which should be pointer if href channel is present unless otherwise specified\n    const specifiedCursor = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('cursor', markDef, config);\n    if (specifiedCursor === undefined) {\n        markDef.cursor = cursor(markDef, encoding, config);\n    }\n    return markDef;\n}\nfunction cursor(markDef, encoding, config) {\n    if (encoding.href || markDef.href || Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('href', markDef, config)) {\n        return 'pointer';\n    }\n    return markDef.cursor;\n}\nfunction opacity(mark, encoding) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"])([_mark__WEBPACK_IMPORTED_MODULE_5__[\"POINT\"], _mark__WEBPACK_IMPORTED_MODULE_5__[\"TICK\"], _mark__WEBPACK_IMPORTED_MODULE_5__[\"CIRCLE\"], _mark__WEBPACK_IMPORTED_MODULE_5__[\"SQUARE\"]], mark)) {\n        // point-based marks\n        if (!Object(_encoding__WEBPACK_IMPORTED_MODULE_2__[\"isAggregate\"])(encoding)) {\n            return 0.7;\n        }\n    }\n    return undefined;\n}\nfunction defaultFilled(markDef, config, { graticule }) {\n    if (graticule) {\n        return false;\n    }\n    const filledConfig = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkConfig\"])('filled', markDef, config);\n    const mark = markDef.type;\n    return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"getFirstDefined\"])(filledConfig, mark !== _mark__WEBPACK_IMPORTED_MODULE_5__[\"POINT\"] && mark !== _mark__WEBPACK_IMPORTED_MODULE_5__[\"LINE\"] && mark !== _mark__WEBPACK_IMPORTED_MODULE_5__[\"RULE\"]);\n}\nfunction orient(mark, encoding, specifiedOrient) {\n    switch (mark) {\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"POINT\"]:\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"CIRCLE\"]:\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"SQUARE\"]:\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"TEXT\"]:\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"RECT\"]:\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"IMAGE\"]:\n            // orient is meaningless for these marks.\n            return undefined;\n    }\n    const { x, y, x2, y2 } = encoding;\n    switch (mark) {\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"BAR\"]:\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(x) && (Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(x.bin) || (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(y) && y.aggregate && !x.aggregate))) {\n                return 'vertical';\n            }\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(y) && (Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(y.bin) || (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(x) && x.aggregate && !y.aggregate))) {\n                return 'horizontal';\n            }\n            if (y2 || x2) {\n                // Ranged bar does not always have clear orientation, so we allow overriding\n                if (specifiedOrient) {\n                    return specifiedOrient;\n                }\n                // If y is range and x is non-range, non-bin Q, y is likely a prebinned field\n                if (!x2) {\n                    if ((Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(x) && x.type === _type__WEBPACK_IMPORTED_MODULE_6__[\"QUANTITATIVE\"] && !Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinning\"])(x.bin)) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isNumericDataDef\"])(x)) {\n                        return 'horizontal';\n                    }\n                }\n                // If x is range and y is non-range, non-bin Q, x is likely a prebinned field\n                if (!y2) {\n                    if ((Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(y) && y.type === _type__WEBPACK_IMPORTED_MODULE_6__[\"QUANTITATIVE\"] && !Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinning\"])(y.bin)) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isNumericDataDef\"])(y)) {\n                        return 'vertical';\n                    }\n                }\n            }\n        // falls through\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"RULE\"]:\n            // return undefined for line segment rule and bar with both axis ranged\n            // we have to ignore the case that the data are already binned\n            if (x2 && !(Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(x) && Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(x.bin)) && y2 && !(Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(y) && Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(y.bin))) {\n                return undefined;\n            }\n        // falls through\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"AREA\"]:\n            // If there are range for both x and y, y (vertical) has higher precedence.\n            if (y2) {\n                if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(y) && Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(y.bin)) {\n                    return 'horizontal';\n                }\n                else {\n                    return 'vertical';\n                }\n            }\n            else if (x2) {\n                if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(x) && Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(x.bin)) {\n                    return 'vertical';\n                }\n                else {\n                    return 'horizontal';\n                }\n            }\n            else if (mark === _mark__WEBPACK_IMPORTED_MODULE_5__[\"RULE\"]) {\n                if (x && !y) {\n                    return 'vertical';\n                }\n                else if (y && !x) {\n                    return 'horizontal';\n                }\n            }\n        // falls through\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"LINE\"]:\n        case _mark__WEBPACK_IMPORTED_MODULE_5__[\"TICK\"]: {\n            // Tick is opposite to bar, line, area and never have ranged mark.\n            const xIsContinuous = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isContinuousFieldOrDatumDef\"])(x);\n            const yIsContinuous = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isContinuousFieldOrDatumDef\"])(y);\n            if (xIsContinuous && !yIsContinuous) {\n                return mark !== 'tick' ? 'horizontal' : 'vertical';\n            }\n            else if (!xIsContinuous && yIsContinuous) {\n                return mark !== 'tick' ? 'vertical' : 'horizontal';\n            }\n            else if (xIsContinuous && yIsContinuous) {\n                const xDef = x; // we can cast here since they are surely fieldDef\n                const yDef = y;\n                const xIsTemporal = xDef.type === _type__WEBPACK_IMPORTED_MODULE_6__[\"TEMPORAL\"];\n                const yIsTemporal = yDef.type === _type__WEBPACK_IMPORTED_MODULE_6__[\"TEMPORAL\"];\n                // temporal without timeUnit is considered continuous, but better serves as dimension\n                if (xIsTemporal && !yIsTemporal) {\n                    return mark !== 'tick' ? 'vertical' : 'horizontal';\n                }\n                else if (!xIsTemporal && yIsTemporal) {\n                    return mark !== 'tick' ? 'horizontal' : 'vertical';\n                }\n                if (!xDef.aggregate && yDef.aggregate) {\n                    return mark !== 'tick' ? 'vertical' : 'horizontal';\n                }\n                else if (xDef.aggregate && !yDef.aggregate) {\n                    return mark !== 'tick' ? 'horizontal' : 'vertical';\n                }\n                if (specifiedOrient) {\n                    // When ambiguous, use user specified one.\n                    return specifiedOrient;\n                }\n                return 'vertical';\n            }\n            else {\n                // Discrete x Discrete case\n                if (specifiedOrient) {\n                    // When ambiguous, use user specified one.\n                    return specifiedOrient;\n                }\n                return undefined;\n            }\n        }\n    }\n    return 'vertical';\n}\n//# sourceMappingURL=init.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/init.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/line.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/line.js ***!
  \***************************************************************/
/*! exports provided: line, trail */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"line\", function() { return line; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trail\", function() { return trail; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst line = {\n    vgMark: 'line',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            size: 'ignore',\n            orient: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('x', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('y', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"nonPosition\"]('size', model, {\n            vgChannel: 'strokeWidth' // VL's line size is strokeWidth\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"defined\"](model));\n    }\n};\nconst trail = {\n    vgMark: 'trail',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            size: 'include',\n            orient: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('x', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('y', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"nonPosition\"]('size', model)), _encode__WEBPACK_IMPORTED_MODULE_0__[\"defined\"](model));\n    }\n};\n//# sourceMappingURL=line.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/line.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/mark.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/mark.js ***!
  \***************************************************************/
/*! exports provided: parseMarkGroups, getSort */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseMarkGroups\", function() { return parseMarkGroups; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSort\", function() { return getSort; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _arc__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./arc */ \"./node_modules/vega-lite/build/src/compile/mark/arc.js\");\n/* harmony import */ var _area__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./area */ \"./node_modules/vega-lite/build/src/compile/mark/area.js\");\n/* harmony import */ var _bar__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./bar */ \"./node_modules/vega-lite/build/src/compile/mark/bar.js\");\n/* harmony import */ var _geoshape__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./geoshape */ \"./node_modules/vega-lite/build/src/compile/mark/geoshape.js\");\n/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./image */ \"./node_modules/vega-lite/build/src/compile/mark/image.js\");\n/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./line */ \"./node_modules/vega-lite/build/src/compile/mark/line.js\");\n/* harmony import */ var _point__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./point */ \"./node_modules/vega-lite/build/src/compile/mark/point.js\");\n/* harmony import */ var _rect__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./rect */ \"./node_modules/vega-lite/build/src/compile/mark/rect.js\");\n/* harmony import */ var _rule__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./rule */ \"./node_modules/vega-lite/build/src/compile/mark/rule.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./text */ \"./node_modules/vega-lite/build/src/compile/mark/text.js\");\n/* harmony import */ var _tick__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./tick */ \"./node_modules/vega-lite/build/src/compile/mark/tick.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst markCompiler = {\n    arc: _arc__WEBPACK_IMPORTED_MODULE_9__[\"arc\"],\n    area: _area__WEBPACK_IMPORTED_MODULE_10__[\"area\"],\n    bar: _bar__WEBPACK_IMPORTED_MODULE_11__[\"bar\"],\n    circle: _point__WEBPACK_IMPORTED_MODULE_15__[\"circle\"],\n    geoshape: _geoshape__WEBPACK_IMPORTED_MODULE_12__[\"geoshape\"],\n    image: _image__WEBPACK_IMPORTED_MODULE_13__[\"image\"],\n    line: _line__WEBPACK_IMPORTED_MODULE_14__[\"line\"],\n    point: _point__WEBPACK_IMPORTED_MODULE_15__[\"point\"],\n    rect: _rect__WEBPACK_IMPORTED_MODULE_16__[\"rect\"],\n    rule: _rule__WEBPACK_IMPORTED_MODULE_17__[\"rule\"],\n    square: _point__WEBPACK_IMPORTED_MODULE_15__[\"square\"],\n    text: _text__WEBPACK_IMPORTED_MODULE_18__[\"text\"],\n    tick: _tick__WEBPACK_IMPORTED_MODULE_19__[\"tick\"],\n    trail: _line__WEBPACK_IMPORTED_MODULE_14__[\"trail\"]\n};\nfunction parseMarkGroups(model) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"contains\"])([_mark__WEBPACK_IMPORTED_MODULE_4__[\"LINE\"], _mark__WEBPACK_IMPORTED_MODULE_4__[\"AREA\"], _mark__WEBPACK_IMPORTED_MODULE_4__[\"TRAIL\"]], model.mark)) {\n        const details = Object(_encoding__WEBPACK_IMPORTED_MODULE_3__[\"pathGroupingFields\"])(model.mark, model.encoding);\n        if (details.length > 0) {\n            return getPathGroups(model, details);\n        }\n        // otherwise use standard mark groups\n    }\n    else if (Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"contains\"])([_mark__WEBPACK_IMPORTED_MODULE_4__[\"BAR\"]], model.mark)) {\n        const hasCornerRadius = _vega_schema__WEBPACK_IMPORTED_MODULE_7__[\"VG_CORNERRADIUS_CHANNELS\"].some(prop => Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])(prop, model.markDef, model.config));\n        if (model.stack && !model.fieldDef('size') && hasCornerRadius) {\n            return getGroupsForStackedBarWithCornerRadius(model);\n        }\n    }\n    return getMarkGroup(model);\n}\nconst FACETED_PATH_PREFIX = 'faceted_path_';\nfunction getPathGroups(model, details) {\n    // TODO: for non-stacked plot, map order to zindex. (Maybe rename order for layer to zindex?)\n    return [\n        {\n            name: model.getName('pathgroup'),\n            type: 'group',\n            from: {\n                facet: {\n                    name: FACETED_PATH_PREFIX + model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_2__[\"DataSourceType\"].Main),\n                    data: model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_2__[\"DataSourceType\"].Main),\n                    groupby: details\n                }\n            },\n            encode: {\n                update: {\n                    width: { field: { group: 'width' } },\n                    height: { field: { group: 'height' } }\n                }\n            },\n            // With subfacet for line/area group, need to use faceted data from above.\n            marks: getMarkGroup(model, { fromPrefix: FACETED_PATH_PREFIX })\n        }\n    ];\n}\nconst STACK_GROUP_PREFIX = 'stack_group_';\n/**\n * We need to put stacked bars into groups in order to enable cornerRadius for stacks.\n * If stack is used and the model doesn't have size encoding, we put the mark into groups,\n * and apply cornerRadius properties at the group.\n */\nfunction getGroupsForStackedBarWithCornerRadius(model) {\n    // Generate the mark\n    const [mark] = getMarkGroup(model, { fromPrefix: STACK_GROUP_PREFIX });\n    // Get the scale for the stacked field\n    const fieldScale = model.scaleName(model.stack.fieldChannel);\n    const stackField = (opt = {}) => model.vgField(model.stack.fieldChannel, opt);\n    // Find the min/max of the pixel value on the stacked direction\n    const stackFieldGroup = (func, expr) => {\n        const vgFieldMinMax = [\n            stackField({ prefix: 'min', suffix: 'start', expr }),\n            stackField({ prefix: 'max', suffix: 'start', expr }),\n            stackField({ prefix: 'min', suffix: 'end', expr }),\n            stackField({ prefix: 'max', suffix: 'end', expr })\n        ];\n        return `${func}(${vgFieldMinMax.map(field => `scale('${fieldScale}',${field})`).join(',')})`;\n    };\n    let groupUpdate;\n    let innerGroupUpdate;\n    // Build the encoding for group and an inner group\n    if (model.stack.fieldChannel === 'x') {\n        // Move cornerRadius, y/yc/y2/height properties to group\n        // Group x/x2 should be the min/max of the marks within\n        groupUpdate = Object.assign(Object.assign({}, Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"pick\"])(mark.encode.update, ['y', 'yc', 'y2', 'height', ..._vega_schema__WEBPACK_IMPORTED_MODULE_7__[\"VG_CORNERRADIUS_CHANNELS\"]])), { x: { signal: stackFieldGroup('min', 'datum') }, x2: { signal: stackFieldGroup('max', 'datum') }, clip: { value: true } });\n        // Inner group should revert the x translation, and pass height through\n        innerGroupUpdate = {\n            x: { field: { group: 'x' }, mult: -1 },\n            height: { field: { group: 'height' } }\n        };\n        // The marks should use the same height as group, without y/yc/y2 properties (because it's already done by group)\n        // This is why size encoding is not supported yet\n        mark.encode.update = Object.assign(Object.assign({}, Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"omit\"])(mark.encode.update, ['y', 'yc', 'y2'])), { height: { field: { group: 'height' } } });\n    }\n    else {\n        groupUpdate = Object.assign(Object.assign({}, Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"pick\"])(mark.encode.update, ['x', 'xc', 'x2', 'width'])), { y: { signal: stackFieldGroup('min', 'datum') }, y2: { signal: stackFieldGroup('max', 'datum') }, clip: { value: true } });\n        innerGroupUpdate = {\n            y: { field: { group: 'y' }, mult: -1 },\n            width: { field: { group: 'width' } }\n        };\n        mark.encode.update = Object.assign(Object.assign({}, Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"omit\"])(mark.encode.update, ['x', 'xc', 'x2'])), { width: { field: { group: 'width' } } });\n    }\n    // Deal with cornerRadius properties\n    for (const key of _vega_schema__WEBPACK_IMPORTED_MODULE_7__[\"VG_CORNERRADIUS_CHANNELS\"]) {\n        const configValue = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkConfig\"])(key, model.markDef, model.config);\n        // Move from mark to group\n        if (mark.encode.update[key]) {\n            groupUpdate[key] = mark.encode.update[key];\n            delete mark.encode.update[key];\n        }\n        else if (configValue) {\n            groupUpdate[key] = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"signalOrValueRef\"])(configValue);\n        }\n        // Overwrite any cornerRadius on mark set by config --- they are already moved to the group\n        if (configValue) {\n            mark.encode.update[key] = { value: 0 };\n        }\n    }\n    // For bin and time unit, we have to add bin/timeunit -end channels.\n    const groupByField = model.fieldDef(model.stack.groupbyChannel);\n    const groupby = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(groupByField) ? [Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(groupByField)] : [];\n    if ((groupByField === null || groupByField === void 0 ? void 0 : groupByField.bin) || (groupByField === null || groupByField === void 0 ? void 0 : groupByField.timeUnit)) {\n        groupby.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(groupByField, { binSuffix: 'end' }));\n    }\n    const strokeProperties = [\n        'stroke',\n        'strokeWidth',\n        'strokeJoin',\n        'strokeCap',\n        'strokeDash',\n        'strokeDashOffset',\n        'strokeMiterLimit',\n        'strokeOpacity'\n    ];\n    // Generate stroke properties for the group\n    groupUpdate = strokeProperties.reduce((encode, prop) => {\n        if (mark.encode.update[prop]) {\n            return Object.assign(Object.assign({}, encode), { [prop]: mark.encode.update[prop] });\n        }\n        else {\n            const configValue = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkConfig\"])(prop, model.markDef, model.config);\n            if (configValue !== undefined) {\n                return Object.assign(Object.assign({}, encode), { [prop]: Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"signalOrValueRef\"])(configValue) });\n            }\n            else {\n                return encode;\n            }\n        }\n    }, groupUpdate);\n    // Apply strokeForeground and strokeOffset if stroke is used\n    if (groupUpdate.stroke) {\n        groupUpdate.strokeForeground = { value: true };\n        groupUpdate.strokeOffset = { value: 0 };\n    }\n    return [\n        {\n            type: 'group',\n            from: {\n                facet: {\n                    data: model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_2__[\"DataSourceType\"].Main),\n                    name: STACK_GROUP_PREFIX + model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_2__[\"DataSourceType\"].Main),\n                    groupby,\n                    aggregate: {\n                        fields: [\n                            stackField({ suffix: 'start' }),\n                            stackField({ suffix: 'start' }),\n                            stackField({ suffix: 'end' }),\n                            stackField({ suffix: 'end' })\n                        ],\n                        ops: ['min', 'max', 'min', 'max']\n                    }\n                }\n            },\n            encode: {\n                update: groupUpdate\n            },\n            marks: [\n                {\n                    type: 'group',\n                    encode: { update: innerGroupUpdate },\n                    marks: [mark]\n                }\n            ]\n        }\n    ];\n}\nfunction getSort(model) {\n    const { encoding, stack, mark, markDef, config } = model;\n    const order = encoding.order;\n    if ((!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(order) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isValueDef\"])(order) && Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"isNullOrFalse\"])(order.value)) ||\n        (!order && Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"isNullOrFalse\"])(Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('order', markDef, config)))) {\n        return undefined;\n    }\n    else if ((Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(order) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(order)) && !stack) {\n        // Sort by the order field if it is specified and the field is not stacked. (For stacked field, order specify stack order.)\n        return Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"sortParams\"])(order, { expr: 'datum' });\n    }\n    else if (Object(_mark__WEBPACK_IMPORTED_MODULE_4__[\"isPathMark\"])(mark)) {\n        // For both line and area, we sort values based on dimension by default\n        const dimensionChannel = markDef.orient === 'horizontal' ? 'y' : 'x';\n        const dimensionChannelDef = encoding[dimensionChannel];\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(dimensionChannelDef)) {\n            const s = dimensionChannelDef.sort;\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(s)) {\n                return {\n                    field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionChannelDef, { prefix: dimensionChannel, suffix: 'sort_index', expr: 'datum' })\n                };\n            }\n            else if (Object(_sort__WEBPACK_IMPORTED_MODULE_5__[\"isSortField\"])(s)) {\n                return {\n                    field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])({\n                        // FIXME: this op might not already exist?\n                        // FIXME: what if dimensionChannel (x or y) contains custom domain?\n                        aggregate: Object(_encoding__WEBPACK_IMPORTED_MODULE_3__[\"isAggregate\"])(model.encoding) ? s.op : undefined,\n                        field: s.field\n                    }, { expr: 'datum' })\n                };\n            }\n            else if (Object(_sort__WEBPACK_IMPORTED_MODULE_5__[\"isSortByEncoding\"])(s)) {\n                const fieldDefToSort = model.fieldDef(s.encoding);\n                return {\n                    field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(fieldDefToSort, { expr: 'datum' }),\n                    order: s.order\n                };\n            }\n            else if (s === null) {\n                return undefined;\n            }\n            else {\n                return {\n                    field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(dimensionChannelDef, {\n                        // For stack with imputation, we only have bin_mid\n                        binSuffix: model.stack && model.stack.impute ? 'mid' : undefined,\n                        expr: 'datum'\n                    })\n                };\n            }\n        }\n        return undefined;\n    }\n    return undefined;\n}\nfunction getMarkGroup(model, opt = { fromPrefix: '' }) {\n    const { mark, markDef, encoding, config } = model;\n    const clip = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"getFirstDefined\"])(markDef.clip, scaleClip(model), projectionClip(model));\n    const style = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getStyles\"])(markDef);\n    const key = encoding.key;\n    const sort = getSort(model);\n    const interactive = interactiveFlag(model);\n    const aria = Object(_common__WEBPACK_IMPORTED_MODULE_8__[\"getMarkPropOrConfig\"])('aria', markDef, config);\n    const postEncodingTransform = markCompiler[mark].postEncodingTransform\n        ? markCompiler[mark].postEncodingTransform(model)\n        : null;\n    return [\n        Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: model.getName('marks'), type: markCompiler[mark].vgMark }, (clip ? { clip: true } : {})), (style ? { style } : {})), (key ? { key: key.field } : {})), (sort ? { sort } : {})), (interactive ? interactive : {})), (aria === false ? { aria } : {})), { from: { data: opt.fromPrefix + model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_2__[\"DataSourceType\"].Main) }, encode: {\n                update: markCompiler[mark].encodeEntry(model)\n            } }), (postEncodingTransform\n            ? {\n                transform: postEncodingTransform\n            }\n            : {}))\n    ];\n}\n/**\n * If scales are bound to interval selections, we want to automatically clip\n * marks to account for panning/zooming interactions. We identify bound scales\n * by the selectionExtent property, which gets added during scale parsing.\n */\nfunction scaleClip(model) {\n    const xScale = model.getScaleComponent('x');\n    const yScale = model.getScaleComponent('y');\n    return (xScale && xScale.get('selectionExtent')) || (yScale && yScale.get('selectionExtent')) ? true : undefined;\n}\n/**\n * If we use a custom projection with auto-fitting to the geodata extent,\n * we need to clip to ensure the chart size doesn't explode.\n */\nfunction projectionClip(model) {\n    const projection = model.component.projection;\n    return projection && !projection.isFit ? true : undefined;\n}\n/**\n * Only output interactive flags if we have selections defined somewhere in our model hierarchy.\n */\nfunction interactiveFlag(model) {\n    if (!model.component.selection)\n        return null;\n    const unitCount = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"keys\"])(model.component.selection).length;\n    let parentCount = unitCount;\n    let parent = model.parent;\n    while (parent && parentCount === 0) {\n        parentCount = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"keys\"])(parent.component.selection).length;\n        parent = parent.parent;\n    }\n    return parentCount\n        ? {\n            interactive: unitCount > 0 || !!model.encoding.tooltip\n        }\n        : null;\n}\n//# sourceMappingURL=mark.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/mark.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/point.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/point.js ***!
  \****************************************************************/
/*! exports provided: shapeMixins, point, circle, square */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"shapeMixins\", function() { return shapeMixins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return point; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"circle\", function() { return circle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"square\", function() { return square; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nfunction encodeEntry(model, fixedShape) {\n    const { config } = model;\n    return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n        align: 'ignore',\n        baseline: 'ignore',\n        color: 'include',\n        size: 'include',\n        orient: 'ignore',\n        theta: 'ignore'\n    })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('x', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointPosition\"]('y', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"nonPosition\"]('size', model)), _encode__WEBPACK_IMPORTED_MODULE_0__[\"nonPosition\"]('angle', model)), shapeMixins(model, config, fixedShape));\n}\nfunction shapeMixins(model, config, fixedShape) {\n    if (fixedShape) {\n        return { shape: { value: fixedShape } };\n    }\n    return _encode__WEBPACK_IMPORTED_MODULE_0__[\"nonPosition\"]('shape', model);\n}\nconst point = {\n    vgMark: 'symbol',\n    encodeEntry: (model) => {\n        return encodeEntry(model);\n    }\n};\nconst circle = {\n    vgMark: 'symbol',\n    encodeEntry: (model) => {\n        return encodeEntry(model, 'circle');\n    }\n};\nconst square = {\n    vgMark: 'symbol',\n    encodeEntry: (model) => {\n        return encodeEntry(model, 'square');\n    }\n};\n//# sourceMappingURL=point.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/point.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/rect.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/rect.js ***!
  \***************************************************************/
/*! exports provided: rect */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rect\", function() { return rect; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst rect = {\n    vgMark: 'rect',\n    encodeEntry: (model) => {\n        return Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            orient: 'ignore',\n            size: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'x', 'rect')), _encode__WEBPACK_IMPORTED_MODULE_0__[\"rectPosition\"](model, 'y', 'rect'));\n    }\n};\n//# sourceMappingURL=rect.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/rect.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/rule.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/rule.js ***!
  \***************************************************************/
/*! exports provided: rule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rule\", function() { return rule; });\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\nconst rule = {\n    vgMark: 'rule',\n    encodeEntry: (model) => {\n        const { markDef } = model;\n        const orient = markDef.orient;\n        if (!model.encoding.x && !model.encoding.y && !model.encoding.latitude && !model.encoding.longitude) {\n            // Show nothing if we have none of x, y, lat, and long.\n            return {};\n        }\n        return Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_0__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            orient: 'ignore',\n            size: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointOrRangePosition\"]('x', model, {\n            defaultPos: orient === 'horizontal' ? 'zeroOrMax' : 'mid',\n            defaultPos2: 'zeroOrMin',\n            range: orient !== 'vertical' // include x2 for horizontal or line segment rule\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"pointOrRangePosition\"]('y', model, {\n            defaultPos: orient === 'vertical' ? 'zeroOrMax' : 'mid',\n            defaultPos2: 'zeroOrMin',\n            range: orient !== 'horizontal' // include y2 for vertical or line segment rule\n        })), _encode__WEBPACK_IMPORTED_MODULE_0__[\"nonPosition\"]('size', model, {\n            vgChannel: 'strokeWidth' // VL's rule size is strokeWidth\n        }));\n    }\n};\n//# sourceMappingURL=rule.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/rule.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/text.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/text.js ***!
  \***************************************************************/
/*! exports provided: text */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"text\", function() { return text; });\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\n\nconst text = {\n    vgMark: 'text',\n    encodeEntry: (model) => {\n        const { config, encoding } = model;\n        return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_1__[\"baseEncodeEntry\"](model, {\n            align: 'include',\n            baseline: 'include',\n            color: 'include',\n            size: 'ignore',\n            orient: 'ignore',\n            theta: 'include'\n        })), _encode__WEBPACK_IMPORTED_MODULE_1__[\"pointPosition\"]('x', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_1__[\"pointPosition\"]('y', model, { defaultPos: 'mid' })), _encode__WEBPACK_IMPORTED_MODULE_1__[\"text\"](model)), _encode__WEBPACK_IMPORTED_MODULE_1__[\"nonPosition\"]('size', model, {\n            vgChannel: 'fontSize' // VL's text size is fontSize\n        })), _encode__WEBPACK_IMPORTED_MODULE_1__[\"nonPosition\"]('angle', model)), _encode__WEBPACK_IMPORTED_MODULE_1__[\"valueIfDefined\"]('align', align(model.markDef, encoding, config))), _encode__WEBPACK_IMPORTED_MODULE_1__[\"valueIfDefined\"]('baseline', baseline(model.markDef, encoding, config))), _encode__WEBPACK_IMPORTED_MODULE_1__[\"pointPosition\"]('radius', model, { defaultPos: null, isMidPoint: true })), _encode__WEBPACK_IMPORTED_MODULE_1__[\"pointPosition\"]('theta', model, { defaultPos: null, isMidPoint: true }));\n    }\n};\nfunction align(markDef, encoding, config) {\n    const a = Object(_common__WEBPACK_IMPORTED_MODULE_0__[\"getMarkPropOrConfig\"])('align', markDef, config);\n    if (a === undefined) {\n        return 'center';\n    }\n    // If there is a config, Vega-parser will process this already.\n    return undefined;\n}\nfunction baseline(markDef, encoding, config) {\n    const b = Object(_common__WEBPACK_IMPORTED_MODULE_0__[\"getMarkPropOrConfig\"])('baseline', markDef, config);\n    if (b === undefined) {\n        return 'middle';\n    }\n    // If there is a config, Vega-parser will process this already.\n    return undefined;\n}\n//# sourceMappingURL=text.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/text.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/mark/tick.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/mark/tick.js ***!
  \***************************************************************/
/*! exports provided: tick */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tick\", function() { return tick; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _encode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\n\n\n\n\nconst tick = {\n    vgMark: 'rect',\n    encodeEntry: (model) => {\n        const { config, markDef } = model;\n        const orient = markDef.orient;\n        const vgSizeChannel = orient === 'horizontal' ? 'width' : 'height';\n        const vgThicknessChannel = orient === 'horizontal' ? 'height' : 'width';\n        return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _encode__WEBPACK_IMPORTED_MODULE_4__[\"baseEncodeEntry\"](model, {\n            align: 'ignore',\n            baseline: 'ignore',\n            color: 'include',\n            orient: 'ignore',\n            size: 'ignore',\n            theta: 'ignore'\n        })), _encode__WEBPACK_IMPORTED_MODULE_4__[\"pointPosition\"]('x', model, { defaultPos: 'mid', vgChannel: 'xc' })), _encode__WEBPACK_IMPORTED_MODULE_4__[\"pointPosition\"]('y', model, { defaultPos: 'mid', vgChannel: 'yc' })), _encode__WEBPACK_IMPORTED_MODULE_4__[\"nonPosition\"]('size', model, {\n            defaultValue: defaultSize(model),\n            vgChannel: vgSizeChannel\n        })), { [vgThicknessChannel]: Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"signalOrValueRef\"])(Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"getMarkPropOrConfig\"])('thickness', markDef, config)) });\n    }\n};\nfunction defaultSize(model) {\n    var _a;\n    const { config, markDef } = model;\n    const { orient } = markDef;\n    const vgSizeChannel = orient === 'horizontal' ? 'width' : 'height';\n    const scale = model.getScaleComponent(orient === 'horizontal' ? 'x' : 'y');\n    const markPropOrConfig = (_a = Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"getMarkPropOrConfig\"])('size', markDef, config, { vgChannel: vgSizeChannel })) !== null && _a !== void 0 ? _a : config.tick.bandSize;\n    if (markPropOrConfig !== undefined) {\n        return markPropOrConfig;\n    }\n    else {\n        const scaleRange = scale ? scale.get('range') : undefined;\n        if (scaleRange && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_2__[\"isVgRangeStep\"])(scaleRange) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(scaleRange.step)) {\n            return (scaleRange.step * 3) / 4;\n        }\n        const defaultViewStep = Object(_config__WEBPACK_IMPORTED_MODULE_1__[\"getViewConfigDiscreteStep\"])(config.view, vgSizeChannel);\n        return (defaultViewStep * 3) / 4;\n    }\n}\n//# sourceMappingURL=tick.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/mark/tick.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/model.js":
/*!***********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/model.js ***!
  \***********************************************************/
/*! exports provided: NameMap, isUnitModel, isFacetModel, isConcatModel, isLayerModel, Model, ModelWithField */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NameMap\", function() { return NameMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUnitModel\", function() { return isUnitModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFacetModel\", function() { return isFacetModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConcatModel\", function() { return isConcatModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLayerModel\", function() { return isLayerModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Model\", function() { return Model; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ModelWithField\", function() { return ModelWithField; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _spec__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../spec */ \"./node_modules/vega-lite/build/src/spec/index.js\");\n/* harmony import */ var _spec_base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../spec/base */ \"./node_modules/vega-lite/build/src/spec/base.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../title */ \"./node_modules/vega-lite/build/src/title.js\");\n/* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../transform */ \"./node_modules/vega-lite/build/src/transform.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _axis_assemble__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./axis/assemble */ \"./node_modules/vega-lite/build/src/compile/axis/assemble.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _header_assemble__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./header/assemble */ \"./node_modules/vega-lite/build/src/compile/header/assemble.js\");\n/* harmony import */ var _header_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./header/component */ \"./node_modules/vega-lite/build/src/compile/header/component.js\");\n/* harmony import */ var _layoutsize_assemble__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./layoutsize/assemble */ \"./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js\");\n/* harmony import */ var _layoutsize_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./layoutsize/component */ \"./node_modules/vega-lite/build/src/compile/layoutsize/component.js\");\n/* harmony import */ var _legend_assemble__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./legend/assemble */ \"./node_modules/vega-lite/build/src/compile/legend/assemble.js\");\n/* harmony import */ var _legend_parse__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./legend/parse */ \"./node_modules/vega-lite/build/src/compile/legend/parse.js\");\n/* harmony import */ var _projection_assemble__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./projection/assemble */ \"./node_modules/vega-lite/build/src/compile/projection/assemble.js\");\n/* harmony import */ var _projection_parse__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./projection/parse */ \"./node_modules/vega-lite/build/src/compile/projection/parse.js\");\n/* harmony import */ var _scale_assemble__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./scale/assemble */ \"./node_modules/vega-lite/build/src/compile/scale/assemble.js\");\n/* harmony import */ var _scale_domain__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./scale/domain */ \"./node_modules/vega-lite/build/src/compile/scale/domain.js\");\n/* harmony import */ var _scale_parse__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./scale/parse */ \"./node_modules/vega-lite/build/src/compile/scale/parse.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass NameMap {\n    constructor() {\n        this.nameMap = {};\n    }\n    rename(oldName, newName) {\n        this.nameMap[oldName] = newName;\n    }\n    has(name) {\n        return this.nameMap[name] !== undefined;\n    }\n    get(name) {\n        // If the name appears in the _nameMap, we need to read its new name.\n        // We have to loop over the dict just in case the new name also gets renamed.\n        while (this.nameMap[name] && name !== this.nameMap[name]) {\n            name = this.nameMap[name];\n        }\n        return name;\n    }\n}\n/*\n  We use type guards instead of `instanceof` as `instanceof` makes\n  different parts of the compiler depend on the actual implementation of\n  the model classes, which in turn depend on different parts of the compiler.\n  Thus, `instanceof` leads to circular dependency problems.\n\n  On the other hand, type guards only make different parts of the compiler\n  depend on the type of the model classes, but not the actual implementation.\n*/\nfunction isUnitModel(model) {\n    return (model === null || model === void 0 ? void 0 : model.type) === 'unit';\n}\nfunction isFacetModel(model) {\n    return (model === null || model === void 0 ? void 0 : model.type) === 'facet';\n}\nfunction isConcatModel(model) {\n    return (model === null || model === void 0 ? void 0 : model.type) === 'concat';\n}\nfunction isLayerModel(model) {\n    return (model === null || model === void 0 ? void 0 : model.type) === 'layer';\n}\nclass Model {\n    constructor(spec, type, parent, parentGivenName, config, resolve, view) {\n        var _a, _b;\n        this.type = type;\n        this.parent = parent;\n        this.config = config;\n        this.children = [];\n        /**\n         * Corrects the data references in marks after assemble.\n         */\n        this.correctDataNames = (mark) => {\n            // TODO: make this correct\n            // for normal data references\n            if (mark.from && mark.from.data) {\n                mark.from.data = this.lookupDataSource(mark.from.data);\n            }\n            // for access to facet data\n            if (mark.from && mark.from.facet && mark.from.facet.data) {\n                mark.from.facet.data = this.lookupDataSource(mark.from.facet.data);\n            }\n            return mark;\n        };\n        this.parent = parent;\n        this.config = config;\n        this.view = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(view);\n        // If name is not provided, always use parent's givenName to avoid name conflicts.\n        this.name = (_a = spec.name) !== null && _a !== void 0 ? _a : parentGivenName;\n        this.title = Object(_title__WEBPACK_IMPORTED_MODULE_9__[\"isText\"])(spec.title) ? { text: spec.title } : spec.title ? this.initTitle(spec.title) : undefined;\n        // Shared name maps\n        this.scaleNameMap = parent ? parent.scaleNameMap : new NameMap();\n        this.projectionNameMap = parent ? parent.projectionNameMap : new NameMap();\n        this.signalNameMap = parent ? parent.signalNameMap : new NameMap();\n        this.data = spec.data;\n        this.description = spec.description;\n        this.transforms = Object(_transform__WEBPACK_IMPORTED_MODULE_10__[\"normalizeTransform\"])((_b = spec.transform) !== null && _b !== void 0 ? _b : []);\n        this.layout = type === 'layer' || type === 'unit' ? {} : Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"extractCompositionLayout\"])(spec, type, config);\n        this.component = {\n            data: {\n                sources: parent ? parent.component.data.sources : [],\n                outputNodes: parent ? parent.component.data.outputNodes : {},\n                outputNodeRefCounts: parent ? parent.component.data.outputNodeRefCounts : {},\n                // data is faceted if the spec is a facet spec or the parent has faceted data and data is undefined\n                isFaceted: Object(_spec__WEBPACK_IMPORTED_MODULE_7__[\"isFacetSpec\"])(spec) || (parent && parent.component.data.isFaceted && spec.data === undefined)\n            },\n            layoutSize: new _split__WEBPACK_IMPORTED_MODULE_26__[\"Split\"](),\n            layoutHeaders: { row: {}, column: {}, facet: {} },\n            mark: null,\n            resolve: Object.assign({ scale: {}, axis: {}, legend: {} }, (resolve ? Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"duplicate\"])(resolve) : {})),\n            selection: null,\n            scales: null,\n            projection: null,\n            axes: {},\n            legends: {}\n        };\n    }\n    initTitle(title) {\n        const props = Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(title);\n        const titleInternal = {\n            text: Object(_common__WEBPACK_IMPORTED_MODULE_14__[\"signalRefOrValue\"])(title.text)\n        };\n        for (const prop of props) {\n            titleInternal[prop] = Object(_common__WEBPACK_IMPORTED_MODULE_14__[\"signalRefOrValue\"])(title[prop]);\n        }\n        return titleInternal;\n    }\n    get width() {\n        return this.getSizeSignalRef('width');\n    }\n    get height() {\n        return this.getSizeSignalRef('height');\n    }\n    parse() {\n        this.parseScale();\n        this.parseLayoutSize(); // depends on scale\n        this.renameTopLevelLayoutSizeSignal();\n        this.parseSelections();\n        this.parseProjection();\n        this.parseData(); // (pathorder) depends on markDef; selection filters depend on parsed selections; depends on projection because some transforms require the finalized projection name.\n        this.parseAxesAndHeaders(); // depends on scale and layout size\n        this.parseLegends(); // depends on scale, markDef\n        this.parseMarkGroup(); // depends on data name, scale, layout size, axisGroup, and children's scale, axis, legend and mark.\n    }\n    parseScale() {\n        Object(_scale_parse__WEBPACK_IMPORTED_MODULE_25__[\"parseScales\"])(this);\n    }\n    parseProjection() {\n        Object(_projection_parse__WEBPACK_IMPORTED_MODULE_22__[\"parseProjection\"])(this);\n    }\n    /**\n     * Rename top-level spec's size to be just width / height, ignoring model name.\n     * This essentially merges the top-level spec's width/height signals with the width/height signals\n     * to help us reduce redundant signals declaration.\n     */\n    renameTopLevelLayoutSizeSignal() {\n        if (this.getName('width') !== 'width') {\n            this.renameSignal(this.getName('width'), 'width');\n        }\n        if (this.getName('height') !== 'height') {\n            this.renameSignal(this.getName('height'), 'height');\n        }\n    }\n    parseLegends() {\n        Object(_legend_parse__WEBPACK_IMPORTED_MODULE_20__[\"parseLegend\"])(this);\n    }\n    assembleGroupStyle() {\n        var _a, _b;\n        if (this.type === 'unit' || this.type === 'layer') {\n            return (_b = (_a = this.view) === null || _a === void 0 ? void 0 : _a.style) !== null && _b !== void 0 ? _b : 'cell';\n        }\n        return undefined;\n    }\n    assembleEncodeFromView(view) {\n        // Exclude \"style\"\n        const { style: _ } = view, baseView = __rest(view, [\"style\"]);\n        const e = {};\n        for (const property of Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"keys\"])(baseView)) {\n            const value = baseView[property];\n            if (value !== undefined) {\n                e[property] = Object(_common__WEBPACK_IMPORTED_MODULE_14__[\"signalOrValueRef\"])(value);\n            }\n        }\n        return e;\n    }\n    assembleGroupEncodeEntry(isTopLevel) {\n        let encodeEntry = {};\n        if (this.view) {\n            encodeEntry = this.assembleEncodeFromView(this.view);\n        }\n        if (!isTopLevel) {\n            // Descriptions are already added to the top-level description so we only need to add them to the inner views.\n            if (this.description) {\n                encodeEntry['description'] = Object(_common__WEBPACK_IMPORTED_MODULE_14__[\"signalOrValueRef\"])(this.description);\n            }\n            // For top-level spec, we can set the global width and height signal to adjust the group size.\n            // For other child specs, we have to manually set width and height in the encode entry.\n            if (this.type === 'unit' || this.type === 'layer') {\n                return Object.assign({ width: this.getSizeSignalRef('width'), height: this.getSizeSignalRef('height') }, (encodeEntry !== null && encodeEntry !== void 0 ? encodeEntry : {}));\n            }\n        }\n        return Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"isEmpty\"])(encodeEntry) ? undefined : encodeEntry;\n    }\n    assembleLayout() {\n        if (!this.layout) {\n            return undefined;\n        }\n        const _a = this.layout, { spacing } = _a, layout = __rest(_a, [\"spacing\"]);\n        const { component, config } = this;\n        const titleBand = Object(_header_assemble__WEBPACK_IMPORTED_MODULE_15__[\"assembleLayoutTitleBand\"])(component.layoutHeaders, config);\n        return Object.assign(Object.assign(Object.assign({ padding: spacing }, this.assembleDefaultLayout()), layout), (titleBand ? { titleBand } : {}));\n    }\n    assembleDefaultLayout() {\n        return {};\n    }\n    assembleHeaderMarks() {\n        const { layoutHeaders } = this.component;\n        let headerMarks = [];\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_0__[\"FACET_CHANNELS\"]) {\n            if (layoutHeaders[channel].title) {\n                headerMarks.push(Object(_header_assemble__WEBPACK_IMPORTED_MODULE_15__[\"assembleTitleGroup\"])(this, channel));\n            }\n        }\n        for (const channel of _header_component__WEBPACK_IMPORTED_MODULE_16__[\"HEADER_CHANNELS\"]) {\n            headerMarks = headerMarks.concat(Object(_header_assemble__WEBPACK_IMPORTED_MODULE_15__[\"assembleHeaderGroups\"])(this, channel));\n        }\n        return headerMarks;\n    }\n    assembleAxes() {\n        return Object(_axis_assemble__WEBPACK_IMPORTED_MODULE_13__[\"assembleAxes\"])(this.component.axes, this.config);\n    }\n    assembleLegends() {\n        return Object(_legend_assemble__WEBPACK_IMPORTED_MODULE_19__[\"assembleLegends\"])(this);\n    }\n    assembleProjections() {\n        return Object(_projection_assemble__WEBPACK_IMPORTED_MODULE_21__[\"assembleProjections\"])(this);\n    }\n    assembleTitle() {\n        var _a, _b, _c;\n        const _d = (_a = this.title) !== null && _a !== void 0 ? _a : {}, { encoding } = _d, titleNoEncoding = __rest(_d, [\"encoding\"]);\n        const title = Object.assign(Object.assign(Object.assign({}, Object(_title__WEBPACK_IMPORTED_MODULE_9__[\"extractTitleConfig\"])(this.config.title).nonMark), titleNoEncoding), (encoding ? { encode: { update: encoding } } : {}));\n        if (title.text) {\n            if (Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"contains\"])(['unit', 'layer'], this.type)) {\n                // Unit/Layer\n                if (Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"contains\"])(['middle', undefined], title.anchor)) {\n                    title.frame = (_b = title.frame) !== null && _b !== void 0 ? _b : 'group';\n                }\n            }\n            else {\n                // composition with Vega layout\n                // Set title = \"start\" by default for composition as \"middle\" does not look nice\n                // https://github.com/vega/vega/issues/960#issuecomment-471360328\n                title.anchor = (_c = title.anchor) !== null && _c !== void 0 ? _c : 'start';\n            }\n            return Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"isEmpty\"])(title) ? undefined : title;\n        }\n        return undefined;\n    }\n    /**\n     * Assemble the mark group for this model. We accept optional `signals` so that we can include concat top-level signals with the top-level model's local signals.\n     */\n    assembleGroup(signals = []) {\n        const group = {};\n        signals = signals.concat(this.assembleSignals());\n        if (signals.length > 0) {\n            group.signals = signals;\n        }\n        const layout = this.assembleLayout();\n        if (layout) {\n            group.layout = layout;\n        }\n        group.marks = [].concat(this.assembleHeaderMarks(), this.assembleMarks());\n        // Only include scales if this spec is top-level or if parent is facet.\n        // (Otherwise, it will be merged with upper-level's scope.)\n        const scales = !this.parent || isFacetModel(this.parent) ? Object(_scale_assemble__WEBPACK_IMPORTED_MODULE_23__[\"assembleScales\"])(this) : [];\n        if (scales.length > 0) {\n            group.scales = scales;\n        }\n        const axes = this.assembleAxes();\n        if (axes.length > 0) {\n            group.axes = axes;\n        }\n        const legends = this.assembleLegends();\n        if (legends.length > 0) {\n            group.legends = legends;\n        }\n        return group;\n    }\n    getName(text) {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_11__[\"varName\"])((this.name ? this.name + '_' : '') + text);\n    }\n    getDataName(type) {\n        return this.getName(_data__WEBPACK_IMPORTED_MODULE_2__[\"DataSourceType\"][type].toLowerCase());\n    }\n    /**\n     * Request a data source name for the given data source type and mark that data source as required.\n     * This method should be called in parse, so that all used data source can be correctly instantiated in assembleData().\n     * You can lookup the correct dataset name in assemble with `lookupDataSource`.\n     */\n    requestDataName(name) {\n        const fullName = this.getDataName(name);\n        // Increase ref count. This is critical because otherwise we won't create a data source.\n        // We also increase the ref counts on OutputNode.getSource() calls.\n        const refCounts = this.component.data.outputNodeRefCounts;\n        refCounts[fullName] = (refCounts[fullName] || 0) + 1;\n        return fullName;\n    }\n    getSizeSignalRef(layoutSizeType) {\n        if (isFacetModel(this.parent)) {\n            const sizeType = Object(_layoutsize_component__WEBPACK_IMPORTED_MODULE_18__[\"getSizeTypeFromLayoutSizeType\"])(layoutSizeType);\n            const channel = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getPositionScaleChannel\"])(sizeType);\n            const scaleComponent = this.component.scales[channel];\n            if (scaleComponent && !scaleComponent.merged) {\n                // independent scale\n                const type = scaleComponent.get('type');\n                const range = scaleComponent.get('range');\n                if (Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasDiscreteDomain\"])(type) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_12__[\"isVgRangeStep\"])(range)) {\n                    const scaleName = scaleComponent.get('name');\n                    const domain = Object(_scale_domain__WEBPACK_IMPORTED_MODULE_24__[\"assembleDomain\"])(this, channel);\n                    const field = Object(_scale_domain__WEBPACK_IMPORTED_MODULE_24__[\"getFieldFromDomain\"])(domain);\n                    if (field) {\n                        const fieldRef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])({ aggregate: 'distinct', field }, { expr: 'datum' });\n                        return {\n                            signal: Object(_layoutsize_assemble__WEBPACK_IMPORTED_MODULE_17__[\"sizeExpr\"])(scaleName, scaleComponent, fieldRef)\n                        };\n                    }\n                    else {\n                        _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].unknownField(channel));\n                        return null;\n                    }\n                }\n            }\n        }\n        return {\n            signal: this.signalNameMap.get(this.getName(layoutSizeType))\n        };\n    }\n    /**\n     * Lookup the name of the datasource for an output node. You probably want to call this in assemble.\n     */\n    lookupDataSource(name) {\n        const node = this.component.data.outputNodes[name];\n        if (!node) {\n            // Name not found in map so let's just return what we got.\n            // This can happen if we already have the correct name.\n            return name;\n        }\n        return node.getSource();\n    }\n    getSignalName(oldSignalName) {\n        return this.signalNameMap.get(oldSignalName);\n    }\n    renameSignal(oldName, newName) {\n        this.signalNameMap.rename(oldName, newName);\n    }\n    renameScale(oldName, newName) {\n        this.scaleNameMap.rename(oldName, newName);\n    }\n    renameProjection(oldName, newName) {\n        this.projectionNameMap.rename(oldName, newName);\n    }\n    /**\n     * @return scale name for a given channel after the scale has been parsed and named.\n     */\n    scaleName(originalScaleName, parse) {\n        if (parse) {\n            // During the parse phase always return a value\n            // No need to refer to rename map because a scale can't be renamed\n            // before it has the original name.\n            return this.getName(originalScaleName);\n        }\n        // If there is a scale for the channel, it should either\n        // be in the scale component or exist in the name map\n        if (\n        // If there is a scale for the channel, there should be a local scale component for it\n        (Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"isChannel\"])(originalScaleName) && Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"isScaleChannel\"])(originalScaleName) && this.component.scales[originalScaleName]) ||\n            // in the scale name map (the scale get merged by its parent)\n            this.scaleNameMap.has(this.getName(originalScaleName))) {\n            return this.scaleNameMap.get(this.getName(originalScaleName));\n        }\n        return undefined;\n    }\n    /**\n     * @return projection name after the projection has been parsed and named.\n     */\n    projectionName(parse) {\n        if (parse) {\n            // During the parse phase always return a value\n            // No need to refer to rename map because a projection can't be renamed\n            // before it has the original name.\n            return this.getName('projection');\n        }\n        if ((this.component.projection && !this.component.projection.merged) ||\n            this.projectionNameMap.has(this.getName('projection'))) {\n            return this.projectionNameMap.get(this.getName('projection'));\n        }\n        return undefined;\n    }\n    /**\n     * Traverse a model's hierarchy to get the scale component for a particular channel.\n     */\n    getScaleComponent(channel) {\n        /* istanbul ignore next: This is warning for debugging test */\n        if (!this.component.scales) {\n            throw new Error('getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().');\n        }\n        const localScaleComponent = this.component.scales[channel];\n        if (localScaleComponent && !localScaleComponent.merged) {\n            return localScaleComponent;\n        }\n        return this.parent ? this.parent.getScaleComponent(channel) : undefined;\n    }\n    /**\n     * Traverse a model's hierarchy to get a particular selection component.\n     */\n    getSelectionComponent(variableName, origName) {\n        let sel = this.component.selection[variableName];\n        if (!sel && this.parent) {\n            sel = this.parent.getSelectionComponent(variableName, origName);\n        }\n        if (!sel) {\n            throw new Error(_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].selectionNotFound(origName));\n        }\n        return sel;\n    }\n    /**\n     * Returns true if the model has a signalRef for an axis orient.\n     */\n    hasAxisOrientSignalRef() {\n        var _a, _b;\n        return (((_a = this.component.axes.x) === null || _a === void 0 ? void 0 : _a.some(a => a.hasOrientSignalRef())) || ((_b = this.component.axes.y) === null || _b === void 0 ? void 0 : _b.some(a => a.hasOrientSignalRef())));\n    }\n}\n/** Abstract class for UnitModel and FacetModel. Both of which can contain fieldDefs as a part of its own specification. */\nclass ModelWithField extends Model {\n    /** Get \"field\" reference for Vega */\n    vgField(channel, opt = {}) {\n        const fieldDef = this.fieldDef(channel);\n        if (!fieldDef) {\n            return undefined;\n        }\n        return Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(fieldDef, opt);\n    }\n    reduceFieldDef(f, init) {\n        return Object(_encoding__WEBPACK_IMPORTED_MODULE_3__[\"reduce\"])(this.getMapping(), (acc, cd, c) => {\n            const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldDef\"])(cd);\n            if (fieldDef) {\n                return f(acc, fieldDef, c);\n            }\n            return acc;\n        }, init);\n    }\n    forEachFieldDef(f, t) {\n        Object(_encoding__WEBPACK_IMPORTED_MODULE_3__[\"forEach\"])(this.getMapping(), (cd, c) => {\n            const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldDef\"])(cd);\n            if (fieldDef) {\n                f(fieldDef, c);\n            }\n        }, t);\n    }\n}\n//# sourceMappingURL=model.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/model.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/predicate.js":
/*!***************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/predicate.js ***!
  \***************************************************************/
/*! exports provided: expression */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expression\", function() { return expression; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../predicate */ \"./node_modules/vega-lite/build/src/predicate.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _selection_parse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./selection/parse */ \"./node_modules/vega-lite/build/src/compile/selection/parse.js\");\n\n\n\n\n/**\n * Converts a predicate into an expression.\n */\n// model is only used for selection filters.\nfunction expression(model, filterOp, node) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"logicalExpr\"])(filterOp, (predicate) => {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(predicate)) {\n            return predicate;\n        }\n        else if (Object(_predicate__WEBPACK_IMPORTED_MODULE_1__[\"isSelectionPredicate\"])(predicate)) {\n            return Object(_selection_parse__WEBPACK_IMPORTED_MODULE_3__[\"parseSelectionPredicate\"])(model, predicate.selection, node);\n        }\n        else {\n            // Filter Object\n            return Object(_predicate__WEBPACK_IMPORTED_MODULE_1__[\"fieldFilterExpression\"])(predicate);\n        }\n    });\n}\n//# sourceMappingURL=predicate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/predicate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/projection/assemble.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/projection/assemble.js ***!
  \*************************************************************************/
/*! exports provided: assembleProjections, assembleProjectionsForModelAndChildren, assembleProjectionForModel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleProjections\", function() { return assembleProjections; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleProjectionsForModelAndChildren\", function() { return assembleProjectionsForModelAndChildren; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleProjectionForModel\", function() { return assembleProjectionForModel; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n\n\n\nfunction assembleProjections(model) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_2__[\"isLayerModel\"])(model) || Object(_model__WEBPACK_IMPORTED_MODULE_2__[\"isConcatModel\"])(model)) {\n        return assembleProjectionsForModelAndChildren(model);\n    }\n    else {\n        return assembleProjectionForModel(model);\n    }\n}\nfunction assembleProjectionsForModelAndChildren(model) {\n    return model.children.reduce((projections, child) => {\n        return projections.concat(child.assembleProjections());\n    }, assembleProjectionForModel(model));\n}\nfunction assembleProjectionForModel(model) {\n    const component = model.component.projection;\n    if (!component || component.merged) {\n        return [];\n    }\n    const projection = component.combine();\n    const { name } = projection; // we need to extract name so that it is always present in the output and pass TS type validation\n    if (!component.data) {\n        // generate custom projection, no automatic fitting\n        return [\n            Object.assign(Object.assign({ name }, { translate: { signal: '[width / 2, height / 2]' } }), projection)\n        ];\n    }\n    else {\n        // generate projection that uses extent fitting\n        const size = {\n            signal: `[${component.size.map(ref => ref.signal).join(', ')}]`\n        };\n        const fits = component.data.reduce((sources, data) => {\n            const source = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_1__[\"isSignalRef\"])(data) ? data.signal : `data('${model.lookupDataSource(data)}')`;\n            if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"contains\"])(sources, source)) {\n                // build a unique list of sources\n                sources.push(source);\n            }\n            return sources;\n        }, []);\n        if (fits.length <= 0) {\n            throw new Error(\"Projection's fit didn't find any data sources\");\n        }\n        return [\n            Object.assign({ name,\n                size, fit: {\n                    signal: fits.length > 1 ? `[${fits.join(', ')}]` : fits[0]\n                } }, projection)\n        ];\n    }\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/projection/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/projection/component.js":
/*!**************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/projection/component.js ***!
  \**************************************************************************/
/*! exports provided: ProjectionComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ProjectionComponent\", function() { return ProjectionComponent; });\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n\nclass ProjectionComponent extends _split__WEBPACK_IMPORTED_MODULE_0__[\"Split\"] {\n    constructor(name, specifiedProjection, size, data) {\n        super(Object.assign({}, specifiedProjection), // all explicit properties of projection\n        { name } // name as initial implicit property\n        );\n        this.specifiedProjection = specifiedProjection;\n        this.size = size;\n        this.data = data;\n        this.merged = false;\n    }\n    /**\n     * Whether the projection parameters should fit provided data.\n     */\n    get isFit() {\n        return !!this.data;\n    }\n}\n//# sourceMappingURL=component.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/projection/component.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/projection/parse.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/projection/parse.js ***!
  \**********************************************************************/
/*! exports provided: parseProjection */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseProjection\", function() { return parseProjection; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _projection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../projection */ \"./node_modules/vega-lite/build/src/projection.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./component */ \"./node_modules/vega-lite/build/src/compile/projection/component.js\");\n\n\n\n\n\n\n\n\n\nfunction parseProjection(model) {\n    model.component.projection = Object(_model__WEBPACK_IMPORTED_MODULE_7__[\"isUnitModel\"])(model) ? parseUnitProjection(model) : parseNonUnitProjections(model);\n}\nfunction parseUnitProjection(model) {\n    var _a;\n    if (model.hasProjection) {\n        const proj = model.specifiedProjection;\n        const fit = !(proj && (proj.scale != null || proj.translate != null));\n        const size = fit ? [model.getSizeSignalRef('width'), model.getSizeSignalRef('height')] : undefined;\n        const data = fit ? gatherFitData(model) : undefined;\n        return new _component__WEBPACK_IMPORTED_MODULE_8__[\"ProjectionComponent\"](model.projectionName(true), Object.assign(Object.assign({}, ((_a = model.config.projection) !== null && _a !== void 0 ? _a : {})), (proj !== null && proj !== void 0 ? proj : {})), size, data);\n    }\n    return undefined;\n}\nfunction gatherFitData(model) {\n    const data = [];\n    const { encoding } = model;\n    for (const posssiblePair of [\n        [_channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"LATITUDE\"]],\n        [_channel__WEBPACK_IMPORTED_MODULE_1__[\"LONGITUDE2\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"LATITUDE2\"]]\n    ]) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"getFieldOrDatumDef\"])(encoding[posssiblePair[0]]) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"getFieldOrDatumDef\"])(encoding[posssiblePair[1]])) {\n            data.push({\n                signal: model.getName(`geojson_${data.length}`)\n            });\n        }\n    }\n    if (model.channelHasField(_channel__WEBPACK_IMPORTED_MODULE_1__[\"SHAPE\"]) && model.typedFieldDef(_channel__WEBPACK_IMPORTED_MODULE_1__[\"SHAPE\"]).type === _type__WEBPACK_IMPORTED_MODULE_5__[\"GEOJSON\"]) {\n        data.push({\n            signal: model.getName(`geojson_${data.length}`)\n        });\n    }\n    if (data.length === 0) {\n        // main source is geojson, so we can just use that\n        data.push(model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_3__[\"DataSourceType\"].Main));\n    }\n    return data;\n}\nfunction mergeIfNoConflict(first, second) {\n    const allPropertiesShared = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"every\"])(_projection__WEBPACK_IMPORTED_MODULE_4__[\"PROJECTION_PROPERTIES\"], prop => {\n        // neither has the property\n        if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(first.explicit, prop) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(second.explicit, prop)) {\n            return true;\n        }\n        // both have property and an equal value for property\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(first.explicit, prop) &&\n            Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(second.explicit, prop) &&\n            // some properties might be signals or objects and require hashing for comparison\n            Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])(first.get(prop)) === Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])(second.get(prop))) {\n            return true;\n        }\n        return false;\n    });\n    const size = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])(first.size) === Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])(second.size);\n    if (size) {\n        if (allPropertiesShared) {\n            return first;\n        }\n        else if (Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])(first.explicit) === Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])({})) {\n            return second;\n        }\n        else if (Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])(second.explicit) === Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"stringify\"])({})) {\n            return first;\n        }\n    }\n    // if all properties don't match, let each unit spec have its own projection\n    return null;\n}\nfunction parseNonUnitProjections(model) {\n    if (model.children.length === 0) {\n        return undefined;\n    }\n    let nonUnitProjection;\n    // parse all children first\n    for (const child of model.children) {\n        parseProjection(child);\n    }\n    // analyze parsed projections, attempt to merge\n    const mergable = Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"every\"])(model.children, child => {\n        const projection = child.component.projection;\n        if (!projection) {\n            // child layer does not use a projection\n            return true;\n        }\n        else if (!nonUnitProjection) {\n            // cached 'projection' is null, cache this one\n            nonUnitProjection = projection;\n            return true;\n        }\n        else {\n            const merge = mergeIfNoConflict(nonUnitProjection, projection);\n            if (merge) {\n                nonUnitProjection = merge;\n            }\n            return !!merge;\n        }\n    });\n    // if cached one and all other children share the same projection,\n    if (nonUnitProjection && mergable) {\n        // so we can elevate it to the layer level\n        const name = model.projectionName(true);\n        const modelProjection = new _component__WEBPACK_IMPORTED_MODULE_8__[\"ProjectionComponent\"](name, nonUnitProjection.specifiedProjection, nonUnitProjection.size, Object(_util__WEBPACK_IMPORTED_MODULE_6__[\"duplicate\"])(nonUnitProjection.data));\n        // rename and assign all others as merged\n        for (const child of model.children) {\n            const projection = child.component.projection;\n            if (projection) {\n                if (projection.isFit) {\n                    modelProjection.data.push(...child.component.projection.data);\n                }\n                child.renameProjection(projection.get('name'), name);\n                projection.merged = true;\n            }\n        }\n        return modelProjection;\n    }\n    return undefined;\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/projection/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/resolve.js":
/*!*************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/resolve.js ***!
  \*************************************************************/
/*! exports provided: defaultScaleResolve, parseGuideResolve */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultScaleResolve\", function() { return defaultScaleResolve; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseGuideResolve\", function() { return parseGuideResolve; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n\n\n\nfunction defaultScaleResolve(channel, model) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_2__[\"isLayerModel\"])(model) || Object(_model__WEBPACK_IMPORTED_MODULE_2__[\"isFacetModel\"])(model)) {\n        return 'shared';\n    }\n    else if (Object(_model__WEBPACK_IMPORTED_MODULE_2__[\"isConcatModel\"])(model)) {\n        return Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"isXorY\"])(channel) ? 'independent' : 'shared';\n    }\n    /* istanbul ignore next: should never reach here. */\n    throw new Error('invalid model type for resolve');\n}\nfunction parseGuideResolve(resolve, channel) {\n    const channelScaleResolve = resolve.scale[channel];\n    const guide = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"isXorY\"])(channel) ? 'axis' : 'legend';\n    if (channelScaleResolve === 'independent') {\n        if (resolve[guide][channel] === 'shared') {\n            _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].independentScaleMeansIndependentGuide(channel));\n        }\n        return 'independent';\n    }\n    return resolve[guide][channel] || 'shared';\n}\n//# sourceMappingURL=resolve.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/resolve.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/assemble.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/assemble.js ***!
  \********************************************************************/
/*! exports provided: assembleScales, assembleScalesForModel, assembleScaleRange */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleScales\", function() { return assembleScales; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleScalesForModel\", function() { return assembleScalesForModel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleScaleRange\", function() { return assembleScaleRange; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _selection_assemble__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../selection/assemble */ \"./node_modules/vega-lite/build/src/compile/selection/assemble.js\");\n/* harmony import */ var _domain__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./domain */ \"./node_modules/vega-lite/build/src/compile/scale/domain.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\nfunction assembleScales(model) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_4__[\"isLayerModel\"])(model) || Object(_model__WEBPACK_IMPORTED_MODULE_4__[\"isConcatModel\"])(model)) {\n        // For concat and layer, include scales of children too\n        return model.children.reduce((scales, child) => {\n            return scales.concat(assembleScales(child));\n        }, assembleScalesForModel(model));\n    }\n    else {\n        // For facet, child scales would not be included in the parent's scope.\n        // For unit, there is no child.\n        return assembleScalesForModel(model);\n    }\n}\nfunction assembleScalesForModel(model) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"keys\"])(model.component.scales).reduce((scales, channel) => {\n        const scaleComponent = model.component.scales[channel];\n        if (scaleComponent.merged) {\n            // Skipped merged scales\n            return scales;\n        }\n        const scale = scaleComponent.combine();\n        const { name, type, selectionExtent, domains: _d, range: _r, reverse } = scale, otherScaleProps = __rest(scale, [\"name\", \"type\", \"selectionExtent\", \"domains\", \"range\", \"reverse\"]);\n        const range = assembleScaleRange(scale.range, name, channel, model);\n        let domainRaw;\n        if (selectionExtent) {\n            domainRaw = Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_5__[\"assembleSelectionScaleDomain\"])(model, selectionExtent);\n        }\n        const domain = Object(_domain__WEBPACK_IMPORTED_MODULE_6__[\"assembleDomain\"])(model, channel);\n        scales.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name,\n            type }, (domain ? { domain } : {})), (domainRaw ? { domainRaw } : {})), { range }), (reverse !== undefined ? { reverse: reverse } : {})), otherScaleProps));\n        return scales;\n    }, []);\n}\nfunction assembleScaleRange(scaleRange, scaleName, channel, model) {\n    // add signals to x/y range\n    if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isXorY\"])(channel)) {\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isVgRangeStep\"])(scaleRange)) {\n            // For width/height step, use a signal created in layout assemble instead of a constant step.\n            return {\n                step: { signal: scaleName + '_step' }\n            };\n        }\n    }\n    else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(scaleRange) && Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isDataRefDomain\"])(scaleRange)) {\n        return Object.assign(Object.assign({}, scaleRange), { data: model.lookupDataSource(scaleRange.data) });\n    }\n    return scaleRange;\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/component.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/component.js ***!
  \*********************************************************************/
/*! exports provided: ScaleComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScaleComponent\", function() { return ScaleComponent; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n\n\n\nclass ScaleComponent extends _split__WEBPACK_IMPORTED_MODULE_2__[\"Split\"] {\n    constructor(name, typeWithExplicit) {\n        super({}, // no initial explicit property\n        { name } // name as initial implicit property\n        );\n        this.merged = false;\n        this.setWithExplicit('type', typeWithExplicit);\n    }\n    /**\n     * Whether the scale definitely includes zero in the domain\n     */\n    domainDefinitelyIncludesZero() {\n        if (this.get('zero') !== false) {\n            return true;\n        }\n        return Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"some\"])(this.get('domains'), d => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(d) && d.length === 2 && d[0] <= 0 && d[1] >= 0);\n    }\n}\n//# sourceMappingURL=component.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/component.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/domain.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/domain.js ***!
  \******************************************************************/
/*! exports provided: parseScaleDomain, parseDomainForChannel, domainSort, canUseUnaggregatedDomain, mergeDomains, getFieldFromDomain, assembleDomain */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseScaleDomain\", function() { return parseScaleDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseDomainForChannel\", function() { return parseDomainForChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domainSort\", function() { return domainSort; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canUseUnaggregatedDomain\", function() { return canUseUnaggregatedDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeDomains\", function() { return mergeDomains; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFieldFromDomain\", function() { return getFieldFromDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleDomain\", function() { return assembleDomain; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _data_bin__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../data/bin */ \"./node_modules/vega-lite/build/src/compile/data/bin.js\");\n/* harmony import */ var _data_calculate__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../data/calculate */ \"./node_modules/vega-lite/build/src/compile/data/calculate.js\");\n/* harmony import */ var _data_optimize__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../data/optimize */ \"./node_modules/vega-lite/build/src/compile/data/optimize.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _signal__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../signal */ \"./node_modules/vega-lite/build/src/compile/signal.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction parseScaleDomain(model) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_15__[\"isUnitModel\"])(model)) {\n        parseUnitScaleDomain(model);\n    }\n    else {\n        parseNonUnitScaleDomain(model);\n    }\n}\nfunction parseUnitScaleDomain(model) {\n    const localScaleComponents = model.component.scales;\n    for (const channel of _util__WEBPACK_IMPORTED_MODULE_10__[\"keys\"](localScaleComponents)) {\n        const domains = parseDomainForChannel(model, channel);\n        const localScaleCmpt = localScaleComponents[channel];\n        localScaleCmpt.setWithExplicit('domains', domains);\n        parseSelectionDomain(model, channel);\n        if (model.component.data.isFaceted) {\n            // get resolve from closest facet parent as this decides whether we need to refer to cloned subtree or not\n            let facetParent = model;\n            while (!Object(_model__WEBPACK_IMPORTED_MODULE_15__[\"isFacetModel\"])(facetParent) && facetParent.parent) {\n                facetParent = facetParent.parent;\n            }\n            const resolve = facetParent.component.resolve.scale[channel];\n            if (resolve === 'shared') {\n                for (const domain of domains.value) {\n                    // Replace the scale domain with data output from a cloned subtree after the facet.\n                    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(domain)) {\n                        // use data from cloned subtree (which is the same as data but with a prefix added once)\n                        domain.data = _data_optimize__WEBPACK_IMPORTED_MODULE_14__[\"FACET_SCALE_PREFIX\"] + domain.data.replace(_data_optimize__WEBPACK_IMPORTED_MODULE_14__[\"FACET_SCALE_PREFIX\"], '');\n                    }\n                }\n            }\n        }\n    }\n}\nfunction parseNonUnitScaleDomain(model) {\n    for (const child of model.children) {\n        parseScaleDomain(child);\n    }\n    const localScaleComponents = model.component.scales;\n    for (const channel of _util__WEBPACK_IMPORTED_MODULE_10__[\"keys\"](localScaleComponents)) {\n        let domains;\n        let selectionExtent = null;\n        for (const child of model.children) {\n            const childComponent = child.component.scales[channel];\n            if (childComponent) {\n                if (domains === undefined) {\n                    domains = childComponent.getWithExplicit('domains');\n                }\n                else {\n                    domains = Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"mergeValuesWithExplicit\"])(domains, childComponent.getWithExplicit('domains'), 'domains', 'scale', domainsTieBreaker);\n                }\n                const se = childComponent.get('selectionExtent');\n                if (selectionExtent && se && selectionExtent.selection !== se.selection) {\n                    _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].NEEDS_SAME_SELECTION);\n                }\n                selectionExtent = se;\n            }\n        }\n        localScaleComponents[channel].setWithExplicit('domains', domains);\n        if (selectionExtent) {\n            localScaleComponents[channel].set('selectionExtent', selectionExtent, true);\n        }\n    }\n}\n/**\n * Remove unaggregated domain if it is not applicable\n * Add unaggregated domain if domain is not specified and config.scale.useUnaggregatedDomain is true.\n */\nfunction normalizeUnaggregatedDomain(domain, fieldDef, scaleType, scaleConfig) {\n    if (domain === 'unaggregated') {\n        const { valid, reason } = canUseUnaggregatedDomain(fieldDef, scaleType);\n        if (!valid) {\n            _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](reason);\n            return undefined;\n        }\n    }\n    else if (domain === undefined && scaleConfig.useUnaggregatedDomain) {\n        // Apply config if domain is not specified.\n        const { valid } = canUseUnaggregatedDomain(fieldDef, scaleType);\n        if (valid) {\n            return 'unaggregated';\n        }\n    }\n    return domain;\n}\nfunction parseDomainForChannel(model, channel) {\n    const scaleType = model.getScaleComponent(channel).get('type');\n    const { encoding } = model;\n    const domain = normalizeUnaggregatedDomain(model.scaleDomain(channel), model.typedFieldDef(channel), scaleType, model.config.scale);\n    if (domain !== model.scaleDomain(channel)) {\n        model.specifiedScales[channel] = Object.assign(Object.assign({}, model.specifiedScales[channel]), { domain });\n    }\n    // If channel is either X or Y then union them with X2 & Y2 if they exist\n    if (channel === 'x' && Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldOrDatumDef\"])(encoding.x2)) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldOrDatumDef\"])(encoding.x)) {\n            return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"mergeValuesWithExplicit\"])(parseSingleChannelDomain(scaleType, domain, model, 'x'), parseSingleChannelDomain(scaleType, domain, model, 'x2'), 'domain', 'scale', domainsTieBreaker);\n        }\n        else {\n            return parseSingleChannelDomain(scaleType, domain, model, 'x2');\n        }\n    }\n    else if (channel === 'y' && Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldOrDatumDef\"])(encoding.y2)) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldOrDatumDef\"])(encoding.y)) {\n            return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"mergeValuesWithExplicit\"])(parseSingleChannelDomain(scaleType, domain, model, 'y'), parseSingleChannelDomain(scaleType, domain, model, 'y2'), 'domain', 'scale', domainsTieBreaker);\n        }\n        else {\n            return parseSingleChannelDomain(scaleType, domain, model, 'y2');\n        }\n    }\n    return parseSingleChannelDomain(scaleType, domain, model, channel);\n}\nfunction mapDomainToDataSignal(domain, type, timeUnit) {\n    return domain.map(v => {\n        const data = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"valueExpr\"])(v, { timeUnit, type });\n        return { signal: `{data: ${data}}` };\n    });\n}\nfunction convertDomainIfItIsDateTime(domain, type, timeUnit) {\n    var _a;\n    // explicit value\n    const normalizedTimeUnit = (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_9__[\"normalizeTimeUnit\"])(timeUnit)) === null || _a === void 0 ? void 0 : _a.unit;\n    if (type === 'temporal' || normalizedTimeUnit) {\n        return mapDomainToDataSignal(domain, type, normalizedTimeUnit);\n    }\n    return [domain]; // Date time won't make sense\n}\nfunction parseSingleChannelDomain(scaleType, domain, model, channel) {\n    const { encoding } = model;\n    const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldOrDatumDef\"])(encoding[channel]);\n    const { type } = fieldOrDatumDef;\n    const timeUnit = fieldOrDatumDef['timeUnit'];\n    if (Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"isDomainUnionWith\"])(domain)) {\n        const defaultDomain = parseSingleChannelDomain(scaleType, undefined, model, channel);\n        const unionWith = convertDomainIfItIsDateTime(domain.unionWith, type, timeUnit);\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeExplicit\"])([...defaultDomain.value, ...unionWith]);\n    }\n    else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isSignalRef\"])(domain)) {\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeExplicit\"])([domain]);\n    }\n    else if (domain && domain !== 'unaggregated' && !Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"isSelectionDomain\"])(domain)) {\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeExplicit\"])(convertDomainIfItIsDateTime(domain, type, timeUnit));\n    }\n    const stack = model.stack;\n    if (stack && channel === stack.fieldChannel) {\n        if (stack.offset === 'normalize') {\n            return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([[0, 1]]);\n        }\n        const data = model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main);\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n            {\n                data,\n                field: model.vgField(channel, { suffix: 'start' })\n            },\n            {\n                data,\n                field: model.vgField(channel, { suffix: 'end' })\n            }\n        ]);\n    }\n    const sort = Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isScaleChannel\"])(channel) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(fieldOrDatumDef) ? domainSort(model, channel, scaleType) : undefined;\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isDatumDef\"])(fieldOrDatumDef)) {\n        const d = convertDomainIfItIsDateTime([fieldOrDatumDef.datum], type, timeUnit);\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])(d);\n    }\n    const fieldDef = fieldOrDatumDef; // now we can be sure it's a fieldDef\n    if (domain === 'unaggregated') {\n        const data = model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main);\n        const { field } = fieldOrDatumDef;\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n            {\n                data,\n                field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])({ field, aggregate: 'min' })\n            },\n            {\n                data,\n                field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])({ field, aggregate: 'max' })\n            }\n        ]);\n    }\n    else if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(fieldDef.bin)) {\n        if (Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"hasDiscreteDomain\"])(scaleType)) {\n            if (scaleType === 'bin-ordinal') {\n                // we can omit the domain as it is inferred from the `bins` property\n                return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([]);\n            }\n            // ordinal bin scale takes domain from bin_range, ordered by bin start\n            // This is useful for both axis-based scale (x/y) and legend-based scale (other channels).\n            return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n                {\n                    // If sort by aggregation of a specified sort field, we need to use RAW table,\n                    // so we can aggregate values for the scale independently from the main aggregation.\n                    data: _util__WEBPACK_IMPORTED_MODULE_10__[\"isBoolean\"](sort)\n                        ? model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main)\n                        : model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Raw),\n                    // Use range if we added it and the scale does not support computing a range as a signal.\n                    field: model.vgField(channel, Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"binRequiresRange\"])(fieldDef, channel) ? { binSuffix: 'range' } : {}),\n                    // we have to use a sort object if sort = true to make the sort correct by bin start\n                    sort: sort === true || !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(sort)\n                        ? {\n                            field: model.vgField(channel, {}),\n                            op: 'min' // min or max doesn't matter since we sort by the start of the bin range\n                        }\n                        : sort\n                }\n            ]);\n        }\n        else {\n            // continuous scales\n            const { bin } = fieldDef;\n            if (Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin)) {\n                const binSignal = Object(_data_bin__WEBPACK_IMPORTED_MODULE_12__[\"getBinSignalName\"])(model, fieldDef.field, bin);\n                return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n                    new _signal__WEBPACK_IMPORTED_MODULE_16__[\"SignalRefWrapper\"](() => {\n                        const signal = model.getSignalName(binSignal);\n                        return `[${signal}.start, ${signal}.stop]`;\n                    })\n                ]);\n            }\n            else {\n                return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n                    {\n                        data: model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main),\n                        field: model.vgField(channel, {})\n                    }\n                ]);\n            }\n        }\n    }\n    else if (fieldDef.timeUnit &&\n        _util__WEBPACK_IMPORTED_MODULE_10__[\"contains\"](['time', 'utc'], scaleType) &&\n        Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"hasBand\"])(channel, fieldDef, Object(_model__WEBPACK_IMPORTED_MODULE_15__[\"isUnitModel\"])(model) ? model.encoding[Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"getSecondaryRangeChannel\"])(channel)] : undefined, model.stack, model.markDef, model.config)) {\n        const data = model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main);\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n            {\n                data,\n                field: model.vgField(channel)\n            },\n            {\n                data,\n                field: model.vgField(channel, { suffix: 'end' })\n            }\n        ]);\n    }\n    else if (sort) {\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n            {\n                // If sort by aggregation of a specified sort field, we need to use RAW table,\n                // so we can aggregate values for the scale independently from the main aggregation.\n                data: _util__WEBPACK_IMPORTED_MODULE_10__[\"isBoolean\"](sort)\n                    ? model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main)\n                    : model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Raw),\n                field: model.vgField(channel),\n                sort: sort\n            }\n        ]);\n    }\n    else {\n        return Object(_split__WEBPACK_IMPORTED_MODULE_17__[\"makeImplicit\"])([\n            {\n                data: model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main),\n                field: model.vgField(channel)\n            }\n        ]);\n    }\n}\nfunction normalizeSortField(sort, isStackedMeasure) {\n    const { op, field, order } = sort;\n    return Object.assign(Object.assign({ \n        // Apply default op\n        op: op !== null && op !== void 0 ? op : (isStackedMeasure ? 'sum' : _sort__WEBPACK_IMPORTED_MODULE_8__[\"DEFAULT_SORT_OP\"]) }, (field ? { field: _util__WEBPACK_IMPORTED_MODULE_10__[\"replacePathInField\"](field) } : {})), (order ? { order } : {}));\n}\nfunction parseSelectionDomain(model, channel) {\n    var _a;\n    const scale = model.component.scales[channel];\n    const spec = model.specifiedScales[channel].domain;\n    const bin = (_a = model.fieldDef(channel)) === null || _a === void 0 ? void 0 : _a.bin;\n    const domain = Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"isSelectionDomain\"])(spec) && spec;\n    const extent = Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinParams\"])(bin) && Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isSelectionExtent\"])(bin.extent) && bin.extent;\n    if (domain || extent) {\n        // As scale parsing occurs before selection parsing, we cannot set\n        // domainRaw directly. So instead, we store the selectionExtent on\n        // the scale component, and then add domainRaw during scale assembly.\n        scale.set('selectionExtent', domain !== null && domain !== void 0 ? domain : extent, true);\n    }\n}\nfunction domainSort(model, channel, scaleType) {\n    if (!Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"hasDiscreteDomain\"])(scaleType)) {\n        return undefined;\n    }\n    // save to cast as the only exception is the geojson type for shape, which would not generate a scale\n    const fieldDef = model.fieldDef(channel);\n    const sort = fieldDef.sort;\n    // if the sort is specified with array, use the derived sort index field\n    if (Object(_sort__WEBPACK_IMPORTED_MODULE_8__[\"isSortArray\"])(sort)) {\n        return {\n            op: 'min',\n            field: Object(_data_calculate__WEBPACK_IMPORTED_MODULE_13__[\"sortArrayIndexField\"])(fieldDef, channel),\n            order: 'ascending'\n        };\n    }\n    const { stack } = model;\n    const stackDimensions = stack\n        ? [...(stack.groupbyField ? [stack.groupbyField] : []), ...stack.stackBy.map(s => s.fieldDef.field)]\n        : undefined;\n    // Sorted based on an aggregate calculation over a specified sort field (only for ordinal scale)\n    if (Object(_sort__WEBPACK_IMPORTED_MODULE_8__[\"isSortField\"])(sort)) {\n        const isStackedMeasure = stack && !_util__WEBPACK_IMPORTED_MODULE_10__[\"contains\"](stackDimensions, sort.field);\n        return normalizeSortField(sort, isStackedMeasure);\n    }\n    else if (Object(_sort__WEBPACK_IMPORTED_MODULE_8__[\"isSortByEncoding\"])(sort)) {\n        const { encoding, order } = sort;\n        const fieldDefToSortBy = model.fieldDef(encoding);\n        const { aggregate, field } = fieldDefToSortBy;\n        const isStackedMeasure = stack && !_util__WEBPACK_IMPORTED_MODULE_10__[\"contains\"](stackDimensions, field);\n        if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggregate) || Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggregate)) {\n            return normalizeSortField({\n                field: Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldDefToSortBy),\n                order\n            }, isStackedMeasure);\n        }\n        else if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isAggregateOp\"])(aggregate) || !aggregate) {\n            return normalizeSortField({\n                op: aggregate,\n                field,\n                order\n            }, isStackedMeasure);\n        }\n    }\n    else if (sort === 'descending') {\n        return {\n            op: 'min',\n            field: model.vgField(channel),\n            order: 'descending'\n        };\n    }\n    else if (_util__WEBPACK_IMPORTED_MODULE_10__[\"contains\"](['ascending', undefined /* default =ascending*/], sort)) {\n        return true;\n    }\n    // sort == null\n    return undefined;\n}\n/**\n * Determine if a scale can use unaggregated domain.\n * @return {Boolean} Returns true if all of the following conditions apply:\n * 1. `scale.domain` is `unaggregated`\n * 2. Aggregation function is not `count` or `sum`\n * 3. The scale is quantitative or time scale.\n */\nfunction canUseUnaggregatedDomain(fieldDef, scaleType) {\n    const { aggregate, type } = fieldDef;\n    if (!aggregate) {\n        return {\n            valid: false,\n            reason: _log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].unaggregateDomainHasNoEffectForRawField(fieldDef)\n        };\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(aggregate) && !_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"SHARED_DOMAIN_OP_INDEX\"][aggregate]) {\n        return {\n            valid: false,\n            reason: _log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].unaggregateDomainWithNonSharedDomainOp(aggregate)\n        };\n    }\n    if (type === 'quantitative') {\n        if (scaleType === 'log') {\n            return {\n                valid: false,\n                reason: _log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].unaggregatedDomainWithLogScale(fieldDef)\n            };\n        }\n    }\n    return { valid: true };\n}\n/**\n * Tie breaker for mergeValuesWithExplicit for domains. We concat the specified values.\n */\nfunction domainsTieBreaker(v1, v2, property, propertyOf) {\n    if (v1.explicit && v2.explicit) {\n        _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].mergeConflictingDomainProperty(property, propertyOf, v1.value, v2.value));\n    }\n    // If equal score, concat the domains so that we union them later.\n    return { explicit: v1.explicit, value: [...v1.value, ...v2.value] };\n}\n/**\n * Converts an array of domains to a single Vega scale domain.\n */\nfunction mergeDomains(domains) {\n    const uniqueDomains = _util__WEBPACK_IMPORTED_MODULE_10__[\"unique\"](domains.map(domain => {\n        // ignore sort property when computing the unique domains\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(domain)) {\n            const { sort: _s } = domain, domainWithoutSort = __rest(domain, [\"sort\"]);\n            return domainWithoutSort;\n        }\n        return domain;\n    }), _util__WEBPACK_IMPORTED_MODULE_10__[\"hash\"]);\n    const sorts = _util__WEBPACK_IMPORTED_MODULE_10__[\"unique\"](domains\n        .map(d => {\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(d)) {\n            const s = d.sort;\n            if (s !== undefined && !_util__WEBPACK_IMPORTED_MODULE_10__[\"isBoolean\"](s)) {\n                if ('op' in s && s.op === 'count') {\n                    // let's make sure that if op is count, we don't use a field\n                    delete s.field;\n                }\n                if (s.order === 'ascending') {\n                    // drop order: ascending as it is the default\n                    delete s.order;\n                }\n            }\n            return s;\n        }\n        return undefined;\n    })\n        .filter(s => s !== undefined), _util__WEBPACK_IMPORTED_MODULE_10__[\"hash\"]);\n    if (uniqueDomains.length === 0) {\n        return undefined;\n    }\n    else if (uniqueDomains.length === 1) {\n        const domain = domains[0];\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(domain) && sorts.length > 0) {\n            let sort = sorts[0];\n            if (sorts.length > 1) {\n                _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].MORE_THAN_ONE_SORT);\n                sort = true;\n            }\n            else {\n                // Simplify domain sort by removing field and op when the field is the same as the domain field.\n                if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(sort) && 'field' in sort) {\n                    const sortField = sort.field;\n                    if (domain.field === sortField) {\n                        sort = sort.order ? { order: sort.order } : true;\n                    }\n                }\n            }\n            return Object.assign(Object.assign({}, domain), { sort });\n        }\n        return domain;\n    }\n    // only keep sort properties that work with unioned domains\n    const unionDomainSorts = _util__WEBPACK_IMPORTED_MODULE_10__[\"unique\"](sorts.map(s => {\n        if (_util__WEBPACK_IMPORTED_MODULE_10__[\"isBoolean\"](s) || !('op' in s) || (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(s.op) && s.op in _aggregate__WEBPACK_IMPORTED_MODULE_1__[\"MULTIDOMAIN_SORT_OP_INDEX\"])) {\n            return s;\n        }\n        _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].domainSortDropped(s));\n        return true;\n    }), _util__WEBPACK_IMPORTED_MODULE_10__[\"hash\"]);\n    let sort;\n    if (unionDomainSorts.length === 1) {\n        sort = unionDomainSorts[0];\n    }\n    else if (unionDomainSorts.length > 1) {\n        _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].MORE_THAN_ONE_SORT);\n        sort = true;\n    }\n    const allData = _util__WEBPACK_IMPORTED_MODULE_10__[\"unique\"](domains.map(d => {\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(d)) {\n            return d.data;\n        }\n        return null;\n    }), x => x);\n    if (allData.length === 1 && allData[0] !== null) {\n        // create a union domain of different fields with a single data source\n        const domain = Object.assign({ data: allData[0], fields: uniqueDomains.map(d => d.field) }, (sort ? { sort } : {}));\n        return domain;\n    }\n    return Object.assign({ fields: uniqueDomains }, (sort ? { sort } : {}));\n}\n/**\n * Return a field if a scale uses a single field.\n * Return `undefined` otherwise.\n */\nfunction getFieldFromDomain(domain) {\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(domain) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(domain.field)) {\n        return domain.field;\n    }\n    else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefUnionedDomain\"])(domain)) {\n        let field;\n        for (const nonUnionDomain of domain.fields) {\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(nonUnionDomain) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(nonUnionDomain.field)) {\n                if (!field) {\n                    field = nonUnionDomain.field;\n                }\n                else if (field !== nonUnionDomain.field) {\n                    _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].FACETED_INDEPENDENT_DIFFERENT_SOURCES);\n                    return field;\n                }\n            }\n        }\n        _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES);\n        return field;\n    }\n    else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isFieldRefUnionDomain\"])(domain)) {\n        _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].FACETED_INDEPENDENT_SAME_SOURCE);\n        const field = domain.fields[0];\n        return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(field) ? field : undefined;\n    }\n    return undefined;\n}\nfunction assembleDomain(model, channel) {\n    const scaleComponent = model.component.scales[channel];\n    const domains = scaleComponent.get('domains').map((domain) => {\n        // Correct references to data as the original domain's data was determined\n        // in parseScale, which happens before parseData. Thus the original data\n        // reference can be incorrect.\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_11__[\"isDataRefDomain\"])(domain)) {\n            domain.data = model.lookupDataSource(domain.data);\n        }\n        return domain;\n    });\n    // domains is an array that has to be merged into a single vega domain\n    return mergeDomains(domains);\n}\n//# sourceMappingURL=domain.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/domain.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/parse.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/parse.js ***!
  \*****************************************************************/
/*! exports provided: parseScales, parseScaleCore */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseScales\", function() { return parseScales; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseScaleCore\", function() { return parseScaleCore; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _resolve__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../resolve */ \"./node_modules/vega-lite/build/src/compile/resolve.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./component */ \"./node_modules/vega-lite/build/src/compile/scale/component.js\");\n/* harmony import */ var _domain__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./domain */ \"./node_modules/vega-lite/build/src/compile/scale/domain.js\");\n/* harmony import */ var _properties__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./properties */ \"./node_modules/vega-lite/build/src/compile/scale/properties.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./type */ \"./node_modules/vega-lite/build/src/compile/scale/type.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction parseScales(model, { ignoreRange } = {}) {\n    parseScaleCore(model);\n    Object(_domain__WEBPACK_IMPORTED_MODULE_10__[\"parseScaleDomain\"])(model);\n    for (const prop of _scale__WEBPACK_IMPORTED_MODULE_3__[\"NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTIES\"]) {\n        Object(_properties__WEBPACK_IMPORTED_MODULE_11__[\"parseScaleProperty\"])(model, prop);\n    }\n    if (!ignoreRange) {\n        // range depends on zero\n        Object(_properties__WEBPACK_IMPORTED_MODULE_11__[\"parseScaleRange\"])(model);\n    }\n}\nfunction parseScaleCore(model) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_6__[\"isUnitModel\"])(model)) {\n        model.component.scales = parseUnitScaleCore(model);\n    }\n    else {\n        model.component.scales = parseNonUnitScaleCore(model);\n    }\n}\n/**\n * Parse scales for all channels of a model.\n */\nfunction parseUnitScaleCore(model) {\n    const { encoding, mark } = model;\n    return _channel__WEBPACK_IMPORTED_MODULE_0__[\"SCALE_CHANNELS\"].reduce((scaleComponents, channel) => {\n        const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"getFieldOrDatumDef\"])(encoding[channel]); // must be typed def to have scale\n        // Don't generate scale for shape of geoshape\n        if (fieldOrDatumDef && mark === _mark__WEBPACK_IMPORTED_MODULE_2__[\"GEOSHAPE\"] && channel === _channel__WEBPACK_IMPORTED_MODULE_0__[\"SHAPE\"] && fieldOrDatumDef.type === _type__WEBPACK_IMPORTED_MODULE_4__[\"GEOJSON\"]) {\n            return scaleComponents;\n        }\n        let specifiedScale = fieldOrDatumDef && fieldOrDatumDef['scale'];\n        if (fieldOrDatumDef && specifiedScale !== null && specifiedScale !== false) {\n            specifiedScale = specifiedScale !== null && specifiedScale !== void 0 ? specifiedScale : {};\n            const sType = Object(_type__WEBPACK_IMPORTED_MODULE_12__[\"scaleType\"])(specifiedScale, channel, fieldOrDatumDef, mark);\n            scaleComponents[channel] = new _component__WEBPACK_IMPORTED_MODULE_9__[\"ScaleComponent\"](model.scaleName(channel + '', true), {\n                value: sType,\n                explicit: specifiedScale.type === sType\n            });\n        }\n        return scaleComponents;\n    }, {});\n}\nconst scaleTypeTieBreaker = Object(_split__WEBPACK_IMPORTED_MODULE_8__[\"tieBreakByComparing\"])((st1, st2) => Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"scaleTypePrecedence\"])(st1) - Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"scaleTypePrecedence\"])(st2));\nfunction parseNonUnitScaleCore(model) {\n    var _a;\n    const scaleComponents = (model.component.scales = {});\n    const scaleTypeWithExplicitIndex = {};\n    const resolve = model.component.resolve;\n    // Parse each child scale and determine if a particular channel can be merged.\n    for (const child of model.children) {\n        parseScaleCore(child);\n        // Instead of always merging right away -- check if it is compatible to merge first!\n        for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(child.component.scales)) {\n            // if resolve is undefined, set default first\n            resolve.scale[channel] = (_a = resolve.scale[channel]) !== null && _a !== void 0 ? _a : Object(_resolve__WEBPACK_IMPORTED_MODULE_7__[\"defaultScaleResolve\"])(channel, model);\n            if (resolve.scale[channel] === 'shared') {\n                const explicitScaleType = scaleTypeWithExplicitIndex[channel];\n                const childScaleType = child.component.scales[channel].getWithExplicit('type');\n                if (explicitScaleType) {\n                    if (Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"scaleCompatible\"])(explicitScaleType.value, childScaleType.value)) {\n                        // merge scale component if type are compatible\n                        scaleTypeWithExplicitIndex[channel] = Object(_split__WEBPACK_IMPORTED_MODULE_8__[\"mergeValuesWithExplicit\"])(explicitScaleType, childScaleType, 'type', 'scale', scaleTypeTieBreaker);\n                    }\n                    else {\n                        // Otherwise, update conflicting channel to be independent\n                        resolve.scale[channel] = 'independent';\n                        // Remove from the index so they don't get merged\n                        delete scaleTypeWithExplicitIndex[channel];\n                    }\n                }\n                else {\n                    scaleTypeWithExplicitIndex[channel] = childScaleType;\n                }\n            }\n        }\n    }\n    // Merge each channel listed in the index\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(scaleTypeWithExplicitIndex)) {\n        // Create new merged scale component\n        const name = model.scaleName(channel, true);\n        const typeWithExplicit = scaleTypeWithExplicitIndex[channel];\n        scaleComponents[channel] = new _component__WEBPACK_IMPORTED_MODULE_9__[\"ScaleComponent\"](name, typeWithExplicit);\n        // rename each child and mark them as merged\n        for (const child of model.children) {\n            const childScale = child.component.scales[channel];\n            if (childScale) {\n                child.renameScale(childScale.get('name'), name);\n                childScale.merged = true;\n            }\n        }\n    }\n    return scaleComponents;\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/properties.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/properties.js ***!
  \**********************************************************************/
/*! exports provided: parseScaleProperty, scaleRules, parseScaleRange, parseNonUnitScaleProperty, bins, interpolate, nice, padding, paddingInner, paddingOuter, reverse, zero */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseScaleProperty\", function() { return parseScaleProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleRules\", function() { return scaleRules; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseScaleRange\", function() { return parseScaleRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseNonUnitScaleProperty\", function() { return parseNonUnitScaleProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bins\", function() { return bins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolate\", function() { return interpolate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nice\", function() { return nice; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"padding\", function() { return padding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"paddingInner\", function() { return paddingInner; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"paddingOuter\", function() { return paddingOuter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reverse\", function() { return reverse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zero\", function() { return zero; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datetime */ \"./node_modules/vega-lite/build/src/datetime.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _data_bin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../data/bin */ \"./node_modules/vega-lite/build/src/compile/data/bin.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _signal__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../signal */ \"./node_modules/vega-lite/build/src/compile/signal.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./range */ \"./node_modules/vega-lite/build/src/compile/scale/range.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction parseScaleProperty(model, property) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_10__[\"isUnitModel\"])(model)) {\n        parseUnitScaleProperty(model, property);\n    }\n    else {\n        parseNonUnitScaleProperty(model, property);\n    }\n}\nfunction parseUnitScaleProperty(model, property) {\n    const localScaleComponents = model.component.scales;\n    const { config, encoding, markDef, specifiedScales } = model;\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(localScaleComponents)) {\n        const specifiedScale = specifiedScales[channel];\n        const localScaleCmpt = localScaleComponents[channel];\n        const mergedScaleCmpt = model.getScaleComponent(channel);\n        const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldOrDatumDef\"])(encoding[channel]);\n        const specifiedValue = specifiedScale[property];\n        const scaleType = mergedScaleCmpt.get('type');\n        const scalePadding = mergedScaleCmpt.get('padding');\n        const scalePaddingInner = mergedScaleCmpt.get('paddingInner');\n        const supportedByScaleType = Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"scaleTypeSupportProperty\"])(scaleType, property);\n        const channelIncompatability = Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"channelScalePropertyIncompatability\"])(channel, property);\n        if (specifiedValue !== undefined) {\n            // If there is a specified value, check if it is compatible with scale type and channel\n            if (!supportedByScaleType) {\n                _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].scalePropertyNotWorkWithScaleType(scaleType, property, channel));\n            }\n            else if (channelIncompatability) {\n                // channel\n                _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](channelIncompatability);\n            }\n        }\n        if (supportedByScaleType && channelIncompatability === undefined) {\n            if (specifiedValue !== undefined) {\n                const timeUnit = fieldOrDatumDef['timeUnit'];\n                const type = fieldOrDatumDef.type;\n                switch (property) {\n                    // domainMax/Min to signal if the value is a datetime object\n                    case 'domainMax':\n                    case 'domainMin':\n                        if (Object(_datetime__WEBPACK_IMPORTED_MODULE_4__[\"isDateTime\"])(specifiedScale[property]) || type === 'temporal' || timeUnit) {\n                            localScaleCmpt.set(property, { signal: Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"valueExpr\"])(specifiedScale[property], { type, timeUnit }) }, true);\n                        }\n                        else {\n                            localScaleCmpt.set(property, specifiedScale[property], true);\n                        }\n                        break;\n                    default:\n                        localScaleCmpt.copyKeyFromObject(property, specifiedScale);\n                }\n            }\n            else {\n                const value = property in scaleRules\n                    ? scaleRules[property]({\n                        model,\n                        channel,\n                        fieldOrDatumDef,\n                        scaleType,\n                        scalePadding,\n                        scalePaddingInner,\n                        domain: specifiedScale.domain,\n                        markDef,\n                        config\n                    })\n                    : config.scale[property];\n                if (value !== undefined) {\n                    localScaleCmpt.set(property, value, false);\n                }\n            }\n        }\n    }\n}\nconst scaleRules = {\n    bins: ({ model, fieldOrDatumDef }) => (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) ? bins(model, fieldOrDatumDef) : undefined),\n    interpolate: ({ channel, fieldOrDatumDef }) => interpolate(channel, fieldOrDatumDef.type),\n    nice: ({ scaleType, channel, fieldOrDatumDef }) => nice(scaleType, channel, fieldOrDatumDef),\n    padding: ({ channel, scaleType, fieldOrDatumDef, markDef, config }) => padding(channel, scaleType, config.scale, fieldOrDatumDef, markDef, config.bar),\n    paddingInner: ({ scalePadding, channel, markDef, config }) => paddingInner(scalePadding, channel, markDef.type, config.scale),\n    paddingOuter: ({ scalePadding, channel, scaleType, markDef, scalePaddingInner, config }) => paddingOuter(scalePadding, channel, scaleType, markDef.type, scalePaddingInner, config.scale),\n    reverse: ({ fieldOrDatumDef, scaleType, channel, config }) => {\n        const sort = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) ? fieldOrDatumDef.sort : undefined;\n        return reverse(scaleType, sort, channel, config.scale);\n    },\n    zero: ({ channel, fieldOrDatumDef, domain, markDef, scaleType }) => zero(channel, fieldOrDatumDef, domain, markDef, scaleType)\n};\n// This method is here rather than in range.ts to avoid circular dependency.\nfunction parseScaleRange(model) {\n    if (Object(_model__WEBPACK_IMPORTED_MODULE_10__[\"isUnitModel\"])(model)) {\n        Object(_range__WEBPACK_IMPORTED_MODULE_13__[\"parseUnitScaleRange\"])(model);\n    }\n    else {\n        parseNonUnitScaleProperty(model, 'range');\n    }\n}\nfunction parseNonUnitScaleProperty(model, property) {\n    const localScaleComponents = model.component.scales;\n    for (const child of model.children) {\n        if (property === 'range') {\n            parseScaleRange(child);\n        }\n        else {\n            parseScaleProperty(child, property);\n        }\n    }\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(localScaleComponents)) {\n        let valueWithExplicit;\n        for (const child of model.children) {\n            const childComponent = child.component.scales[channel];\n            if (childComponent) {\n                const childValueWithExplicit = childComponent.getWithExplicit(property);\n                valueWithExplicit = Object(_split__WEBPACK_IMPORTED_MODULE_12__[\"mergeValuesWithExplicit\"])(valueWithExplicit, childValueWithExplicit, property, 'scale', Object(_split__WEBPACK_IMPORTED_MODULE_12__[\"tieBreakByComparing\"])((v1, v2) => {\n                    switch (property) {\n                        case 'range':\n                            // For step, prefer larger step\n                            if (v1.step && v2.step) {\n                                return v1.step - v2.step;\n                            }\n                            return 0;\n                        // TODO: precedence rule for other properties\n                    }\n                    return 0;\n                }));\n            }\n        }\n        localScaleComponents[channel].setWithExplicit(property, valueWithExplicit);\n    }\n}\nfunction bins(model, fieldDef) {\n    const bin = fieldDef.bin;\n    if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(bin)) {\n        const binSignal = Object(_data_bin__WEBPACK_IMPORTED_MODULE_9__[\"getBinSignalName\"])(model, fieldDef.field, bin);\n        return new _signal__WEBPACK_IMPORTED_MODULE_11__[\"SignalRefWrapper\"](() => {\n            return model.getSignalName(binSignal);\n        });\n    }\n    else if (Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinned\"])(bin) && Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinParams\"])(bin) && bin.step !== undefined) {\n        // start and stop will be determined from the scale domain\n        return {\n            step: bin.step\n        };\n    }\n    return undefined;\n}\nfunction interpolate(channel, type) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"])([_channel__WEBPACK_IMPORTED_MODULE_2__[\"COLOR\"], _channel__WEBPACK_IMPORTED_MODULE_2__[\"FILL\"], _channel__WEBPACK_IMPORTED_MODULE_2__[\"STROKE\"]], channel) && type !== 'nominal') {\n        return 'hcl';\n    }\n    return undefined;\n}\nfunction nice(scaleType, channel, fieldOrDatumDef) {\n    var _a;\n    if (((_a = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldDef\"])(fieldOrDatumDef)) === null || _a === void 0 ? void 0 : _a.bin) || _util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"]([_scale__WEBPACK_IMPORTED_MODULE_6__[\"ScaleType\"].TIME, _scale__WEBPACK_IMPORTED_MODULE_6__[\"ScaleType\"].UTC], scaleType)) {\n        return undefined;\n    }\n    return channel in _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNEL_INDEX\"] ? true : undefined;\n}\nfunction padding(channel, scaleType, scaleConfig, fieldOrDatumDef, markDef, barConfig) {\n    if (channel in _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNEL_INDEX\"]) {\n        if (Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"isContinuousToContinuous\"])(scaleType)) {\n            if (scaleConfig.continuousPadding !== undefined) {\n                return scaleConfig.continuousPadding;\n            }\n            const { type, orient } = markDef;\n            if (type === 'bar' && !(Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldOrDatumDef) && (fieldOrDatumDef.bin || fieldOrDatumDef.timeUnit))) {\n                if ((orient === 'vertical' && channel === 'x') || (orient === 'horizontal' && channel === 'y')) {\n                    return barConfig.continuousBandSize;\n                }\n            }\n        }\n        if (scaleType === _scale__WEBPACK_IMPORTED_MODULE_6__[\"ScaleType\"].POINT) {\n            return scaleConfig.pointPadding;\n        }\n    }\n    return undefined;\n}\nfunction paddingInner(paddingValue, channel, mark, scaleConfig) {\n    if (paddingValue !== undefined) {\n        // If user has already manually specified \"padding\", no need to add default paddingInner.\n        return undefined;\n    }\n    if (channel in _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNEL_INDEX\"]) {\n        // Padding is only set for X and Y by default.\n        // Basically it doesn't make sense to add padding for color and size.\n        // paddingOuter would only be called if it's a band scale, just return the default for bandScale.\n        const { bandPaddingInner, barBandPaddingInner, rectBandPaddingInner } = scaleConfig;\n        return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"getFirstDefined\"])(bandPaddingInner, mark === 'bar' ? barBandPaddingInner : rectBandPaddingInner);\n    }\n    return undefined;\n}\nfunction paddingOuter(paddingValue, channel, scaleType, mark, paddingInnerValue, scaleConfig) {\n    if (paddingValue !== undefined) {\n        // If user has already manually specified \"padding\", no need to add default paddingOuter.\n        return undefined;\n    }\n    if (channel in _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNEL_INDEX\"]) {\n        // Padding is only set for X and Y by default.\n        // Basically it doesn't make sense to add padding for color and size.\n        if (scaleType === _scale__WEBPACK_IMPORTED_MODULE_6__[\"ScaleType\"].BAND) {\n            const { bandPaddingOuter } = scaleConfig;\n            return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"getFirstDefined\"])(bandPaddingOuter, \n            /* By default, paddingOuter is paddingInner / 2. The reason is that\n              size (width/height) = step * (cardinality - paddingInner + 2 * paddingOuter).\n              and we want the width/height to be integer by default.\n              Note that step (by default) and cardinality are integers.) */\n            Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(paddingInnerValue) ? { signal: `${paddingInnerValue.signal}/2` } : paddingInnerValue / 2);\n        }\n    }\n    return undefined;\n}\nfunction reverse(scaleType, sort, channel, scaleConfig) {\n    if (channel === 'x' && scaleConfig.xReverse !== undefined) {\n        if (Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasContinuousDomain\"])(scaleType) && sort === 'descending') {\n            if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(scaleConfig.xReverse)) {\n                return { signal: `!${scaleConfig.xReverse.signal}` };\n            }\n            else {\n                return !scaleConfig.xReverse;\n            }\n        }\n        return scaleConfig.xReverse;\n    }\n    if (Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasContinuousDomain\"])(scaleType) && sort === 'descending') {\n        // For continuous domain scales, Vega does not support domain sort.\n        // Thus, we reverse range instead if sort is descending\n        return true;\n    }\n    return undefined;\n}\nfunction zero(channel, fieldDef, specifiedDomain, markDef, scaleType) {\n    // If users explicitly provide a domain range, we should not augment zero as that will be unexpected.\n    const hasCustomDomain = !!specifiedDomain && specifiedDomain !== 'unaggregated';\n    if (hasCustomDomain) {\n        if (Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"hasContinuousDomain\"])(scaleType)) {\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(specifiedDomain)) {\n                const first = specifiedDomain[0];\n                const last = specifiedDomain[specifiedDomain.length - 1];\n                if (first <= 0 && last >= 0) {\n                    // if the domain includes zero, make zero remains true\n                    return true;\n                }\n            }\n            return false;\n        }\n    }\n    // If there is no custom domain, return true only for the following cases:\n    // 1) using quantitative field with size\n    // While this can be either ratio or interval fields, our assumption is that\n    // ratio are more common. However, if the scaleType is discretizing scale, we want to return\n    // false so that range doesn't start at zero\n    if (channel === 'size' && fieldDef.type === 'quantitative' && !Object(_scale__WEBPACK_IMPORTED_MODULE_6__[\"isContinuousToDiscrete\"])(scaleType)) {\n        return true;\n    }\n    // 2) non-binned, quantitative x-scale or y-scale\n    // (For binning, we should not include zero by default because binning are calculated without zero.)\n    if (!(Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(fieldDef) && fieldDef.bin) &&\n        _util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"]([..._channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNELS\"], ..._channel__WEBPACK_IMPORTED_MODULE_2__[\"POLAR_POSITION_SCALE_CHANNELS\"]], channel)) {\n        const { orient, type } = markDef;\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"contains\"])(['bar', 'area', 'line', 'trail'], type)) {\n            if ((orient === 'horizontal' && channel === 'y') || (orient === 'vertical' && channel === 'x')) {\n                return false;\n            }\n        }\n        return true;\n    }\n    return false;\n}\n//# sourceMappingURL=properties.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/properties.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/range.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/range.js ***!
  \*****************************************************************/
/*! exports provided: RANGE_PROPERTIES, parseUnitScaleRange, parseRangeForChannel, defaultContinuousToDiscreteCount, interpolateRange, MAX_SIZE_RANGE_STEP_RATIO */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RANGE_PROPERTIES\", function() { return RANGE_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseUnitScaleRange\", function() { return parseUnitScaleRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseRangeForChannel\", function() { return parseRangeForChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultContinuousToDiscreteCount\", function() { return defaultContinuousToDiscreteCount; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateRange\", function() { return interpolateRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MAX_SIZE_RANGE_STEP_RATIO\", function() { return MAX_SIZE_RANGE_STEP_RATIO; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _spec_base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../spec/base */ \"./node_modules/vega-lite/build/src/spec/base.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _data_bin__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../data/bin */ \"./node_modules/vega-lite/build/src/compile/data/bin.js\");\n/* harmony import */ var _signal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../signal */ \"./node_modules/vega-lite/build/src/compile/signal.js\");\n/* harmony import */ var _split__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../split */ \"./node_modules/vega-lite/build/src/compile/split.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst RANGE_PROPERTIES = ['range', 'scheme'];\nfunction getSizeChannel(channel) {\n    return channel === 'x' ? 'width' : channel === 'y' ? 'height' : undefined;\n}\nfunction parseUnitScaleRange(model) {\n    const localScaleComponents = model.component.scales;\n    // use SCALE_CHANNELS instead of scales[channel] to ensure that x, y come first!\n    for (const channel of _channel__WEBPACK_IMPORTED_MODULE_2__[\"SCALE_CHANNELS\"]) {\n        const localScaleCmpt = localScaleComponents[channel];\n        if (!localScaleCmpt) {\n            continue;\n        }\n        const rangeWithExplicit = parseRangeForChannel(channel, model);\n        localScaleCmpt.setWithExplicit('range', rangeWithExplicit);\n    }\n}\nfunction getBinStepSignal(model, channel) {\n    const fieldDef = model.fieldDef(channel);\n    if (fieldDef && fieldDef.bin && Object(_bin__WEBPACK_IMPORTED_MODULE_1__[\"isBinning\"])(fieldDef.bin)) {\n        const binSignal = Object(_data_bin__WEBPACK_IMPORTED_MODULE_12__[\"getBinSignalName\"])(model, fieldDef.field, fieldDef.bin);\n        // TODO: extract this to be range step signal\n        const sizeType = getSizeChannel(channel);\n        const sizeSignal = model.getName(sizeType);\n        return new _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"](() => {\n            const updatedName = model.getSignalName(binSignal);\n            const binCount = `(${updatedName}.stop - ${updatedName}.start) / ${updatedName}.step`;\n            return `${model.getSignalName(sizeSignal)} / (${binCount})`;\n        });\n    }\n    return undefined;\n}\n/**\n * Return mixins that includes one of the Vega range types (explicit range, range.step, range.scheme).\n */\nfunction parseRangeForChannel(channel, model) {\n    const specifiedScale = model.specifiedScales[channel];\n    const { size } = model;\n    const mergedScaleCmpt = model.getScaleComponent(channel);\n    const scaleType = mergedScaleCmpt.get('type');\n    // Check if any of the range properties is specified.\n    // If so, check if it is compatible and make sure that we only output one of the properties\n    for (const property of RANGE_PROPERTIES) {\n        if (specifiedScale[property] !== undefined) {\n            const supportedByScaleType = Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"scaleTypeSupportProperty\"])(scaleType, property);\n            const channelIncompatability = Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"channelScalePropertyIncompatability\"])(channel, property);\n            if (!supportedByScaleType) {\n                _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].scalePropertyNotWorkWithScaleType(scaleType, property, channel));\n            }\n            else if (channelIncompatability) {\n                // channel\n                _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](channelIncompatability);\n            }\n            else {\n                switch (property) {\n                    case 'range': {\n                        const range = specifiedScale.range;\n                        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(range)) {\n                            if (Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"isXorY\"])(channel)) {\n                                return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeExplicit\"])(range.map(v => {\n                                    if (v === 'width' || v === 'height') {\n                                        // get signal for width/height\n                                        // Just like default range logic below, we use SignalRefWrapper to account for potential merges and renames.\n                                        const sizeSignal = model.getName(v);\n                                        const getSignalName = model.getSignalName.bind(model);\n                                        return _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"].fromName(getSignalName, sizeSignal);\n                                    }\n                                    return v;\n                                }));\n                            }\n                        }\n                        else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(range)) {\n                            return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeExplicit\"])({\n                                data: model.requestDataName(_data__WEBPACK_IMPORTED_MODULE_5__[\"DataSourceType\"].Main),\n                                field: range.field,\n                                sort: { op: 'min', field: model.vgField(channel) }\n                            });\n                        }\n                        return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeExplicit\"])(range);\n                    }\n                    case 'scheme':\n                        return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeExplicit\"])(parseScheme(specifiedScale[property]));\n                }\n            }\n        }\n    }\n    if (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] || channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"]) {\n        const sizeChannel = channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] ? 'width' : 'height';\n        const sizeValue = size[sizeChannel];\n        if (Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isStep\"])(sizeValue)) {\n            if (Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"hasDiscreteDomain\"])(scaleType)) {\n                return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeExplicit\"])({ step: sizeValue.step });\n            }\n            else {\n                _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].stepDropped(sizeChannel));\n            }\n        }\n    }\n    const { rangeMin, rangeMax } = specifiedScale;\n    const d = defaultRange(channel, model);\n    if ((rangeMin !== undefined || rangeMax !== undefined) &&\n        // it's ok to check just rangeMin's compatibility since rangeMin/rangeMax are the same\n        Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"scaleTypeSupportProperty\"])(scaleType, 'rangeMin') &&\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(d) &&\n        d.length === 2) {\n        return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeExplicit\"])([rangeMin !== null && rangeMin !== void 0 ? rangeMin : d[0], rangeMax !== null && rangeMax !== void 0 ? rangeMax : d[1]]);\n    }\n    return Object(_split__WEBPACK_IMPORTED_MODULE_14__[\"makeImplicit\"])(d);\n}\nfunction parseScheme(scheme) {\n    if (Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"isExtendedScheme\"])(scheme)) {\n        return Object.assign({ scheme: scheme.name }, _util__WEBPACK_IMPORTED_MODULE_9__[\"omit\"](scheme, ['name']));\n    }\n    return { scheme: scheme };\n}\nfunction defaultRange(channel, model) {\n    const { size, config, mark, encoding } = model;\n    const getSignalName = model.getSignalName.bind(model);\n    const { type } = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldOrDatumDef\"])(encoding[channel]);\n    const mergedScaleCmpt = model.getScaleComponent(channel);\n    const scaleType = mergedScaleCmpt.get('type');\n    const { domain, domainMid } = model.specifiedScales[channel];\n    switch (channel) {\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"]: {\n            // If there is no explicit width/height for discrete x/y scales\n            if (_util__WEBPACK_IMPORTED_MODULE_9__[\"contains\"](['point', 'band'], scaleType)) {\n                if (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] && !size.width) {\n                    const w = Object(_config__WEBPACK_IMPORTED_MODULE_4__[\"getViewConfigDiscreteSize\"])(config.view, 'width');\n                    if (Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isStep\"])(w)) {\n                        return w;\n                    }\n                }\n                else if (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"] && !size.height) {\n                    const h = Object(_config__WEBPACK_IMPORTED_MODULE_4__[\"getViewConfigDiscreteSize\"])(config.view, 'height');\n                    if (Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isStep\"])(h)) {\n                        return h;\n                    }\n                }\n            }\n            // If step is null, use zero to width or height.\n            // Note that we use SignalRefWrapper to account for potential merges and renames.\n            const sizeType = getSizeChannel(channel);\n            const sizeSignal = model.getName(sizeType);\n            if (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"] && Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"hasContinuousDomain\"])(scaleType)) {\n                // For y continuous scale, we have to start from the height as the bottom part has the max value.\n                return [_signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"].fromName(getSignalName, sizeSignal), 0];\n            }\n            else {\n                return [0, _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"].fromName(getSignalName, sizeSignal)];\n            }\n        }\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"SIZE\"]: {\n            // TODO: support custom rangeMin, rangeMax\n            const zero = model.component.scales[channel].get('zero');\n            const rangeMin = sizeRangeMin(mark, zero, config);\n            const rangeMax = sizeRangeMax(mark, size, model, config);\n            if (Object(_scale__WEBPACK_IMPORTED_MODULE_7__[\"isContinuousToDiscrete\"])(scaleType)) {\n                return interpolateRange(rangeMin, rangeMax, defaultContinuousToDiscreteCount(scaleType, config, domain, channel));\n            }\n            else {\n                return [rangeMin, rangeMax];\n            }\n        }\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"THETA\"]:\n            return [0, Math.PI * 2];\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"ANGLE\"]:\n            // TODO: add config.scale.min/maxAngleDegree (for point and text) and config.scale.min/maxAngleRadian (for arc) once we add arc marks.\n            // (It's weird to add just config.scale.min/maxAngleDegree for now)\n            return [0, 360];\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"RADIUS\"]: {\n            // max radius = half od min(width,height)\n            return [\n                0,\n                new _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"](() => {\n                    const w = model.getSignalName('width');\n                    const h = model.getSignalName('height');\n                    return `min(${w},${h})/2`;\n                })\n            ];\n        }\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"STROKEWIDTH\"]:\n            // TODO: support custom rangeMin, rangeMax\n            return [config.scale.minStrokeWidth, config.scale.maxStrokeWidth];\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"STROKEDASH\"]:\n            return [\n                // TODO: add this to Vega's config.range?\n                [1, 0],\n                [4, 2],\n                [2, 1],\n                [1, 1],\n                [1, 2, 4, 2]\n            ];\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"SHAPE\"]:\n            return 'symbol';\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"COLOR\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"FILL\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"STROKE\"]:\n            if (scaleType === 'ordinal') {\n                // Only nominal data uses ordinal scale by default\n                return type === 'nominal' ? 'category' : 'ordinal';\n            }\n            else {\n                if (domainMid !== undefined) {\n                    return 'diverging';\n                }\n                else {\n                    return mark === 'rect' || mark === 'geoshape' ? 'heatmap' : 'ramp';\n                }\n            }\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"OPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"FILLOPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_2__[\"STROKEOPACITY\"]:\n            // TODO: support custom rangeMin, rangeMax\n            return [config.scale.minOpacity, config.scale.maxOpacity];\n    }\n    /* istanbul ignore next: should never reach here */\n    throw new Error(`Scale range undefined for channel ${channel}`);\n}\nfunction defaultContinuousToDiscreteCount(scaleType, config, domain, channel) {\n    switch (scaleType) {\n        case 'quantile':\n            return config.scale.quantileCount;\n        case 'quantize':\n            return config.scale.quantizeCount;\n        case 'threshold':\n            if (domain !== undefined && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(domain)) {\n                return domain.length + 1;\n            }\n            else {\n                _log__WEBPACK_IMPORTED_MODULE_6__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].domainRequiredForThresholdScale(channel));\n                // default threshold boundaries for threshold scale since domain has cardinality of 2\n                return 3;\n            }\n    }\n}\n/**\n * Returns the linear interpolation of the range according to the cardinality\n *\n * @param rangeMin start of the range\n * @param rangeMax end of the range\n * @param cardinality number of values in the output range\n */\nfunction interpolateRange(rangeMin, rangeMax, cardinality) {\n    // always return a signal since it's better to compute the sequence in Vega later\n    const f = () => {\n        const rMax = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"signalOrStringValue\"])(rangeMax);\n        const rMin = Object(_common__WEBPACK_IMPORTED_MODULE_11__[\"signalOrStringValue\"])(rangeMin);\n        const step = `(${rMax} - ${rMin}) / (${cardinality} - 1)`;\n        return `sequence(${rMin}, ${rMax} + ${step}, ${step})`;\n    };\n    if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_10__[\"isSignalRef\"])(rangeMax)) {\n        return new _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"](f);\n    }\n    else {\n        return { signal: f() };\n    }\n}\nfunction sizeRangeMin(mark, zero, config) {\n    if (zero) {\n        if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_10__[\"isSignalRef\"])(zero)) {\n            return { signal: `${zero.signal} ? 0 : ${sizeRangeMin(mark, false, config)}` };\n        }\n        else {\n            return 0;\n        }\n    }\n    switch (mark) {\n        case 'bar':\n        case 'tick':\n            return config.scale.minBandSize;\n        case 'line':\n        case 'trail':\n        case 'rule':\n            return config.scale.minStrokeWidth;\n        case 'text':\n            return config.scale.minFontSize;\n        case 'point':\n        case 'square':\n        case 'circle':\n            return config.scale.minSize;\n    }\n    /* istanbul ignore next: should never reach here */\n    // sizeRangeMin not implemented for the mark\n    throw new Error(_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].incompatibleChannel('size', mark));\n}\nconst MAX_SIZE_RANGE_STEP_RATIO = 0.95;\nfunction sizeRangeMax(mark, size, model, config) {\n    const xyStepSignals = {\n        x: getBinStepSignal(model, 'x'),\n        y: getBinStepSignal(model, 'y')\n    };\n    switch (mark) {\n        case 'bar':\n        case 'tick': {\n            if (config.scale.maxBandSize !== undefined) {\n                return config.scale.maxBandSize;\n            }\n            const min = minXYStep(size, xyStepSignals, config.view);\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(min)) {\n                return min - 1;\n            }\n            else {\n                return new _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"](() => `${min.signal} - 1`);\n            }\n        }\n        case 'line':\n        case 'trail':\n        case 'rule':\n            return config.scale.maxStrokeWidth;\n        case 'text':\n            return config.scale.maxFontSize;\n        case 'point':\n        case 'square':\n        case 'circle': {\n            if (config.scale.maxSize) {\n                return config.scale.maxSize;\n            }\n            const pointStep = minXYStep(size, xyStepSignals, config.view);\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(pointStep)) {\n                return Math.pow(MAX_SIZE_RANGE_STEP_RATIO * pointStep, 2);\n            }\n            else {\n                return new _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"](() => `pow(${MAX_SIZE_RANGE_STEP_RATIO} * ${pointStep.signal}, 2)`);\n            }\n        }\n    }\n    /* istanbul ignore next: should never reach here */\n    // sizeRangeMax not implemented for the mark\n    throw new Error(_log__WEBPACK_IMPORTED_MODULE_6__[\"message\"].incompatibleChannel('size', mark));\n}\n/**\n * @returns {number} Range step of x or y or minimum between the two if both are ordinal scale.\n */\nfunction minXYStep(size, xyStepSignals, viewConfig) {\n    const widthStep = Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isStep\"])(size.width) ? size.width.step : Object(_config__WEBPACK_IMPORTED_MODULE_4__[\"getViewConfigDiscreteStep\"])(viewConfig, 'width');\n    const heightStep = Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isStep\"])(size.height) ? size.height.step : Object(_config__WEBPACK_IMPORTED_MODULE_4__[\"getViewConfigDiscreteStep\"])(viewConfig, 'height');\n    if (xyStepSignals.x || xyStepSignals.y) {\n        return new _signal__WEBPACK_IMPORTED_MODULE_13__[\"SignalRefWrapper\"](() => {\n            const exprs = [\n                xyStepSignals.x ? xyStepSignals.x.signal : widthStep,\n                xyStepSignals.y ? xyStepSignals.y.signal : heightStep\n            ];\n            return `min(${exprs.join(', ')})`;\n        });\n    }\n    return Math.min(widthStep, heightStep);\n}\n//# sourceMappingURL=range.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/range.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/scale/type.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/scale/type.js ***!
  \****************************************************************/
/*! exports provided: scaleType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleType\", function() { return scaleType; });\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\n\n\n\n\n\n\n/**\n * Determine if there is a specified scale type and if it is appropriate,\n * or determine default type if type is unspecified or inappropriate.\n */\n// NOTE: CompassQL uses this method.\nfunction scaleType(specifiedScale, channel, fieldDef, mark) {\n    const defaultScaleType = defaultType(channel, fieldDef, mark);\n    const { type } = specifiedScale;\n    if (!Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isScaleChannel\"])(channel)) {\n        // There is no scale for these channels\n        return null;\n    }\n    if (type !== undefined) {\n        // Check if explicitly specified scale type is supported by the channel\n        if (!Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"channelSupportScaleType\"])(channel, type)) {\n            _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].scaleTypeNotWorkWithChannel(channel, type, defaultScaleType));\n            return defaultScaleType;\n        }\n        // Check if explicitly specified scale type is supported by the data type\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldDef) && !Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"scaleTypeSupportDataType\"])(type, fieldDef.type)) {\n            _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].scaleTypeNotWorkWithFieldDef(type, defaultScaleType));\n            return defaultScaleType;\n        }\n        return type;\n    }\n    return defaultScaleType;\n}\n/**\n * Determine appropriate default scale type.\n */\n// NOTE: Voyager uses this method.\nfunction defaultType(channel, fieldDef, mark) {\n    var _a;\n    switch (fieldDef.type) {\n        case 'nominal':\n        case 'ordinal':\n            if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isColorChannel\"])(channel) || Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"rangeType\"])(channel) === 'discrete') {\n                if (channel === 'shape' && fieldDef.type === 'ordinal') {\n                    _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].discreteChannelCannotEncode(channel, 'ordinal'));\n                }\n                return 'ordinal';\n            }\n            if (channel in _channel__WEBPACK_IMPORTED_MODULE_1__[\"POSITION_SCALE_CHANNEL_INDEX\"]) {\n                if (_util__WEBPACK_IMPORTED_MODULE_6__[\"contains\"](['rect', 'bar', 'image', 'rule'], mark)) {\n                    // The rect/bar mark should fit into a band.\n                    // For rule, using band scale to make rule align with axis ticks better https://github.com/vega/vega-lite/issues/3429\n                    return 'band';\n                }\n            }\n            else if (mark === 'arc' && channel in _channel__WEBPACK_IMPORTED_MODULE_1__[\"POLAR_POSITION_SCALE_CHANNEL_INDEX\"]) {\n                return 'band';\n            }\n            if (fieldDef.band !== undefined || (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isPositionFieldOrDatumDef\"])(fieldDef) && ((_a = fieldDef.axis) === null || _a === void 0 ? void 0 : _a.tickBand))) {\n                return 'band';\n            }\n            // Otherwise, use ordinal point scale so we can easily get center positions of the marks.\n            return 'point';\n        case 'temporal':\n            if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isColorChannel\"])(channel)) {\n                return 'time';\n            }\n            else if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"rangeType\"])(channel) === 'discrete') {\n                _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].discreteChannelCannotEncode(channel, 'temporal'));\n                // TODO: consider using quantize (equivalent to binning) once we have it\n                return 'ordinal';\n            }\n            else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldDef) && fieldDef.timeUnit && Object(_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"normalizeTimeUnit\"])(fieldDef.timeUnit).utc) {\n                return 'utc';\n            }\n            return 'time';\n        case 'quantitative':\n            if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isColorChannel\"])(channel)) {\n                if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(fieldDef) && Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinning\"])(fieldDef.bin)) {\n                    return 'bin-ordinal';\n                }\n                return 'linear';\n            }\n            else if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"rangeType\"])(channel) === 'discrete') {\n                _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].discreteChannelCannotEncode(channel, 'quantitative'));\n                // TODO: consider using quantize (equivalent to binning) once we have it\n                return 'ordinal';\n            }\n            return 'linear';\n        case 'geojson':\n            return undefined;\n    }\n    /* istanbul ignore next: should never reach this */\n    throw new Error(_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].invalidFieldType(fieldDef.type));\n}\n//# sourceMappingURL=type.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/scale/type.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/assemble.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/assemble.js ***!
  \************************************************************************/
/*! exports provided: assembleInit, assembleUnitSelectionSignals, assembleFacetSignals, assembleTopLevelSignals, assembleUnitSelectionData, assembleUnitSelectionMarks, assembleLayerSelectionMarks, assembleSelectionScaleDomain */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleInit\", function() { return assembleInit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleUnitSelectionSignals\", function() { return assembleUnitSelectionSignals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleFacetSignals\", function() { return assembleFacetSignals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleTopLevelSignals\", function() { return assembleTopLevelSignals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleUnitSelectionData\", function() { return assembleUnitSelectionData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleUnitSelectionMarks\", function() { return assembleUnitSelectionMarks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleLayerSelectionMarks\", function() { return assembleLayerSelectionMarks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleSelectionScaleDomain\", function() { return assembleSelectionScaleDomain; });\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! . */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../datetime */ \"./node_modules/vega-lite/build/src/datetime.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _transforms_transforms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./transforms/transforms */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/transforms.js\");\n/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./parse */ \"./node_modules/vega-lite/build/src/compile/selection/parse.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\nfunction assembleInit(init, isExpr = true, wrap = vega_util__WEBPACK_IMPORTED_MODULE_1__[\"identity\"]) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"])(init)) {\n        const assembled = init.map(v => assembleInit(v, isExpr, wrap));\n        return isExpr ? `[${assembled.join(', ')}]` : assembled;\n    }\n    else if (Object(_datetime__WEBPACK_IMPORTED_MODULE_3__[\"isDateTime\"])(init)) {\n        if (isExpr) {\n            return wrap(Object(_datetime__WEBPACK_IMPORTED_MODULE_3__[\"dateTimeToExpr\"])(init));\n        }\n        else {\n            return wrap(Object(_datetime__WEBPACK_IMPORTED_MODULE_3__[\"dateTimeToTimestamp\"])(init));\n        }\n    }\n    return isExpr ? wrap(JSON.stringify(init)) : init;\n}\nfunction assembleUnitSelectionSignals(model, signals) {\n    Object(___WEBPACK_IMPORTED_MODULE_2__[\"forEachSelection\"])(model, (selCmpt, selCompiler) => {\n        const name = selCmpt.name;\n        let modifyExpr = selCompiler.modifyExpr(model, selCmpt);\n        signals.push(...selCompiler.signals(model, selCmpt));\n        Object(_transforms_transforms__WEBPACK_IMPORTED_MODULE_6__[\"forEachTransform\"])(selCmpt, txCompiler => {\n            if (txCompiler.signals) {\n                signals = txCompiler.signals(model, selCmpt, signals);\n            }\n            if (txCompiler.modifyExpr) {\n                modifyExpr = txCompiler.modifyExpr(model, selCmpt, modifyExpr);\n            }\n        });\n        signals.push({\n            name: name + ___WEBPACK_IMPORTED_MODULE_2__[\"MODIFY\"],\n            on: [\n                {\n                    events: { signal: selCmpt.name + ___WEBPACK_IMPORTED_MODULE_2__[\"TUPLE\"] },\n                    update: `modify(${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(selCmpt.name + ___WEBPACK_IMPORTED_MODULE_2__[\"STORE\"])}, ${modifyExpr})`\n                }\n            ]\n        });\n    });\n    return cleanupEmptyOnArray(signals);\n}\nfunction assembleFacetSignals(model, signals) {\n    if (model.component.selection && Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(model.component.selection).length) {\n        const name = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(model.getName('cell'));\n        signals.unshift({\n            name: 'facet',\n            value: {},\n            on: [\n                {\n                    events: Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_0__[\"selector\"])('mousemove', 'scope'),\n                    update: `isTuple(facet) ? facet : group(${name}).datum`\n                }\n            ]\n        });\n    }\n    return cleanupEmptyOnArray(signals);\n}\nfunction assembleTopLevelSignals(model, signals) {\n    let hasSelections = false;\n    Object(___WEBPACK_IMPORTED_MODULE_2__[\"forEachSelection\"])(model, (selCmpt, selCompiler) => {\n        const name = selCmpt.name;\n        const store = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(name + ___WEBPACK_IMPORTED_MODULE_2__[\"STORE\"]);\n        const hasSg = signals.filter(s => s.name === name);\n        if (hasSg.length === 0) {\n            const resolve = selCmpt.resolve === 'global' ? 'union' : selCmpt.resolve;\n            const isMulti = selCmpt.type === 'multi' ? ', true)' : ')';\n            signals.push({\n                name: selCmpt.name,\n                update: `${___WEBPACK_IMPORTED_MODULE_2__[\"VL_SELECTION_RESOLVE\"]}(${store}, ${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(resolve)}${isMulti}`\n            });\n        }\n        hasSelections = true;\n        if (selCompiler.topLevelSignals) {\n            signals = selCompiler.topLevelSignals(model, selCmpt, signals);\n        }\n        Object(_transforms_transforms__WEBPACK_IMPORTED_MODULE_6__[\"forEachTransform\"])(selCmpt, txCompiler => {\n            if (txCompiler.topLevelSignals) {\n                signals = txCompiler.topLevelSignals(model, selCmpt, signals);\n            }\n        });\n    });\n    if (hasSelections) {\n        const hasUnit = signals.filter(s => s.name === 'unit');\n        if (hasUnit.length === 0) {\n            signals.unshift({\n                name: 'unit',\n                value: {},\n                on: [{ events: 'mousemove', update: 'isTuple(group()) ? group() : unit' }]\n            });\n        }\n    }\n    return cleanupEmptyOnArray(signals);\n}\nfunction assembleUnitSelectionData(model, data) {\n    const dataCopy = [...data];\n    Object(___WEBPACK_IMPORTED_MODULE_2__[\"forEachSelection\"])(model, selCmpt => {\n        const init = { name: selCmpt.name + ___WEBPACK_IMPORTED_MODULE_2__[\"STORE\"] };\n        if (selCmpt.init) {\n            const fields = selCmpt.project.items.map(proj => {\n                const { signals } = proj, rest = __rest(proj, [\"signals\"]);\n                return rest;\n            });\n            const insert = selCmpt.init.map(i => assembleInit(i, false));\n            init.values =\n                selCmpt.type === 'interval'\n                    ? [{ unit: Object(___WEBPACK_IMPORTED_MODULE_2__[\"unitName\"])(model, { escape: false }), fields, values: insert }]\n                    : insert.map(i => ({ unit: Object(___WEBPACK_IMPORTED_MODULE_2__[\"unitName\"])(model, { escape: false }), fields, values: i }));\n        }\n        const contains = dataCopy.filter(d => d.name === selCmpt.name + ___WEBPACK_IMPORTED_MODULE_2__[\"STORE\"]);\n        if (!contains.length) {\n            dataCopy.push(init);\n        }\n    });\n    return dataCopy;\n}\nfunction assembleUnitSelectionMarks(model, marks) {\n    Object(___WEBPACK_IMPORTED_MODULE_2__[\"forEachSelection\"])(model, (selCmpt, selCompiler) => {\n        marks = selCompiler.marks ? selCompiler.marks(model, selCmpt, marks) : marks;\n        Object(_transforms_transforms__WEBPACK_IMPORTED_MODULE_6__[\"forEachTransform\"])(selCmpt, txCompiler => {\n            if (txCompiler.marks) {\n                marks = txCompiler.marks(model, selCmpt, marks);\n            }\n        });\n    });\n    return marks;\n}\nfunction assembleLayerSelectionMarks(model, marks) {\n    for (const child of model.children) {\n        if (Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isUnitModel\"])(child)) {\n            marks = assembleUnitSelectionMarks(child, marks);\n        }\n    }\n    return marks;\n}\nfunction assembleSelectionScaleDomain(model, extent) {\n    const name = extent.selection;\n    const selCmpt = model.getSelectionComponent(name, Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"varName\"])(name));\n    return { signal: Object(_parse__WEBPACK_IMPORTED_MODULE_7__[\"parseSelectionBinExtent\"])(selCmpt, extent) };\n}\nfunction cleanupEmptyOnArray(signals) {\n    return signals.map(s => {\n        if (s.on && !s.on.length)\n            delete s.on;\n        return s;\n    });\n}\n//# sourceMappingURL=assemble.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/assemble.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/index.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/index.js ***!
  \*********************************************************************/
/*! exports provided: STORE, TUPLE, MODIFY, SELECTION_DOMAIN, VL_SELECTION_RESOLVE, forEachSelection, unitName, requiresSelectionId */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STORE\", function() { return STORE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TUPLE\", function() { return TUPLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MODIFY\", function() { return MODIFY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_DOMAIN\", function() { return SELECTION_DOMAIN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VL_SELECTION_RESOLVE\", function() { return VL_SELECTION_RESOLVE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forEachSelection\", function() { return forEachSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unitName\", function() { return unitName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"requiresSelectionId\", function() { return requiresSelectionId; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../selection */ \"./node_modules/vega-lite/build/src/selection.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./node_modules/vega-lite/build/src/compile/selection/interval.js\");\n/* harmony import */ var _multi__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./multi */ \"./node_modules/vega-lite/build/src/compile/selection/multi.js\");\n/* harmony import */ var _single__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./single */ \"./node_modules/vega-lite/build/src/compile/selection/single.js\");\n\n\n\n\n\n\n\n\nconst STORE = '_store';\nconst TUPLE = '_tuple';\nconst MODIFY = '_modify';\nconst SELECTION_DOMAIN = '_selection_domain_';\nconst VL_SELECTION_RESOLVE = 'vlSelectionResolve';\nconst compilers = { single: _single__WEBPACK_IMPORTED_MODULE_7__[\"default\"], multi: _multi__WEBPACK_IMPORTED_MODULE_6__[\"default\"], interval: _interval__WEBPACK_IMPORTED_MODULE_5__[\"default\"] };\nfunction forEachSelection(model, cb) {\n    const selections = model.component.selection;\n    if (selections) {\n        for (const sel of Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"])(selections)) {\n            const success = cb(sel, compilers[sel.type]);\n            if (success === true)\n                break;\n        }\n    }\n}\nfunction getFacetModel(model) {\n    let parent = model.parent;\n    while (parent) {\n        if (Object(_model__WEBPACK_IMPORTED_MODULE_4__[\"isFacetModel\"])(parent)) {\n            break;\n        }\n        parent = parent.parent;\n    }\n    return parent;\n}\nfunction unitName(model, { escape } = { escape: true }) {\n    let name = escape ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(model.name) : model.name;\n    const facetModel = getFacetModel(model);\n    if (facetModel) {\n        const { facet } = facetModel;\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_1__[\"FACET_CHANNELS\"]) {\n            if (facet[channel]) {\n                name += ` + '__facet_${channel}_' + (facet[${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(facetModel.vgField(channel))}])`;\n            }\n        }\n    }\n    return name;\n}\nfunction requiresSelectionId(model) {\n    let identifier = false;\n    forEachSelection(model, selCmpt => {\n        identifier = identifier || selCmpt.project.items.some(proj => proj.field === _selection__WEBPACK_IMPORTED_MODULE_2__[\"SELECTION_ID\"]);\n    });\n    return identifier;\n}\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/interval.js":
/*!************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/interval.js ***!
  \************************************************************************/
/*! exports provided: BRUSH, SCALE_TRIGGER, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BRUSH\", function() { return BRUSH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCALE_TRIGGER\", function() { return SCALE_TRIGGER; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! . */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _assemble__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./assemble */ \"./node_modules/vega-lite/build/src/compile/selection/assemble.js\");\n/* harmony import */ var _transforms_project__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transforms/project */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/project.js\");\n/* harmony import */ var _transforms_scales__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./transforms/scales */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\nconst BRUSH = '_brush';\nconst SCALE_TRIGGER = '_scale_trigger';\nconst interval = {\n    signals: (model, selCmpt) => {\n        const name = selCmpt.name;\n        const fieldsSg = name + _transforms_project__WEBPACK_IMPORTED_MODULE_7__[\"TUPLE_FIELDS\"];\n        const hasScales = _transforms_scales__WEBPACK_IMPORTED_MODULE_8__[\"default\"].has(selCmpt);\n        const signals = [];\n        const dataSignals = [];\n        const scaleTriggers = [];\n        if (selCmpt.translate && !hasScales) {\n            const filterExpr = `!event.item || event.item.mark.name !== ${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name + BRUSH)}`;\n            events(selCmpt, (on, evt) => {\n                var _a;\n                const filters = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])((_a = evt.between[0].filter) !== null && _a !== void 0 ? _a : (evt.between[0].filter = []));\n                if (filters.indexOf(filterExpr) < 0) {\n                    filters.push(filterExpr);\n                }\n                return on;\n            });\n        }\n        selCmpt.project.items.forEach((proj, i) => {\n            const channel = proj.channel;\n            if (channel !== _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] && channel !== _channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"]) {\n                Object(_log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])('Interval selections only support x and y encoding channels.');\n                return;\n            }\n            const init = selCmpt.init ? selCmpt.init[i] : null;\n            const cs = channelSignals(model, selCmpt, proj, init);\n            const dname = proj.signals.data;\n            const vname = proj.signals.visual;\n            const scaleName = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(model.scaleName(channel));\n            const scaleType = model.getScaleComponent(channel).get('type');\n            const toNum = Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"hasContinuousDomain\"])(scaleType) ? '+' : '';\n            signals.push(...cs);\n            dataSignals.push(dname);\n            scaleTriggers.push({\n                scaleName: model.scaleName(channel),\n                expr: `(!isArray(${dname}) || ` +\n                    `(${toNum}invert(${scaleName}, ${vname})[0] === ${toNum}${dname}[0] && ` +\n                    `${toNum}invert(${scaleName}, ${vname})[1] === ${toNum}${dname}[1]))`\n            });\n        });\n        // Proxy scale reactions to ensure that an infinite loop doesn't occur\n        // when an interval selection filter touches the scale.\n        if (!hasScales) {\n            signals.push({\n                name: name + SCALE_TRIGGER,\n                value: {},\n                on: [\n                    {\n                        events: scaleTriggers.map(t => ({ scale: t.scaleName })),\n                        update: scaleTriggers.map(t => t.expr).join(' && ') + ` ? ${name + SCALE_TRIGGER} : {}`\n                    }\n                ]\n            });\n        }\n        // Only add an interval to the store if it has valid data extents. Data extents\n        // are set to null if pixel extents are equal to account for intervals over\n        // ordinal/nominal domains which, when inverted, will still produce a valid datum.\n        const init = selCmpt.init;\n        const update = `unit: ${Object(___WEBPACK_IMPORTED_MODULE_1__[\"unitName\"])(model)}, fields: ${fieldsSg}, values`;\n        return signals.concat(Object.assign(Object.assign({ name: name + ___WEBPACK_IMPORTED_MODULE_1__[\"TUPLE\"] }, (init ? { init: `{${update}: ${Object(_assemble__WEBPACK_IMPORTED_MODULE_6__[\"assembleInit\"])(init)}}` } : {})), { on: [\n                {\n                    events: [{ signal: dataSignals.join(' || ') }],\n                    update: dataSignals.join(' && ') + ` ? {${update}: [${dataSignals}]} : null`\n                }\n            ] }));\n    },\n    modifyExpr: (model, selCmpt) => {\n        const tpl = selCmpt.name + ___WEBPACK_IMPORTED_MODULE_1__[\"TUPLE\"];\n        return tpl + ', ' + (selCmpt.resolve === 'global' ? 'true' : `{unit: ${Object(___WEBPACK_IMPORTED_MODULE_1__[\"unitName\"])(model)}}`);\n    },\n    marks: (model, selCmpt, marks) => {\n        const name = selCmpt.name;\n        const { x, y } = selCmpt.project.hasChannel;\n        const xvname = x && x.signals.visual;\n        const yvname = y && y.signals.visual;\n        const store = `data(${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(selCmpt.name + ___WEBPACK_IMPORTED_MODULE_1__[\"STORE\"])})`;\n        // Do not add a brush if we're binding to scales.\n        if (_transforms_scales__WEBPACK_IMPORTED_MODULE_8__[\"default\"].has(selCmpt)) {\n            return marks;\n        }\n        const update = {\n            x: x !== undefined ? { signal: `${xvname}[0]` } : { value: 0 },\n            y: y !== undefined ? { signal: `${yvname}[0]` } : { value: 0 },\n            x2: x !== undefined ? { signal: `${xvname}[1]` } : { field: { group: 'width' } },\n            y2: y !== undefined ? { signal: `${yvname}[1]` } : { field: { group: 'height' } }\n        };\n        // If the selection is resolved to global, only a single interval is in\n        // the store. Wrap brush mark's encodings with a production rule to test\n        // this based on the `unit` property. Hide the brush mark if it corresponds\n        // to a unit different from the one in the store.\n        if (selCmpt.resolve === 'global') {\n            for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(update)) {\n                update[key] = [\n                    Object.assign({ test: `${store}.length && ${store}[0].unit === ${Object(___WEBPACK_IMPORTED_MODULE_1__[\"unitName\"])(model)}` }, update[key]),\n                    { value: 0 }\n                ];\n            }\n        }\n        // Two brush marks ensure that fill colors and other aesthetic choices do\n        // not interefere with the core marks, but that the brushed region can still\n        // be interacted with (e.g., dragging it around).\n        const _a = selCmpt.mark, { fill, fillOpacity, cursor } = _a, stroke = __rest(_a, [\"fill\", \"fillOpacity\", \"cursor\"]);\n        const vgStroke = Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(stroke).reduce((def, k) => {\n            def[k] = [\n                {\n                    test: [x !== undefined && `${xvname}[0] !== ${xvname}[1]`, y !== undefined && `${yvname}[0] !== ${yvname}[1]`]\n                        .filter(t => t)\n                        .join(' && '),\n                    value: stroke[k]\n                },\n                { value: null }\n            ];\n            return def;\n        }, {});\n        return [\n            {\n                name: name + BRUSH + '_bg',\n                type: 'rect',\n                clip: true,\n                encode: {\n                    enter: {\n                        fill: { value: fill },\n                        fillOpacity: { value: fillOpacity }\n                    },\n                    update: update\n                }\n            },\n            ...marks,\n            {\n                name: name + BRUSH,\n                type: 'rect',\n                clip: true,\n                encode: {\n                    enter: Object.assign(Object.assign({}, (cursor ? { cursor: { value: cursor } } : {})), { fill: { value: 'transparent' } }),\n                    update: Object.assign(Object.assign({}, update), vgStroke)\n                }\n            }\n        ];\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (interval);\n/**\n * Returns the visual and data signals for an interval selection.\n */\nfunction channelSignals(model, selCmpt, proj, init) {\n    const channel = proj.channel;\n    const vname = proj.signals.visual;\n    const dname = proj.signals.data;\n    const hasScales = _transforms_scales__WEBPACK_IMPORTED_MODULE_8__[\"default\"].has(selCmpt);\n    const scaleName = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(model.scaleName(channel));\n    const scale = model.getScaleComponent(channel);\n    const scaleType = scale ? scale.get('type') : undefined;\n    const scaled = (str) => `scale(${scaleName}, ${str})`;\n    const size = model.getSizeSignalRef(channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] ? 'width' : 'height').signal;\n    const coord = `${channel}(unit)`;\n    const on = events(selCmpt, (def, evt) => {\n        return [\n            ...def,\n            { events: evt.between[0], update: `[${coord}, ${coord}]` },\n            { events: evt, update: `[${vname}[0], clamp(${coord}, 0, ${size})]` } // Brush End\n        ];\n    });\n    // React to pan/zooms of continuous scales. Non-continuous scales\n    // (band, point) cannot be pan/zoomed and any other changes\n    // to their domains (e.g., filtering) should clear the brushes.\n    on.push({\n        events: { signal: selCmpt.name + SCALE_TRIGGER },\n        update: Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"hasContinuousDomain\"])(scaleType) ? `[${scaled(`${dname}[0]`)}, ${scaled(`${dname}[1]`)}]` : `[0, 0]`\n    });\n    return hasScales\n        ? [{ name: dname, on: [] }]\n        : [\n            Object.assign(Object.assign({ name: vname }, (init ? { init: Object(_assemble__WEBPACK_IMPORTED_MODULE_6__[\"assembleInit\"])(init, true, scaled) } : { value: [] })), { on: on }),\n            Object.assign(Object.assign({ name: dname }, (init ? { init: Object(_assemble__WEBPACK_IMPORTED_MODULE_6__[\"assembleInit\"])(init) } : {})), { on: [\n                    {\n                        events: { signal: vname },\n                        update: `${vname}[0] === ${vname}[1] ? null : invert(${scaleName}, ${vname})`\n                    }\n                ] })\n        ];\n}\nfunction events(selCmpt, cb) {\n    return selCmpt.events.reduce((on, evt) => {\n        if (!evt.between) {\n            Object(_log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])(`${evt} is not an ordered event stream for interval selections.`);\n            return on;\n        }\n        return cb(on, evt);\n    }, []);\n}\n//# sourceMappingURL=interval.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/interval.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/multi.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/multi.js ***!
  \*********************************************************************/
/*! exports provided: singleOrMultiSignals, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"singleOrMultiSignals\", function() { return singleOrMultiSignals; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! . */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _transforms_project__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transforms/project */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/project.js\");\n\n\n\nfunction singleOrMultiSignals(model, selCmpt) {\n    const name = selCmpt.name;\n    const fieldsSg = name + _transforms_project__WEBPACK_IMPORTED_MODULE_2__[\"TUPLE_FIELDS\"];\n    const project = selCmpt.project;\n    const datum = '(item().isVoronoi ? datum.datum : datum)';\n    const values = project.items\n        .map(p => {\n        const fieldDef = model.fieldDef(p.channel);\n        // Binned fields should capture extents, for a range test against the raw field.\n        return fieldDef && fieldDef.bin\n            ? `[${datum}[${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(model.vgField(p.channel, {}))}], ` +\n                `${datum}[${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(model.vgField(p.channel, { binSuffix: 'end' }))}]]`\n            : `${datum}[${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(p.field)}]`;\n    })\n        .join(', ');\n    // Only add a discrete selection to the store if a datum is present _and_\n    // the interaction isn't occurring on a group mark. This guards against\n    // polluting interactive state with invalid values in faceted displays\n    // as the group marks are also data-driven. We force the update to account\n    // for constant null states but varying toggles (e.g., shift-click in\n    // whitespace followed by a click in whitespace; the store should only\n    // be cleared on the second click).\n    const update = `unit: ${Object(___WEBPACK_IMPORTED_MODULE_1__[\"unitName\"])(model)}, fields: ${fieldsSg}, values`;\n    const events = selCmpt.events;\n    return [\n        {\n            name: name + ___WEBPACK_IMPORTED_MODULE_1__[\"TUPLE\"],\n            on: events\n                ? [\n                    {\n                        events,\n                        update: `datum && item().mark.marktype !== 'group' ? {${update}: [${values}]} : null`,\n                        force: true\n                    }\n                ]\n                : []\n        }\n    ];\n}\nconst multi = {\n    signals: singleOrMultiSignals,\n    modifyExpr: (model, selCmpt) => {\n        const tpl = selCmpt.name + ___WEBPACK_IMPORTED_MODULE_1__[\"TUPLE\"];\n        return tpl + ', ' + (selCmpt.resolve === 'global' ? 'null' : `{unit: ${Object(___WEBPACK_IMPORTED_MODULE_1__[\"unitName\"])(model)}}`);\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (multi);\n//# sourceMappingURL=multi.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/multi.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/parse.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/parse.js ***!
  \*********************************************************************/
/*! exports provided: parseUnitSelection, parseSelectionPredicate, parseSelectionBinExtent, materializeSelections */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseUnitSelection\", function() { return parseUnitSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseSelectionPredicate\", function() { return parseSelectionPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseSelectionBinExtent\", function() { return parseSelectionBinExtent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"materializeSelections\", function() { return materializeSelections; });\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! . */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _data_dataflow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../data/dataflow */ \"./node_modules/vega-lite/build/src/compile/data/dataflow.js\");\n/* harmony import */ var _data_filter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/filter */ \"./node_modules/vega-lite/build/src/compile/data/filter.js\");\n/* harmony import */ var _transforms_transforms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./transforms/transforms */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/transforms.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../data */ \"./node_modules/vega-lite/build/src/data.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\nfunction parseUnitSelection(model, selDefs) {\n    var _a;\n    const selCmpts = {};\n    const selectionConfig = model.config.selection;\n    for (const name of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(selDefs !== null && selDefs !== void 0 ? selDefs : {})) {\n        const selDef = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"duplicate\"])(selDefs[name]);\n        const _b = selectionConfig[selDef.type], { fields, encodings } = _b, cfg = __rest(_b, [\"fields\", \"encodings\"]); // Project transform applies its defaults.\n        // Set default values from config if a property hasn't been specified,\n        // or if it is true. E.g., \"translate\": true should use the default\n        // event handlers for translate. However, true may be a valid value for\n        // a property (e.g., \"nearest\": true).\n        for (const key in cfg) {\n            // A selection should contain either `encodings` or `fields`, only use\n            // default values for these two values if neither of them is specified.\n            if ((key === 'encodings' && selDef.fields) || (key === 'fields' && selDef.encodings)) {\n                continue;\n            }\n            if (key === 'mark') {\n                selDef[key] = Object.assign(Object.assign({}, cfg[key]), selDef[key]);\n            }\n            if (selDef[key] === undefined || selDef[key] === true) {\n                selDef[key] = (_a = cfg[key]) !== null && _a !== void 0 ? _a : selDef[key];\n            }\n        }\n        const safeName = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"varName\"])(name);\n        const selCmpt = (selCmpts[safeName] = Object.assign(Object.assign({}, selDef), { name: safeName, events: Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(selDef.on) ? Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_0__[\"selector\"])(selDef.on, 'scope') : Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"duplicate\"])(selDef.on) }));\n        Object(_transforms_transforms__WEBPACK_IMPORTED_MODULE_7__[\"forEachTransform\"])(selCmpt, txCompiler => {\n            if (txCompiler.has(selCmpt) && txCompiler.parse) {\n                txCompiler.parse(model, selCmpt, selDef, selDefs[name]);\n            }\n        });\n    }\n    return selCmpts;\n}\nfunction parseSelectionPredicate(model, selections, dfnode, datum = 'datum') {\n    const stores = [];\n    function expr(name) {\n        const vname = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"varName\"])(name);\n        const selCmpt = model.getSelectionComponent(vname, name);\n        const store = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(vname + ___WEBPACK_IMPORTED_MODULE_2__[\"STORE\"]);\n        if (selCmpt.project.timeUnit) {\n            const child = dfnode !== null && dfnode !== void 0 ? dfnode : model.component.data.raw;\n            const tunode = selCmpt.project.timeUnit.clone();\n            if (child.parent) {\n                tunode.insertAsParentOf(child);\n            }\n            else {\n                child.parent = tunode;\n            }\n        }\n        if (selCmpt.empty !== 'none') {\n            stores.push(store);\n        }\n        return (`vlSelectionTest(${store}, ${datum}` + (selCmpt.resolve === 'global' ? ')' : `, ${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(selCmpt.resolve)})`));\n    }\n    const predicateStr = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"logicalExpr\"])(selections, expr);\n    return ((stores.length ? '!(' + stores.map(s => `length(data(${s}))`).join(' || ') + ') || ' : '') + `(${predicateStr})`);\n}\nfunction parseSelectionBinExtent(selCmpt, extent) {\n    const encoding = extent['encoding'];\n    let field = extent['field'];\n    if (!encoding && !field) {\n        field = selCmpt.project.items[0].field;\n        if (selCmpt.project.items.length > 1) {\n            Object(_log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])('A \"field\" or \"encoding\" must be specified when using a selection as a scale domain. ' +\n                `Using \"field\": ${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(field)}.`);\n        }\n    }\n    else if (encoding && !field) {\n        const encodings = selCmpt.project.items.filter(p => p.channel === encoding);\n        if (!encodings.length || encodings.length > 1) {\n            field = selCmpt.project.items[0].field;\n            Object(_log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"])((!encodings.length ? 'No ' : 'Multiple ') +\n                `matching ${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(encoding)} encoding found for selection ${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(extent.selection)}. ` +\n                `Using \"field\": ${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(field)}.`);\n        }\n        else {\n            field = encodings[0].field;\n        }\n    }\n    return `${selCmpt.name}[${Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(field)}]`;\n}\nfunction materializeSelections(model, main) {\n    Object(___WEBPACK_IMPORTED_MODULE_2__[\"forEachSelection\"])(model, selCmpt => {\n        const selection = selCmpt.name;\n        const lookupName = model.getName(`lookup_${selection}`);\n        model.component.data.outputNodes[lookupName] = selCmpt.materialized = new _data_dataflow__WEBPACK_IMPORTED_MODULE_5__[\"OutputNode\"](new _data_filter__WEBPACK_IMPORTED_MODULE_6__[\"FilterNode\"](main, model, { selection }), lookupName, _data__WEBPACK_IMPORTED_MODULE_8__[\"DataSourceType\"].Lookup, model.component.data.outputNodeRefCounts);\n    });\n}\n//# sourceMappingURL=parse.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/parse.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/single.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/single.js ***!
  \**********************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! . */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _multi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multi */ \"./node_modules/vega-lite/build/src/compile/selection/multi.js\");\n\n\nconst single = {\n    signals: _multi__WEBPACK_IMPORTED_MODULE_1__[\"singleOrMultiSignals\"],\n    modifyExpr: (model, selCmpt) => {\n        const tpl = selCmpt.name + ___WEBPACK_IMPORTED_MODULE_0__[\"TUPLE\"];\n        return tpl + ', ' + (selCmpt.resolve === 'global' ? 'true' : `{unit: ${Object(___WEBPACK_IMPORTED_MODULE_0__[\"unitName\"])(model)}}`);\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (single);\n//# sourceMappingURL=single.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/single.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/clear.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/clear.js ***!
  \********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! .. */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _inputs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./inputs */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/inputs.js\");\n/* harmony import */ var _toggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toggle */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/toggle.js\");\n\n\n\n\n\n\nconst clear = {\n    has: selCmpt => {\n        return selCmpt.clear !== undefined && selCmpt.clear !== false;\n    },\n    parse: (model, selCmpt, selDef) => {\n        if (selDef.clear) {\n            selCmpt.clear = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(selDef.clear) ? Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_0__[\"selector\"])(selDef.clear, 'scope') : selDef.clear;\n        }\n    },\n    topLevelSignals: (model, selCmpt, signals) => {\n        if (_inputs__WEBPACK_IMPORTED_MODULE_4__[\"default\"].has(selCmpt)) {\n            for (const proj of selCmpt.project.items) {\n                const idx = signals.findIndex(n => n.name === Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(`${selCmpt.name}_${proj.field}`));\n                if (idx !== -1) {\n                    signals[idx].on.push({ events: selCmpt.clear, update: 'null' });\n                }\n            }\n        }\n        return signals;\n    },\n    signals: (model, selCmpt, signals) => {\n        function addClear(idx, update) {\n            if (idx !== -1 && signals[idx].on) {\n                signals[idx].on.push({ events: selCmpt.clear, update });\n            }\n        }\n        // Be as minimalist as possible when adding clear triggers to minimize dataflow execution.\n        if (selCmpt.type === 'interval') {\n            for (const proj of selCmpt.project.items) {\n                const vIdx = signals.findIndex(n => n.name === proj.signals.visual);\n                addClear(vIdx, '[0, 0]');\n                if (vIdx === -1) {\n                    const dIdx = signals.findIndex(n => n.name === proj.signals.data);\n                    addClear(dIdx, 'null');\n                }\n            }\n        }\n        else {\n            let tIdx = signals.findIndex(n => n.name === selCmpt.name + ___WEBPACK_IMPORTED_MODULE_2__[\"TUPLE\"]);\n            addClear(tIdx, 'null');\n            if (_toggle__WEBPACK_IMPORTED_MODULE_5__[\"default\"].has(selCmpt)) {\n                tIdx = signals.findIndex(n => n.name === selCmpt.name + _toggle__WEBPACK_IMPORTED_MODULE_5__[\"TOGGLE\"]);\n                addClear(tIdx, 'false');\n            }\n        }\n        return signals;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (clear);\n//# sourceMappingURL=clear.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/clear.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/inputs.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/inputs.js ***!
  \*********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! .. */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _assemble__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../assemble */ \"./node_modules/vega-lite/build/src/compile/selection/assemble.js\");\n/* harmony import */ var _nearest__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nearest */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/nearest.js\");\n/* harmony import */ var _project__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./project */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/project.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../selection */ \"./node_modules/vega-lite/build/src/selection.js\");\n\n\n\n\n\n\n\nconst inputBindings = {\n    has: selCmpt => {\n        return (selCmpt.type === 'single' &&\n            selCmpt.resolve === 'global' &&\n            selCmpt.bind &&\n            selCmpt.bind !== 'scales' &&\n            !Object(_selection__WEBPACK_IMPORTED_MODULE_6__[\"isLegendBinding\"])(selCmpt.bind));\n    },\n    parse: (model, selCmpt, selDef, origDef) => {\n        // Binding a selection to input widgets disables default direct manipulation interaction.\n        // A user can choose to re-enable it by explicitly specifying triggering input events.\n        if (!origDef.on)\n            delete selCmpt.events;\n        if (!origDef.clear)\n            delete selCmpt.clear;\n    },\n    topLevelSignals: (model, selCmpt, signals) => {\n        const name = selCmpt.name;\n        const proj = selCmpt.project;\n        const bind = selCmpt.bind;\n        const init = selCmpt.init && selCmpt.init[0]; // Can only exist on single selections (one initial value).\n        const datum = _nearest__WEBPACK_IMPORTED_MODULE_4__[\"default\"].has(selCmpt) ? '(item().isVoronoi ? datum.datum : datum)' : 'datum';\n        proj.items.forEach((p, i) => {\n            var _a, _b;\n            const sgname = Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"varName\"])(`${name}_${p.field}`);\n            const hasSignal = signals.filter(s => s.name === sgname);\n            if (!hasSignal.length) {\n                signals.unshift(Object.assign(Object.assign({ name: sgname }, (init ? { init: Object(_assemble__WEBPACK_IMPORTED_MODULE_3__[\"assembleInit\"])(init[i]) } : { value: null })), { on: selCmpt.events\n                        ? [\n                            {\n                                events: selCmpt.events,\n                                update: `datum && item().mark.marktype !== 'group' ? ${datum}[${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(p.field)}] : null`\n                            }\n                        ]\n                        : [], bind: (_b = (_a = bind[p.field]) !== null && _a !== void 0 ? _a : bind[p.channel]) !== null && _b !== void 0 ? _b : bind }));\n            }\n        });\n        return signals;\n    },\n    signals: (model, selCmpt, signals) => {\n        const name = selCmpt.name;\n        const proj = selCmpt.project;\n        const signal = signals.filter(s => s.name === name + ___WEBPACK_IMPORTED_MODULE_1__[\"TUPLE\"])[0];\n        const fields = name + _project__WEBPACK_IMPORTED_MODULE_5__[\"TUPLE_FIELDS\"];\n        const values = proj.items.map(p => Object(_util__WEBPACK_IMPORTED_MODULE_2__[\"varName\"])(`${name}_${p.field}`));\n        const valid = values.map(v => `${v} !== null`).join(' && ');\n        if (values.length) {\n            signal.update = `${valid} ? {fields: ${fields}, values: [${values.join(', ')}]} : null`;\n        }\n        delete signal.value;\n        delete signal.on;\n        return signals;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (inputBindings);\n//# sourceMappingURL=inputs.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/inputs.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/legends.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/legends.js ***!
  \**********************************************************************************/
/*! exports provided: default, parseInteractiveLegend */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseInteractiveLegend\", function() { return parseInteractiveLegend; });\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! .. */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../selection */ \"./node_modules/vega-lite/build/src/selection.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _project__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./project */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/project.js\");\n/* harmony import */ var _toggle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./toggle */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/toggle.js\");\n\n\n\n\n\n\n\n\nconst legendBindings = {\n    has: (selCmpt) => {\n        const spec = selCmpt.resolve === 'global' && selCmpt.bind && Object(_selection__WEBPACK_IMPORTED_MODULE_4__[\"isLegendBinding\"])(selCmpt.bind);\n        const projLen = selCmpt.project.items.length === 1 && selCmpt.project.items[0].field !== _selection__WEBPACK_IMPORTED_MODULE_4__[\"SELECTION_ID\"];\n        if (spec && !projLen) {\n            _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].LEGEND_BINDINGS_MUST_HAVE_PROJECTION);\n        }\n        return spec && projLen;\n    },\n    parse: (model, selCmpt, selDef, origDef) => {\n        var _a;\n        // Binding a selection to a legend disables default direct manipulation interaction.\n        // A user can choose to re-enable it by explicitly specifying triggering input events.\n        if (!origDef.on)\n            delete selCmpt.events;\n        if (!origDef.clear)\n            delete selCmpt.clear;\n        if (origDef.on || origDef.clear) {\n            const legendFilter = 'event.item && indexof(event.item.mark.role, \"legend\") < 0';\n            for (const evt of selCmpt.events) {\n                evt.filter = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])((_a = evt.filter) !== null && _a !== void 0 ? _a : []);\n                if (evt.filter.indexOf(legendFilter) < 0) {\n                    evt.filter.push(legendFilter);\n                }\n            }\n        }\n        const evt = Object(_selection__WEBPACK_IMPORTED_MODULE_4__[\"isLegendStreamBinding\"])(selCmpt.bind) ? selCmpt.bind.legend : 'click';\n        const stream = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(evt) ? Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_0__[\"selector\"])(evt, 'view') : Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"array\"])(evt);\n        selCmpt.bind = { legend: { merge: stream } };\n    },\n    topLevelSignals: (model, selCmpt, signals) => {\n        const selName = selCmpt.name;\n        const stream = Object(_selection__WEBPACK_IMPORTED_MODULE_4__[\"isLegendStreamBinding\"])(selCmpt.bind) && selCmpt.bind.legend;\n        const markName = (name) => (s) => {\n            const ds = Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"duplicate\"])(s);\n            ds.markname = name;\n            return ds;\n        };\n        for (const proj of selCmpt.project.items) {\n            if (!proj.hasLegend)\n                continue;\n            const prefix = `${Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"varName\"])(proj.field)}_legend`;\n            const sgName = `${selName}_${prefix}`;\n            const hasSignal = signals.filter(s => s.name === sgName);\n            if (hasSignal.length === 0) {\n                const events = stream.merge\n                    .map(markName(`${prefix}_symbols`))\n                    .concat(stream.merge.map(markName(`${prefix}_labels`)))\n                    .concat(stream.merge.map(markName(`${prefix}_entries`)));\n                signals.unshift(Object.assign(Object.assign({ name: sgName }, (!selCmpt.init ? { value: null } : {})), { on: [\n                        // Legend entries do not store values, so we need to walk the scenegraph to the symbol datum.\n                        { events, update: 'datum.value || item().items[0].items[0].datum.value', force: true },\n                        { events: stream.merge, update: `!event.item || !datum ? null : ${sgName}`, force: true }\n                    ] }));\n            }\n        }\n        return signals;\n    },\n    signals: (model, selCmpt, signals) => {\n        const name = selCmpt.name;\n        const proj = selCmpt.project;\n        const tuple = signals.find(s => s.name === name + ___WEBPACK_IMPORTED_MODULE_2__[\"TUPLE\"]);\n        const fields = name + _project__WEBPACK_IMPORTED_MODULE_6__[\"TUPLE_FIELDS\"];\n        const values = proj.items.filter(p => p.hasLegend).map(p => Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"varName\"])(`${name}_${Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"varName\"])(p.field)}_legend`));\n        const valid = values.map(v => `${v} !== null`).join(' && ');\n        const update = `${valid} ? {fields: ${fields}, values: [${values.join(', ')}]} : null`;\n        if (selCmpt.events && values.length > 0) {\n            tuple.on.push({\n                events: values.map(signal => ({ signal })),\n                update\n            });\n        }\n        else if (values.length > 0) {\n            tuple.update = update;\n            delete tuple.value;\n            delete tuple.on;\n        }\n        const toggle = signals.find(s => s.name === name + _toggle__WEBPACK_IMPORTED_MODULE_7__[\"TOGGLE\"]);\n        const events = Object(_selection__WEBPACK_IMPORTED_MODULE_4__[\"isLegendStreamBinding\"])(selCmpt.bind) && selCmpt.bind.legend;\n        if (toggle) {\n            if (!selCmpt.events)\n                toggle.on[0].events = events;\n            else\n                toggle.on.push(Object.assign(Object.assign({}, toggle.on[0]), { events }));\n        }\n        return signals;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (legendBindings);\nfunction parseInteractiveLegend(model, channel, legendCmpt) {\n    var _a;\n    const field = (_a = model.fieldDef(channel)) === null || _a === void 0 ? void 0 : _a.field;\n    Object(___WEBPACK_IMPORTED_MODULE_2__[\"forEachSelection\"])(model, selCmpt => {\n        var _a, _b;\n        const proj = (_a = selCmpt.project.hasField[field]) !== null && _a !== void 0 ? _a : selCmpt.project.hasChannel[channel];\n        if (proj && legendBindings.has(selCmpt)) {\n            const legendSelections = (_b = legendCmpt.get('selections')) !== null && _b !== void 0 ? _b : [];\n            legendSelections.push(selCmpt.name);\n            legendCmpt.set('selections', legendSelections, false);\n            proj.hasLegend = true;\n        }\n    });\n}\n//# sourceMappingURL=legends.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/legends.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/nearest.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/nearest.js ***!
  \**********************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _mark_encode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mark/encode */ \"./node_modules/vega-lite/build/src/compile/mark/encode/index.js\");\n\n\n\nconst VORONOI = 'voronoi';\nconst nearest = {\n    has: selCmpt => {\n        return selCmpt.type !== 'interval' && selCmpt.nearest;\n    },\n    parse: (model, selCmpt) => {\n        // Scope selection events to the voronoi mark to prevent capturing\n        // events that occur on the group mark (https://github.com/vega/vega/issues/2112).\n        if (selCmpt.events) {\n            for (const s of selCmpt.events) {\n                s.markname = model.getName(VORONOI);\n            }\n        }\n    },\n    marks: (model, selCmpt, marks) => {\n        const { x, y } = selCmpt.project.hasChannel;\n        const markType = model.mark;\n        if (Object(_mark__WEBPACK_IMPORTED_MODULE_1__[\"isPathMark\"])(markType)) {\n            _log__WEBPACK_IMPORTED_MODULE_0__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].nearestNotSupportForContinuous(markType));\n            return marks;\n        }\n        const cellDef = {\n            name: model.getName(VORONOI),\n            type: 'path',\n            interactive: true,\n            from: { data: model.getName('marks') },\n            encode: {\n                update: Object.assign({ fill: { value: 'transparent' }, strokeWidth: { value: 0.35 }, stroke: { value: 'transparent' }, isVoronoi: { value: true } }, Object(_mark_encode__WEBPACK_IMPORTED_MODULE_2__[\"tooltip\"])(model, { reactiveGeom: true }))\n            },\n            transform: [\n                {\n                    type: 'voronoi',\n                    x: { expr: x || !y ? 'datum.datum.x || 0' : '0' },\n                    y: { expr: y || !x ? 'datum.datum.y || 0' : '0' },\n                    size: [model.getSizeSignalRef('width'), model.getSizeSignalRef('height')]\n                }\n            ]\n        };\n        let index = 0;\n        let exists = false;\n        marks.forEach((mark, i) => {\n            var _a;\n            const name = (_a = mark.name) !== null && _a !== void 0 ? _a : '';\n            if (name === model.component.mark[0].name) {\n                index = i;\n            }\n            else if (name.indexOf(VORONOI) >= 0) {\n                exists = true;\n            }\n        });\n        if (!exists) {\n            marks.splice(index + 1, 0, cellDef);\n        }\n        return marks;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (nearest);\n//# sourceMappingURL=nearest.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/nearest.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/project.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/project.js ***!
  \**********************************************************************************/
/*! exports provided: TUPLE_FIELDS, SelectionProjectionComponent, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TUPLE_FIELDS\", function() { return TUPLE_FIELDS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SelectionProjectionComponent\", function() { return SelectionProjectionComponent; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _data_timeunit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../data/timeunit */ \"./node_modules/vega-lite/build/src/compile/data/timeunit.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\nconst TUPLE_FIELDS = '_tuple_fields';\nclass SelectionProjectionComponent {\n    constructor(...items) {\n        this.items = items;\n        this.hasChannel = {};\n        this.hasField = {};\n    }\n}\nconst project = {\n    has: () => {\n        return true; // This transform handles its own defaults, so always run parse.\n    },\n    parse: (model, selCmpt, selDef) => {\n        var _a, _b, _c;\n        const name = selCmpt.name;\n        const proj = (_a = selCmpt.project) !== null && _a !== void 0 ? _a : (selCmpt.project = new SelectionProjectionComponent());\n        const parsed = {};\n        const timeUnits = {};\n        const signals = new Set();\n        const signalName = (p, range) => {\n            const suffix = range === 'visual' ? p.channel : p.field;\n            let sg = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"varName\"])(`${name}_${suffix}`);\n            for (let counter = 1; signals.has(sg); counter++) {\n                sg = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"varName\"])(`${name}_${suffix}_${counter}`);\n            }\n            signals.add(sg);\n            return { [range]: sg };\n        };\n        // If no explicit projection (either fields or encodings) is specified, set some defaults.\n        // If an initial value is set, try to infer projections.\n        // Otherwise, use the default configuration.\n        if (!selDef.fields && !selDef.encodings) {\n            const cfg = model.config.selection[selDef.type];\n            if (selDef.init) {\n                for (const init of Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(selDef.init)) {\n                    for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(init)) {\n                        if (Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isSingleDefUnitChannel\"])(key)) {\n                            (selDef.encodings || (selDef.encodings = [])).push(key);\n                        }\n                        else {\n                            if (selDef.type === 'interval') {\n                                _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].INTERVAL_INITIALIZED_WITH_X_Y);\n                                selDef.encodings = cfg.encodings;\n                            }\n                            else {\n                                (selDef.fields || (selDef.fields = [])).push(key);\n                            }\n                        }\n                    }\n                }\n            }\n            else {\n                selDef.encodings = cfg.encodings;\n                selDef.fields = cfg.fields;\n            }\n        }\n        // TODO: find a possible channel mapping for these fields.\n        for (const field of (_b = selDef.fields) !== null && _b !== void 0 ? _b : []) {\n            const p = { type: 'E', field };\n            p.signals = Object.assign({}, signalName(p, 'data'));\n            proj.items.push(p);\n            proj.hasField[field] = p;\n        }\n        for (const channel of (_c = selDef.encodings) !== null && _c !== void 0 ? _c : []) {\n            const fieldDef = model.fieldDef(channel);\n            if (fieldDef) {\n                let field = fieldDef.field;\n                if (fieldDef.aggregate) {\n                    _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].cannotProjectAggregate(channel, fieldDef.aggregate));\n                    continue;\n                }\n                else if (!field) {\n                    _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].cannotProjectOnChannelWithoutField(channel));\n                    continue;\n                }\n                if (fieldDef.timeUnit) {\n                    field = model.vgField(channel);\n                    // Construct TimeUnitComponents which will be combined into a\n                    // TimeUnitNode. This node may need to be inserted into the\n                    // dataflow if the selection is used across views that do not\n                    // have these time units defined.\n                    const component = {\n                        timeUnit: fieldDef.timeUnit,\n                        as: field,\n                        field: fieldDef.field\n                    };\n                    timeUnits[Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"hash\"])(component)] = component;\n                }\n                // Prevent duplicate projections on the same field.\n                // TODO: what if the same field is bound to multiple channels (e.g., SPLOM diag).\n                if (!parsed[field]) {\n                    // Determine whether the tuple will store enumerated or ranged values.\n                    // Interval selections store ranges for continuous scales, and enumerations otherwise.\n                    // Single/multi selections store ranges for binned fields, and enumerations otherwise.\n                    let type = 'E';\n                    if (selCmpt.type === 'interval') {\n                        const scaleType = model.getScaleComponent(channel).get('type');\n                        if (Object(_scale__WEBPACK_IMPORTED_MODULE_3__[\"hasContinuousDomain\"])(scaleType)) {\n                            type = 'R';\n                        }\n                    }\n                    else if (fieldDef.bin) {\n                        type = 'R-RE';\n                    }\n                    const p = { field, channel, type };\n                    p.signals = Object.assign(Object.assign({}, signalName(p, 'data')), signalName(p, 'visual'));\n                    proj.items.push((parsed[field] = p));\n                    proj.hasField[field] = proj.hasChannel[channel] = parsed[field];\n                }\n            }\n            else {\n                _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].cannotProjectOnChannelWithoutField(channel));\n            }\n        }\n        if (selDef.init) {\n            const parseInit = (i) => {\n                return proj.items.map(p => (i[p.channel] !== undefined ? i[p.channel] : i[p.field]));\n            };\n            if (selDef.type === 'interval') {\n                selCmpt.init = parseInit(selDef.init);\n            }\n            else {\n                const init = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(selDef.init);\n                selCmpt.init = init.map(parseInit);\n            }\n        }\n        if (!Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"isEmpty\"])(timeUnits)) {\n            proj.timeUnit = new _data_timeunit__WEBPACK_IMPORTED_MODULE_5__[\"TimeUnitNode\"](null, timeUnits);\n        }\n    },\n    signals: (model, selCmpt, allSignals) => {\n        const name = selCmpt.name + TUPLE_FIELDS;\n        const hasSignal = allSignals.filter(s => s.name === name);\n        return hasSignal.length > 0\n            ? allSignals\n            : allSignals.concat({\n                name,\n                value: selCmpt.project.items.map(proj => {\n                    const { signals, hasLegend } = proj, rest = __rest(proj, [\"signals\", \"hasLegend\"]);\n                    rest.field = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"replacePathInField\"])(rest.field);\n                    return rest;\n                })\n            });\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (project);\n//# sourceMappingURL=project.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/project.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js ***!
  \*********************************************************************************/
/*! exports provided: default, domain */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domain\", function() { return domain; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! .. */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n\n\n\n\n\n\nconst scaleBindings = {\n    has: selCmpt => {\n        return selCmpt.type === 'interval' && selCmpt.resolve === 'global' && selCmpt.bind && selCmpt.bind === 'scales';\n    },\n    parse: (model, selCmpt) => {\n        const bound = (selCmpt.scales = []);\n        for (const proj of selCmpt.project.items) {\n            const channel = proj.channel;\n            if (!Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"isScaleChannel\"])(channel)) {\n                continue;\n            }\n            const scale = model.getScaleComponent(channel);\n            const scaleType = scale ? scale.get('type') : undefined;\n            if (!scale || !Object(_scale__WEBPACK_IMPORTED_MODULE_4__[\"hasContinuousDomain\"])(scaleType)) {\n                _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].SCALE_BINDINGS_CONTINUOUS);\n                continue;\n            }\n            const extent = { selection: selCmpt.name, field: proj.field };\n            scale.set('selectionExtent', extent, true);\n            bound.push(proj);\n        }\n    },\n    topLevelSignals: (model, selCmpt, signals) => {\n        const bound = selCmpt.scales.filter(proj => signals.filter(s => s.name === proj.signals.data).length === 0);\n        // Top-level signals are only needed for multiview displays and if this\n        // view's top-level signals haven't already been generated.\n        if (!model.parent || isTopLevelLayer(model) || bound.length === 0) {\n            return signals;\n        }\n        // vlSelectionResolve does not account for the behavior of bound scales in\n        // multiview displays. Each unit view adds a tuple to the store, but the\n        // state of the selection is the unit selection most recently updated. This\n        // state is captured by the top-level signals that we insert and \"push\n        // outer\" to from within the units. We need to reassemble this state into\n        // the top-level named signal, except no single selCmpt has a global view.\n        const namedSg = signals.filter(s => s.name === selCmpt.name)[0];\n        let update = namedSg.update;\n        if (update.indexOf(___WEBPACK_IMPORTED_MODULE_1__[\"VL_SELECTION_RESOLVE\"]) >= 0) {\n            namedSg.update = `{${bound.map(proj => `${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(proj.field)}: ${proj.signals.data}`).join(', ')}}`;\n        }\n        else {\n            for (const proj of bound) {\n                const mapping = `${Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(proj.field)}: ${proj.signals.data}`;\n                if (update.indexOf(mapping) < 0) {\n                    update = `${update.substring(0, update.length - 1)}, ${mapping}}`;\n                }\n            }\n            namedSg.update = update;\n        }\n        return signals.concat(bound.map(proj => ({ name: proj.signals.data })));\n    },\n    signals: (model, selCmpt, signals) => {\n        // Nested signals need only push to top-level signals with multiview displays.\n        if (model.parent && !isTopLevelLayer(model)) {\n            for (const proj of selCmpt.scales) {\n                const signal = signals.filter(s => s.name === proj.signals.data)[0];\n                signal.push = 'outer';\n                delete signal.value;\n                delete signal.update;\n            }\n        }\n        return signals;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (scaleBindings);\nfunction domain(model, channel) {\n    const scale = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(model.scaleName(channel));\n    return `domain(${scale})`;\n}\nfunction isTopLevelLayer(model) {\n    var _a;\n    return model.parent && Object(_model__WEBPACK_IMPORTED_MODULE_5__[\"isLayerModel\"])(model.parent) && ((_a = !model.parent.parent) !== null && _a !== void 0 ? _a : isTopLevelLayer(model.parent.parent));\n}\n//# sourceMappingURL=scales.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/toggle.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/toggle.js ***!
  \*********************************************************************************/
/*! exports provided: TOGGLE, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TOGGLE\", function() { return TOGGLE; });\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! .. */ \"./node_modules/vega-lite/build/src/compile/selection/index.js\");\n\nconst TOGGLE = '_toggle';\nconst toggle = {\n    has: selCmpt => {\n        return selCmpt.type === 'multi' && !!selCmpt.toggle;\n    },\n    signals: (model, selCmpt, signals) => {\n        return signals.concat({\n            name: selCmpt.name + TOGGLE,\n            value: false,\n            on: [{ events: selCmpt.events, update: selCmpt.toggle }]\n        });\n    },\n    modifyExpr: (model, selCmpt) => {\n        const tpl = selCmpt.name + ___WEBPACK_IMPORTED_MODULE_0__[\"TUPLE\"];\n        const signal = selCmpt.name + TOGGLE;\n        return (`${signal} ? null : ${tpl}, ` +\n            (selCmpt.resolve === 'global' ? `${signal} ? null : true, ` : `${signal} ? null : {unit: ${Object(___WEBPACK_IMPORTED_MODULE_0__[\"unitName\"])(model)}}, `) +\n            `${signal} ? ${tpl} : null`);\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (toggle);\n//# sourceMappingURL=toggle.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/toggle.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/transforms.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/transforms.js ***!
  \*************************************************************************************/
/*! exports provided: forEachTransform */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forEachTransform\", function() { return forEachTransform; });\n/* harmony import */ var _clear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clear */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/clear.js\");\n/* harmony import */ var _inputs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inputs */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/inputs.js\");\n/* harmony import */ var _nearest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nearest */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/nearest.js\");\n/* harmony import */ var _project__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./project */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/project.js\");\n/* harmony import */ var _scales__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./scales */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js\");\n/* harmony import */ var _legends__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./legends */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/legends.js\");\n/* harmony import */ var _toggle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toggle */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/toggle.js\");\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./translate */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/translate.js\");\n/* harmony import */ var _zoom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./zoom */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/zoom.js\");\n\n\n\n\n\n\n\n\n\nconst compilers = [_project__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _toggle__WEBPACK_IMPORTED_MODULE_6__[\"default\"], _scales__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _legends__WEBPACK_IMPORTED_MODULE_5__[\"default\"], _translate__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _zoom__WEBPACK_IMPORTED_MODULE_8__[\"default\"], _inputs__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _nearest__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _clear__WEBPACK_IMPORTED_MODULE_0__[\"default\"]];\nfunction forEachTransform(selCmpt, cb) {\n    for (const t of compilers) {\n        if (t.has(selCmpt)) {\n            cb(t);\n        }\n    }\n}\n//# sourceMappingURL=transforms.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/transforms.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/translate.js":
/*!************************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/translate.js ***!
  \************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interval */ \"./node_modules/vega-lite/build/src/compile/selection/interval.js\");\n/* harmony import */ var _scales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scales */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js\");\n\n\n\n\nconst ANCHOR = '_translate_anchor';\nconst DELTA = '_translate_delta';\nconst translate = {\n    has: selCmpt => {\n        return selCmpt.type === 'interval' && selCmpt.translate;\n    },\n    signals: (model, selCmpt, signals) => {\n        const name = selCmpt.name;\n        const hasScales = _scales__WEBPACK_IMPORTED_MODULE_3__[\"default\"].has(selCmpt);\n        const anchor = name + ANCHOR;\n        const { x, y } = selCmpt.project.hasChannel;\n        let events = Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_0__[\"selector\"])(selCmpt.translate, 'scope');\n        if (!hasScales) {\n            events = events.map(e => ((e.between[0].markname = name + _interval__WEBPACK_IMPORTED_MODULE_2__[\"BRUSH\"]), e));\n        }\n        signals.push({\n            name: anchor,\n            value: {},\n            on: [\n                {\n                    events: events.map(e => e.between[0]),\n                    update: '{x: x(unit), y: y(unit)' +\n                        (x !== undefined ? ', extent_x: ' + (hasScales ? Object(_scales__WEBPACK_IMPORTED_MODULE_3__[\"domain\"])(model, _channel__WEBPACK_IMPORTED_MODULE_1__[\"X\"]) : `slice(${x.signals.visual})`) : '') +\n                        (y !== undefined ? ', extent_y: ' + (hasScales ? Object(_scales__WEBPACK_IMPORTED_MODULE_3__[\"domain\"])(model, _channel__WEBPACK_IMPORTED_MODULE_1__[\"Y\"]) : `slice(${y.signals.visual})`) : '') +\n                        '}'\n                }\n            ]\n        }, {\n            name: name + DELTA,\n            value: {},\n            on: [\n                {\n                    events: events,\n                    update: `{x: ${anchor}.x - x(unit), y: ${anchor}.y - y(unit)}`\n                }\n            ]\n        });\n        if (x !== undefined) {\n            onDelta(model, selCmpt, x, 'width', signals);\n        }\n        if (y !== undefined) {\n            onDelta(model, selCmpt, y, 'height', signals);\n        }\n        return signals;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (translate);\nfunction onDelta(model, selCmpt, proj, size, signals) {\n    var _a;\n    const name = selCmpt.name;\n    const anchor = name + ANCHOR;\n    const delta = name + DELTA;\n    const channel = proj.channel;\n    const hasScales = _scales__WEBPACK_IMPORTED_MODULE_3__[\"default\"].has(selCmpt);\n    const signal = signals.filter(s => s.name === proj.signals[hasScales ? 'data' : 'visual'])[0];\n    const sizeSg = model.getSizeSignalRef(size).signal;\n    const scaleCmpt = model.getScaleComponent(channel);\n    const scaleType = scaleCmpt.get('type');\n    const sign = hasScales && channel === _channel__WEBPACK_IMPORTED_MODULE_1__[\"X\"] ? '-' : ''; // Invert delta when panning x-scales.\n    const extent = `${anchor}.extent_${channel}`;\n    const offset = `${sign}${delta}.${channel} / ` + (hasScales ? `${sizeSg}` : `span(${extent})`);\n    const panFn = !hasScales\n        ? 'panLinear'\n        : scaleType === 'log'\n            ? 'panLog'\n            : scaleType === 'pow'\n                ? 'panPow'\n                : 'panLinear';\n    const update = `${panFn}(${extent}, ${offset}` +\n        (hasScales && scaleType === 'pow' ? `, ${(_a = scaleCmpt.get('exponent')) !== null && _a !== void 0 ? _a : 1}` : '') +\n        ')';\n    signal.on.push({\n        events: { signal: delta },\n        update: hasScales ? update : `clampRange(${update}, 0, ${sizeSg})`\n    });\n}\n//# sourceMappingURL=translate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/translate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/selection/transforms/zoom.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/selection/transforms/zoom.js ***!
  \*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../interval */ \"./node_modules/vega-lite/build/src/compile/selection/interval.js\");\n/* harmony import */ var _scales__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./scales */ \"./node_modules/vega-lite/build/src/compile/selection/transforms/scales.js\");\n\n\n\n\n\nconst ANCHOR = '_zoom_anchor';\nconst DELTA = '_zoom_delta';\nconst zoom = {\n    has: selCmpt => {\n        return selCmpt.type === 'interval' && selCmpt.zoom;\n    },\n    signals: (model, selCmpt, signals) => {\n        const name = selCmpt.name;\n        const hasScales = _scales__WEBPACK_IMPORTED_MODULE_4__[\"default\"].has(selCmpt);\n        const delta = name + DELTA;\n        const { x, y } = selCmpt.project.hasChannel;\n        const sx = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(model.scaleName(_channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"]));\n        const sy = Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])(model.scaleName(_channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"]));\n        let events = Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_0__[\"selector\"])(selCmpt.zoom, 'scope');\n        if (!hasScales) {\n            events = events.map(e => ((e.markname = name + _interval__WEBPACK_IMPORTED_MODULE_3__[\"BRUSH\"]), e));\n        }\n        signals.push({\n            name: name + ANCHOR,\n            on: [\n                {\n                    events: events,\n                    update: !hasScales\n                        ? `{x: x(unit), y: y(unit)}`\n                        : '{' +\n                            [sx ? `x: invert(${sx}, x(unit))` : '', sy ? `y: invert(${sy}, y(unit))` : '']\n                                .filter(expr => !!expr)\n                                .join(', ') +\n                            '}'\n                }\n            ]\n        }, {\n            name: delta,\n            on: [\n                {\n                    events: events,\n                    force: true,\n                    update: 'pow(1.001, event.deltaY * pow(16, event.deltaMode))'\n                }\n            ]\n        });\n        if (x !== undefined) {\n            onDelta(model, selCmpt, x, 'width', signals);\n        }\n        if (y !== undefined) {\n            onDelta(model, selCmpt, y, 'height', signals);\n        }\n        return signals;\n    }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (zoom);\nfunction onDelta(model, selCmpt, proj, size, signals) {\n    var _a;\n    const name = selCmpt.name;\n    const channel = proj.channel;\n    const hasScales = _scales__WEBPACK_IMPORTED_MODULE_4__[\"default\"].has(selCmpt);\n    const signal = signals.filter(s => s.name === proj.signals[hasScales ? 'data' : 'visual'])[0];\n    const sizeSg = model.getSizeSignalRef(size).signal;\n    const scaleCmpt = model.getScaleComponent(channel);\n    const scaleType = scaleCmpt.get('type');\n    const base = hasScales ? Object(_scales__WEBPACK_IMPORTED_MODULE_4__[\"domain\"])(model, channel) : signal.name;\n    const delta = name + DELTA;\n    const anchor = `${name}${ANCHOR}.${channel}`;\n    const zoomFn = !hasScales\n        ? 'zoomLinear'\n        : scaleType === 'log'\n            ? 'zoomLog'\n            : scaleType === 'pow'\n                ? 'zoomPow'\n                : 'zoomLinear';\n    const update = `${zoomFn}(${base}, ${anchor}, ${delta}` +\n        (hasScales && scaleType === 'pow' ? `, ${(_a = scaleCmpt.get('exponent')) !== null && _a !== void 0 ? _a : 1}` : '') +\n        ')';\n    signal.on.push({\n        events: { signal: delta },\n        update: hasScales ? update : `clampRange(${update}, 0, ${sizeSg})`\n    });\n}\n//# sourceMappingURL=zoom.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/selection/transforms/zoom.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/signal.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/signal.js ***!
  \************************************************************/
/*! exports provided: SignalRefWrapper */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SignalRefWrapper\", function() { return SignalRefWrapper; });\n/**\n * A class that behaves like a SignalRef but lazily generates the signal.\n * The provided generator function should use `Model.getSignalName` to use the correct signal name.\n */\nclass SignalRefWrapper {\n    constructor(exprGenerator) {\n        Object.defineProperty(this, 'signal', {\n            enumerable: true,\n            get: exprGenerator\n        });\n    }\n    static fromName(rename, signalName) {\n        return new SignalRefWrapper(() => rename(signalName));\n    }\n}\n//# sourceMappingURL=signal.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/signal.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/split.js":
/*!***********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/split.js ***!
  \***********************************************************/
/*! exports provided: Split, makeExplicit, makeImplicit, tieBreakByComparing, defaultTieBreaker, mergeValuesWithExplicit */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Split\", function() { return Split; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeExplicit\", function() { return makeExplicit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeImplicit\", function() { return makeImplicit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tieBreakByComparing\", function() { return tieBreakByComparing; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTieBreaker\", function() { return defaultTieBreaker; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeValuesWithExplicit\", function() { return mergeValuesWithExplicit; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\n/**\n * Generic class for storing properties that are explicitly specified\n * and implicitly determined by the compiler.\n * This is important for scale/axis/legend merging as\n * we want to prioritize properties that users explicitly specified.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nclass Split {\n    constructor(explicit = {}, implicit = {}) {\n        this.explicit = explicit;\n        this.implicit = implicit;\n    }\n    clone() {\n        return new Split(Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"duplicate\"])(this.explicit), Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"duplicate\"])(this.implicit));\n    }\n    combine() {\n        // FIXME remove \"as any\".\n        // Add \"as any\" to avoid an error \"Spread types may only be created from object types\".\n        return Object.assign(Object.assign({}, this.explicit), this.implicit);\n    }\n    get(key) {\n        // Explicit has higher precedence\n        return Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"getFirstDefined\"])(this.explicit[key], this.implicit[key]);\n    }\n    getWithExplicit(key) {\n        // Explicit has higher precedence\n        if (this.explicit[key] !== undefined) {\n            return { explicit: true, value: this.explicit[key] };\n        }\n        else if (this.implicit[key] !== undefined) {\n            return { explicit: false, value: this.implicit[key] };\n        }\n        return { explicit: false, value: undefined };\n    }\n    setWithExplicit(key, value) {\n        if (value.value !== undefined) {\n            this.set(key, value.value, value.explicit);\n        }\n    }\n    set(key, value, explicit) {\n        delete this[explicit ? 'implicit' : 'explicit'][key];\n        this[explicit ? 'explicit' : 'implicit'][key] = value;\n        return this;\n    }\n    copyKeyFromSplit(key, s) {\n        // Explicit has higher precedence\n        if (s.explicit[key] !== undefined) {\n            this.set(key, s.explicit[key], true);\n        }\n        else if (s.implicit[key] !== undefined) {\n            this.set(key, s.implicit[key], false);\n        }\n    }\n    copyKeyFromObject(key, s) {\n        // Explicit has higher precedence\n        if (s[key] !== undefined) {\n            this.set(key, s[key], true);\n        }\n    }\n    /**\n     * Merge split object into this split object. Properties from the other split\n     * overwrite properties from this split.\n     */\n    copyAll(other) {\n        for (const key of Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(other.combine())) {\n            const val = other.getWithExplicit(key);\n            this.setWithExplicit(key, val);\n        }\n    }\n}\nfunction makeExplicit(value) {\n    return {\n        explicit: true,\n        value\n    };\n}\nfunction makeImplicit(value) {\n    return {\n        explicit: false,\n        value\n    };\n}\nfunction tieBreakByComparing(compare) {\n    return (v1, v2, property, propertyOf) => {\n        const diff = compare(v1.value, v2.value);\n        if (diff > 0) {\n            return v1;\n        }\n        else if (diff < 0) {\n            return v2;\n        }\n        return defaultTieBreaker(v1, v2, property, propertyOf);\n    };\n}\nfunction defaultTieBreaker(v1, v2, property, propertyOf) {\n    if (v1.explicit && v2.explicit) {\n        _log__WEBPACK_IMPORTED_MODULE_0__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].mergeConflictingProperty(property, propertyOf, v1.value, v2.value));\n    }\n    // If equal score, prefer v1.\n    return v1;\n}\nfunction mergeValuesWithExplicit(v1, v2, property, propertyOf, tieBreaker = defaultTieBreaker) {\n    if (v1 === undefined || v1.value === undefined) {\n        // For first run\n        return v2;\n    }\n    if (v1.explicit && !v2.explicit) {\n        return v1;\n    }\n    else if (v2.explicit && !v1.explicit) {\n        return v2;\n    }\n    else if (Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"deepEqual\"])(v1.value, v2.value)) {\n        return v1;\n    }\n    else {\n        return tieBreaker(v1, v2, property, propertyOf);\n    }\n}\n//# sourceMappingURL=split.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/split.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compile/unit.js":
/*!**********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compile/unit.js ***!
  \**********************************************************/
/*! exports provided: UnitModel */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UnitModel\", function() { return UnitModel; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../axis */ \"./node_modules/vega-lite/build/src/axis.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data */ \"./node_modules/vega-lite/build/src/data.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _spec_base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../spec/base */ \"./node_modules/vega-lite/build/src/spec/base.js\");\n/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../stack */ \"./node_modules/vega-lite/build/src/stack.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _axis_assemble__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./axis/assemble */ \"./node_modules/vega-lite/build/src/compile/axis/assemble.js\");\n/* harmony import */ var _axis_parse__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./axis/parse */ \"./node_modules/vega-lite/build/src/compile/axis/parse.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _data_parse__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./data/parse */ \"./node_modules/vega-lite/build/src/compile/data/parse.js\");\n/* harmony import */ var _layoutsize_assemble__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./layoutsize/assemble */ \"./node_modules/vega-lite/build/src/compile/layoutsize/assemble.js\");\n/* harmony import */ var _layoutsize_init__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./layoutsize/init */ \"./node_modules/vega-lite/build/src/compile/layoutsize/init.js\");\n/* harmony import */ var _layoutsize_parse__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./layoutsize/parse */ \"./node_modules/vega-lite/build/src/compile/layoutsize/parse.js\");\n/* harmony import */ var _mark_init__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./mark/init */ \"./node_modules/vega-lite/build/src/compile/mark/init.js\");\n/* harmony import */ var _mark_mark__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./mark/mark */ \"./node_modules/vega-lite/build/src/compile/mark/mark.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./model */ \"./node_modules/vega-lite/build/src/compile/model.js\");\n/* harmony import */ var _selection_assemble__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./selection/assemble */ \"./node_modules/vega-lite/build/src/compile/selection/assemble.js\");\n/* harmony import */ var _selection_parse__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./selection/parse */ \"./node_modules/vega-lite/build/src/compile/selection/parse.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Internal model of Vega-Lite specification for the compiler.\n */\nclass UnitModel extends _model__WEBPACK_IMPORTED_MODULE_20__[\"ModelWithField\"] {\n    constructor(spec, parent, parentGivenName, parentGivenSize = {}, config) {\n        super(spec, 'unit', parent, parentGivenName, config, undefined, Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isFrameMixins\"])(spec) ? spec.view : undefined);\n        this.specifiedScales = {};\n        this.specifiedAxes = {};\n        this.specifiedLegends = {};\n        this.specifiedProjection = {};\n        this.selection = {};\n        this.children = [];\n        const markDef = Object(_mark__WEBPACK_IMPORTED_MODULE_7__[\"isMarkDef\"])(spec.mark) ? Object.assign({}, spec.mark) : { type: spec.mark };\n        const mark = markDef.type;\n        // Need to init filled before other mark properties because encoding depends on filled but other mark properties depend on types inside encoding\n        if (markDef.filled === undefined) {\n            markDef.filled = Object(_mark_init__WEBPACK_IMPORTED_MODULE_18__[\"defaultFilled\"])(markDef, config, {\n                graticule: spec.data && Object(_data__WEBPACK_IMPORTED_MODULE_4__[\"isGraticuleGenerator\"])(spec.data)\n            });\n        }\n        const encoding = (this.encoding = Object(_encoding__WEBPACK_IMPORTED_MODULE_5__[\"initEncoding\"])(spec.encoding || {}, mark, markDef.filled, config));\n        this.markDef = Object(_mark_init__WEBPACK_IMPORTED_MODULE_18__[\"initMarkdef\"])(markDef, encoding, config);\n        this.size = Object(_layoutsize_init__WEBPACK_IMPORTED_MODULE_16__[\"initLayoutSize\"])({\n            encoding: encoding,\n            size: Object(_spec_base__WEBPACK_IMPORTED_MODULE_8__[\"isFrameMixins\"])(spec)\n                ? Object.assign(Object.assign(Object.assign({}, parentGivenSize), (spec.width ? { width: spec.width } : {})), (spec.height ? { height: spec.height } : {})) : parentGivenSize\n        });\n        // calculate stack properties\n        this.stack = Object(_stack__WEBPACK_IMPORTED_MODULE_9__[\"stack\"])(mark, encoding);\n        this.specifiedScales = this.initScales(mark, encoding);\n        this.specifiedAxes = this.initAxes(encoding);\n        this.specifiedLegends = this.initLegends(encoding);\n        this.specifiedProjection = spec.projection;\n        // Selections will be initialized upon parse.\n        this.selection = spec.selection;\n    }\n    get hasProjection() {\n        const { encoding } = this;\n        const isGeoShapeMark = this.mark === _mark__WEBPACK_IMPORTED_MODULE_7__[\"GEOSHAPE\"];\n        const hasGeoPosition = encoding && _channel__WEBPACK_IMPORTED_MODULE_2__[\"GEOPOSITION_CHANNELS\"].some(channel => Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(encoding[channel]));\n        return isGeoShapeMark || hasGeoPosition;\n    }\n    /**\n     * Return specified Vega-Lite scale domain for a particular channel\n     * @param channel\n     */\n    scaleDomain(channel) {\n        const scale = this.specifiedScales[channel];\n        return scale ? scale.domain : undefined;\n    }\n    axis(channel) {\n        return this.specifiedAxes[channel];\n    }\n    legend(channel) {\n        return this.specifiedLegends[channel];\n    }\n    initScales(mark, encoding) {\n        return _channel__WEBPACK_IMPORTED_MODULE_2__[\"SCALE_CHANNELS\"].reduce((scales, channel) => {\n            var _a;\n            const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldOrDatumDef\"])(encoding[channel]);\n            if (fieldOrDatumDef) {\n                scales[channel] = this.initScale((_a = fieldOrDatumDef.scale) !== null && _a !== void 0 ? _a : {});\n            }\n            return scales;\n        }, {});\n    }\n    initScale(scale) {\n        const { domain, range } = scale;\n        const scaleInternal = Object(_expr__WEBPACK_IMPORTED_MODULE_6__[\"replaceExprRefInIndex\"])(scale);\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(domain)) {\n            scaleInternal.domain = domain.map(_common__WEBPACK_IMPORTED_MODULE_13__[\"signalRefOrValue\"]);\n        }\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(range)) {\n            scaleInternal.range = range.map(_common__WEBPACK_IMPORTED_MODULE_13__[\"signalRefOrValue\"]);\n        }\n        return scaleInternal;\n    }\n    initAxes(encoding) {\n        return _channel__WEBPACK_IMPORTED_MODULE_2__[\"POSITION_SCALE_CHANNELS\"].reduce((_axis, channel) => {\n            // Position Axis\n            // TODO: handle ConditionFieldDef\n            const channelDef = encoding[channel];\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(channelDef) ||\n                (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"X\"] && Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(encoding.x2)) ||\n                (channel === _channel__WEBPACK_IMPORTED_MODULE_2__[\"Y\"] && Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(encoding.y2))) {\n                const axisSpec = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(channelDef) ? channelDef.axis : undefined;\n                _axis[channel] = axisSpec\n                    ? this.initAxis(Object.assign({}, axisSpec)) // convert truthy value to object\n                    : axisSpec;\n            }\n            return _axis;\n        }, {});\n    }\n    initAxis(axis) {\n        const props = Object(_util__WEBPACK_IMPORTED_MODULE_10__[\"keys\"])(axis);\n        const axisInternal = {};\n        for (const prop of props) {\n            const val = axis[prop];\n            axisInternal[prop] = Object(_axis__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalAxisValue\"])(val)\n                ? Object(_common__WEBPACK_IMPORTED_MODULE_13__[\"signalOrValueRefWithCondition\"])(val)\n                : Object(_common__WEBPACK_IMPORTED_MODULE_13__[\"signalRefOrValue\"])(val);\n        }\n        return axisInternal;\n    }\n    initLegends(encoding) {\n        return _channel__WEBPACK_IMPORTED_MODULE_2__[\"NONPOSITION_SCALE_CHANNELS\"].reduce((_legend, channel) => {\n            const fieldOrDatumDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldOrDatumDef\"])(encoding[channel]);\n            if (fieldOrDatumDef && Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"supportLegend\"])(channel)) {\n                const legend = fieldOrDatumDef.legend;\n                _legend[channel] = legend\n                    ? Object(_expr__WEBPACK_IMPORTED_MODULE_6__[\"replaceExprRefInIndex\"])(legend) // convert truthy value to object\n                    : legend;\n            }\n            return _legend;\n        }, {});\n    }\n    parseData() {\n        this.component.data = Object(_data_parse__WEBPACK_IMPORTED_MODULE_14__[\"parseData\"])(this);\n    }\n    parseLayoutSize() {\n        Object(_layoutsize_parse__WEBPACK_IMPORTED_MODULE_17__[\"parseUnitLayoutSize\"])(this);\n    }\n    parseSelections() {\n        this.component.selection = Object(_selection_parse__WEBPACK_IMPORTED_MODULE_22__[\"parseUnitSelection\"])(this, this.selection);\n    }\n    parseMarkGroup() {\n        this.component.mark = Object(_mark_mark__WEBPACK_IMPORTED_MODULE_19__[\"parseMarkGroups\"])(this);\n    }\n    parseAxesAndHeaders() {\n        this.component.axes = Object(_axis_parse__WEBPACK_IMPORTED_MODULE_12__[\"parseUnitAxes\"])(this);\n    }\n    assembleSelectionTopLevelSignals(signals) {\n        return Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_21__[\"assembleTopLevelSignals\"])(this, signals);\n    }\n    assembleSignals() {\n        return [...Object(_axis_assemble__WEBPACK_IMPORTED_MODULE_11__[\"assembleAxisSignals\"])(this), ...Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_21__[\"assembleUnitSelectionSignals\"])(this, [])];\n    }\n    assembleSelectionData(data) {\n        return Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_21__[\"assembleUnitSelectionData\"])(this, data);\n    }\n    assembleLayout() {\n        return null;\n    }\n    assembleLayoutSignals() {\n        return Object(_layoutsize_assemble__WEBPACK_IMPORTED_MODULE_15__[\"assembleLayoutSignals\"])(this);\n    }\n    assembleMarks() {\n        var _a;\n        let marks = (_a = this.component.mark) !== null && _a !== void 0 ? _a : [];\n        // If this unit is part of a layer, selections should augment\n        // all in concert rather than each unit individually. This\n        // ensures correct interleaving of clipping and brushed marks.\n        if (!this.parent || !Object(_model__WEBPACK_IMPORTED_MODULE_20__[\"isLayerModel\"])(this.parent)) {\n            marks = Object(_selection_assemble__WEBPACK_IMPORTED_MODULE_21__[\"assembleUnitSelectionMarks\"])(this, marks);\n        }\n        return marks.map(this.correctDataNames);\n    }\n    getMapping() {\n        return this.encoding;\n    }\n    get mark() {\n        return this.markDef.type;\n    }\n    channelHasField(channel) {\n        return _encoding__WEBPACK_IMPORTED_MODULE_5__[\"channelHasField\"](this.encoding, channel);\n    }\n    fieldDef(channel) {\n        const channelDef = this.encoding[channel];\n        return Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldDef\"])(channelDef);\n    }\n    typedFieldDef(channel) {\n        const fieldDef = this.fieldDef(channel);\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isTypedFieldDef\"])(fieldDef)) {\n            return fieldDef;\n        }\n        return null;\n    }\n}\n//# sourceMappingURL=unit.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compile/unit.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compositemark/base.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compositemark/base.js ***!
  \****************************************************************/
/*! exports provided: CompositeMarkNormalizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CompositeMarkNormalizer\", function() { return CompositeMarkNormalizer; });\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _spec_unit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../spec/unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\n\n\nclass CompositeMarkNormalizer {\n    constructor(name, run) {\n        this.name = name;\n        this.run = run;\n    }\n    hasMatchingType(spec) {\n        if (Object(_spec_unit__WEBPACK_IMPORTED_MODULE_1__[\"isUnitSpec\"])(spec)) {\n            return Object(_mark__WEBPACK_IMPORTED_MODULE_0__[\"getMarkType\"])(spec.mark) === this.name;\n        }\n        return false;\n    }\n}\n//# sourceMappingURL=base.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compositemark/base.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compositemark/boxplot.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compositemark/boxplot.js ***!
  \*******************************************************************/
/*! exports provided: BOXPLOT, BOXPLOT_PARTS, boxPlotNormalizer, getBoxPlotType, normalizeBoxPlot */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOXPLOT\", function() { return BOXPLOT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BOXPLOT_PARTS\", function() { return BOXPLOT_PARTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boxPlotNormalizer\", function() { return boxPlotNormalizer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getBoxPlotType\", function() { return getBoxPlotType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeBoxPlot\", function() { return normalizeBoxPlot; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _compile_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../compile/common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base */ \"./node_modules/vega-lite/build/src/compositemark/base.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compositemark/common.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\nconst BOXPLOT = 'boxplot';\nconst BOXPLOT_PARTS = ['box', 'median', 'outliers', 'rule', 'ticks'];\nconst boxPlotNormalizer = new _base__WEBPACK_IMPORTED_MODULE_6__[\"CompositeMarkNormalizer\"](BOXPLOT, normalizeBoxPlot);\nfunction getBoxPlotType(extent) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(extent)) {\n        return 'tukey';\n    }\n    // Ham: If we ever want to, we could add another extent syntax `{kIQR: number}` for the original [Q1-k*IQR, Q3+k*IQR] whisker and call this boxPlotType = `kIQR`. However, I'm not exposing this for now.\n    return extent;\n}\nfunction normalizeBoxPlot(spec, { config }) {\n    var _a, _b;\n    // Need to initEncoding first so we can infer type\n    spec = Object.assign(Object.assign({}, spec), { encoding: Object(_encoding__WEBPACK_IMPORTED_MODULE_2__[\"normalizeEncoding\"])(spec.encoding, config) });\n    const { mark, encoding: _encoding, selection, projection: _p } = spec, outerSpec = __rest(spec, [\"mark\", \"encoding\", \"selection\", \"projection\"]);\n    const markDef = Object(_mark__WEBPACK_IMPORTED_MODULE_4__[\"isMarkDef\"])(mark) ? mark : { type: mark };\n    // TODO(https://github.com/vega/vega-lite/issues/3702): add selection support\n    if (selection) {\n        _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].selectionNotSupported('boxplot'));\n    }\n    const extent = (_a = markDef.extent) !== null && _a !== void 0 ? _a : config.boxplot.extent;\n    const sizeValue = Object(_compile_common__WEBPACK_IMPORTED_MODULE_1__[\"getMarkPropOrConfig\"])('size', markDef, // TODO: https://github.com/vega/vega-lite/issues/6245\n    config);\n    const boxPlotType = getBoxPlotType(extent);\n    const { bins, timeUnits, transform, continuousAxisChannelDef, continuousAxis, groupby, aggregate, encodingWithoutContinuousAxis, ticksOrient, boxOrient, customTooltipWithoutAggregatedField } = boxParams(spec, extent, config);\n    const { color, size } = encodingWithoutContinuousAxis, encodingWithoutSizeColorAndContinuousAxis = __rest(encodingWithoutContinuousAxis, [\"color\", \"size\"]);\n    const makeBoxPlotPart = (sharedEncoding) => {\n        return Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"makeCompositeAggregatePartFactory\"])(markDef, continuousAxis, continuousAxisChannelDef, sharedEncoding, config.boxplot);\n    };\n    const makeBoxPlotExtent = makeBoxPlotPart(encodingWithoutSizeColorAndContinuousAxis);\n    const makeBoxPlotBox = makeBoxPlotPart(encodingWithoutContinuousAxis);\n    const makeBoxPlotMidTick = makeBoxPlotPart(Object.assign(Object.assign({}, encodingWithoutSizeColorAndContinuousAxis), (size ? { size } : {})));\n    const fiveSummaryTooltipEncoding = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"getCompositeMarkTooltip\"])([\n        { fieldPrefix: boxPlotType === 'min-max' ? 'upper_whisker_' : 'max_', titlePrefix: 'Max' },\n        { fieldPrefix: 'upper_box_', titlePrefix: 'Q3' },\n        { fieldPrefix: 'mid_box_', titlePrefix: 'Median' },\n        { fieldPrefix: 'lower_box_', titlePrefix: 'Q1' },\n        { fieldPrefix: boxPlotType === 'min-max' ? 'lower_whisker_' : 'min_', titlePrefix: 'Min' }\n    ], continuousAxisChannelDef, encodingWithoutContinuousAxis);\n    // ## Whisker Layers\n    const endTick = { type: 'tick', color: 'black', opacity: 1, orient: ticksOrient, invalid: null, aria: false };\n    const whiskerTooltipEncoding = boxPlotType === 'min-max'\n        ? fiveSummaryTooltipEncoding // for min-max, show five-summary tooltip for whisker\n        : // for tukey / k-IQR, just show upper/lower-whisker\n            Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"getCompositeMarkTooltip\"])([\n                { fieldPrefix: 'upper_whisker_', titlePrefix: 'Upper Whisker' },\n                { fieldPrefix: 'lower_whisker_', titlePrefix: 'Lower Whisker' }\n            ], continuousAxisChannelDef, encodingWithoutContinuousAxis);\n    const whiskerLayers = [\n        ...makeBoxPlotExtent({\n            partName: 'rule',\n            mark: { type: 'rule', invalid: null, aria: false },\n            positionPrefix: 'lower_whisker',\n            endPositionPrefix: 'lower_box',\n            extraEncoding: whiskerTooltipEncoding\n        }),\n        ...makeBoxPlotExtent({\n            partName: 'rule',\n            mark: { type: 'rule', invalid: null, aria: false },\n            positionPrefix: 'upper_box',\n            endPositionPrefix: 'upper_whisker',\n            extraEncoding: whiskerTooltipEncoding\n        }),\n        ...makeBoxPlotExtent({\n            partName: 'ticks',\n            mark: endTick,\n            positionPrefix: 'lower_whisker',\n            extraEncoding: whiskerTooltipEncoding\n        }),\n        ...makeBoxPlotExtent({\n            partName: 'ticks',\n            mark: endTick,\n            positionPrefix: 'upper_whisker',\n            extraEncoding: whiskerTooltipEncoding\n        })\n    ];\n    // ## Box Layers\n    // TODO: support hiding certain mark parts\n    const boxLayers = [\n        ...(boxPlotType !== 'tukey' ? whiskerLayers : []),\n        ...makeBoxPlotBox({\n            partName: 'box',\n            mark: Object.assign(Object.assign({ type: 'bar' }, (sizeValue ? { size: sizeValue } : {})), { orient: boxOrient, invalid: null, ariaRoleDescription: 'box' }),\n            positionPrefix: 'lower_box',\n            endPositionPrefix: 'upper_box',\n            extraEncoding: fiveSummaryTooltipEncoding\n        }),\n        ...makeBoxPlotMidTick({\n            partName: 'median',\n            mark: Object.assign(Object.assign(Object.assign({ type: 'tick', invalid: null }, (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(config.boxplot.median) && config.boxplot.median.color ? { color: config.boxplot.median.color } : {})), (sizeValue ? { size: sizeValue } : {})), { orient: ticksOrient, aria: false }),\n            positionPrefix: 'mid_box',\n            extraEncoding: fiveSummaryTooltipEncoding\n        })\n    ];\n    if (boxPlotType === 'min-max') {\n        return Object.assign(Object.assign({}, outerSpec), { transform: ((_b = outerSpec.transform) !== null && _b !== void 0 ? _b : []).concat(transform), layer: boxLayers });\n    }\n    // Tukey Box Plot\n    const lowerBoxExpr = `datum[\"lower_box_${continuousAxisChannelDef.field}\"]`;\n    const upperBoxExpr = `datum[\"upper_box_${continuousAxisChannelDef.field}\"]`;\n    const iqrExpr = `(${upperBoxExpr} - ${lowerBoxExpr})`;\n    const lowerWhiskerExpr = `${lowerBoxExpr} - ${extent} * ${iqrExpr}`;\n    const upperWhiskerExpr = `${upperBoxExpr} + ${extent} * ${iqrExpr}`;\n    const fieldExpr = `datum[\"${continuousAxisChannelDef.field}\"]`;\n    const joinaggregateTransform = {\n        joinaggregate: boxParamsQuartiles(continuousAxisChannelDef.field),\n        groupby\n    };\n    const filteredWhiskerSpec = {\n        transform: [\n            {\n                filter: `(${lowerWhiskerExpr} <= ${fieldExpr}) && (${fieldExpr} <= ${upperWhiskerExpr})`\n            },\n            {\n                aggregate: [\n                    {\n                        op: 'min',\n                        field: continuousAxisChannelDef.field,\n                        as: 'lower_whisker_' + continuousAxisChannelDef.field\n                    },\n                    {\n                        op: 'max',\n                        field: continuousAxisChannelDef.field,\n                        as: 'upper_whisker_' + continuousAxisChannelDef.field\n                    },\n                    // preserve lower_box / upper_box\n                    {\n                        op: 'min',\n                        field: 'lower_box_' + continuousAxisChannelDef.field,\n                        as: 'lower_box_' + continuousAxisChannelDef.field\n                    },\n                    {\n                        op: 'max',\n                        field: 'upper_box_' + continuousAxisChannelDef.field,\n                        as: 'upper_box_' + continuousAxisChannelDef.field\n                    },\n                    ...aggregate\n                ],\n                groupby\n            }\n        ],\n        layer: whiskerLayers\n    };\n    const { tooltip } = encodingWithoutSizeColorAndContinuousAxis, encodingWithoutSizeColorContinuousAxisAndTooltip = __rest(encodingWithoutSizeColorAndContinuousAxis, [\"tooltip\"]);\n    const { scale, axis } = continuousAxisChannelDef;\n    const title = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"getTitle\"])(continuousAxisChannelDef);\n    const axisWithoutTitle = Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"omit\"])(axis, ['title']);\n    const outlierLayersMixins = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"partLayerMixins\"])(markDef, 'outliers', config.boxplot, {\n        transform: [{ filter: `(${fieldExpr} < ${lowerWhiskerExpr}) || (${fieldExpr} > ${upperWhiskerExpr})` }],\n        mark: 'point',\n        encoding: Object.assign(Object.assign(Object.assign({ [continuousAxis]: Object.assign(Object.assign(Object.assign({ field: continuousAxisChannelDef.field, type: continuousAxisChannelDef.type }, (title !== undefined ? { title } : {})), (scale !== undefined ? { scale } : {})), (Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"isEmpty\"])(axisWithoutTitle) ? {} : { axis: axisWithoutTitle })) }, encodingWithoutSizeColorContinuousAxisAndTooltip), (color ? { color } : {})), (customTooltipWithoutAggregatedField ? { tooltip: customTooltipWithoutAggregatedField } : {}))\n    })[0];\n    let filteredLayersMixins;\n    const filteredLayersMixinsTransforms = [...bins, ...timeUnits, joinaggregateTransform];\n    if (outlierLayersMixins) {\n        filteredLayersMixins = {\n            transform: filteredLayersMixinsTransforms,\n            layer: [outlierLayersMixins, filteredWhiskerSpec]\n        };\n    }\n    else {\n        filteredLayersMixins = filteredWhiskerSpec;\n        filteredLayersMixins.transform.unshift(...filteredLayersMixinsTransforms);\n    }\n    return Object.assign(Object.assign({}, outerSpec), { layer: [\n            filteredLayersMixins,\n            {\n                // boxplot\n                transform,\n                layer: boxLayers\n            }\n        ] });\n}\nfunction boxParamsQuartiles(continousAxisField) {\n    return [\n        {\n            op: 'q1',\n            field: continousAxisField,\n            as: 'lower_box_' + continousAxisField\n        },\n        {\n            op: 'q3',\n            field: continousAxisField,\n            as: 'upper_box_' + continousAxisField\n        }\n    ];\n}\nfunction boxParams(spec, extent, config) {\n    const orient = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"compositeMarkOrient\"])(spec, BOXPLOT);\n    const { continuousAxisChannelDef, continuousAxis } = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"compositeMarkContinuousAxis\"])(spec, orient, BOXPLOT);\n    const continuousFieldName = continuousAxisChannelDef.field;\n    const boxPlotType = getBoxPlotType(extent);\n    const boxplotSpecificAggregate = [\n        ...boxParamsQuartiles(continuousFieldName),\n        {\n            op: 'median',\n            field: continuousFieldName,\n            as: 'mid_box_' + continuousFieldName\n        },\n        {\n            op: 'min',\n            field: continuousFieldName,\n            as: (boxPlotType === 'min-max' ? 'lower_whisker_' : 'min_') + continuousFieldName\n        },\n        {\n            op: 'max',\n            field: continuousFieldName,\n            as: (boxPlotType === 'min-max' ? 'upper_whisker_' : 'max_') + continuousFieldName\n        }\n    ];\n    const postAggregateCalculates = boxPlotType === 'min-max' || boxPlotType === 'tukey'\n        ? []\n        : [\n            // This is for the  original k-IQR, which we do not expose\n            {\n                calculate: `datum[\"upper_box_${continuousFieldName}\"] - datum[\"lower_box_${continuousFieldName}\"]`,\n                as: 'iqr_' + continuousFieldName\n            },\n            {\n                calculate: `min(datum[\"upper_box_${continuousFieldName}\"] + datum[\"iqr_${continuousFieldName}\"] * ${extent}, datum[\"max_${continuousFieldName}\"])`,\n                as: 'upper_whisker_' + continuousFieldName\n            },\n            {\n                calculate: `max(datum[\"lower_box_${continuousFieldName}\"] - datum[\"iqr_${continuousFieldName}\"] * ${extent}, datum[\"min_${continuousFieldName}\"])`,\n                as: 'lower_whisker_' + continuousFieldName\n            }\n        ];\n    const _a = spec.encoding, _b = continuousAxis, oldContinuousAxisChannelDef = _a[_b], oldEncodingWithoutContinuousAxis = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\n    const { customTooltipWithoutAggregatedField, filteredEncoding } = Object(_common__WEBPACK_IMPORTED_MODULE_7__[\"filterTooltipWithAggregatedField\"])(oldEncodingWithoutContinuousAxis);\n    const { bins, timeUnits, aggregate, groupby, encoding: encodingWithoutContinuousAxis } = Object(_encoding__WEBPACK_IMPORTED_MODULE_2__[\"extractTransformsFromEncoding\"])(filteredEncoding, config);\n    const ticksOrient = orient === 'vertical' ? 'horizontal' : 'vertical';\n    const boxOrient = orient;\n    const transform = [\n        ...bins,\n        ...timeUnits,\n        {\n            aggregate: [...aggregate, ...boxplotSpecificAggregate],\n            groupby\n        },\n        ...postAggregateCalculates\n    ];\n    return {\n        bins,\n        timeUnits,\n        transform,\n        groupby,\n        aggregate,\n        continuousAxisChannelDef,\n        continuousAxis,\n        encodingWithoutContinuousAxis,\n        ticksOrient,\n        boxOrient,\n        customTooltipWithoutAggregatedField\n    };\n}\n//# sourceMappingURL=boxplot.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compositemark/boxplot.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compositemark/common.js":
/*!******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compositemark/common.js ***!
  \******************************************************************/
/*! exports provided: filterTooltipWithAggregatedField, getCompositeMarkTooltip, getTitle, makeCompositeAggregatePartFactory, partLayerMixins, compositeMarkContinuousAxis, compositeMarkOrient */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filterTooltipWithAggregatedField\", function() { return filterTooltipWithAggregatedField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCompositeMarkTooltip\", function() { return getCompositeMarkTooltip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTitle\", function() { return getTitle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeCompositeAggregatePartFactory\", function() { return makeCompositeAggregatePartFactory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"partLayerMixins\", function() { return partLayerMixins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compositeMarkContinuousAxis\", function() { return compositeMarkContinuousAxis; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compositeMarkOrient\", function() { return compositeMarkOrient; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\nfunction filterTooltipWithAggregatedField(oldEncoding) {\n    const { tooltip } = oldEncoding, filteredEncoding = __rest(oldEncoding, [\"tooltip\"]);\n    if (!tooltip) {\n        return { filteredEncoding };\n    }\n    let customTooltipWithAggregatedField;\n    let customTooltipWithoutAggregatedField;\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(tooltip)) {\n        for (const t of tooltip) {\n            if (t.aggregate) {\n                if (!customTooltipWithAggregatedField) {\n                    customTooltipWithAggregatedField = [];\n                }\n                customTooltipWithAggregatedField.push(t);\n            }\n            else {\n                if (!customTooltipWithoutAggregatedField) {\n                    customTooltipWithoutAggregatedField = [];\n                }\n                customTooltipWithoutAggregatedField.push(t);\n            }\n        }\n        if (customTooltipWithAggregatedField) {\n            filteredEncoding.tooltip = customTooltipWithAggregatedField;\n        }\n    }\n    else {\n        if (tooltip['aggregate']) {\n            filteredEncoding.tooltip = tooltip;\n        }\n        else {\n            customTooltipWithoutAggregatedField = tooltip;\n        }\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(customTooltipWithoutAggregatedField) && customTooltipWithoutAggregatedField.length === 1) {\n        customTooltipWithoutAggregatedField = customTooltipWithoutAggregatedField[0];\n    }\n    return { customTooltipWithoutAggregatedField, filteredEncoding };\n}\nfunction getCompositeMarkTooltip(tooltipSummary, continuousAxisChannelDef, encodingWithoutContinuousAxis, withFieldName = true) {\n    if ('tooltip' in encodingWithoutContinuousAxis) {\n        return { tooltip: encodingWithoutContinuousAxis.tooltip };\n    }\n    const fiveSummaryTooltip = tooltipSummary.map(({ fieldPrefix, titlePrefix }) => {\n        const mainTitle = withFieldName ? ` of ${getTitle(continuousAxisChannelDef)}` : '';\n        return {\n            field: fieldPrefix + continuousAxisChannelDef.field,\n            type: continuousAxisChannelDef.type,\n            title: Object(_vega_schema__WEBPACK_IMPORTED_MODULE_6__[\"isSignalRef\"])(titlePrefix) ? { signal: titlePrefix + `\"${escape(mainTitle)}\"` } : titlePrefix + mainTitle\n        };\n    });\n    const tooltipFieldDefs = Object(_encoding__WEBPACK_IMPORTED_MODULE_2__[\"fieldDefs\"])(encodingWithoutContinuousAxis).map(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"toStringFieldDef\"]);\n    return {\n        tooltip: [\n            ...fiveSummaryTooltip,\n            // need to cast because TextFieldDef supports fewer types of bin\n            ...Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"unique\"])(tooltipFieldDefs, _util__WEBPACK_IMPORTED_MODULE_5__[\"hash\"])\n        ]\n    };\n}\nfunction getTitle(continuousAxisChannelDef) {\n    const { title, field } = continuousAxisChannelDef;\n    return Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"getFirstDefined\"])(title, field);\n}\nfunction makeCompositeAggregatePartFactory(compositeMarkDef, continuousAxis, continuousAxisChannelDef, sharedEncoding, compositeMarkConfig) {\n    const { scale, axis } = continuousAxisChannelDef;\n    return ({ partName, mark, positionPrefix, endPositionPrefix = undefined, extraEncoding = {} }) => {\n        const title = getTitle(continuousAxisChannelDef);\n        return partLayerMixins(compositeMarkDef, partName, compositeMarkConfig, {\n            mark,\n            encoding: Object.assign(Object.assign(Object.assign({ [continuousAxis]: Object.assign(Object.assign(Object.assign({ field: positionPrefix + '_' + continuousAxisChannelDef.field, type: continuousAxisChannelDef.type }, (title !== undefined ? { title } : {})), (scale !== undefined ? { scale } : {})), (axis !== undefined ? { axis } : {})) }, (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(endPositionPrefix)\n                ? {\n                    [continuousAxis + '2']: {\n                        field: endPositionPrefix + '_' + continuousAxisChannelDef.field\n                    }\n                }\n                : {})), sharedEncoding), extraEncoding)\n        });\n    };\n}\nfunction partLayerMixins(markDef, part, compositeMarkConfig, partBaseSpec) {\n    const { clip, color, opacity } = markDef;\n    const mark = markDef.type;\n    if (markDef[part] || (markDef[part] === undefined && compositeMarkConfig[part])) {\n        return [\n            Object.assign(Object.assign({}, partBaseSpec), { mark: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, compositeMarkConfig[part]), (clip ? { clip } : {})), (color ? { color } : {})), (opacity ? { opacity } : {})), (Object(_mark__WEBPACK_IMPORTED_MODULE_4__[\"isMarkDef\"])(partBaseSpec.mark) ? partBaseSpec.mark : { type: partBaseSpec.mark })), { style: `${mark}-${part}` }), (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"])(markDef[part]) ? {} : markDef[part])) })\n        ];\n    }\n    return [];\n}\nfunction compositeMarkContinuousAxis(spec, orient, compositeMark) {\n    const { encoding } = spec;\n    const continuousAxis = orient === 'vertical' ? 'y' : 'x';\n    const continuousAxisChannelDef = encoding[continuousAxis]; // Safe to cast because if x is not continuous fielddef, the orient would not be horizontal.\n    const continuousAxisChannelDef2 = encoding[continuousAxis + '2'];\n    const continuousAxisChannelDefError = encoding[continuousAxis + 'Error'];\n    const continuousAxisChannelDefError2 = encoding[continuousAxis + 'Error2'];\n    return {\n        continuousAxisChannelDef: filterAggregateFromChannelDef(continuousAxisChannelDef, compositeMark),\n        continuousAxisChannelDef2: filterAggregateFromChannelDef(continuousAxisChannelDef2, compositeMark),\n        continuousAxisChannelDefError: filterAggregateFromChannelDef(continuousAxisChannelDefError, compositeMark),\n        continuousAxisChannelDefError2: filterAggregateFromChannelDef(continuousAxisChannelDefError2, compositeMark),\n        continuousAxis\n    };\n}\nfunction filterAggregateFromChannelDef(continuousAxisChannelDef, compositeMark) {\n    if (continuousAxisChannelDef && continuousAxisChannelDef.aggregate) {\n        const { aggregate } = continuousAxisChannelDef, continuousAxisWithoutAggregate = __rest(continuousAxisChannelDef, [\"aggregate\"]);\n        if (aggregate !== compositeMark) {\n            _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].errorBarContinuousAxisHasCustomizedAggregate(aggregate, compositeMark));\n        }\n        return continuousAxisWithoutAggregate;\n    }\n    else {\n        return continuousAxisChannelDef;\n    }\n}\nfunction compositeMarkOrient(spec, compositeMark) {\n    const { mark, encoding } = spec;\n    const { x, y } = encoding;\n    if (Object(_mark__WEBPACK_IMPORTED_MODULE_4__[\"isMarkDef\"])(mark) && mark.orient) {\n        return mark.orient;\n    }\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isContinuousFieldOrDatumDef\"])(x)) {\n        // x is continuous\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isContinuousFieldOrDatumDef\"])(y)) {\n            // both x and y are continuous\n            const xAggregate = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(x) && x.aggregate;\n            const yAggregate = Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(y) && y.aggregate;\n            if (!xAggregate && yAggregate === compositeMark) {\n                return 'vertical';\n            }\n            else if (!yAggregate && xAggregate === compositeMark) {\n                return 'horizontal';\n            }\n            else if (xAggregate === compositeMark && yAggregate === compositeMark) {\n                throw new Error('Both x and y cannot have aggregate');\n            }\n            else {\n                if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDefForTimeFormat\"])(y) && !Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDefForTimeFormat\"])(x)) {\n                    // y is temporal but x is not\n                    return 'horizontal';\n                }\n                // default orientation for two continuous\n                return 'vertical';\n            }\n        }\n        return 'horizontal';\n    }\n    else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isContinuousFieldOrDatumDef\"])(y)) {\n        // y is continuous but x is not\n        return 'vertical';\n    }\n    else {\n        // Neither x nor y is continuous.\n        throw new Error(`Need a valid continuous axis for ${compositeMark}s`);\n    }\n}\n//# sourceMappingURL=common.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compositemark/common.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compositemark/errorband.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compositemark/errorband.js ***!
  \*********************************************************************/
/*! exports provided: ERRORBAND, ERRORBAND_PARTS, errorBandNormalizer, normalizeErrorBand */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ERRORBAND\", function() { return ERRORBAND; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ERRORBAND_PARTS\", function() { return ERRORBAND_PARTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBandNormalizer\", function() { return errorBandNormalizer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeErrorBand\", function() { return normalizeErrorBand; });\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base */ \"./node_modules/vega-lite/build/src/compositemark/base.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compositemark/common.js\");\n/* harmony import */ var _errorbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./errorbar */ \"./node_modules/vega-lite/build/src/compositemark/errorbar.js\");\n\n\n\n\n\nconst ERRORBAND = 'errorband';\nconst ERRORBAND_PARTS = ['band', 'borders'];\nconst errorBandNormalizer = new _base__WEBPACK_IMPORTED_MODULE_2__[\"CompositeMarkNormalizer\"](ERRORBAND, normalizeErrorBand);\nfunction normalizeErrorBand(spec, { config }) {\n    // Need to initEncoding first so we can infer type\n    spec = Object.assign(Object.assign({}, spec), { encoding: Object(_encoding__WEBPACK_IMPORTED_MODULE_0__[\"normalizeEncoding\"])(spec.encoding, config) });\n    const { transform, continuousAxisChannelDef, continuousAxis, encodingWithoutContinuousAxis, markDef, outerSpec, tooltipEncoding } = Object(_errorbar__WEBPACK_IMPORTED_MODULE_4__[\"errorBarParams\"])(spec, ERRORBAND, config);\n    const errorBandDef = markDef;\n    const makeErrorBandPart = Object(_common__WEBPACK_IMPORTED_MODULE_3__[\"makeCompositeAggregatePartFactory\"])(errorBandDef, continuousAxis, continuousAxisChannelDef, encodingWithoutContinuousAxis, config.errorband);\n    const is2D = spec.encoding.x !== undefined && spec.encoding.y !== undefined;\n    let bandMark = { type: is2D ? 'area' : 'rect' };\n    let bordersMark = { type: is2D ? 'line' : 'rule' };\n    const interpolate = Object.assign(Object.assign({}, (errorBandDef.interpolate ? { interpolate: errorBandDef.interpolate } : {})), (errorBandDef.tension && errorBandDef.interpolate ? { tension: errorBandDef.tension } : {}));\n    if (is2D) {\n        bandMark = Object.assign(Object.assign(Object.assign({}, bandMark), interpolate), { ariaRoleDescription: 'errorband' });\n        bordersMark = Object.assign(Object.assign(Object.assign({}, bordersMark), interpolate), { aria: false });\n    }\n    else if (errorBandDef.interpolate) {\n        _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].errorBand1DNotSupport('interpolate'));\n    }\n    else if (errorBandDef.tension) {\n        _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].errorBand1DNotSupport('tension'));\n    }\n    return Object.assign(Object.assign({}, outerSpec), { transform, layer: [\n            ...makeErrorBandPart({\n                partName: 'band',\n                mark: bandMark,\n                positionPrefix: 'lower',\n                endPositionPrefix: 'upper',\n                extraEncoding: tooltipEncoding\n            }),\n            ...makeErrorBandPart({\n                partName: 'borders',\n                mark: bordersMark,\n                positionPrefix: 'lower',\n                extraEncoding: tooltipEncoding\n            }),\n            ...makeErrorBandPart({\n                partName: 'borders',\n                mark: bordersMark,\n                positionPrefix: 'upper',\n                extraEncoding: tooltipEncoding\n            })\n        ] });\n}\n//# sourceMappingURL=errorband.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compositemark/errorband.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compositemark/errorbar.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compositemark/errorbar.js ***!
  \********************************************************************/
/*! exports provided: ERRORBAR, ERRORBAR_PARTS, errorBarNormalizer, normalizeErrorBar, errorBarParams */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ERRORBAR\", function() { return ERRORBAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ERRORBAR_PARTS\", function() { return ERRORBAR_PARTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBarNormalizer\", function() { return errorBarNormalizer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeErrorBar\", function() { return normalizeErrorBar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBarParams\", function() { return errorBarParams; });\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./base */ \"./node_modules/vega-lite/build/src/compositemark/base.js\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./common */ \"./node_modules/vega-lite/build/src/compositemark/common.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\nconst ERRORBAR = 'errorbar';\nconst ERRORBAR_PARTS = ['ticks', 'rule'];\nconst errorBarNormalizer = new _base__WEBPACK_IMPORTED_MODULE_5__[\"CompositeMarkNormalizer\"](ERRORBAR, normalizeErrorBar);\nfunction normalizeErrorBar(spec, { config }) {\n    // Need to initEncoding first so we can infer type\n    spec = Object.assign(Object.assign({}, spec), { encoding: Object(_encoding__WEBPACK_IMPORTED_MODULE_1__[\"normalizeEncoding\"])(spec.encoding, config) });\n    const { transform, continuousAxisChannelDef, continuousAxis, encodingWithoutContinuousAxis, ticksOrient, markDef, outerSpec, tooltipEncoding } = errorBarParams(spec, ERRORBAR, config);\n    delete encodingWithoutContinuousAxis['size'];\n    const makeErrorBarPart = Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"makeCompositeAggregatePartFactory\"])(markDef, continuousAxis, continuousAxisChannelDef, encodingWithoutContinuousAxis, config.errorbar);\n    const thickness = markDef.thickness;\n    const size = markDef.size;\n    const tick = Object.assign(Object.assign({ type: 'tick', orient: ticksOrient, aria: false }, (thickness !== undefined ? { thickness } : {})), (size !== undefined ? { size } : {}));\n    const layer = [\n        ...makeErrorBarPart({\n            partName: 'ticks',\n            mark: tick,\n            positionPrefix: 'lower',\n            extraEncoding: tooltipEncoding\n        }),\n        ...makeErrorBarPart({\n            partName: 'ticks',\n            mark: tick,\n            positionPrefix: 'upper',\n            extraEncoding: tooltipEncoding\n        }),\n        ...makeErrorBarPart({\n            partName: 'rule',\n            mark: Object.assign({ type: 'rule', ariaRoleDescription: 'errorbar' }, (thickness !== undefined ? { size: thickness } : {})),\n            positionPrefix: 'lower',\n            endPositionPrefix: 'upper',\n            extraEncoding: tooltipEncoding\n        })\n    ];\n    return Object.assign(Object.assign(Object.assign({}, outerSpec), { transform }), (layer.length > 1 ? { layer } : Object.assign({}, layer[0])));\n}\nfunction errorBarOrientAndInputType(spec, compositeMark) {\n    const { encoding } = spec;\n    if (errorBarIsInputTypeRaw(encoding)) {\n        return {\n            orient: Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"compositeMarkOrient\"])(spec, compositeMark),\n            inputType: 'raw'\n        };\n    }\n    const isTypeAggregatedUpperLower = errorBarIsInputTypeAggregatedUpperLower(encoding);\n    const isTypeAggregatedError = errorBarIsInputTypeAggregatedError(encoding);\n    const x = encoding.x;\n    const y = encoding.y;\n    if (isTypeAggregatedUpperLower) {\n        // type is aggregated-upper-lower\n        if (isTypeAggregatedError) {\n            throw new Error(`${compositeMark} cannot be both type aggregated-upper-lower and aggregated-error`);\n        }\n        const x2 = encoding.x2;\n        const y2 = encoding.y2;\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(x2) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(y2)) {\n            // having both x, x2 and y, y2\n            throw new Error(`${compositeMark} cannot have both x2 and y2`);\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(x2)) {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isContinuousFieldOrDatumDef\"])(x)) {\n                // having x, x2 quantitative and field y, y2 are not specified\n                return { orient: 'horizontal', inputType: 'aggregated-upper-lower' };\n            }\n            else {\n                // having x, x2 that are not both quantitative\n                throw new Error(`Both x and x2 have to be quantitative in ${compositeMark}`);\n            }\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(y2)) {\n            // y2 is a FieldDef\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isContinuousFieldOrDatumDef\"])(y)) {\n                // having y, y2 quantitative and field x, x2 are not specified\n                return { orient: 'vertical', inputType: 'aggregated-upper-lower' };\n            }\n            else {\n                // having y, y2 that are not both quantitative\n                throw new Error(`Both y and y2 have to be quantitative in ${compositeMark}`);\n            }\n        }\n        throw new Error('No ranged axis');\n    }\n    else {\n        // type is aggregated-error\n        const xError = encoding.xError;\n        const xError2 = encoding.xError2;\n        const yError = encoding.yError;\n        const yError2 = encoding.yError2;\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(xError2) && !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(xError)) {\n            // having xError2 without xError\n            throw new Error(`${compositeMark} cannot have xError2 without xError`);\n        }\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(yError2) && !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(yError)) {\n            // having yError2 without yError\n            throw new Error(`${compositeMark} cannot have yError2 without yError`);\n        }\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(xError) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(yError)) {\n            // having both xError and yError\n            throw new Error(`${compositeMark} cannot have both xError and yError with both are quantiative`);\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(xError)) {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isContinuousFieldOrDatumDef\"])(x)) {\n                // having x and xError that are all quantitative\n                return { orient: 'horizontal', inputType: 'aggregated-error' };\n            }\n            else {\n                // having x, xError, and xError2 that are not all quantitative\n                throw new Error('All x, xError, and xError2 (if exist) have to be quantitative');\n            }\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(yError)) {\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isContinuousFieldOrDatumDef\"])(y)) {\n                // having y and yError that are all quantitative\n                return { orient: 'vertical', inputType: 'aggregated-error' };\n            }\n            else {\n                // having y, yError, and yError2 that are not all quantitative\n                throw new Error('All y, yError, and yError2 (if exist) have to be quantitative');\n            }\n        }\n        throw new Error('No ranged axis');\n    }\n}\nfunction errorBarIsInputTypeRaw(encoding) {\n    return ((Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.x) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.y)) &&\n        !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.x2) &&\n        !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.y2) &&\n        !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.xError) &&\n        !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.xError2) &&\n        !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.yError) &&\n        !Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.yError2));\n}\nfunction errorBarIsInputTypeAggregatedUpperLower(encoding) {\n    return Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.x2) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.y2);\n}\nfunction errorBarIsInputTypeAggregatedError(encoding) {\n    return (Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.xError) ||\n        Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.xError2) ||\n        Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.yError) ||\n        Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"isFieldOrDatumDef\"])(encoding.yError2));\n}\nfunction errorBarParams(spec, compositeMark, config) {\n    var _a;\n    // TODO: use selection\n    const { mark, encoding, selection, projection: _p } = spec, outerSpec = __rest(spec, [\"mark\", \"encoding\", \"selection\", \"projection\"]);\n    const markDef = Object(_mark__WEBPACK_IMPORTED_MODULE_3__[\"isMarkDef\"])(mark) ? mark : { type: mark };\n    // TODO(https://github.com/vega/vega-lite/issues/3702): add selection support\n    if (selection) {\n        _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].selectionNotSupported(compositeMark));\n    }\n    const { orient, inputType } = errorBarOrientAndInputType(spec, compositeMark);\n    const { continuousAxisChannelDef, continuousAxisChannelDef2, continuousAxisChannelDefError, continuousAxisChannelDefError2, continuousAxis } = Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"compositeMarkContinuousAxis\"])(spec, orient, compositeMark);\n    const { errorBarSpecificAggregate, postAggregateCalculates, tooltipSummary, tooltipTitleWithFieldName } = errorBarAggregationAndCalculation(markDef, continuousAxisChannelDef, continuousAxisChannelDef2, continuousAxisChannelDefError, continuousAxisChannelDefError2, inputType, compositeMark, config);\n    const _b = encoding, _c = continuousAxis, oldContinuousAxisChannelDef = _b[_c], _d = continuousAxis === 'x' ? 'x2' : 'y2', oldContinuousAxisChannelDef2 = _b[_d], _e = continuousAxis === 'x' ? 'xError' : 'yError', oldContinuousAxisChannelDefError = _b[_e], _f = continuousAxis === 'x' ? 'xError2' : 'yError2', oldContinuousAxisChannelDefError2 = _b[_f], oldEncodingWithoutContinuousAxis = __rest(_b, [typeof _c === \"symbol\" ? _c : _c + \"\", typeof _d === \"symbol\" ? _d : _d + \"\", typeof _e === \"symbol\" ? _e : _e + \"\", typeof _f === \"symbol\" ? _f : _f + \"\"]);\n    const { bins, timeUnits, aggregate: oldAggregate, groupby: oldGroupBy, encoding: encodingWithoutContinuousAxis } = Object(_encoding__WEBPACK_IMPORTED_MODULE_1__[\"extractTransformsFromEncoding\"])(oldEncodingWithoutContinuousAxis, config);\n    const aggregate = [...oldAggregate, ...errorBarSpecificAggregate];\n    const groupby = inputType !== 'raw' ? [] : oldGroupBy;\n    const tooltipEncoding = Object(_common__WEBPACK_IMPORTED_MODULE_6__[\"getCompositeMarkTooltip\"])(tooltipSummary, continuousAxisChannelDef, encodingWithoutContinuousAxis, tooltipTitleWithFieldName);\n    return {\n        transform: [\n            ...((_a = outerSpec.transform) !== null && _a !== void 0 ? _a : []),\n            ...bins,\n            ...timeUnits,\n            ...(aggregate.length === 0 ? [] : [{ aggregate, groupby }]),\n            ...postAggregateCalculates\n        ],\n        groupby,\n        continuousAxisChannelDef,\n        continuousAxis,\n        encodingWithoutContinuousAxis,\n        ticksOrient: orient === 'vertical' ? 'horizontal' : 'vertical',\n        markDef,\n        outerSpec,\n        tooltipEncoding\n    };\n}\nfunction errorBarAggregationAndCalculation(markDef, continuousAxisChannelDef, continuousAxisChannelDef2, continuousAxisChannelDefError, continuousAxisChannelDefError2, inputType, compositeMark, config) {\n    let errorBarSpecificAggregate = [];\n    let postAggregateCalculates = [];\n    const continuousFieldName = continuousAxisChannelDef.field;\n    let tooltipSummary;\n    let tooltipTitleWithFieldName = false;\n    if (inputType === 'raw') {\n        const center = markDef.center\n            ? markDef.center\n            : markDef.extent\n                ? markDef.extent === 'iqr'\n                    ? 'median'\n                    : 'mean'\n                : config.errorbar.center;\n        const extent = markDef.extent ? markDef.extent : center === 'mean' ? 'stderr' : 'iqr';\n        if ((center === 'median') !== (extent === 'iqr')) {\n            _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].errorBarCenterIsUsedWithWrongExtent(center, extent, compositeMark));\n        }\n        if (extent === 'stderr' || extent === 'stdev') {\n            errorBarSpecificAggregate = [\n                { op: extent, field: continuousFieldName, as: 'extent_' + continuousFieldName },\n                { op: center, field: continuousFieldName, as: 'center_' + continuousFieldName }\n            ];\n            postAggregateCalculates = [\n                {\n                    calculate: `datum[\"center_${continuousFieldName}\"] + datum[\"extent_${continuousFieldName}\"]`,\n                    as: 'upper_' + continuousFieldName\n                },\n                {\n                    calculate: `datum[\"center_${continuousFieldName}\"] - datum[\"extent_${continuousFieldName}\"]`,\n                    as: 'lower_' + continuousFieldName\n                }\n            ];\n            tooltipSummary = [\n                { fieldPrefix: 'center_', titlePrefix: Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"titleCase\"])(center) },\n                { fieldPrefix: 'upper_', titlePrefix: getTitlePrefix(center, extent, '+') },\n                { fieldPrefix: 'lower_', titlePrefix: getTitlePrefix(center, extent, '-') }\n            ];\n            tooltipTitleWithFieldName = true;\n        }\n        else {\n            let centerOp;\n            let lowerExtentOp;\n            let upperExtentOp;\n            if (extent === 'ci') {\n                centerOp = 'mean';\n                lowerExtentOp = 'ci0';\n                upperExtentOp = 'ci1';\n            }\n            else {\n                centerOp = 'median';\n                lowerExtentOp = 'q1';\n                upperExtentOp = 'q3';\n            }\n            errorBarSpecificAggregate = [\n                { op: lowerExtentOp, field: continuousFieldName, as: 'lower_' + continuousFieldName },\n                { op: upperExtentOp, field: continuousFieldName, as: 'upper_' + continuousFieldName },\n                { op: centerOp, field: continuousFieldName, as: 'center_' + continuousFieldName }\n            ];\n            tooltipSummary = [\n                {\n                    fieldPrefix: 'upper_',\n                    titlePrefix: Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"title\"])({ field: continuousFieldName, aggregate: upperExtentOp, type: 'quantitative' }, config, {\n                        allowDisabling: false\n                    })\n                },\n                {\n                    fieldPrefix: 'lower_',\n                    titlePrefix: Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"title\"])({ field: continuousFieldName, aggregate: lowerExtentOp, type: 'quantitative' }, config, {\n                        allowDisabling: false\n                    })\n                },\n                {\n                    fieldPrefix: 'center_',\n                    titlePrefix: Object(_channeldef__WEBPACK_IMPORTED_MODULE_0__[\"title\"])({ field: continuousFieldName, aggregate: centerOp, type: 'quantitative' }, config, {\n                        allowDisabling: false\n                    })\n                }\n            ];\n        }\n    }\n    else {\n        if (markDef.center || markDef.extent) {\n            _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].errorBarCenterAndExtentAreNotNeeded(markDef.center, markDef.extent));\n        }\n        if (inputType === 'aggregated-upper-lower') {\n            tooltipSummary = [];\n            postAggregateCalculates = [\n                { calculate: `datum[\"${continuousAxisChannelDef2.field}\"]`, as: 'upper_' + continuousFieldName },\n                { calculate: `datum[\"${continuousFieldName}\"]`, as: 'lower_' + continuousFieldName }\n            ];\n        }\n        else if (inputType === 'aggregated-error') {\n            tooltipSummary = [{ fieldPrefix: '', titlePrefix: continuousFieldName }];\n            postAggregateCalculates = [\n                {\n                    calculate: `datum[\"${continuousFieldName}\"] + datum[\"${continuousAxisChannelDefError.field}\"]`,\n                    as: 'upper_' + continuousFieldName\n                }\n            ];\n            if (continuousAxisChannelDefError2) {\n                postAggregateCalculates.push({\n                    calculate: `datum[\"${continuousFieldName}\"] + datum[\"${continuousAxisChannelDefError2.field}\"]`,\n                    as: 'lower_' + continuousFieldName\n                });\n            }\n            else {\n                postAggregateCalculates.push({\n                    calculate: `datum[\"${continuousFieldName}\"] - datum[\"${continuousAxisChannelDefError.field}\"]`,\n                    as: 'lower_' + continuousFieldName\n                });\n            }\n        }\n        for (const postAggregateCalculate of postAggregateCalculates) {\n            tooltipSummary.push({\n                fieldPrefix: postAggregateCalculate.as.substring(0, 6),\n                titlePrefix: Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"replaceAll\"])(Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"replaceAll\"])(postAggregateCalculate.calculate, 'datum[\"', ''), '\"]', '')\n            });\n        }\n    }\n    return { postAggregateCalculates, errorBarSpecificAggregate, tooltipSummary, tooltipTitleWithFieldName };\n}\nfunction getTitlePrefix(center, extent, operation) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"titleCase\"])(center) + ' ' + operation + ' ' + extent;\n}\n//# sourceMappingURL=errorbar.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compositemark/errorbar.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/compositemark/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/compositemark/index.js ***!
  \*****************************************************************/
/*! exports provided: add, remove, getAllCompositeMarks */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"add\", function() { return add; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"remove\", function() { return remove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getAllCompositeMarks\", function() { return getAllCompositeMarks; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ \"./node_modules/vega-lite/build/src/compositemark/base.js\");\n/* harmony import */ var _boxplot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./boxplot */ \"./node_modules/vega-lite/build/src/compositemark/boxplot.js\");\n/* harmony import */ var _errorband__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./errorband */ \"./node_modules/vega-lite/build/src/compositemark/errorband.js\");\n/* harmony import */ var _errorbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./errorbar */ \"./node_modules/vega-lite/build/src/compositemark/errorbar.js\");\n\n\n\n\n\n/**\n * Registry index for all composite mark's normalizer\n */\nconst compositeMarkRegistry = {};\nfunction add(mark, run, parts) {\n    const normalizer = new _base__WEBPACK_IMPORTED_MODULE_1__[\"CompositeMarkNormalizer\"](mark, run);\n    compositeMarkRegistry[mark] = { normalizer, parts };\n}\nfunction remove(mark) {\n    delete compositeMarkRegistry[mark];\n}\nfunction getAllCompositeMarks() {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(compositeMarkRegistry);\n}\nadd(_boxplot__WEBPACK_IMPORTED_MODULE_2__[\"BOXPLOT\"], _boxplot__WEBPACK_IMPORTED_MODULE_2__[\"normalizeBoxPlot\"], _boxplot__WEBPACK_IMPORTED_MODULE_2__[\"BOXPLOT_PARTS\"]);\nadd(_errorbar__WEBPACK_IMPORTED_MODULE_4__[\"ERRORBAR\"], _errorbar__WEBPACK_IMPORTED_MODULE_4__[\"normalizeErrorBar\"], _errorbar__WEBPACK_IMPORTED_MODULE_4__[\"ERRORBAR_PARTS\"]);\nadd(_errorband__WEBPACK_IMPORTED_MODULE_3__[\"ERRORBAND\"], _errorband__WEBPACK_IMPORTED_MODULE_3__[\"normalizeErrorBand\"], _errorband__WEBPACK_IMPORTED_MODULE_3__[\"ERRORBAND_PARTS\"]);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/compositemark/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/config.js":
/*!****************************************************!*\
  !*** ./node_modules/vega-lite/build/src/config.js ***!
  \****************************************************/
/*! exports provided: getViewConfigContinuousSize, getViewConfigDiscreteStep, getViewConfigDiscreteSize, DEFAULT_STEP, defaultViewConfig, isVgScheme, defaultConfig, DEFAULT_FONT_SIZE, DEFAULT_COLOR, colorSignalConfig, fontSizeSignalConfig, fontConfig, initConfig, stripAndRedirectConfig */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewConfigContinuousSize\", function() { return getViewConfigContinuousSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewConfigDiscreteStep\", function() { return getViewConfigDiscreteStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getViewConfigDiscreteSize\", function() { return getViewConfigDiscreteSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_STEP\", function() { return DEFAULT_STEP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultViewConfig\", function() { return defaultViewConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVgScheme\", function() { return isVgScheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultConfig\", function() { return defaultConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_FONT_SIZE\", function() { return DEFAULT_FONT_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_COLOR\", function() { return DEFAULT_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"colorSignalConfig\", function() { return colorSignalConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontSizeSignalConfig\", function() { return fontSizeSignalConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontConfig\", function() { return fontConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initConfig\", function() { return initConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stripAndRedirectConfig\", function() { return stripAndRedirectConfig; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _axis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./axis */ \"./node_modules/vega-lite/build/src/axis.js\");\n/* harmony import */ var _compile_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compile/common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _compositemark__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./compositemark */ \"./node_modules/vega-lite/build/src/compositemark/index.js\");\n/* harmony import */ var _expr__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./expr */ \"./node_modules/vega-lite/build/src/expr.js\");\n/* harmony import */ var _guide__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./guide */ \"./node_modules/vega-lite/build/src/guide.js\");\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./header */ \"./node_modules/vega-lite/build/src/header.js\");\n/* harmony import */ var _legend__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./legend */ \"./node_modules/vega-lite/build/src/legend.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _parameter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./parameter */ \"./node_modules/vega-lite/build/src/parameter.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./selection */ \"./node_modules/vega-lite/build/src/selection.js\");\n/* harmony import */ var _spec_base__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./spec/base */ \"./node_modules/vega-lite/build/src/spec/base.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./title */ \"./node_modules/vega-lite/build/src/title.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getViewConfigContinuousSize(viewConfig, channel) {\n    var _a;\n    return (_a = viewConfig[channel]) !== null && _a !== void 0 ? _a : viewConfig[channel === 'width' ? 'continuousWidth' : 'continuousHeight']; // get width/height for backwards compatibility\n}\nfunction getViewConfigDiscreteStep(viewConfig, channel) {\n    const size = getViewConfigDiscreteSize(viewConfig, channel);\n    return Object(_spec_base__WEBPACK_IMPORTED_MODULE_12__[\"isStep\"])(size) ? size.step : DEFAULT_STEP;\n}\nfunction getViewConfigDiscreteSize(viewConfig, channel) {\n    var _a;\n    const size = (_a = viewConfig[channel]) !== null && _a !== void 0 ? _a : viewConfig[channel === 'width' ? 'discreteWidth' : 'discreteHeight']; // get width/height for backwards compatibility\n    return Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"getFirstDefined\"])(size, { step: viewConfig.step });\n}\nconst DEFAULT_STEP = 20;\nconst defaultViewConfig = {\n    continuousWidth: 200,\n    continuousHeight: 200,\n    step: DEFAULT_STEP\n};\nfunction isVgScheme(rangeScheme) {\n    return rangeScheme && !!rangeScheme['scheme'];\n}\nconst defaultConfig = {\n    background: 'white',\n    padding: 5,\n    timeFormat: '%b %d, %Y',\n    countTitle: 'Count of Records',\n    view: defaultViewConfig,\n    mark: _mark__WEBPACK_IMPORTED_MODULE_8__[\"defaultMarkConfig\"],\n    arc: {},\n    area: {},\n    bar: _mark__WEBPACK_IMPORTED_MODULE_8__[\"defaultBarConfig\"],\n    circle: {},\n    geoshape: {},\n    image: {},\n    line: {},\n    point: {},\n    rect: _mark__WEBPACK_IMPORTED_MODULE_8__[\"defaultRectConfig\"],\n    rule: { color: 'black' },\n    square: {},\n    text: { color: 'black' },\n    tick: _mark__WEBPACK_IMPORTED_MODULE_8__[\"defaultTickConfig\"],\n    trail: {},\n    boxplot: {\n        size: 14,\n        extent: 1.5,\n        box: {},\n        median: { color: 'white' },\n        outliers: {},\n        rule: {},\n        ticks: null\n    },\n    errorbar: {\n        center: 'mean',\n        rule: true,\n        ticks: false\n    },\n    errorband: {\n        band: {\n            opacity: 0.3\n        },\n        borders: false\n    },\n    scale: _scale__WEBPACK_IMPORTED_MODULE_10__[\"defaultScaleConfig\"],\n    projection: {},\n    legend: _legend__WEBPACK_IMPORTED_MODULE_7__[\"defaultLegendConfig\"],\n    header: { titlePadding: 10, labelPadding: 10 },\n    headerColumn: {},\n    headerRow: {},\n    headerFacet: {},\n    selection: _selection__WEBPACK_IMPORTED_MODULE_11__[\"defaultConfig\"],\n    style: {},\n    title: {},\n    facet: { spacing: _spec_base__WEBPACK_IMPORTED_MODULE_12__[\"DEFAULT_SPACING\"] },\n    concat: { spacing: _spec_base__WEBPACK_IMPORTED_MODULE_12__[\"DEFAULT_SPACING\"] }\n};\n// Tableau10 color palette, copied from `vegaScale.scheme('tableau10')`\nconst tab10 = [\n    '#4c78a8',\n    '#f58518',\n    '#e45756',\n    '#72b7b2',\n    '#54a24b',\n    '#eeca3b',\n    '#b279a2',\n    '#ff9da6',\n    '#9d755d',\n    '#bab0ac'\n];\nconst DEFAULT_FONT_SIZE = {\n    text: 11,\n    guideLabel: 10,\n    guideTitle: 11,\n    groupTitle: 13,\n    groupSubtitle: 12\n};\nconst DEFAULT_COLOR = {\n    blue: tab10[0],\n    orange: tab10[1],\n    red: tab10[2],\n    teal: tab10[3],\n    green: tab10[4],\n    yellow: tab10[5],\n    purple: tab10[6],\n    pink: tab10[7],\n    brown: tab10[8],\n    gray0: '#000',\n    gray1: '#111',\n    gray2: '#222',\n    gray3: '#333',\n    gray4: '#444',\n    gray5: '#555',\n    gray6: '#666',\n    gray7: '#777',\n    gray8: '#888',\n    gray9: '#999',\n    gray10: '#aaa',\n    gray11: '#bbb',\n    gray12: '#ccc',\n    gray13: '#ddd',\n    gray14: '#eee',\n    gray15: '#fff'\n};\nfunction colorSignalConfig(color = {}) {\n    return {\n        signals: [\n            {\n                name: 'color',\n                value: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(color) ? Object.assign(Object.assign({}, DEFAULT_COLOR), color) : DEFAULT_COLOR\n            }\n        ],\n        mark: { color: { signal: 'color.blue' } },\n        rule: { color: { signal: 'color.gray0' } },\n        text: {\n            color: { signal: 'color.gray0' }\n        },\n        style: {\n            'guide-label': {\n                fill: { signal: 'color.gray0' }\n            },\n            'guide-title': {\n                fill: { signal: 'color.gray0' }\n            },\n            'group-title': {\n                fill: { signal: 'color.gray0' }\n            },\n            'group-subtitle': {\n                fill: { signal: 'color.gray0' }\n            },\n            cell: {\n                stroke: { signal: 'color.gray8' }\n            }\n        },\n        axis: {\n            domainColor: { signal: 'color.gray13' },\n            gridColor: { signal: 'color.gray8' },\n            tickColor: { signal: 'color.gray13' }\n        },\n        range: {\n            category: [\n                { signal: 'color.blue' },\n                { signal: 'color.orange' },\n                { signal: 'color.red' },\n                { signal: 'color.teal' },\n                { signal: 'color.green' },\n                { signal: 'color.yellow' },\n                { signal: 'color.purple' },\n                { signal: 'color.pink' },\n                { signal: 'color.brown' },\n                { signal: 'color.grey8' }\n            ]\n        }\n    };\n}\nfunction fontSizeSignalConfig(fontSize) {\n    return {\n        signals: [\n            {\n                name: 'fontSize',\n                value: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(fontSize) ? Object.assign(Object.assign({}, DEFAULT_FONT_SIZE), fontSize) : DEFAULT_FONT_SIZE\n            }\n        ],\n        text: {\n            fontSize: { signal: 'fontSize.text' }\n        },\n        style: {\n            'guide-label': {\n                fontSize: { signal: 'fontSize.guideLabel' }\n            },\n            'guide-title': {\n                fontSize: { signal: 'fontSize.guideTitle' }\n            },\n            'group-title': {\n                fontSize: { signal: 'fontSize.groupTitle' }\n            },\n            'group-subtitle': {\n                fontSize: { signal: 'fontSize.groupSubtitle' }\n            }\n        }\n    };\n}\nfunction fontConfig(font) {\n    return {\n        text: { font },\n        style: {\n            'guide-label': { font },\n            'guide-title': { font },\n            'group-title': { font },\n            'group-subtitle': { font }\n        }\n    };\n}\nfunction getAxisConfigInternal(axisConfig) {\n    const props = Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"keys\"])(axisConfig || {});\n    const axisConfigInternal = {};\n    for (const prop of props) {\n        const val = axisConfig[prop];\n        axisConfigInternal[prop] = Object(_axis__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalAxisValue\"])(val)\n            ? Object(_compile_common__WEBPACK_IMPORTED_MODULE_2__[\"signalOrValueRefWithCondition\"])(val)\n            : Object(_compile_common__WEBPACK_IMPORTED_MODULE_2__[\"signalRefOrValue\"])(val);\n    }\n    return axisConfigInternal;\n}\nfunction getStyleConfigInternal(styleConfig) {\n    const props = Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"keys\"])(styleConfig);\n    const styleConfigInternal = {};\n    for (const prop of props) {\n        // We need to cast to cheat a bit here since styleConfig can be either mark config or axis config\n        styleConfigInternal[prop] = getAxisConfigInternal(styleConfig[prop]);\n    }\n    return styleConfigInternal;\n}\nconst configPropsWithExpr = [\n    ..._mark__WEBPACK_IMPORTED_MODULE_8__[\"MARK_CONFIGS\"],\n    ..._axis__WEBPACK_IMPORTED_MODULE_1__[\"AXIS_CONFIGS\"],\n    ..._header__WEBPACK_IMPORTED_MODULE_6__[\"HEADER_CONFIGS\"],\n    'background',\n    'padding',\n    'legend',\n    'lineBreak',\n    'scale',\n    'style',\n    'title',\n    'view'\n];\n/**\n * Merge specified config with default config and config for the `color` flag,\n * then replace all expressions with signals\n */\nfunction initConfig(specifiedConfig = {}) {\n    const { color, font, fontSize } = specifiedConfig, restConfig = __rest(specifiedConfig, [\"color\", \"font\", \"fontSize\"]);\n    const mergedConfig = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"mergeConfig\"])({}, defaultConfig, font ? fontConfig(font) : {}, color ? colorSignalConfig(color) : {}, fontSize ? fontSizeSignalConfig(fontSize) : {}, restConfig || {});\n    const outputConfig = Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"omit\"])(mergedConfig, configPropsWithExpr);\n    for (const prop of ['background', 'lineBreak', 'padding']) {\n        if (mergedConfig[prop]) {\n            outputConfig[prop] = Object(_compile_common__WEBPACK_IMPORTED_MODULE_2__[\"signalRefOrValue\"])(mergedConfig[prop]);\n        }\n    }\n    for (const markConfigType of _mark__WEBPACK_IMPORTED_MODULE_8__[\"MARK_CONFIGS\"]) {\n        if (mergedConfig[markConfigType]) {\n            outputConfig[markConfigType] = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(mergedConfig[markConfigType]);\n        }\n    }\n    for (const axisConfigType of _axis__WEBPACK_IMPORTED_MODULE_1__[\"AXIS_CONFIGS\"]) {\n        if (mergedConfig[axisConfigType]) {\n            outputConfig[axisConfigType] = getAxisConfigInternal(mergedConfig[axisConfigType]);\n        }\n    }\n    for (const headerConfigType of _header__WEBPACK_IMPORTED_MODULE_6__[\"HEADER_CONFIGS\"]) {\n        if (mergedConfig[headerConfigType]) {\n            outputConfig[headerConfigType] = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(mergedConfig[headerConfigType]);\n        }\n    }\n    if (mergedConfig.legend) {\n        outputConfig.legend = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(mergedConfig.legend);\n    }\n    if (mergedConfig.scale) {\n        outputConfig.scale = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(mergedConfig.scale);\n    }\n    if (mergedConfig.style) {\n        outputConfig.style = getStyleConfigInternal(mergedConfig.style);\n    }\n    if (mergedConfig.title) {\n        outputConfig.title = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(mergedConfig.title);\n    }\n    if (mergedConfig.view) {\n        outputConfig.view = Object(_expr__WEBPACK_IMPORTED_MODULE_4__[\"replaceExprRefInIndex\"])(mergedConfig.view);\n    }\n    return outputConfig;\n}\nconst MARK_STYLES = ['view', ..._mark__WEBPACK_IMPORTED_MODULE_8__[\"PRIMITIVE_MARKS\"]];\nconst VL_ONLY_CONFIG_PROPERTIES = [\n    'color',\n    'fontSize',\n    'background',\n    'padding',\n    'facet',\n    'concat',\n    'numberFormat',\n    'timeFormat',\n    'countTitle',\n    'header',\n    'axisQuantitative',\n    'axisTemporal',\n    'axisDiscrete',\n    'axisPoint',\n    'axisXBand',\n    'axisXPoint',\n    'axisXDiscrete',\n    'axisXQuantitative',\n    'axisXTemporal',\n    'axisYBand',\n    'axisYPoint',\n    'axisYDiscrete',\n    'axisYQuantitative',\n    'axisYTemporal',\n    'scale',\n    'selection',\n    'overlay' // FIXME: Redesign and unhide this\n];\nconst VL_ONLY_ALL_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX = Object.assign({ view: ['continuousWidth', 'continuousHeight', 'discreteWidth', 'discreteHeight', 'step'] }, _mark__WEBPACK_IMPORTED_MODULE_8__[\"VL_ONLY_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX\"]);\nfunction stripAndRedirectConfig(config) {\n    config = Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"duplicate\"])(config);\n    for (const prop of VL_ONLY_CONFIG_PROPERTIES) {\n        delete config[prop];\n    }\n    if (config.axis) {\n        // delete condition axis config\n        for (const prop in config.axis) {\n            if (Object(_axis__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalAxisValue\"])(config.axis[prop])) {\n                delete config.axis[prop];\n            }\n        }\n    }\n    if (config.legend) {\n        for (const prop of _guide__WEBPACK_IMPORTED_MODULE_5__[\"VL_ONLY_LEGEND_CONFIG\"]) {\n            delete config.legend[prop];\n        }\n    }\n    // Remove Vega-Lite only generic mark config\n    if (config.mark) {\n        for (const prop of _mark__WEBPACK_IMPORTED_MODULE_8__[\"VL_ONLY_MARK_CONFIG_PROPERTIES\"]) {\n            delete config.mark[prop];\n        }\n        if (config.mark.tooltip && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(config.mark.tooltip)) {\n            delete config.mark.tooltip;\n        }\n    }\n    if (config.params) {\n        config.signals = (config.signals || []).concat(Object(_parameter__WEBPACK_IMPORTED_MODULE_9__[\"assembleParameterSignals\"])(config.params));\n        delete config.params;\n    }\n    for (const markType of MARK_STYLES) {\n        // Remove Vega-Lite-only mark config\n        for (const prop of _mark__WEBPACK_IMPORTED_MODULE_8__[\"VL_ONLY_MARK_CONFIG_PROPERTIES\"]) {\n            delete config[markType][prop];\n        }\n        // Remove Vega-Lite only mark-specific config\n        const vlOnlyMarkSpecificConfigs = VL_ONLY_ALL_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX[markType];\n        if (vlOnlyMarkSpecificConfigs) {\n            for (const prop of vlOnlyMarkSpecificConfigs) {\n                delete config[markType][prop];\n            }\n        }\n        // Redirect mark config to config.style so that mark config only affect its own mark type\n        // without affecting other marks that share the same underlying Vega marks.\n        // For example, config.rect should not affect bar marks.\n        redirectConfigToStyleConfig(config, markType);\n    }\n    for (const m of Object(_compositemark__WEBPACK_IMPORTED_MODULE_3__[\"getAllCompositeMarks\"])()) {\n        // Clean up the composite mark config as we don't need them in the output specs anymore\n        delete config[m];\n    }\n    redirectTitleConfig(config);\n    // Remove empty config objects.\n    for (const prop in config) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(config[prop]) && Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"isEmpty\"])(config[prop])) {\n            delete config[prop];\n        }\n    }\n    return Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"isEmpty\"])(config) ? undefined : config;\n}\n/**\n *\n * Redirect config.title -- so that title config do not affect header labels,\n * which also uses `title` directive to implement.\n *\n * For subtitle configs in config.title, keep them in config.title as header titles never have subtitles.\n */\nfunction redirectTitleConfig(config) {\n    const { titleMarkConfig, subtitleMarkConfig, subtitle } = Object(_title__WEBPACK_IMPORTED_MODULE_13__[\"extractTitleConfig\"])(config.title);\n    // set config.style if title/subtitleMarkConfig is not an empty object\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"isEmpty\"])(titleMarkConfig)) {\n        config.style['group-title'] = Object.assign(Object.assign({}, config.style['group-title']), titleMarkConfig // config.title has higher precedence than config.style.group-title in Vega\n        );\n    }\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"isEmpty\"])(subtitleMarkConfig)) {\n        config.style['group-subtitle'] = Object.assign(Object.assign({}, config.style['group-subtitle']), subtitleMarkConfig);\n    }\n    // subtitle part can stay in config.title since header titles do not use subtitle\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"isEmpty\"])(subtitle)) {\n        config.title = subtitle;\n    }\n    else {\n        delete config.title;\n    }\n}\nfunction redirectConfigToStyleConfig(config, prop, // string = composite mark\ntoProp, compositeMarkPart) {\n    const propConfig = compositeMarkPart ? config[prop][compositeMarkPart] : config[prop];\n    if (prop === 'view') {\n        toProp = 'cell'; // View's default style is \"cell\"\n    }\n    const style = Object.assign(Object.assign({}, propConfig), config.style[toProp !== null && toProp !== void 0 ? toProp : prop]);\n    // set config.style if it is not an empty object\n    if (!Object(_util__WEBPACK_IMPORTED_MODULE_14__[\"isEmpty\"])(style)) {\n        config.style[toProp !== null && toProp !== void 0 ? toProp : prop] = style;\n    }\n    if (!compositeMarkPart) {\n        // For composite mark, so don't delete the whole config yet as we have to do multiple redirections.\n        delete config[prop];\n    }\n}\n//# sourceMappingURL=config.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/config.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/data.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/data.js ***!
  \**************************************************/
/*! exports provided: isUrlData, isInlineData, isNamedData, isGenerator, isSequenceGenerator, isSphereGenerator, isGraticuleGenerator, DataSourceType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUrlData\", function() { return isUrlData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInlineData\", function() { return isInlineData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNamedData\", function() { return isNamedData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isGenerator\", function() { return isGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSequenceGenerator\", function() { return isSequenceGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSphereGenerator\", function() { return isSphereGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isGraticuleGenerator\", function() { return isGraticuleGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DataSourceType\", function() { return DataSourceType; });\nfunction isUrlData(data) {\n    return 'url' in data;\n}\nfunction isInlineData(data) {\n    return 'values' in data;\n}\nfunction isNamedData(data) {\n    return 'name' in data && !isUrlData(data) && !isInlineData(data) && !isGenerator(data);\n}\nfunction isGenerator(data) {\n    return data && (isSequenceGenerator(data) || isSphereGenerator(data) || isGraticuleGenerator(data));\n}\nfunction isSequenceGenerator(data) {\n    return 'sequence' in data;\n}\nfunction isSphereGenerator(data) {\n    return 'sphere' in data;\n}\nfunction isGraticuleGenerator(data) {\n    return 'graticule' in data;\n}\nvar DataSourceType;\n(function (DataSourceType) {\n    DataSourceType[DataSourceType[\"Raw\"] = 0] = \"Raw\";\n    DataSourceType[DataSourceType[\"Main\"] = 1] = \"Main\";\n    DataSourceType[DataSourceType[\"Row\"] = 2] = \"Row\";\n    DataSourceType[DataSourceType[\"Column\"] = 3] = \"Column\";\n    DataSourceType[DataSourceType[\"Lookup\"] = 4] = \"Lookup\";\n})(DataSourceType || (DataSourceType = {}));\n//# sourceMappingURL=data.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/data.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/datetime.js":
/*!******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/datetime.js ***!
  \******************************************************/
/*! exports provided: isDateTime, MONTHS, SHORT_MONTHS, DAYS, SHORT_DAYS, dateTimeToExpr, dateTimeExprToExpr, dateTimeToTimestamp */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDateTime\", function() { return isDateTime; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MONTHS\", function() { return MONTHS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHORT_MONTHS\", function() { return SHORT_MONTHS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DAYS\", function() { return DAYS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SHORT_DAYS\", function() { return SHORT_DAYS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dateTimeToExpr\", function() { return dateTimeToExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dateTimeExprToExpr\", function() { return dateTimeExprToExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dateTimeToTimestamp\", function() { return dateTimeToTimestamp; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n// DateTime definition object\n\n\n\n\nfunction isDateTime(o) {\n    if (o && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(o)) {\n        for (const part of _timeunit__WEBPACK_IMPORTED_MODULE_2__[\"TIMEUNIT_PARTS\"]) {\n            if (part in o) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\nconst MONTHS = [\n    'january',\n    'february',\n    'march',\n    'april',\n    'may',\n    'june',\n    'july',\n    'august',\n    'september',\n    'october',\n    'november',\n    'december'\n];\nconst SHORT_MONTHS = MONTHS.map(m => m.substr(0, 3));\nconst DAYS = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\nconst SHORT_DAYS = DAYS.map(d => d.substr(0, 3));\nfunction normalizeQuarter(q) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(q)) {\n        q = +q;\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(q)) {\n        if (q > 4) {\n            _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].invalidTimeUnit('quarter', q));\n        }\n        // We accept 1-based quarter, so need to readjust to 0-based quarter\n        return q - 1;\n    }\n    else {\n        // Invalid quarter\n        throw new Error(_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].invalidTimeUnit('quarter', q));\n    }\n}\nfunction normalizeMonth(m) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(m)) {\n        m = +m;\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(m)) {\n        // We accept 1-based month, so need to readjust to 0-based month\n        return m - 1;\n    }\n    else {\n        const lowerM = m.toLowerCase();\n        const monthIndex = MONTHS.indexOf(lowerM);\n        if (monthIndex !== -1) {\n            return monthIndex; // 0 for january, ...\n        }\n        const shortM = lowerM.substr(0, 3);\n        const shortMonthIndex = SHORT_MONTHS.indexOf(shortM);\n        if (shortMonthIndex !== -1) {\n            return shortMonthIndex;\n        }\n        // Invalid month\n        throw new Error(_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].invalidTimeUnit('month', m));\n    }\n}\nfunction normalizeDay(d) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"])(d)) {\n        d = +d;\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(d)) {\n        // mod so that this can be both 0-based where 0 = sunday\n        // and 1-based where 7=sunday\n        return d % 7;\n    }\n    else {\n        const lowerD = d.toLowerCase();\n        const dayIndex = DAYS.indexOf(lowerD);\n        if (dayIndex !== -1) {\n            return dayIndex; // 0 for january, ...\n        }\n        const shortD = lowerD.substr(0, 3);\n        const shortDayIndex = SHORT_DAYS.indexOf(shortD);\n        if (shortDayIndex !== -1) {\n            return shortDayIndex;\n        }\n        // Invalid day\n        throw new Error(_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].invalidTimeUnit('day', d));\n    }\n}\n/**\n * @param d the date.\n * @param normalize whether to normalize quarter, month, day. This should probably be true if d is a DateTime.\n * @returns array of date time parts [year, month, day, hours, minutes, seconds, milliseconds]\n */\nfunction dateTimeParts(d, normalize) {\n    const parts = [];\n    if (normalize && d.day !== undefined) {\n        if (Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(d).length > 1) {\n            _log__WEBPACK_IMPORTED_MODULE_1__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_1__[\"message\"].droppedDay(d));\n            d = Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"])(d);\n            delete d.day;\n        }\n    }\n    if (d.year !== undefined) {\n        parts.push(d.year);\n    }\n    else {\n        // Just like Vega's timeunit transform, set default year to 2012, so domain conversion will be compatible with Vega\n        // Note: 2012 is a leap year (and so the date February 29 is respected) that begins on a Sunday (and so days of the week will order properly at the beginning of the year).\n        parts.push(2012);\n    }\n    if (d.month !== undefined) {\n        const month = normalize ? normalizeMonth(d.month) : d.month;\n        parts.push(month);\n    }\n    else if (d.quarter !== undefined) {\n        const quarter = normalize ? normalizeQuarter(d.quarter) : d.quarter;\n        parts.push(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(quarter) ? quarter * 3 : quarter + '*3');\n    }\n    else {\n        parts.push(0); // months start at zero in JS\n    }\n    if (d.date !== undefined) {\n        parts.push(d.date);\n    }\n    else if (d.day !== undefined) {\n        // HACK: Day only works as a standalone unit\n        // This is only correct because we always set year to 2006 for day\n        const day = normalize ? normalizeDay(d.day) : d.day;\n        parts.push(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(day) ? day + 1 : day + '+1');\n    }\n    else {\n        parts.push(1); // Date starts at 1 in JS\n    }\n    // Note: can't use TimeUnit enum here as importing it will create\n    // circular dependency problem!\n    for (const timeUnit of ['hours', 'minutes', 'seconds', 'milliseconds']) {\n        const unit = d[timeUnit];\n        parts.push(typeof unit === 'undefined' ? 0 : unit);\n    }\n    return parts;\n}\n/**\n * Return Vega expression for a date time.\n *\n * @param d the date time.\n * @returns the Vega expression.\n */\nfunction dateTimeToExpr(d) {\n    const parts = dateTimeParts(d, true);\n    const string = parts.join(', ');\n    if (d.utc) {\n        return `utc(${string})`;\n    }\n    else {\n        return `datetime(${string})`;\n    }\n}\n/**\n * Return Vega expression for a date time expression.\n *\n * @param d the internal date time object with expression.\n * @returns the Vega expression.\n */\nfunction dateTimeExprToExpr(d) {\n    const parts = dateTimeParts(d, false);\n    const string = parts.join(', ');\n    if (d.utc) {\n        return `utc(${string})`;\n    }\n    else {\n        return `datetime(${string})`;\n    }\n}\n/**\n * @param d the date time.\n * @returns the timestamp.\n */\nfunction dateTimeToTimestamp(d) {\n    const parts = dateTimeParts(d, true);\n    if (d.utc) {\n        return +new Date(Date.UTC(...parts));\n    }\n    else {\n        return +new Date(...parts);\n    }\n}\n//# sourceMappingURL=datetime.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/datetime.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/encoding.js":
/*!******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/encoding.js ***!
  \******************************************************/
/*! exports provided: channelHasField, isAggregate, extractTransformsFromEncoding, markChannelCompatible, initEncoding, normalizeEncoding, fieldDefs, forEach, reduce, pathGroupingFields */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelHasField\", function() { return channelHasField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAggregate\", function() { return isAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractTransformsFromEncoding\", function() { return extractTransformsFromEncoding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markChannelCompatible\", function() { return markChannelCompatible; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initEncoding\", function() { return initEncoding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeEncoding\", function() { return normalizeEncoding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldDefs\", function() { return fieldDefs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forEach\", function() { return forEach; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathGroupingFields\", function() { return pathGroupingFields; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\nfunction channelHasField(encoding, channel) {\n    const channelDef = encoding && encoding[channel];\n    if (channelDef) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef)) {\n            return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"some\"])(channelDef, fieldDef => !!fieldDef.field);\n        }\n        else {\n            return Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(channelDef) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"hasConditionalFieldDef\"])(channelDef);\n        }\n    }\n    return false;\n}\nfunction isAggregate(encoding) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"some\"])(_channel__WEBPACK_IMPORTED_MODULE_3__[\"CHANNELS\"], channel => {\n        if (channelHasField(encoding, channel)) {\n            const channelDef = encoding[channel];\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef)) {\n                return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"some\"])(channelDef, fieldDef => !!fieldDef.aggregate);\n            }\n            else {\n                const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldDef\"])(channelDef);\n                return fieldDef && !!fieldDef.aggregate;\n            }\n        }\n        return false;\n    });\n}\nfunction extractTransformsFromEncoding(oldEncoding, config) {\n    const groupby = [];\n    const bins = [];\n    const timeUnits = [];\n    const aggregate = [];\n    const encoding = {};\n    forEach(oldEncoding, (channelDef, channel) => {\n        // Extract potential embedded transformations along with remaining properties\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(channelDef)) {\n            const { field, aggregate: aggOp, bin, timeUnit } = channelDef, remaining = __rest(channelDef, [\"field\", \"aggregate\", \"bin\", \"timeUnit\"]);\n            if (aggOp || timeUnit || bin) {\n                const guide = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getGuide\"])(channelDef);\n                const isTitleDefined = guide && guide.title;\n                let newField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(channelDef, { forAs: true });\n                const newFieldDef = Object.assign(Object.assign(Object.assign({}, (isTitleDefined ? [] : { title: Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"title\"])(channelDef, config, { allowDisabling: true }) })), remaining), { \n                    // Always overwrite field\n                    field: newField });\n                if (aggOp) {\n                    let op;\n                    if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgmaxDef\"])(aggOp)) {\n                        op = 'argmax';\n                        newField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])({ op: 'argmax', field: aggOp.argmax }, { forAs: true });\n                        newFieldDef.field = `${newField}.${field}`;\n                    }\n                    else if (Object(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"isArgminDef\"])(aggOp)) {\n                        op = 'argmin';\n                        newField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])({ op: 'argmin', field: aggOp.argmin }, { forAs: true });\n                        newFieldDef.field = `${newField}.${field}`;\n                    }\n                    else if (aggOp !== 'boxplot' && aggOp !== 'errorbar' && aggOp !== 'errorband') {\n                        op = aggOp;\n                    }\n                    if (op) {\n                        const aggregateEntry = {\n                            op,\n                            as: newField\n                        };\n                        if (field) {\n                            aggregateEntry.field = field;\n                        }\n                        aggregate.push(aggregateEntry);\n                    }\n                }\n                else {\n                    groupby.push(newField);\n                    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isTypedFieldDef\"])(channelDef) && Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinning\"])(bin)) {\n                        bins.push({ bin, field, as: newField });\n                        // Add additional groupbys for range and end of bins\n                        groupby.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(channelDef, { binSuffix: 'end' }));\n                        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"binRequiresRange\"])(channelDef, channel)) {\n                            groupby.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(channelDef, { binSuffix: 'range' }));\n                        }\n                        // Create accompanying 'x2' or 'y2' field if channel is 'x' or 'y' respectively\n                        if (Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isXorY\"])(channel)) {\n                            const secondaryChannel = {\n                                field: newField + '_end'\n                            };\n                            encoding[channel + '2'] = secondaryChannel;\n                        }\n                        newFieldDef.bin = 'binned';\n                        if (!Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isSecondaryRangeChannel\"])(channel)) {\n                            newFieldDef['type'] = _type__WEBPACK_IMPORTED_MODULE_6__[\"QUANTITATIVE\"];\n                        }\n                    }\n                    else if (timeUnit) {\n                        timeUnits.push({\n                            timeUnit,\n                            field,\n                            as: newField\n                        });\n                        // define the format type for later compilation\n                        const formatType = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isTypedFieldDef\"])(channelDef) && channelDef.type !== _type__WEBPACK_IMPORTED_MODULE_6__[\"TEMPORAL\"] && 'time';\n                        if (formatType) {\n                            if (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"TEXT\"] || channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"TOOLTIP\"]) {\n                                newFieldDef['formatType'] = formatType;\n                            }\n                            else if (Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isNonPositionScaleChannel\"])(channel)) {\n                                newFieldDef['legend'] = Object.assign({ formatType }, newFieldDef['legend']);\n                            }\n                            else if (Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isXorY\"])(channel)) {\n                                newFieldDef['axis'] = Object.assign({ formatType }, newFieldDef['axis']);\n                            }\n                        }\n                    }\n                }\n                // now the field should refer to post-transformed field instead\n                encoding[channel] = newFieldDef;\n            }\n            else {\n                groupby.push(field);\n                encoding[channel] = oldEncoding[channel];\n            }\n        }\n        else {\n            // For value def / signal ref / datum def, just copy\n            encoding[channel] = oldEncoding[channel];\n        }\n    });\n    return {\n        bins,\n        timeUnits,\n        aggregate,\n        groupby,\n        encoding\n    };\n}\nfunction markChannelCompatible(encoding, channel, mark) {\n    const markSupported = Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"supportMark\"])(channel, mark);\n    if (!markSupported) {\n        return false;\n    }\n    else if (markSupported === 'binned') {\n        const primaryFieldDef = encoding[channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"X2\"] ? _channel__WEBPACK_IMPORTED_MODULE_3__[\"X\"] : _channel__WEBPACK_IMPORTED_MODULE_3__[\"Y\"]];\n        // circle, point, square and tick only support x2/y2 when their corresponding x/y fieldDef\n        // has \"binned\" data and thus need x2/y2 to specify the bin-end field.\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(primaryFieldDef) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(encoding[channel]) && Object(_bin__WEBPACK_IMPORTED_MODULE_2__[\"isBinned\"])(primaryFieldDef.bin)) {\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    return true;\n}\nfunction initEncoding(encoding, mark, filled, config) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(encoding).reduce((normalizedEncoding, channel) => {\n        if (!Object(_channel__WEBPACK_IMPORTED_MODULE_3__[\"isChannel\"])(channel)) {\n            // Drop invalid channel\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].invalidEncodingChannel(channel));\n            return normalizedEncoding;\n        }\n        const channelDef = encoding[channel];\n        if (channel === 'angle' && mark === 'arc' && !encoding.theta) {\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].REPLACE_ANGLE_WITH_THETA);\n            channel = _channel__WEBPACK_IMPORTED_MODULE_3__[\"THETA\"];\n        }\n        if (!markChannelCompatible(encoding, channel, mark)) {\n            // Drop unsupported channel\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].incompatibleChannel(channel, mark));\n            return normalizedEncoding;\n        }\n        // Drop line's size if the field is aggregated.\n        if (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"SIZE\"] && mark === 'line') {\n            const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldDef\"])(encoding[channel]);\n            if (fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.aggregate) {\n                _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].LINE_WITH_VARYING_SIZE);\n                return normalizedEncoding;\n            }\n        }\n        // Drop color if either fill or stroke is specified\n        if (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"COLOR\"] && (filled ? 'fill' in encoding : 'stroke' in encoding)) {\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].droppingColor('encoding', { fill: 'fill' in encoding, stroke: 'stroke' in encoding }));\n            return normalizedEncoding;\n        }\n        if (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"DETAIL\"] ||\n            (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"ORDER\"] && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef) && !Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isValueDef\"])(channelDef)) ||\n            (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"TOOLTIP\"] && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef))) {\n            if (channelDef) {\n                // Array of fieldDefs for detail channel (or production rule)\n                normalizedEncoding[channel] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(channelDef).reduce((defs, fieldDef) => {\n                    if (!Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(fieldDef)) {\n                        _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].emptyFieldDef(fieldDef, channel));\n                    }\n                    else {\n                        defs.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"initFieldDef\"])(fieldDef, channel));\n                    }\n                    return defs;\n                }, []);\n            }\n        }\n        else {\n            if (channel === _channel__WEBPACK_IMPORTED_MODULE_3__[\"TOOLTIP\"] && channelDef === null) {\n                // Preserve null so we can use it to disable tooltip\n                normalizedEncoding[channel] = null;\n            }\n            else if (!Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(channelDef) &&\n                !Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isDatumDef\"])(channelDef) &&\n                !Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isValueDef\"])(channelDef) &&\n                !Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isConditionalDef\"])(channelDef) &&\n                !Object(_vega_schema__WEBPACK_IMPORTED_MODULE_8__[\"isSignalRef\"])(channelDef)) {\n                _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].emptyFieldDef(channelDef, channel));\n                return normalizedEncoding;\n            }\n            normalizedEncoding[channel] = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"initChannelDef\"])(channelDef, channel, config);\n        }\n        return normalizedEncoding;\n    }, {});\n}\n/**\n * For composite marks, we have to call initChannelDef during init so we can infer types earlier.\n */\nfunction normalizeEncoding(encoding, config) {\n    const normalizedEncoding = {};\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(encoding)) {\n        const newChannelDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"initChannelDef\"])(encoding[channel], channel, config, { compositeMark: true });\n        normalizedEncoding[channel] = newChannelDef;\n    }\n    return normalizedEncoding;\n}\nfunction fieldDefs(encoding) {\n    const arr = [];\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(encoding)) {\n        if (channelHasField(encoding, channel)) {\n            const channelDef = encoding[channel];\n            const channelDefArray = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(channelDef);\n            for (const def of channelDefArray) {\n                if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(def)) {\n                    arr.push(def);\n                }\n                else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"hasConditionalFieldDef\"])(def)) {\n                    arr.push(def.condition);\n                }\n            }\n        }\n    }\n    return arr;\n}\nfunction forEach(mapping, f, thisArg) {\n    if (!mapping) {\n        return;\n    }\n    for (const channel of Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(mapping)) {\n        const el = mapping[channel];\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(el)) {\n            for (const channelDef of el) {\n                f.call(thisArg, channelDef, channel);\n            }\n        }\n        else {\n            f.call(thisArg, el, channel);\n        }\n    }\n}\nfunction reduce(mapping, f, init, thisArg) {\n    if (!mapping) {\n        return init;\n    }\n    return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(mapping).reduce((r, channel) => {\n        const map = mapping[channel];\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(map)) {\n            return map.reduce((r1, channelDef) => {\n                return f.call(thisArg, r1, channelDef, channel);\n            }, r);\n        }\n        else {\n            return f.call(thisArg, r, map, channel);\n        }\n    }, init);\n}\n/**\n * Returns list of path grouping fields for the given encoding\n */\nfunction pathGroupingFields(mark, encoding) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_7__[\"keys\"])(encoding).reduce((details, channel) => {\n        switch (channel) {\n            // x, y, x2, y2, lat, long, lat1, long2, order, tooltip, href, aria label, cursor should not cause lines to group\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"X\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"Y\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"HREF\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"DESCRIPTION\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"URL\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"X2\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"Y2\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"THETA\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"THETA2\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"RADIUS\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"RADIUS2\"]:\n            // falls through\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LATITUDE\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LONGITUDE\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LATITUDE2\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"LONGITUDE2\"]:\n            // TODO: case 'cursor':\n            // text, shape, shouldn't be a part of line/trail/area [falls through]\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"TEXT\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"SHAPE\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"ANGLE\"]:\n            // falls through\n            // tooltip fields should not be added to group by [falls through]\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"TOOLTIP\"]:\n                return details;\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"ORDER\"]:\n                // order should not group line / trail\n                if (mark === 'line' || mark === 'trail') {\n                    return details;\n                }\n            // but order should group area for stacking (falls through)\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"DETAIL\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"KEY\"]: {\n                const channelDef = encoding[channel];\n                if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"isFieldDef\"])(channelDef)) {\n                    for (const fieldDef of Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(channelDef)) {\n                        if (!fieldDef.aggregate) {\n                            details.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldDef, {}));\n                        }\n                    }\n                }\n                return details;\n            }\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"SIZE\"]:\n                if (mark === 'trail') {\n                    // For trail, size should not group trail lines.\n                    return details;\n                }\n            // For line, size should group lines.\n            // falls through\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"COLOR\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"FILL\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKE\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"OPACITY\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"FILLOPACITY\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKEOPACITY\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKEDASH\"]:\n            case _channel__WEBPACK_IMPORTED_MODULE_3__[\"STROKEWIDTH\"]: {\n                // TODO strokeDashOffset:\n                // falls through\n                const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"getFieldDef\"])(encoding[channel]);\n                if (fieldDef && !fieldDef.aggregate) {\n                    details.push(Object(_channeldef__WEBPACK_IMPORTED_MODULE_4__[\"vgField\"])(fieldDef, {}));\n                }\n                return details;\n            }\n        }\n    }, []);\n}\n//# sourceMappingURL=encoding.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/encoding.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/expr.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/expr.js ***!
  \**************************************************/
/*! exports provided: isExprRef, isExprOrSignalRef, replaceExprRefInIndex */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isExprRef\", function() { return isExprRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isExprOrSignalRef\", function() { return isExprOrSignalRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceExprRefInIndex\", function() { return replaceExprRefInIndex; });\n/* harmony import */ var _compile_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./compile/common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n\n\n\nfunction isExprRef(o) {\n    return o && !!o['expr'];\n}\nfunction isExprOrSignalRef(o) {\n    return isExprRef(o) || Object(_vega_schema__WEBPACK_IMPORTED_MODULE_2__[\"isSignalRef\"])(o);\n}\nfunction replaceExprRefInIndex(index) {\n    const props = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(index || {});\n    const newIndex = {};\n    for (const prop of props) {\n        newIndex[prop] = Object(_compile_common__WEBPACK_IMPORTED_MODULE_0__[\"signalRefOrValue\"])(index[prop]);\n    }\n    return newIndex;\n}\n//# sourceMappingURL=expr.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/expr.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/guide.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-lite/build/src/guide.js ***!
  \***************************************************/
/*! exports provided: VL_ONLY_LEGEND_CONFIG */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VL_ONLY_LEGEND_CONFIG\", function() { return VL_ONLY_LEGEND_CONFIG; });\nconst VL_ONLY_LEGEND_CONFIG = [\n    'gradientHorizontalMaxLength',\n    'gradientHorizontalMinLength',\n    'gradientVerticalMaxLength',\n    'gradientVerticalMinLength',\n    'unselectedOpacity'\n];\n//# sourceMappingURL=guide.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/guide.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/header.js":
/*!****************************************************!*\
  !*** ./node_modules/vega-lite/build/src/header.js ***!
  \****************************************************/
/*! exports provided: HEADER_TITLE_PROPERTIES_MAP, HEADER_LABEL_PROPERTIES_MAP, HEADER_TITLE_PROPERTIES, HEADER_LABEL_PROPERTIES, HEADER_CONFIGS */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TITLE_PROPERTIES_MAP\", function() { return HEADER_TITLE_PROPERTIES_MAP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_LABEL_PROPERTIES_MAP\", function() { return HEADER_LABEL_PROPERTIES_MAP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_TITLE_PROPERTIES\", function() { return HEADER_TITLE_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_LABEL_PROPERTIES\", function() { return HEADER_LABEL_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HEADER_CONFIGS\", function() { return HEADER_CONFIGS; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\nconst HEADER_TITLE_PROPERTIES_MAP = {\n    titleAlign: 'align',\n    titleAnchor: 'anchor',\n    titleAngle: 'angle',\n    titleBaseline: 'baseline',\n    titleColor: 'color',\n    titleFont: 'font',\n    titleFontSize: 'fontSize',\n    titleFontStyle: 'fontStyle',\n    titleFontWeight: 'fontWeight',\n    titleLimit: 'limit',\n    titleLineHeight: 'lineHeight',\n    titleOrient: 'orient',\n    titlePadding: 'offset'\n};\nconst HEADER_LABEL_PROPERTIES_MAP = {\n    labelAlign: 'align',\n    labelAnchor: 'anchor',\n    labelAngle: 'angle',\n    labelBaseline: 'baseline',\n    labelColor: 'color',\n    labelFont: 'font',\n    labelFontSize: 'fontSize',\n    labelFontStyle: 'fontStyle',\n    labelFontWeight: 'fontWeight',\n    labelLimit: 'limit',\n    labelLineHeight: 'lineHeight',\n    labelOrient: 'orient',\n    labelPadding: 'offset'\n};\nconst HEADER_TITLE_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(HEADER_TITLE_PROPERTIES_MAP);\nconst HEADER_LABEL_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(HEADER_LABEL_PROPERTIES_MAP);\nconst HEADER_CONFIGS_INDEX = {\n    header: 1,\n    headerRow: 1,\n    headerColumn: 1,\n    headerFacet: 1\n};\nconst HEADER_CONFIGS = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(HEADER_CONFIGS_INDEX);\n//# sourceMappingURL=header.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/header.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/index.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-lite/build/src/index.js ***!
  \***************************************************/
/*! exports provided: compile, deepEqual, duplicate, pick, omit, stringify, hash, isNullOrFalse, contains, some, every, mergeDeep, unique, isEqual, setEqual, hasIntersection, prefixGenerator, fieldIntersection, isEmpty, keys, vals, entries, isBoolean, varName, logicalExpr, deleteNestedProperty, titleCase, accessPathWithDatum, flatAccessWithDatum, replacePathInField, replaceAll, removePathFromField, accessPathDepth, getFirstDefined, uniqueId, resetIdCounter, internalField, isInternalField, normalizeAngle, isNumeric, normalize, version */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../package.json */ \"./node_modules/vega-lite/build/package.json\");\nvar _package_json__WEBPACK_IMPORTED_MODULE_0___namespace = /*#__PURE__*/__webpack_require__.t(/*! ../package.json */ \"./node_modules/vega-lite/build/package.json\", 1);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return _package_json__WEBPACK_IMPORTED_MODULE_0__[\"version\"]; });\n\n/* harmony import */ var _normalize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normalize */ \"./node_modules/vega-lite/build/src/normalize/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"normalize\", function() { return _normalize__WEBPACK_IMPORTED_MODULE_1__[\"normalize\"]; });\n\n/* harmony import */ var _compile_compile__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compile/compile */ \"./node_modules/vega-lite/build/src/compile/compile.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compile\", function() { return _compile_compile__WEBPACK_IMPORTED_MODULE_2__[\"compile\"]; });\n\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepEqual\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"deepEqual\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"duplicate\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"duplicate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pick\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"pick\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"omit\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"omit\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stringify\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"stringify\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"hash\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isNullOrFalse\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"isNullOrFalse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"contains\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"contains\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"some\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"every\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeDeep\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"mergeDeep\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"unique\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEqual\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"isEqual\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setEqual\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"setEqual\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasIntersection\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"hasIntersection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"prefixGenerator\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"prefixGenerator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fieldIntersection\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"fieldIntersection\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"isEmpty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"vals\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"vals\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"entries\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isBoolean\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"isBoolean\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"varName\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logicalExpr\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"logicalExpr\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deleteNestedProperty\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"deleteNestedProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"titleCase\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"titleCase\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"accessPathWithDatum\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"accessPathWithDatum\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatAccessWithDatum\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"flatAccessWithDatum\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replacePathInField\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"replacePathInField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"replaceAll\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"replaceAll\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"removePathFromField\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"removePathFromField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"accessPathDepth\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"accessPathDepth\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getFirstDefined\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"getFirstDefined\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"uniqueId\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"uniqueId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetIdCounter\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"resetIdCounter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"internalField\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"internalField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isInternalField\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"isInternalField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"normalizeAngle\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"normalizeAngle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isNumeric\", function() { return _util__WEBPACK_IMPORTED_MODULE_3__[\"isNumeric\"]; });\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/legend.js":
/*!****************************************************!*\
  !*** ./node_modules/vega-lite/build/src/legend.js ***!
  \****************************************************/
/*! exports provided: LEGEND_SCALE_CHANNELS, defaultLegendConfig, COMMON_LEGEND_PROPERTY_INDEX, LEGEND_PROPERTIES */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LEGEND_SCALE_CHANNELS\", function() { return LEGEND_SCALE_CHANNELS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultLegendConfig\", function() { return defaultLegendConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COMMON_LEGEND_PROPERTY_INDEX\", function() { return COMMON_LEGEND_PROPERTY_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LEGEND_PROPERTIES\", function() { return LEGEND_PROPERTIES; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\nconst LEGEND_SCALE_CHANNELS = [\n    'size',\n    'shape',\n    'fill',\n    'stroke',\n    'strokeDash',\n    'strokeWidth',\n    'opacity'\n];\nconst defaultLegendConfig = {\n    gradientHorizontalMaxLength: 200,\n    gradientHorizontalMinLength: 100,\n    gradientVerticalMaxLength: 200,\n    gradientVerticalMinLength: 64,\n    unselectedOpacity: 0.35\n};\nconst COMMON_LEGEND_PROPERTY_INDEX = {\n    aria: 1,\n    clipHeight: 1,\n    columnPadding: 1,\n    columns: 1,\n    cornerRadius: 1,\n    description: 1,\n    direction: 1,\n    fillColor: 1,\n    format: 1,\n    formatType: 1,\n    gradientLength: 1,\n    gradientOpacity: 1,\n    gradientStrokeColor: 1,\n    gradientStrokeWidth: 1,\n    gradientThickness: 1,\n    gridAlign: 1,\n    labelAlign: 1,\n    labelBaseline: 1,\n    labelColor: 1,\n    labelFont: 1,\n    labelFontSize: 1,\n    labelFontStyle: 1,\n    labelFontWeight: 1,\n    labelLimit: 1,\n    labelOffset: 1,\n    labelOpacity: 1,\n    labelOverlap: 1,\n    labelPadding: 1,\n    labelSeparation: 1,\n    legendX: 1,\n    legendY: 1,\n    offset: 1,\n    orient: 1,\n    padding: 1,\n    rowPadding: 1,\n    strokeColor: 1,\n    symbolDash: 1,\n    symbolDashOffset: 1,\n    symbolFillColor: 1,\n    symbolLimit: 1,\n    symbolOffset: 1,\n    symbolOpacity: 1,\n    symbolSize: 1,\n    symbolStrokeColor: 1,\n    symbolStrokeWidth: 1,\n    symbolType: 1,\n    tickCount: 1,\n    tickMinStep: 1,\n    title: 1,\n    titleAlign: 1,\n    titleAnchor: 1,\n    titleBaseline: 1,\n    titleColor: 1,\n    titleFont: 1,\n    titleFontSize: 1,\n    titleFontStyle: 1,\n    titleFontWeight: 1,\n    titleLimit: 1,\n    titleLineHeight: 1,\n    titleOpacity: 1,\n    titleOrient: 1,\n    titlePadding: 1,\n    type: 1,\n    values: 1,\n    zindex: 1\n};\nconst LEGEND_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(COMMON_LEGEND_PROPERTY_INDEX);\n//# sourceMappingURL=legend.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/legend.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/log/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/log/index.js ***!
  \*******************************************************/
/*! exports provided: message, LocalLogger, wrap, set, reset, error, warn, info, debug */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LocalLogger\", function() { return LocalLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wrap\", function() { return wrap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"set\", function() { return set; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reset\", function() { return reset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"error\", function() { return error; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"warn\", function() { return warn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"info\", function() { return info; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debug\", function() { return debug; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./message */ \"./node_modules/vega-lite/build/src/log/message.js\");\n/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, \"message\", function() { return _message__WEBPACK_IMPORTED_MODULE_1__; });\n/**\n * Vega-Lite's singleton logger utility.\n */\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, privateMap, value) {\n    if (!privateMap.has(receiver)) {\n        throw new TypeError(\"attempted to set private field on non-instance\");\n    }\n    privateMap.set(receiver, value);\n    return value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, privateMap) {\n    if (!privateMap.has(receiver)) {\n        throw new TypeError(\"attempted to get private field on non-instance\");\n    }\n    return privateMap.get(receiver);\n};\nvar _level;\n\n\n\n/**\n * Main (default) Vega Logger instance for Vega-Lite.\n */\nconst main = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"logger\"])(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Warn\"]);\nlet current = main;\n/**\n * Logger tool for checking if the code throws correct warning.\n */\nclass LocalLogger {\n    constructor() {\n        this.warns = [];\n        this.infos = [];\n        this.debugs = [];\n        _level.set(this, vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Warn\"]);\n    }\n    level(_) {\n        if (_) {\n            __classPrivateFieldSet(this, _level, _);\n            return this;\n        }\n        return __classPrivateFieldGet(this, _level);\n    }\n    warn(...args) {\n        if (__classPrivateFieldGet(this, _level) >= vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Warn\"])\n            this.warns.push(...args);\n        return this;\n    }\n    info(...args) {\n        if (__classPrivateFieldGet(this, _level) >= vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Info\"])\n            this.infos.push(...args);\n        return this;\n    }\n    debug(...args) {\n        if (__classPrivateFieldGet(this, _level) >= vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Debug\"])\n            this.debugs.push(...args);\n        return this;\n    }\n    error(...args) {\n        if (__classPrivateFieldGet(this, _level) >= vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Error\"])\n            throw Error(...args);\n        return this;\n    }\n}\n_level = new WeakMap();\nfunction wrap(f) {\n    return () => {\n        current = new LocalLogger();\n        f(current);\n        reset();\n    };\n}\n/**\n * Set the singleton logger to be a custom logger.\n */\nfunction set(newLogger) {\n    current = newLogger;\n    return current;\n}\n/**\n * Reset the main logger to use the default Vega Logger.\n */\nfunction reset() {\n    current = main;\n    return current;\n}\nfunction error(...args) {\n    current.error(...args);\n}\nfunction warn(...args) {\n    current.warn(...args);\n}\nfunction info(...args) {\n    current.info(...args);\n}\nfunction debug(...args) {\n    current.debug(...args);\n}\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/log/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/log/message.js":
/*!*********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/log/message.js ***!
  \*********************************************************/
/*! exports provided: invalidSpec, FIT_NON_SINGLE, containerSizeNonSingle, containerSizeNotCompatibleWithAutosize, droppingFit, unknownField, cannotProjectOnChannelWithoutField, cannotProjectAggregate, nearestNotSupportForContinuous, selectionNotSupported, selectionNotFound, SCALE_BINDINGS_CONTINUOUS, LEGEND_BINDINGS_MUST_HAVE_PROJECTION, noSameUnitLookup, NEEDS_SAME_SELECTION, INTERVAL_INITIALIZED_WITH_X_Y, noSuchRepeatedValue, columnsNotSupportByRowCol, CONCAT_CANNOT_SHARE_AXIS, unrecognizedParse, differentParse, ADD_SAME_CHILD_TWICE, invalidTransformIgnored, NO_FIELDS_NEEDS_AS, customFormatTypeNotAllowed, projectionOverridden, REPLACE_ANGLE_WITH_THETA, primitiveChannelDef, invalidFieldType, invalidFieldTypeForCountAggregate, invalidAggregate, missingFieldType, droppingColor, emptyFieldDef, latLongDeprecated, LINE_WITH_VARYING_SIZE, incompatibleChannel, invalidEncodingChannel, facetChannelShouldBeDiscrete, facetChannelDropped, discreteChannelCannotEncode, rangeMarkAlignmentCannotBeExpression, lineWithRange, orientOverridden, CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN, RANGE_STEP_DEPRECATED, cannotUseScalePropertyWithNonColor, unaggregateDomainHasNoEffectForRawField, unaggregateDomainWithNonSharedDomainOp, unaggregatedDomainWithLogScale, cannotApplySizeToNonOrientedMark, scaleTypeNotWorkWithChannel, scaleTypeNotWorkWithFieldDef, scalePropertyNotWorkWithScaleType, scaleTypeNotWorkWithMark, stepDropped, mergeConflictingProperty, mergeConflictingDomainProperty, independentScaleMeansIndependentGuide, domainSortDropped, MORE_THAN_ONE_SORT, FACETED_INDEPENDENT_DIFFERENT_SOURCES, FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES, FACETED_INDEPENDENT_SAME_SOURCE, INVALID_CHANNEL_FOR_AXIS, cannotStackRangedMark, cannotStackNonLinearScale, stackNonSummativeAggregate, invalidTimeUnit, droppedDay, errorBarCenterAndExtentAreNotNeeded, errorBarCenterIsUsedWithWrongExtent, errorBarContinuousAxisHasCustomizedAggregate, errorBand1DNotSupport, channelRequiredForBinned, channelShouldNotBeUsedForBinned, domainRequiredForThresholdScale */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidSpec\", function() { return invalidSpec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FIT_NON_SINGLE\", function() { return FIT_NON_SINGLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"containerSizeNonSingle\", function() { return containerSizeNonSingle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"containerSizeNotCompatibleWithAutosize\", function() { return containerSizeNotCompatibleWithAutosize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"droppingFit\", function() { return droppingFit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unknownField\", function() { return unknownField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cannotProjectOnChannelWithoutField\", function() { return cannotProjectOnChannelWithoutField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cannotProjectAggregate\", function() { return cannotProjectAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"nearestNotSupportForContinuous\", function() { return nearestNotSupportForContinuous; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectionNotSupported\", function() { return selectionNotSupported; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectionNotFound\", function() { return selectionNotFound; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCALE_BINDINGS_CONTINUOUS\", function() { return SCALE_BINDINGS_CONTINUOUS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LEGEND_BINDINGS_MUST_HAVE_PROJECTION\", function() { return LEGEND_BINDINGS_MUST_HAVE_PROJECTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noSameUnitLookup\", function() { return noSameUnitLookup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NEEDS_SAME_SELECTION\", function() { return NEEDS_SAME_SELECTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"INTERVAL_INITIALIZED_WITH_X_Y\", function() { return INTERVAL_INITIALIZED_WITH_X_Y; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"noSuchRepeatedValue\", function() { return noSuchRepeatedValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"columnsNotSupportByRowCol\", function() { return columnsNotSupportByRowCol; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONCAT_CANNOT_SHARE_AXIS\", function() { return CONCAT_CANNOT_SHARE_AXIS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unrecognizedParse\", function() { return unrecognizedParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"differentParse\", function() { return differentParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ADD_SAME_CHILD_TWICE\", function() { return ADD_SAME_CHILD_TWICE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidTransformIgnored\", function() { return invalidTransformIgnored; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NO_FIELDS_NEEDS_AS\", function() { return NO_FIELDS_NEEDS_AS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"customFormatTypeNotAllowed\", function() { return customFormatTypeNotAllowed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"projectionOverridden\", function() { return projectionOverridden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"REPLACE_ANGLE_WITH_THETA\", function() { return REPLACE_ANGLE_WITH_THETA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"primitiveChannelDef\", function() { return primitiveChannelDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidFieldType\", function() { return invalidFieldType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidFieldTypeForCountAggregate\", function() { return invalidFieldTypeForCountAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidAggregate\", function() { return invalidAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"missingFieldType\", function() { return missingFieldType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"droppingColor\", function() { return droppingColor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"emptyFieldDef\", function() { return emptyFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"latLongDeprecated\", function() { return latLongDeprecated; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINE_WITH_VARYING_SIZE\", function() { return LINE_WITH_VARYING_SIZE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"incompatibleChannel\", function() { return incompatibleChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidEncodingChannel\", function() { return invalidEncodingChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"facetChannelShouldBeDiscrete\", function() { return facetChannelShouldBeDiscrete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"facetChannelDropped\", function() { return facetChannelDropped; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"discreteChannelCannotEncode\", function() { return discreteChannelCannotEncode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rangeMarkAlignmentCannotBeExpression\", function() { return rangeMarkAlignmentCannotBeExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineWithRange\", function() { return lineWithRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"orientOverridden\", function() { return orientOverridden; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN\", function() { return CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RANGE_STEP_DEPRECATED\", function() { return RANGE_STEP_DEPRECATED; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cannotUseScalePropertyWithNonColor\", function() { return cannotUseScalePropertyWithNonColor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unaggregateDomainHasNoEffectForRawField\", function() { return unaggregateDomainHasNoEffectForRawField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unaggregateDomainWithNonSharedDomainOp\", function() { return unaggregateDomainWithNonSharedDomainOp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unaggregatedDomainWithLogScale\", function() { return unaggregatedDomainWithLogScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cannotApplySizeToNonOrientedMark\", function() { return cannotApplySizeToNonOrientedMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTypeNotWorkWithChannel\", function() { return scaleTypeNotWorkWithChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTypeNotWorkWithFieldDef\", function() { return scaleTypeNotWorkWithFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scalePropertyNotWorkWithScaleType\", function() { return scalePropertyNotWorkWithScaleType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTypeNotWorkWithMark\", function() { return scaleTypeNotWorkWithMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stepDropped\", function() { return stepDropped; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeConflictingProperty\", function() { return mergeConflictingProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeConflictingDomainProperty\", function() { return mergeConflictingDomainProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"independentScaleMeansIndependentGuide\", function() { return independentScaleMeansIndependentGuide; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domainSortDropped\", function() { return domainSortDropped; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MORE_THAN_ONE_SORT\", function() { return MORE_THAN_ONE_SORT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FACETED_INDEPENDENT_DIFFERENT_SOURCES\", function() { return FACETED_INDEPENDENT_DIFFERENT_SOURCES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES\", function() { return FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FACETED_INDEPENDENT_SAME_SOURCE\", function() { return FACETED_INDEPENDENT_SAME_SOURCE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"INVALID_CHANNEL_FOR_AXIS\", function() { return INVALID_CHANNEL_FOR_AXIS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cannotStackRangedMark\", function() { return cannotStackRangedMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cannotStackNonLinearScale\", function() { return cannotStackNonLinearScale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stackNonSummativeAggregate\", function() { return stackNonSummativeAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"invalidTimeUnit\", function() { return invalidTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"droppedDay\", function() { return droppedDay; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBarCenterAndExtentAreNotNeeded\", function() { return errorBarCenterAndExtentAreNotNeeded; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBarCenterIsUsedWithWrongExtent\", function() { return errorBarCenterIsUsedWithWrongExtent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBarContinuousAxisHasCustomizedAggregate\", function() { return errorBarContinuousAxisHasCustomizedAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"errorBand1DNotSupport\", function() { return errorBand1DNotSupport; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelRequiredForBinned\", function() { return channelRequiredForBinned; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelShouldNotBeUsedForBinned\", function() { return channelShouldNotBeUsedForBinned; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domainRequiredForThresholdScale\", function() { return domainRequiredForThresholdScale; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\nfunction invalidSpec(spec) {\n    return `Invalid specification ${JSON.stringify(spec)}. Make sure the specification includes at least one of the following properties: \"mark\", \"layer\", \"facet\", \"hconcat\", \"vconcat\", \"concat\", or \"repeat\".`;\n}\n// FIT\nconst FIT_NON_SINGLE = 'Autosize \"fit\" only works for single views and layered views.';\nfunction containerSizeNonSingle(name) {\n    const uName = name == 'width' ? 'Width' : 'Height';\n    return `${uName} \"container\" only works for single views and layered views.`;\n}\nfunction containerSizeNotCompatibleWithAutosize(name) {\n    const uName = name == 'width' ? 'Width' : 'Height';\n    const fitDirection = name == 'width' ? 'x' : 'y';\n    return `${uName} \"container\" only works well with autosize \"fit\" or \"fit-${fitDirection}\".`;\n}\nfunction droppingFit(channel) {\n    return channel\n        ? `Dropping \"fit-${channel}\" because spec has discrete ${Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel)}.`\n        : `Dropping \"fit\" because spec has discrete size.`;\n}\n// VIEW SIZE\nfunction unknownField(channel) {\n    return `Unknown field for ${channel}. Cannot calculate view size.`;\n}\n// SELECTION\nfunction cannotProjectOnChannelWithoutField(channel) {\n    return `Cannot project a selection on encoding channel \"${channel}\", which has no field.`;\n}\nfunction cannotProjectAggregate(channel, aggregate) {\n    return `Cannot project a selection on encoding channel \"${channel}\" as it uses an aggregate function (\"${aggregate}\").`;\n}\nfunction nearestNotSupportForContinuous(mark) {\n    return `The \"nearest\" transform is not supported for ${mark} marks.`;\n}\nfunction selectionNotSupported(mark) {\n    return `Selection not supported for ${mark} yet.`;\n}\nfunction selectionNotFound(name) {\n    return `Cannot find a selection named \"${name}\".`;\n}\nconst SCALE_BINDINGS_CONTINUOUS = 'Scale bindings are currently only supported for scales with unbinned, continuous domains.';\nconst LEGEND_BINDINGS_MUST_HAVE_PROJECTION = 'Legend bindings are only supported for selections over an individual field or encoding channel.';\nfunction noSameUnitLookup(name) {\n    return (`Cannot define and lookup the \"${name}\" selection in the same view. ` +\n        `Try moving the lookup into a second, layered view?`);\n}\nconst NEEDS_SAME_SELECTION = 'The same selection must be used to override scale domains in a layered view.';\nconst INTERVAL_INITIALIZED_WITH_X_Y = 'Interval selections should be initialized using \"x\" and/or \"y\" keys.';\n// REPEAT\nfunction noSuchRepeatedValue(field) {\n    return `Unknown repeated value \"${field}\".`;\n}\nfunction columnsNotSupportByRowCol(type) {\n    return `The \"columns\" property cannot be used when \"${type}\" has nested row/column.`;\n}\n// CONCAT / REPEAT\nconst CONCAT_CANNOT_SHARE_AXIS = 'Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).';\n// DATA\nfunction unrecognizedParse(p) {\n    return `Unrecognized parse \"${p}\".`;\n}\nfunction differentParse(field, local, ancestor) {\n    return `An ancestor parsed field \"${field}\" as ${ancestor} but a child wants to parse the field as ${local}.`;\n}\nconst ADD_SAME_CHILD_TWICE = 'Attempt to add the same child twice.';\n// TRANSFORMS\nfunction invalidTransformIgnored(transform) {\n    return `Ignoring an invalid transform: ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(transform)}.`;\n}\nconst NO_FIELDS_NEEDS_AS = 'If \"from.fields\" is not specified, \"as\" has to be a string that specifies the key to be used for the data from the secondary source.';\n// ENCODING & FACET\nfunction customFormatTypeNotAllowed(channel) {\n    return `Config.customFormatTypes is not true, thus custom format type and format for channel ${channel} are dropped.`;\n}\nfunction projectionOverridden(opt) {\n    const { parentProjection, projection } = opt;\n    return `Layer's shared projection ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(parentProjection)} is overridden by a child projection ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(projection)}.`;\n}\nconst REPLACE_ANGLE_WITH_THETA = 'Arc marks uses theta channel rather than angle, replacing angle with theta.';\nfunction primitiveChannelDef(channel, type, value) {\n    return `Channel ${channel} is a ${type}. Converted to {value: ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value)}}.`;\n}\nfunction invalidFieldType(type) {\n    return `Invalid field type \"${type}\".`;\n}\nfunction invalidFieldTypeForCountAggregate(type, aggregate) {\n    return `Invalid field type \"${type}\" for aggregate: \"${aggregate}\", using \"quantitative\" instead.`;\n}\nfunction invalidAggregate(aggregate) {\n    return `Invalid aggregation operator \"${aggregate}\".`;\n}\nfunction missingFieldType(channel, newType) {\n    return `Missing type for channel \"${channel}\", using \"${newType}\" instead.`;\n}\nfunction droppingColor(type, opt) {\n    const { fill, stroke } = opt;\n    return `Dropping color ${type} as the plot also has ${fill && stroke ? 'fill and stroke' : fill ? 'fill' : 'stroke'}.`;\n}\nfunction emptyFieldDef(fieldDef, channel) {\n    return `Dropping ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(fieldDef)} from channel \"${channel}\" since it does not contain any data field, datum, value, or signal.`;\n}\nfunction latLongDeprecated(channel, type, newChannel) {\n    return `${channel}-encoding with type ${type} is deprecated. Replacing with ${newChannel}-encoding.`;\n}\nconst LINE_WITH_VARYING_SIZE = 'Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.';\nfunction incompatibleChannel(channel, markOrFacet, when) {\n    return `${channel} dropped as it is incompatible with \"${markOrFacet}\"${when ? ` when ${when}` : ''}.`;\n}\nfunction invalidEncodingChannel(channel) {\n    return `${channel}-encoding is dropped as ${channel} is not a valid encoding channel.`;\n}\nfunction facetChannelShouldBeDiscrete(channel) {\n    return `${channel} encoding should be discrete (ordinal / nominal / binned).`;\n}\nfunction facetChannelDropped(channels) {\n    return `Facet encoding dropped as ${channels.join(' and ')} ${channels.length > 1 ? 'are' : 'is'} also specified.`;\n}\nfunction discreteChannelCannotEncode(channel, type) {\n    return `Using discrete channel \"${channel}\" to encode \"${type}\" field can be misleading as it does not encode ${type === 'ordinal' ? 'order' : 'magnitude'}.`;\n}\n// MARK\nfunction rangeMarkAlignmentCannotBeExpression(align) {\n    return `The ${align} for range marks cannot be an expression`;\n}\nfunction lineWithRange(hasX2, hasY2) {\n    const channels = hasX2 && hasY2 ? 'x2 and y2' : hasX2 ? 'x2' : 'y2';\n    return `Line mark is for continuous lines and thus cannot be used with ${channels}. We will use the rule mark (line segments) instead.`;\n}\nfunction orientOverridden(original, actual) {\n    return `Specified orient \"${original}\" overridden with \"${actual}\".`;\n}\n// SCALE\nconst CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN = 'Custom domain scale cannot be unioned with default field-based domain.';\nconst RANGE_STEP_DEPRECATED = `Scale's \"rangeStep\" is deprecated and will be removed in Vega-Lite 5.0. Please use \"width\"/\"height\": {\"step\": ...} instead. See https://vega.github.io/vega-lite/docs/size.html.`;\nfunction cannotUseScalePropertyWithNonColor(prop) {\n    return `Cannot use the scale property \"${prop}\" with non-color channel.`;\n}\nfunction unaggregateDomainHasNoEffectForRawField(fieldDef) {\n    return `Using unaggregated domain with raw field has no effect (${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(fieldDef)}).`;\n}\nfunction unaggregateDomainWithNonSharedDomainOp(aggregate) {\n    return `Unaggregated domain not applicable for \"${aggregate}\" since it produces values outside the origin domain of the source data.`;\n}\nfunction unaggregatedDomainWithLogScale(fieldDef) {\n    return `Unaggregated domain is currently unsupported for log scale (${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(fieldDef)}).`;\n}\nfunction cannotApplySizeToNonOrientedMark(mark) {\n    return `Cannot apply size to non-oriented mark \"${mark}\".`;\n}\nfunction scaleTypeNotWorkWithChannel(channel, scaleType, defaultScaleType) {\n    return `Channel \"${channel}\" does not work with \"${scaleType}\" scale. We are using \"${defaultScaleType}\" scale instead.`;\n}\nfunction scaleTypeNotWorkWithFieldDef(scaleType, defaultScaleType) {\n    return `FieldDef does not work with \"${scaleType}\" scale. We are using \"${defaultScaleType}\" scale instead.`;\n}\nfunction scalePropertyNotWorkWithScaleType(scaleType, propName, channel) {\n    return `${channel}-scale's \"${propName}\" is dropped as it does not work with ${scaleType} scale.`;\n}\nfunction scaleTypeNotWorkWithMark(mark, scaleType) {\n    return `Scale type \"${scaleType}\" does not work with mark \"${mark}\".`;\n}\nfunction stepDropped(channel) {\n    return `The step for \"${channel}\" is dropped because the ${channel === 'width' ? 'x' : 'y'} is continuous.`;\n}\nfunction mergeConflictingProperty(property, propertyOf, v1, v2) {\n    return `Conflicting ${propertyOf.toString()} property \"${property.toString()}\" (${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(v1)} and ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(v2)}). Using ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(v1)}.`;\n}\nfunction mergeConflictingDomainProperty(property, propertyOf, v1, v2) {\n    return `Conflicting ${propertyOf.toString()} property \"${property.toString()}\" (${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(v1)} and ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(v2)}). Using the union of the two domains.`;\n}\nfunction independentScaleMeansIndependentGuide(channel) {\n    return `Setting the scale to be independent for \"${channel}\" means we also have to set the guide (axis or legend) to be independent.`;\n}\nfunction domainSortDropped(sort) {\n    return `Dropping sort property ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(sort)} as unioned domains only support boolean or op \"count\", \"min\", and \"max\".`;\n}\nconst MORE_THAN_ONE_SORT = 'Domains that should be unioned has conflicting sort properties. Sort will be set to true.';\nconst FACETED_INDEPENDENT_DIFFERENT_SOURCES = 'Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.';\nconst FACETED_INDEPENDENT_SAME_FIELDS_DIFFERENT_SOURCES = 'Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.';\nconst FACETED_INDEPENDENT_SAME_SOURCE = 'Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.';\n// AXIS\nconst INVALID_CHANNEL_FOR_AXIS = 'Invalid channel for axis.';\n// STACK\nfunction cannotStackRangedMark(channel) {\n    return `Cannot stack \"${channel}\" if there is already \"${channel}2\".`;\n}\nfunction cannotStackNonLinearScale(scaleType) {\n    return `Cannot stack non-linear scale (${scaleType}).`;\n}\nfunction stackNonSummativeAggregate(aggregate) {\n    return `Stacking is applied even though the aggregate function is non-summative (\"${aggregate}\").`;\n}\n// TIMEUNIT\nfunction invalidTimeUnit(unitName, value) {\n    return `Invalid ${unitName}: ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(value)}.`;\n}\nfunction droppedDay(d) {\n    return `Dropping day from datetime ${Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"stringify\"])(d)} as day cannot be combined with other units.`;\n}\nfunction errorBarCenterAndExtentAreNotNeeded(center, extent) {\n    return `${extent ? 'extent ' : ''}${extent && center ? 'and ' : ''}${center ? 'center ' : ''}${extent && center ? 'are ' : 'is '}not needed when data are aggregated.`;\n}\nfunction errorBarCenterIsUsedWithWrongExtent(center, extent, mark) {\n    return `${center} is not usually used with ${extent} for ${mark}.`;\n}\nfunction errorBarContinuousAxisHasCustomizedAggregate(aggregate, compositeMark) {\n    return `Continuous axis should not have customized aggregation function ${aggregate}; ${compositeMark} already agregates the axis.`;\n}\nfunction errorBand1DNotSupport(property) {\n    return `1D error band does not support ${property}.`;\n}\n// CHANNEL\nfunction channelRequiredForBinned(channel) {\n    return `Channel ${channel} is required for \"binned\" bin.`;\n}\nfunction channelShouldNotBeUsedForBinned(channel) {\n    return `Channel ${channel} should not be used with \"binned\" bin.`;\n}\nfunction domainRequiredForThresholdScale(channel) {\n    return `Domain for ${channel} is required for threshold scale.`;\n}\n//# sourceMappingURL=message.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/log/message.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/logical.js":
/*!*****************************************************!*\
  !*** ./node_modules/vega-lite/build/src/logical.js ***!
  \*****************************************************/
/*! exports provided: isLogicalOr, isLogicalAnd, isLogicalNot, forEachLeaf, normalizeLogicalComposition */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLogicalOr\", function() { return isLogicalOr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLogicalAnd\", function() { return isLogicalAnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLogicalNot\", function() { return isLogicalNot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"forEachLeaf\", function() { return forEachLeaf; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeLogicalComposition\", function() { return normalizeLogicalComposition; });\nfunction isLogicalOr(op) {\n    return !!op.or;\n}\nfunction isLogicalAnd(op) {\n    return !!op.and;\n}\nfunction isLogicalNot(op) {\n    return !!op.not;\n}\nfunction forEachLeaf(op, fn) {\n    if (isLogicalNot(op)) {\n        forEachLeaf(op.not, fn);\n    }\n    else if (isLogicalAnd(op)) {\n        for (const subop of op.and) {\n            forEachLeaf(subop, fn);\n        }\n    }\n    else if (isLogicalOr(op)) {\n        for (const subop of op.or) {\n            forEachLeaf(subop, fn);\n        }\n    }\n    else {\n        fn(op);\n    }\n}\nfunction normalizeLogicalComposition(op, normalizer) {\n    if (isLogicalNot(op)) {\n        return { not: normalizeLogicalComposition(op.not, normalizer) };\n    }\n    else if (isLogicalAnd(op)) {\n        return { and: op.and.map(o => normalizeLogicalComposition(o, normalizer)) };\n    }\n    else if (isLogicalOr(op)) {\n        return { or: op.or.map(o => normalizeLogicalComposition(o, normalizer)) };\n    }\n    else {\n        return normalizer(op);\n    }\n}\n//# sourceMappingURL=logical.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/logical.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/mark.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/mark.js ***!
  \**************************************************/
/*! exports provided: Mark, ARC, AREA, BAR, IMAGE, LINE, POINT, RECT, RULE, TEXT, TICK, TRAIL, CIRCLE, SQUARE, GEOSHAPE, isMark, isPathMark, isRectBasedMark, PRIMITIVE_MARKS, isMarkDef, isPrimitiveMark, STROKE_CONFIG, FILL_CONFIG, FILL_STROKE_CONFIG, VL_ONLY_MARK_CONFIG_PROPERTIES, VL_ONLY_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX, defaultMarkConfig, MARK_CONFIGS, BAR_CORNER_RADIUS_INDEX, defaultBarConfig, defaultRectConfig, defaultTickConfig, getMarkType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Mark\", function() { return Mark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ARC\", function() { return ARC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AREA\", function() { return AREA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BAR\", function() { return BAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IMAGE\", function() { return IMAGE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LINE\", function() { return LINE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"POINT\", function() { return POINT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RECT\", function() { return RECT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RULE\", function() { return RULE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEXT\", function() { return TEXT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TICK\", function() { return TICK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TRAIL\", function() { return TRAIL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CIRCLE\", function() { return CIRCLE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SQUARE\", function() { return SQUARE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GEOSHAPE\", function() { return GEOSHAPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMark\", function() { return isMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPathMark\", function() { return isPathMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRectBasedMark\", function() { return isRectBasedMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PRIMITIVE_MARKS\", function() { return PRIMITIVE_MARKS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isMarkDef\", function() { return isMarkDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPrimitiveMark\", function() { return isPrimitiveMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STROKE_CONFIG\", function() { return STROKE_CONFIG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILL_CONFIG\", function() { return FILL_CONFIG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FILL_STROKE_CONFIG\", function() { return FILL_STROKE_CONFIG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VL_ONLY_MARK_CONFIG_PROPERTIES\", function() { return VL_ONLY_MARK_CONFIG_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VL_ONLY_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX\", function() { return VL_ONLY_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultMarkConfig\", function() { return defaultMarkConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MARK_CONFIGS\", function() { return MARK_CONFIGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BAR_CORNER_RADIUS_INDEX\", function() { return BAR_CORNER_RADIUS_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultBarConfig\", function() { return defaultBarConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultRectConfig\", function() { return defaultRectConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultTickConfig\", function() { return defaultTickConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getMarkType\", function() { return getMarkType; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\n/**\n * All types of primitive marks.\n */\nconst Mark = {\n    arc: 'arc',\n    area: 'area',\n    bar: 'bar',\n    image: 'image',\n    line: 'line',\n    point: 'point',\n    rect: 'rect',\n    rule: 'rule',\n    text: 'text',\n    tick: 'tick',\n    trail: 'trail',\n    circle: 'circle',\n    square: 'square',\n    geoshape: 'geoshape'\n};\nconst ARC = Mark.arc;\nconst AREA = Mark.area;\nconst BAR = Mark.bar;\nconst IMAGE = Mark.image;\nconst LINE = Mark.line;\nconst POINT = Mark.point;\nconst RECT = Mark.rect;\nconst RULE = Mark.rule;\nconst TEXT = Mark.text;\nconst TICK = Mark.tick;\nconst TRAIL = Mark.trail;\nconst CIRCLE = Mark.circle;\nconst SQUARE = Mark.square;\nconst GEOSHAPE = Mark.geoshape;\nfunction isMark(m) {\n    return m in Mark;\n}\nfunction isPathMark(m) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"contains\"])(['line', 'area', 'trail'], m);\n}\nfunction isRectBasedMark(m) {\n    return Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"contains\"])(['rect', 'bar', 'image', 'arc' /* arc is rect/interval in polar coordinate */], m);\n}\nconst PRIMITIVE_MARKS = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(Mark);\nfunction isMarkDef(mark) {\n    return mark['type'];\n}\nconst PRIMITIVE_MARK_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(PRIMITIVE_MARKS);\nfunction isPrimitiveMark(mark) {\n    const markType = isMarkDef(mark) ? mark.type : mark;\n    return markType in PRIMITIVE_MARK_INDEX;\n}\nconst STROKE_CONFIG = [\n    'stroke',\n    'strokeWidth',\n    'strokeDash',\n    'strokeDashOffset',\n    'strokeOpacity',\n    'strokeJoin',\n    'strokeMiterLimit'\n];\nconst FILL_CONFIG = ['fill', 'fillOpacity'];\nconst FILL_STROKE_CONFIG = [...STROKE_CONFIG, ...FILL_CONFIG];\nconst VL_ONLY_MARK_CONFIG_INDEX = {\n    color: 1,\n    filled: 1,\n    invalid: 1,\n    order: 1,\n    radius2: 1,\n    theta2: 1,\n    timeUnitBand: 1,\n    timeUnitBandPosition: 1\n};\nconst VL_ONLY_MARK_CONFIG_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(VL_ONLY_MARK_CONFIG_INDEX);\nconst VL_ONLY_MARK_SPECIFIC_CONFIG_PROPERTY_INDEX = {\n    area: ['line', 'point'],\n    bar: ['binSpacing', 'continuousBandSize', 'discreteBandSize'],\n    rect: ['binSpacing', 'continuousBandSize', 'discreteBandSize'],\n    line: ['point'],\n    tick: ['bandSize', 'thickness']\n};\nconst defaultMarkConfig = {\n    color: '#4c78a8',\n    invalid: 'filter',\n    timeUnitBand: 1\n};\nconst MARK_CONFIG_INDEX = {\n    mark: 1,\n    arc: 1,\n    area: 1,\n    bar: 1,\n    circle: 1,\n    image: 1,\n    line: 1,\n    point: 1,\n    rect: 1,\n    rule: 1,\n    square: 1,\n    text: 1,\n    tick: 1,\n    trail: 1,\n    geoshape: 1\n};\nconst MARK_CONFIGS = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(MARK_CONFIG_INDEX);\nconst BAR_CORNER_RADIUS_INDEX = {\n    horizontal: ['cornerRadiusTopRight', 'cornerRadiusBottomRight'],\n    vertical: ['cornerRadiusTopLeft', 'cornerRadiusTopRight']\n};\nconst DEFAULT_RECT_BAND_SIZE = 5;\nconst defaultBarConfig = {\n    binSpacing: 1,\n    continuousBandSize: DEFAULT_RECT_BAND_SIZE,\n    timeUnitBandPosition: 0.5\n};\nconst defaultRectConfig = {\n    binSpacing: 0,\n    continuousBandSize: DEFAULT_RECT_BAND_SIZE,\n    timeUnitBandPosition: 0.5\n};\nconst defaultTickConfig = {\n    thickness: 1\n};\nfunction getMarkType(m) {\n    return isMarkDef(m) ? m.type : m;\n}\n//# sourceMappingURL=mark.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/mark.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/normalize/core.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/normalize/core.js ***!
  \************************************************************/
/*! exports provided: CoreNormalizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CoreNormalizer\", function() { return CoreNormalizer; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _compositemark_boxplot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../compositemark/boxplot */ \"./node_modules/vega-lite/build/src/compositemark/boxplot.js\");\n/* harmony import */ var _compositemark_errorband__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../compositemark/errorband */ \"./node_modules/vega-lite/build/src/compositemark/errorband.js\");\n/* harmony import */ var _compositemark_errorbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../compositemark/errorbar */ \"./node_modules/vega-lite/build/src/compositemark/errorbar.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec_facet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../spec/facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n/* harmony import */ var _spec_map__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../spec/map */ \"./node_modules/vega-lite/build/src/spec/map.js\");\n/* harmony import */ var _spec_repeat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../spec/repeat */ \"./node_modules/vega-lite/build/src/spec/repeat.js\");\n/* harmony import */ var _spec_unit__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../spec/unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n/* harmony import */ var _pathoverlay__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pathoverlay */ \"./node_modules/vega-lite/build/src/normalize/pathoverlay.js\");\n/* harmony import */ var _rangestep__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./rangestep */ \"./node_modules/vega-lite/build/src/normalize/rangestep.js\");\n/* harmony import */ var _repeater__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./repeater */ \"./node_modules/vega-lite/build/src/normalize/repeater.js\");\n/* harmony import */ var _ruleforrangedline__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ruleforrangedline */ \"./node_modules/vega-lite/build/src/normalize/ruleforrangedline.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass CoreNormalizer extends _spec_map__WEBPACK_IMPORTED_MODULE_9__[\"SpecMapper\"] {\n    constructor() {\n        super(...arguments);\n        this.nonFacetUnitNormalizers = [\n            _compositemark_boxplot__WEBPACK_IMPORTED_MODULE_3__[\"boxPlotNormalizer\"],\n            _compositemark_errorbar__WEBPACK_IMPORTED_MODULE_5__[\"errorBarNormalizer\"],\n            _compositemark_errorband__WEBPACK_IMPORTED_MODULE_4__[\"errorBandNormalizer\"],\n            new _pathoverlay__WEBPACK_IMPORTED_MODULE_14__[\"PathOverlayNormalizer\"](),\n            new _ruleforrangedline__WEBPACK_IMPORTED_MODULE_17__[\"RuleForRangedLineNormalizer\"](),\n            new _rangestep__WEBPACK_IMPORTED_MODULE_15__[\"RangeStepNormalizer\"]()\n        ];\n    }\n    map(spec, params) {\n        // Special handling for a faceted unit spec as it can return a facet spec, not just a layer or unit spec like a normal unit spec.\n        if (Object(_spec_unit__WEBPACK_IMPORTED_MODULE_11__[\"isUnitSpec\"])(spec)) {\n            const hasRow = Object(_encoding__WEBPACK_IMPORTED_MODULE_6__[\"channelHasField\"])(spec.encoding, _channel__WEBPACK_IMPORTED_MODULE_1__[\"ROW\"]);\n            const hasColumn = Object(_encoding__WEBPACK_IMPORTED_MODULE_6__[\"channelHasField\"])(spec.encoding, _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLUMN\"]);\n            const hasFacet = Object(_encoding__WEBPACK_IMPORTED_MODULE_6__[\"channelHasField\"])(spec.encoding, _channel__WEBPACK_IMPORTED_MODULE_1__[\"FACET\"]);\n            if (hasRow || hasColumn || hasFacet) {\n                return this.mapFacetedUnit(spec, params);\n            }\n        }\n        return super.map(spec, params);\n    }\n    // This is for normalizing non-facet unit\n    mapUnit(spec, params) {\n        const { parentEncoding, parentProjection } = params;\n        const encoding = Object(_repeater__WEBPACK_IMPORTED_MODULE_16__[\"replaceRepeaterInEncoding\"])(spec.encoding, params.repeater);\n        const specWithReplacedEncoding = Object.assign(Object.assign({}, spec), (encoding ? { encoding } : {}));\n        if (parentEncoding || parentProjection) {\n            return this.mapUnitWithParentEncodingOrProjection(specWithReplacedEncoding, params);\n        }\n        const normalizeLayerOrUnit = this.mapLayerOrUnit.bind(this);\n        for (const unitNormalizer of this.nonFacetUnitNormalizers) {\n            if (unitNormalizer.hasMatchingType(specWithReplacedEncoding, params.config)) {\n                return unitNormalizer.run(specWithReplacedEncoding, params, normalizeLayerOrUnit);\n            }\n        }\n        return specWithReplacedEncoding;\n    }\n    mapRepeat(spec, params) {\n        if (Object(_spec_repeat__WEBPACK_IMPORTED_MODULE_10__[\"isLayerRepeatSpec\"])(spec)) {\n            return this.mapLayerRepeat(spec, params);\n        }\n        else {\n            return this.mapNonLayerRepeat(spec, params);\n        }\n    }\n    mapLayerRepeat(spec, params) {\n        const { repeat, spec: childSpec } = spec, rest = __rest(spec, [\"repeat\", \"spec\"]);\n        const { row, column, layer } = repeat;\n        const { repeater = {}, repeaterPrefix = '' } = params;\n        if (row || column) {\n            return this.mapRepeat(Object.assign(Object.assign({}, spec), { repeat: Object.assign(Object.assign({}, (row ? { row } : {})), (column ? { column } : {})), spec: {\n                    repeat: { layer },\n                    spec: childSpec\n                } }), params);\n        }\n        else {\n            return Object.assign(Object.assign({}, rest), { layer: layer.map(layerValue => {\n                    const childRepeater = Object.assign(Object.assign({}, repeater), { layer: layerValue });\n                    const childName = (childSpec.name || '') + repeaterPrefix + `child__layer_${Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"varName\"])(layerValue)}`;\n                    const child = this.mapLayerOrUnit(childSpec, Object.assign(Object.assign({}, params), { repeater: childRepeater, repeaterPrefix: childName }));\n                    child.name = childName;\n                    return child;\n                }) });\n        }\n    }\n    mapNonLayerRepeat(spec, params) {\n        var _a;\n        const { repeat, spec: childSpec, data } = spec, remainingProperties = __rest(spec, [\"repeat\", \"spec\", \"data\"]);\n        if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(repeat) && spec.columns) {\n            // is repeat with row/column\n            spec = Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"omit\"])(spec, ['columns']);\n            _log__WEBPACK_IMPORTED_MODULE_7__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_7__[\"message\"].columnsNotSupportByRowCol('repeat'));\n        }\n        const concat = [];\n        const { repeater = {}, repeaterPrefix = '' } = params;\n        const row = (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(repeat) && repeat.row) || [repeater ? repeater.row : null];\n        const column = (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(repeat) && repeat.column) || [repeater ? repeater.column : null];\n        const repeatValues = (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(repeat) && repeat) || [repeater ? repeater.repeat : null];\n        // cross product\n        for (const repeatValue of repeatValues) {\n            for (const rowValue of row) {\n                for (const columnValue of column) {\n                    const childRepeater = {\n                        repeat: repeatValue,\n                        row: rowValue,\n                        column: columnValue,\n                        layer: repeater.layer\n                    };\n                    const childName = (childSpec.name || '') +\n                        repeaterPrefix +\n                        'child__' +\n                        (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(repeat)\n                            ? `${Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"varName\"])(repeatValue)}`\n                            : (repeat.row ? `row_${Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"varName\"])(rowValue)}` : '') +\n                                (repeat.column ? `column_${Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"varName\"])(columnValue)}` : ''));\n                    const child = this.map(childSpec, Object.assign(Object.assign({}, params), { repeater: childRepeater, repeaterPrefix: childName }));\n                    child.name = childName;\n                    // we move data up\n                    concat.push(Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"omit\"])(child, ['data']));\n                }\n            }\n        }\n        const columns = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(repeat) ? spec.columns : repeat.column ? repeat.column.length : 1;\n        return Object.assign(Object.assign({ data: (_a = childSpec.data) !== null && _a !== void 0 ? _a : data, align: 'all' }, remainingProperties), { columns,\n            concat });\n    }\n    mapFacet(spec, params) {\n        const { facet } = spec;\n        if (Object(_spec_facet__WEBPACK_IMPORTED_MODULE_8__[\"isFacetMapping\"])(facet) && spec.columns) {\n            // is facet with row/column\n            spec = Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"omit\"])(spec, ['columns']);\n            _log__WEBPACK_IMPORTED_MODULE_7__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_7__[\"message\"].columnsNotSupportByRowCol('facet'));\n        }\n        return super.mapFacet(spec, params);\n    }\n    mapUnitWithParentEncodingOrProjection(spec, params) {\n        const { encoding, projection } = spec;\n        const { parentEncoding, parentProjection, config } = params;\n        const mergedProjection = mergeProjection({ parentProjection, projection });\n        const mergedEncoding = mergeEncoding({\n            parentEncoding,\n            encoding: Object(_repeater__WEBPACK_IMPORTED_MODULE_16__[\"replaceRepeaterInEncoding\"])(encoding, params.repeater)\n        });\n        return this.mapUnit(Object.assign(Object.assign(Object.assign({}, spec), (mergedProjection ? { projection: mergedProjection } : {})), (mergedEncoding ? { encoding: mergedEncoding } : {})), { config });\n    }\n    mapFacetedUnit(spec, params) {\n        // New encoding in the inside spec should not contain row / column\n        // as row/column should be moved to facet\n        const _a = spec.encoding, { row, column, facet } = _a, encoding = __rest(_a, [\"row\", \"column\", \"facet\"]);\n        // Mark and encoding should be moved into the inner spec\n        const { mark, width, projection, height, view, selection, encoding: _ } = spec, outerSpec = __rest(spec, [\"mark\", \"width\", \"projection\", \"height\", \"view\", \"selection\", \"encoding\"]);\n        const { facetMapping, layout } = this.getFacetMappingAndLayout({ row, column, facet }, params);\n        const newEncoding = Object(_repeater__WEBPACK_IMPORTED_MODULE_16__[\"replaceRepeaterInEncoding\"])(encoding, params.repeater);\n        return this.mapFacet(Object.assign(Object.assign(Object.assign({}, outerSpec), layout), { \n            // row / column has higher precedence than facet\n            facet: facetMapping, spec: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (width ? { width } : {})), (height ? { height } : {})), (view ? { view } : {})), (projection ? { projection } : {})), { mark, encoding: newEncoding }), (selection ? { selection } : {})) }), params);\n    }\n    getFacetMappingAndLayout(facets, params) {\n        var _a;\n        const { row, column, facet } = facets;\n        if (row || column) {\n            if (facet) {\n                _log__WEBPACK_IMPORTED_MODULE_7__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_7__[\"message\"].facetChannelDropped([...(row ? [_channel__WEBPACK_IMPORTED_MODULE_1__[\"ROW\"]] : []), ...(column ? [_channel__WEBPACK_IMPORTED_MODULE_1__[\"COLUMN\"]] : [])]));\n            }\n            const facetMapping = {};\n            const layout = {};\n            for (const channel of [_channel__WEBPACK_IMPORTED_MODULE_1__[\"ROW\"], _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLUMN\"]]) {\n                const def = facets[channel];\n                if (def) {\n                    const { align, center, spacing, columns } = def, defWithoutLayout = __rest(def, [\"align\", \"center\", \"spacing\", \"columns\"]);\n                    facetMapping[channel] = defWithoutLayout;\n                    for (const prop of ['align', 'center', 'spacing']) {\n                        if (def[prop] !== undefined) {\n                            layout[prop] = (_a = layout[prop]) !== null && _a !== void 0 ? _a : {};\n                            layout[prop][channel] = def[prop];\n                        }\n                    }\n                }\n            }\n            return { facetMapping, layout };\n        }\n        else {\n            const { align, center, spacing, columns } = facet, facetMapping = __rest(facet, [\"align\", \"center\", \"spacing\", \"columns\"]);\n            return {\n                facetMapping: Object(_repeater__WEBPACK_IMPORTED_MODULE_16__[\"replaceRepeaterInFacet\"])(facetMapping, params.repeater),\n                layout: Object.assign(Object.assign(Object.assign(Object.assign({}, (align ? { align } : {})), (center ? { center } : {})), (spacing ? { spacing } : {})), (columns ? { columns } : {}))\n            };\n        }\n    }\n    mapLayer(spec, _a) {\n        // Special handling for extended layer spec\n        var { parentEncoding, parentProjection } = _a, otherParams = __rest(_a, [\"parentEncoding\", \"parentProjection\"]);\n        const { encoding, projection } = spec, rest = __rest(spec, [\"encoding\", \"projection\"]);\n        const params = Object.assign(Object.assign({}, otherParams), { parentEncoding: mergeEncoding({ parentEncoding, encoding, layer: true }), parentProjection: mergeProjection({ parentProjection, projection }) });\n        return super.mapLayer(rest, params);\n    }\n}\nfunction mergeEncoding({ parentEncoding, encoding = {}, layer }) {\n    let merged = {};\n    if (parentEncoding) {\n        const channels = new Set([...Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"keys\"])(parentEncoding), ...Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"keys\"])(encoding)]);\n        for (const channel of channels) {\n            const channelDef = encoding[channel];\n            const parentChannelDef = parentEncoding[channel];\n            if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldOrDatumDef\"])(channelDef)) {\n                // Field/Datum Def can inherit properties from its parent\n                // Note that parentChannelDef doesn't have to be a field/datum def if the channelDef is already one.\n                const mergedChannelDef = Object.assign(Object.assign({}, parentChannelDef), channelDef);\n                merged[channel] = mergedChannelDef;\n            }\n            else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"hasConditionalFieldOrDatumDef\"])(channelDef)) {\n                merged[channel] = Object.assign(Object.assign({}, channelDef), { condition: Object.assign(Object.assign({}, parentChannelDef), channelDef.condition) });\n            }\n            else if (channelDef || channelDef === null) {\n                merged[channel] = channelDef;\n            }\n            else if (layer ||\n                Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isValueDef\"])(parentChannelDef) ||\n                Object(_vega_schema__WEBPACK_IMPORTED_MODULE_13__[\"isSignalRef\"])(parentChannelDef) ||\n                Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldOrDatumDef\"])(parentChannelDef) ||\n                Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(parentChannelDef)) {\n                merged[channel] = parentChannelDef;\n            }\n        }\n    }\n    else {\n        merged = encoding;\n    }\n    return !merged || Object(_util__WEBPACK_IMPORTED_MODULE_12__[\"isEmpty\"])(merged) ? undefined : merged;\n}\nfunction mergeProjection(opt) {\n    const { parentProjection, projection } = opt;\n    if (parentProjection && projection) {\n        _log__WEBPACK_IMPORTED_MODULE_7__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_7__[\"message\"].projectionOverridden({ parentProjection, projection }));\n    }\n    return projection !== null && projection !== void 0 ? projection : parentProjection;\n}\n//# sourceMappingURL=core.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/normalize/core.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/normalize/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/normalize/index.js ***!
  \*************************************************************/
/*! exports provided: normalize, normalizeAutoSize */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalize\", function() { return normalize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeAutoSize\", function() { return normalizeAutoSize; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../config */ \"./node_modules/vega-lite/build/src/config.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../spec */ \"./node_modules/vega-lite/build/src/spec/index.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./core */ \"./node_modules/vega-lite/build/src/normalize/core.js\");\n\n\n\n\n\n\nfunction normalize(spec, config) {\n    if (config === undefined) {\n        config = Object(_config__WEBPACK_IMPORTED_MODULE_1__[\"initConfig\"])(spec.config);\n    }\n    const normalizedSpec = normalizeGenericSpec(spec, config);\n    const { width, height } = spec;\n    const autosize = normalizeAutoSize(normalizedSpec, { width, height, autosize: spec.autosize }, config);\n    return Object.assign(Object.assign({}, normalizedSpec), (autosize ? { autosize } : {}));\n}\nconst normalizer = new _core__WEBPACK_IMPORTED_MODULE_5__[\"CoreNormalizer\"]();\n/**\n * Decompose extended unit specs into composition of pure unit specs.\n */\nfunction normalizeGenericSpec(spec, config = {}) {\n    return normalizer.map(spec, { config });\n}\nfunction _normalizeAutoSize(autosize) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(autosize) ? { type: autosize } : autosize !== null && autosize !== void 0 ? autosize : {};\n}\n/**\n * Normalize autosize and deal with width or height == \"container\".\n */\nfunction normalizeAutoSize(spec, sizeInfo, config) {\n    let { width, height } = sizeInfo;\n    const isFitCompatible = Object(_spec__WEBPACK_IMPORTED_MODULE_3__[\"isUnitSpec\"])(spec) || Object(_spec__WEBPACK_IMPORTED_MODULE_3__[\"isLayerSpec\"])(spec);\n    const autosizeDefault = {};\n    if (!isFitCompatible) {\n        // If spec is not compatible with autosize == \"fit\", discard width/height == container\n        if (width == 'container') {\n            _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].containerSizeNonSingle('width'));\n            width = undefined;\n        }\n        if (height == 'container') {\n            _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].containerSizeNonSingle('height'));\n            height = undefined;\n        }\n    }\n    else {\n        // Default autosize parameters to fit when width/height is \"container\"\n        if (width == 'container' && height == 'container') {\n            autosizeDefault.type = 'fit';\n            autosizeDefault.contains = 'padding';\n        }\n        else if (width == 'container') {\n            autosizeDefault.type = 'fit-x';\n            autosizeDefault.contains = 'padding';\n        }\n        else if (height == 'container') {\n            autosizeDefault.type = 'fit-y';\n            autosizeDefault.contains = 'padding';\n        }\n    }\n    const autosize = Object.assign(Object.assign(Object.assign({ type: 'pad' }, autosizeDefault), (config ? _normalizeAutoSize(config.autosize) : {})), _normalizeAutoSize(spec.autosize));\n    if (autosize.type === 'fit' && !isFitCompatible) {\n        _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].FIT_NON_SINGLE);\n        autosize.type = 'pad';\n    }\n    if (width == 'container' && !(autosize.type == 'fit' || autosize.type == 'fit-x')) {\n        _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].containerSizeNotCompatibleWithAutosize('width'));\n    }\n    if (height == 'container' && !(autosize.type == 'fit' || autosize.type == 'fit-y')) {\n        _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].containerSizeNotCompatibleWithAutosize('height'));\n    }\n    // Delete autosize property if it's Vega's default\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"deepEqual\"])(autosize, { type: 'pad' })) {\n        return undefined;\n    }\n    return autosize;\n}\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/normalize/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/normalize/pathoverlay.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/normalize/pathoverlay.js ***!
  \*******************************************************************/
/*! exports provided: PathOverlayNormalizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PathOverlayNormalizer\", function() { return PathOverlayNormalizer; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _spec_unit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../spec/unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\n/* harmony import */ var _stack__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../stack */ \"./node_modules/vega-lite/build/src/stack.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\nfunction dropLineAndPoint(markDef) {\n    const { point: _point, line: _line } = markDef, mark = __rest(markDef, [\"point\", \"line\"]);\n    return Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"keys\"])(mark).length > 1 ? mark : mark.type;\n}\nfunction dropLineAndPointFromConfig(config) {\n    for (const mark of ['line', 'area', 'rule', 'trail']) {\n        if (config[mark]) {\n            config = Object.assign(Object.assign({}, config), { \n                // TODO: remove as any\n                [mark]: Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"omit\"])(config[mark], ['point', 'line']) });\n        }\n    }\n    return config;\n}\nfunction getPointOverlay(markDef, markConfig = {}, encoding) {\n    if (markDef.point === 'transparent') {\n        return { opacity: 0 };\n    }\n    else if (markDef.point) {\n        // truthy : true or object\n        return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(markDef.point) ? markDef.point : {};\n    }\n    else if (markDef.point !== undefined) {\n        // false or null\n        return null;\n    }\n    else {\n        // undefined (not disabled)\n        if (markConfig.point || encoding.shape) {\n            // enable point overlay if config[mark].point is truthy or if encoding.shape is provided\n            return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(markConfig.point) ? markConfig.point : {};\n        }\n        // markDef.point is defined as falsy\n        return undefined;\n    }\n}\nfunction getLineOverlay(markDef, markConfig = {}) {\n    if (markDef.line) {\n        // true or object\n        return markDef.line === true ? {} : markDef.line;\n    }\n    else if (markDef.line !== undefined) {\n        // false or null\n        return null;\n    }\n    else {\n        // undefined (not disabled)\n        if (markConfig.line) {\n            // enable line overlay if config[mark].line is truthy\n            return markConfig.line === true ? {} : markConfig.line;\n        }\n        // markDef.point is defined as falsy\n        return undefined;\n    }\n}\nclass PathOverlayNormalizer {\n    constructor() {\n        this.name = 'path-overlay';\n    }\n    hasMatchingType(spec, config) {\n        if (Object(_spec_unit__WEBPACK_IMPORTED_MODULE_3__[\"isUnitSpec\"])(spec)) {\n            const { mark, encoding } = spec;\n            const markDef = Object(_mark__WEBPACK_IMPORTED_MODULE_2__[\"isMarkDef\"])(mark) ? mark : { type: mark };\n            switch (markDef.type) {\n                case 'line':\n                case 'rule':\n                case 'trail':\n                    return !!getPointOverlay(markDef, config[markDef.type], encoding);\n                case 'area':\n                    return (\n                    // false / null are also included as we want to remove the properties\n                    !!getPointOverlay(markDef, config[markDef.type], encoding) ||\n                        !!getLineOverlay(markDef, config[markDef.type]));\n            }\n        }\n        return false;\n    }\n    run(spec, params, normalize) {\n        const { config } = params;\n        const { selection, projection, mark, encoding: e } = spec, outerSpec = __rest(spec, [\"selection\", \"projection\", \"mark\", \"encoding\"]);\n        // Need to call normalizeEncoding because we need the inferred types to correctly determine stack\n        const encoding = Object(_encoding__WEBPACK_IMPORTED_MODULE_1__[\"normalizeEncoding\"])(e, config);\n        const markDef = Object(_mark__WEBPACK_IMPORTED_MODULE_2__[\"isMarkDef\"])(mark) ? mark : { type: mark };\n        const pointOverlay = getPointOverlay(markDef, config[markDef.type], encoding);\n        const lineOverlay = markDef.type === 'area' && getLineOverlay(markDef, config[markDef.type]);\n        const layer = [\n            Object.assign(Object.assign({}, (selection ? { selection } : {})), { mark: dropLineAndPoint(Object.assign(Object.assign({}, (markDef.type === 'area' && markDef.opacity === undefined && markDef.fillOpacity === undefined\n                    ? { opacity: 0.7 }\n                    : {})), markDef)), \n                // drop shape from encoding as this might be used to trigger point overlay\n                encoding: Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"omit\"])(encoding, ['shape']) })\n        ];\n        // FIXME: determine rules for applying selections.\n        // Need to copy stack config to overlayed layer\n        const stackProps = Object(_stack__WEBPACK_IMPORTED_MODULE_4__[\"stack\"])(markDef, encoding);\n        let overlayEncoding = encoding;\n        if (stackProps) {\n            const { fieldChannel: stackFieldChannel, offset } = stackProps;\n            overlayEncoding = Object.assign(Object.assign({}, encoding), { [stackFieldChannel]: Object.assign(Object.assign({}, encoding[stackFieldChannel]), (offset ? { stack: offset } : {})) });\n        }\n        if (lineOverlay) {\n            layer.push(Object.assign(Object.assign({}, (projection ? { projection } : {})), { mark: Object.assign(Object.assign({ type: 'line' }, Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"pick\"])(markDef, ['clip', 'interpolate', 'tension', 'tooltip'])), lineOverlay), encoding: overlayEncoding }));\n        }\n        if (pointOverlay) {\n            layer.push(Object.assign(Object.assign({}, (projection ? { projection } : {})), { mark: Object.assign(Object.assign({ type: 'point', opacity: 1, filled: true }, Object(_util__WEBPACK_IMPORTED_MODULE_5__[\"pick\"])(markDef, ['clip', 'tooltip'])), pointOverlay), encoding: overlayEncoding }));\n        }\n        return normalize(Object.assign(Object.assign({}, outerSpec), { layer }), Object.assign(Object.assign({}, params), { config: dropLineAndPointFromConfig(config) }));\n    }\n}\n//# sourceMappingURL=pathoverlay.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/normalize/pathoverlay.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/normalize/rangestep.js":
/*!*****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/normalize/rangestep.js ***!
  \*****************************************************************/
/*! exports provided: RangeStepNormalizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RangeStepNormalizer\", function() { return RangeStepNormalizer; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec_unit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../spec/unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\nclass RangeStepNormalizer {\n    constructor() {\n        this.name = 'RangeStep';\n    }\n    hasMatchingType(spec) {\n        var _a;\n        if (Object(_spec_unit__WEBPACK_IMPORTED_MODULE_3__[\"isUnitSpec\"])(spec) && spec.encoding) {\n            for (const channel of _channel__WEBPACK_IMPORTED_MODULE_0__[\"POSITION_SCALE_CHANNELS\"]) {\n                const def = spec.encoding[channel];\n                if (def && Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDef\"])(def)) {\n                    if ((_a = def === null || def === void 0 ? void 0 : def.scale) === null || _a === void 0 ? void 0 : _a['rangeStep']) {\n                        return true;\n                    }\n                }\n            }\n        }\n        return false;\n    }\n    run(spec) {\n        var _a;\n        const sizeMixins = {};\n        let encoding = Object.assign({}, spec.encoding);\n        for (const channel of _channel__WEBPACK_IMPORTED_MODULE_0__[\"POSITION_SCALE_CHANNELS\"]) {\n            const sizeType = Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getSizeChannel\"])(channel);\n            const def = encoding[channel];\n            if (def && Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDef\"])(def)) {\n                if ((_a = def === null || def === void 0 ? void 0 : def.scale) === null || _a === void 0 ? void 0 : _a['rangeStep']) {\n                    const { scale } = def, defWithoutScale = __rest(def, [\"scale\"]);\n                    const _b = scale, { rangeStep } = _b, scaleWithoutRangeStep = __rest(_b, [\"rangeStep\"]);\n                    sizeMixins[sizeType] = { step: scale['rangeStep'] };\n                    _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].RANGE_STEP_DEPRECATED);\n                    encoding = Object.assign(Object.assign({}, encoding), { [channel]: Object.assign(Object.assign({}, defWithoutScale), (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"isEmpty\"])(scaleWithoutRangeStep) ? {} : { scale: scaleWithoutRangeStep })) });\n                }\n            }\n        }\n        return Object.assign(Object.assign(Object.assign({}, sizeMixins), spec), { encoding });\n    }\n}\n//# sourceMappingURL=rangestep.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/normalize/rangestep.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/normalize/repeater.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/normalize/repeater.js ***!
  \****************************************************************/
/*! exports provided: replaceRepeaterInFacet, replaceRepeaterInEncoding */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceRepeaterInFacet\", function() { return replaceRepeaterInFacet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceRepeaterInEncoding\", function() { return replaceRepeaterInEncoding; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _sort__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../sort */ \"./node_modules/vega-lite/build/src/sort.js\");\n/* harmony import */ var _spec_facet__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../spec/facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\nfunction replaceRepeaterInFacet(facet, repeater) {\n    if (!repeater) {\n        return facet;\n    }\n    if (Object(_spec_facet__WEBPACK_IMPORTED_MODULE_4__[\"isFacetMapping\"])(facet)) {\n        return replaceRepeaterInMapping(facet, repeater);\n    }\n    return replaceRepeaterInFieldDef(facet, repeater);\n}\nfunction replaceRepeaterInEncoding(encoding, repeater) {\n    if (!repeater) {\n        return encoding;\n    }\n    return replaceRepeaterInMapping(encoding, repeater);\n}\n/**\n * Replaces repeated value and returns if the repeated value is valid.\n */\nfunction replaceRepeatInProp(prop, o, repeater) {\n    const val = o[prop];\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isRepeatRef\"])(val)) {\n        if (val.repeat in repeater) {\n            return Object.assign(Object.assign({}, o), { [prop]: repeater[val.repeat] });\n        }\n        else {\n            _log__WEBPACK_IMPORTED_MODULE_2__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].noSuchRepeatedValue(val.repeat));\n            return undefined;\n        }\n    }\n    return o;\n}\n/**\n * Replace repeater values in a field def with the concrete field name.\n */\nfunction replaceRepeaterInFieldDef(fieldDef, repeater) {\n    fieldDef = replaceRepeatInProp('field', fieldDef, repeater);\n    if (fieldDef === undefined) {\n        // the field def should be ignored\n        return undefined;\n    }\n    else if (fieldDef === null) {\n        return null;\n    }\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isSortableFieldDef\"])(fieldDef) && Object(_sort__WEBPACK_IMPORTED_MODULE_3__[\"isSortField\"])(fieldDef.sort)) {\n        const sort = replaceRepeatInProp('field', fieldDef.sort, repeater);\n        fieldDef = Object.assign(Object.assign({}, fieldDef), (sort ? { sort } : {}));\n    }\n    return fieldDef;\n}\nfunction replaceRepeaterInFieldOrDatumDef(def, repeater) {\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldDef\"])(def)) {\n        return replaceRepeaterInFieldDef(def, repeater);\n    }\n    else {\n        const datumDef = replaceRepeatInProp('datum', def, repeater);\n        if (datumDef !== def && !datumDef.type) {\n            datumDef.type = 'nominal';\n        }\n        return datumDef;\n    }\n}\nfunction replaceRepeaterInChannelDef(channelDef, repeater) {\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isFieldOrDatumDef\"])(channelDef)) {\n        const fd = replaceRepeaterInFieldOrDatumDef(channelDef, repeater);\n        if (fd) {\n            return fd;\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"isConditionalDef\"])(channelDef)) {\n            return { condition: channelDef.condition };\n        }\n    }\n    else {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"hasConditionalFieldOrDatumDef\"])(channelDef)) {\n            const fd = replaceRepeaterInFieldOrDatumDef(channelDef.condition, repeater);\n            if (fd) {\n                return Object.assign(Object.assign({}, channelDef), { condition: fd });\n            }\n            else {\n                const { condition } = channelDef, channelDefWithoutCondition = __rest(channelDef, [\"condition\"]);\n                return channelDefWithoutCondition;\n            }\n        }\n        return channelDef;\n    }\n    return undefined;\n}\nfunction replaceRepeaterInMapping(mapping, repeater) {\n    const out = {};\n    for (const channel in mapping) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(mapping, channel)) {\n            const channelDef = mapping[channel];\n            if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(channelDef)) {\n                // array cannot have condition\n                out[channel] = channelDef // somehow we need to cast it here\n                    .map(cd => replaceRepeaterInChannelDef(cd, repeater))\n                    .filter(cd => cd);\n            }\n            else {\n                const cd = replaceRepeaterInChannelDef(channelDef, repeater);\n                if (cd !== undefined) {\n                    out[channel] = cd;\n                }\n            }\n        }\n    }\n    return out;\n}\n//# sourceMappingURL=repeater.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/normalize/repeater.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/normalize/ruleforrangedline.js":
/*!*************************************************************************!*\
  !*** ./node_modules/vega-lite/build/src/normalize/ruleforrangedline.js ***!
  \*************************************************************************/
/*! exports provided: RuleForRangedLineNormalizer */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RuleForRangedLineNormalizer\", function() { return RuleForRangedLineNormalizer; });\n/* harmony import */ var _bin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../bin */ \"./node_modules/vega-lite/build/src/bin.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _spec_unit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../spec/unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\n\n\n\n\n\nclass RuleForRangedLineNormalizer {\n    constructor() {\n        this.name = 'RuleForRangedLine';\n    }\n    hasMatchingType(spec) {\n        if (Object(_spec_unit__WEBPACK_IMPORTED_MODULE_4__[\"isUnitSpec\"])(spec)) {\n            const { encoding, mark } = spec;\n            if (mark === 'line') {\n                for (const channel of _channel__WEBPACK_IMPORTED_MODULE_1__[\"SECONDARY_RANGE_CHANNEL\"]) {\n                    const mainChannel = Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"getMainRangeChannel\"])(channel);\n                    const mainChannelDef = encoding[mainChannel];\n                    if (encoding[channel]) {\n                        if ((Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isFieldDef\"])(mainChannelDef) && !Object(_bin__WEBPACK_IMPORTED_MODULE_0__[\"isBinned\"])(mainChannelDef.bin)) || Object(_channeldef__WEBPACK_IMPORTED_MODULE_2__[\"isDatumDef\"])(mainChannelDef)) {\n                            return true;\n                        }\n                    }\n                }\n            }\n        }\n        return false;\n    }\n    run(spec, params, normalize) {\n        const { encoding } = spec;\n        _log__WEBPACK_IMPORTED_MODULE_3__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_3__[\"message\"].lineWithRange(!!encoding.x2, !!encoding.y2));\n        return normalize(Object.assign(Object.assign({}, spec), { mark: 'rule' }), params);\n    }\n}\n//# sourceMappingURL=ruleforrangedline.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/normalize/ruleforrangedline.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/parameter.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/parameter.js ***!
  \*******************************************************/
/*! exports provided: assembleParameterSignals */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"assembleParameterSignals\", function() { return assembleParameterSignals; });\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\nfunction assembleParameterSignals(params) {\n    const signals = [];\n    for (const param of params || []) {\n        const { expr, bind } = param, rest = __rest(param, [\"expr\", \"bind\"]);\n        if (bind && expr) {\n            // Vega's InitSignal -- apply expr to \"init\"\n            const signal = Object.assign(Object.assign({}, rest), { bind, init: expr });\n            signals.push(signal);\n        }\n        else {\n            const signal = Object.assign(Object.assign(Object.assign({}, rest), (expr ? { update: expr } : {})), (bind ? { bind } : {}));\n            signals.push(signal);\n        }\n    }\n    return signals;\n}\n//# sourceMappingURL=parameter.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/parameter.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/predicate.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/predicate.js ***!
  \*******************************************************/
/*! exports provided: isSelectionPredicate, isFieldEqualPredicate, isFieldLTPredicate, isFieldLTEPredicate, isFieldGTPredicate, isFieldGTEPredicate, isFieldRangePredicate, isFieldOneOfPredicate, isFieldValidPredicate, isFieldPredicate, fieldFilterExpression, fieldValidPredicate, normalizePredicate */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSelectionPredicate\", function() { return isSelectionPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldEqualPredicate\", function() { return isFieldEqualPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldLTPredicate\", function() { return isFieldLTPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldLTEPredicate\", function() { return isFieldLTEPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldGTPredicate\", function() { return isFieldGTPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldGTEPredicate\", function() { return isFieldGTEPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldRangePredicate\", function() { return isFieldRangePredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldOneOfPredicate\", function() { return isFieldOneOfPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldValidPredicate\", function() { return isFieldValidPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldPredicate\", function() { return isFieldPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldFilterExpression\", function() { return fieldFilterExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldValidPredicate\", function() { return fieldValidPredicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizePredicate\", function() { return normalizePredicate; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _timeunit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./timeunit */ \"./node_modules/vega-lite/build/src/timeunit.js\");\n/* harmony import */ var _vega_schema__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vega.schema */ \"./node_modules/vega-lite/build/src/vega.schema.js\");\n\n\n\n\nfunction isSelectionPredicate(predicate) {\n    return predicate === null || predicate === void 0 ? void 0 : predicate['selection'];\n}\nfunction isFieldEqualPredicate(predicate) {\n    return predicate && !!predicate.field && predicate.equal !== undefined;\n}\nfunction isFieldLTPredicate(predicate) {\n    return predicate && !!predicate.field && predicate.lt !== undefined;\n}\nfunction isFieldLTEPredicate(predicate) {\n    return predicate && !!predicate.field && predicate.lte !== undefined;\n}\nfunction isFieldGTPredicate(predicate) {\n    return predicate && !!predicate.field && predicate.gt !== undefined;\n}\nfunction isFieldGTEPredicate(predicate) {\n    return predicate && !!predicate.field && predicate.gte !== undefined;\n}\nfunction isFieldRangePredicate(predicate) {\n    if (predicate && predicate.field) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(predicate.range) && predicate.range.length === 2) {\n            return true;\n        }\n        else if (Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isSignalRef\"])(predicate.range)) {\n            return true;\n        }\n    }\n    return false;\n}\nfunction isFieldOneOfPredicate(predicate) {\n    return (predicate && !!predicate.field && (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(predicate.oneOf) || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(predicate.in)) // backward compatibility\n    );\n}\nfunction isFieldValidPredicate(predicate) {\n    return predicate && !!predicate.field && predicate.valid !== undefined;\n}\nfunction isFieldPredicate(predicate) {\n    return (isFieldOneOfPredicate(predicate) ||\n        isFieldEqualPredicate(predicate) ||\n        isFieldRangePredicate(predicate) ||\n        isFieldLTPredicate(predicate) ||\n        isFieldGTPredicate(predicate) ||\n        isFieldLTEPredicate(predicate) ||\n        isFieldGTEPredicate(predicate));\n}\nfunction predicateValueExpr(v, timeUnit) {\n    return Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"valueExpr\"])(v, { timeUnit, wrapTime: true });\n}\nfunction predicateValuesExpr(vals, timeUnit) {\n    return vals.map(v => predicateValueExpr(v, timeUnit));\n}\n// This method is used by Voyager. Do not change its behavior without changing Voyager.\nfunction fieldFilterExpression(predicate, useInRange = true) {\n    var _a;\n    const { field } = predicate;\n    const timeUnit = (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_2__[\"normalizeTimeUnit\"])(predicate.timeUnit)) === null || _a === void 0 ? void 0 : _a.unit;\n    const fieldExpr = timeUnit\n        ? // For timeUnit, cast into integer with time() so we can use ===, inrange, indexOf to compare values directly.\n            // TODO: We calculate timeUnit on the fly here. Consider if we would like to consolidate this with timeUnit pipeline\n            // TODO: support utc\n            'time(' + Object(_timeunit__WEBPACK_IMPORTED_MODULE_2__[\"fieldExpr\"])(timeUnit, field) + ')'\n        : Object(_channeldef__WEBPACK_IMPORTED_MODULE_1__[\"vgField\"])(predicate, { expr: 'datum' });\n    if (isFieldEqualPredicate(predicate)) {\n        return fieldExpr + '===' + predicateValueExpr(predicate.equal, timeUnit);\n    }\n    else if (isFieldLTPredicate(predicate)) {\n        const upper = predicate.lt;\n        return `${fieldExpr}<${predicateValueExpr(upper, timeUnit)}`;\n    }\n    else if (isFieldGTPredicate(predicate)) {\n        const lower = predicate.gt;\n        return `${fieldExpr}>${predicateValueExpr(lower, timeUnit)}`;\n    }\n    else if (isFieldLTEPredicate(predicate)) {\n        const upper = predicate.lte;\n        return `${fieldExpr}<=${predicateValueExpr(upper, timeUnit)}`;\n    }\n    else if (isFieldGTEPredicate(predicate)) {\n        const lower = predicate.gte;\n        return `${fieldExpr}>=${predicateValueExpr(lower, timeUnit)}`;\n    }\n    else if (isFieldOneOfPredicate(predicate)) {\n        return `indexof([${predicateValuesExpr(predicate.oneOf, timeUnit).join(',')}], ${fieldExpr}) !== -1`;\n    }\n    else if (isFieldValidPredicate(predicate)) {\n        return fieldValidPredicate(fieldExpr, predicate.valid);\n    }\n    else if (isFieldRangePredicate(predicate)) {\n        const { range } = predicate;\n        const lower = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isSignalRef\"])(range) ? { signal: `${range.signal}[0]` } : range[0];\n        const upper = Object(_vega_schema__WEBPACK_IMPORTED_MODULE_3__[\"isSignalRef\"])(range) ? { signal: `${range.signal}[1]` } : range[1];\n        if (lower !== null && upper !== null && useInRange) {\n            return ('inrange(' +\n                fieldExpr +\n                ', [' +\n                predicateValueExpr(lower, timeUnit) +\n                ', ' +\n                predicateValueExpr(upper, timeUnit) +\n                '])');\n        }\n        const exprs = [];\n        if (lower !== null) {\n            exprs.push(`${fieldExpr} >= ${predicateValueExpr(lower, timeUnit)}`);\n        }\n        if (upper !== null) {\n            exprs.push(`${fieldExpr} <= ${predicateValueExpr(upper, timeUnit)}`);\n        }\n        return exprs.length > 0 ? exprs.join(' && ') : 'true';\n    }\n    /* istanbul ignore next: it should never reach here */\n    throw new Error(`Invalid field predicate: ${JSON.stringify(predicate)}`);\n}\nfunction fieldValidPredicate(fieldExpr, valid = true) {\n    if (valid) {\n        return `isValid(${fieldExpr}) && isFinite(+${fieldExpr})`;\n    }\n    else {\n        return `!isValid(${fieldExpr}) || !isFinite(+${fieldExpr})`;\n    }\n}\nfunction normalizePredicate(f) {\n    var _a;\n    if (isFieldPredicate(f) && f.timeUnit) {\n        return Object.assign(Object.assign({}, f), { timeUnit: (_a = Object(_timeunit__WEBPACK_IMPORTED_MODULE_2__[\"normalizeTimeUnit\"])(f.timeUnit)) === null || _a === void 0 ? void 0 : _a.unit });\n    }\n    return f;\n}\n//# sourceMappingURL=predicate.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/predicate.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/projection.js":
/*!********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/projection.js ***!
  \********************************************************/
/*! exports provided: PROJECTION_PROPERTIES */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PROJECTION_PROPERTIES\", function() { return PROJECTION_PROPERTIES; });\nconst PROJECTION_PROPERTIES = [\n    'type',\n    'clipAngle',\n    'clipExtent',\n    'center',\n    'rotate',\n    'precision',\n    'reflectX',\n    'reflectY',\n    'coefficient',\n    'distance',\n    'fraction',\n    'lobes',\n    'parallel',\n    'radius',\n    'ratio',\n    'spacing',\n    'tilt'\n];\n//# sourceMappingURL=projection.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/projection.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/scale.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-lite/build/src/scale.js ***!
  \***************************************************/
/*! exports provided: ScaleType, SCALE_CATEGORY_INDEX, SCALE_TYPES, scaleCompatible, scaleTypePrecedence, CONTINUOUS_TO_CONTINUOUS_SCALES, QUANTITATIVE_SCALES, isQuantitative, CONTINUOUS_TO_DISCRETE_SCALES, CONTINUOUS_DOMAIN_SCALES, DISCRETE_DOMAIN_SCALES, TIME_SCALE_TYPES, hasDiscreteDomain, hasContinuousDomain, isContinuousToContinuous, isContinuousToDiscrete, defaultScaleConfig, isExtendedScheme, isSelectionDomain, isDomainUnionWith, SCALE_PROPERTIES, NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTIES, scaleTypeSupportProperty, channelScalePropertyIncompatability, scaleTypeSupportDataType, channelSupportScaleType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScaleType\", function() { return ScaleType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCALE_CATEGORY_INDEX\", function() { return SCALE_CATEGORY_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCALE_TYPES\", function() { return SCALE_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleCompatible\", function() { return scaleCompatible; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTypePrecedence\", function() { return scaleTypePrecedence; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTINUOUS_TO_CONTINUOUS_SCALES\", function() { return CONTINUOUS_TO_CONTINUOUS_SCALES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QUANTITATIVE_SCALES\", function() { return QUANTITATIVE_SCALES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isQuantitative\", function() { return isQuantitative; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTINUOUS_TO_DISCRETE_SCALES\", function() { return CONTINUOUS_TO_DISCRETE_SCALES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CONTINUOUS_DOMAIN_SCALES\", function() { return CONTINUOUS_DOMAIN_SCALES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DISCRETE_DOMAIN_SCALES\", function() { return DISCRETE_DOMAIN_SCALES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TIME_SCALE_TYPES\", function() { return TIME_SCALE_TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasDiscreteDomain\", function() { return hasDiscreteDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasContinuousDomain\", function() { return hasContinuousDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isContinuousToContinuous\", function() { return isContinuousToContinuous; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isContinuousToDiscrete\", function() { return isContinuousToDiscrete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultScaleConfig\", function() { return defaultScaleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isExtendedScheme\", function() { return isExtendedScheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSelectionDomain\", function() { return isSelectionDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDomainUnionWith\", function() { return isDomainUnionWith; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SCALE_PROPERTIES\", function() { return SCALE_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTIES\", function() { return NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTIES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTypeSupportProperty\", function() { return scaleTypeSupportProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelScalePropertyIncompatability\", function() { return channelScalePropertyIncompatability; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleTypeSupportDataType\", function() { return scaleTypeSupportDataType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"channelSupportScaleType\", function() { return channelSupportScaleType; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./type */ \"./node_modules/vega-lite/build/src/type.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\nconst ScaleType = {\n    // Continuous - Quantitative\n    LINEAR: 'linear',\n    LOG: 'log',\n    POW: 'pow',\n    SQRT: 'sqrt',\n    SYMLOG: 'symlog',\n    IDENTITY: 'identity',\n    SEQUENTIAL: 'sequential',\n    // Continuous - Time\n    TIME: 'time',\n    UTC: 'utc',\n    // Discretizing scales\n    QUANTILE: 'quantile',\n    QUANTIZE: 'quantize',\n    THRESHOLD: 'threshold',\n    BIN_ORDINAL: 'bin-ordinal',\n    // Discrete scales\n    ORDINAL: 'ordinal',\n    POINT: 'point',\n    BAND: 'band'\n};\n/**\n * Index for scale categories -- only scale of the same categories can be merged together.\n * Current implementation is trying to be conservative and avoid merging scale type that might not work together\n */\nconst SCALE_CATEGORY_INDEX = {\n    linear: 'numeric',\n    log: 'numeric',\n    pow: 'numeric',\n    sqrt: 'numeric',\n    symlog: 'numeric',\n    identity: 'numeric',\n    sequential: 'numeric',\n    time: 'time',\n    utc: 'time',\n    ordinal: 'ordinal',\n    'bin-ordinal': 'bin-ordinal',\n    point: 'ordinal-position',\n    band: 'ordinal-position',\n    quantile: 'discretizing',\n    quantize: 'discretizing',\n    threshold: 'discretizing'\n};\nconst SCALE_TYPES = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(SCALE_CATEGORY_INDEX);\n/**\n * Whether the two given scale types can be merged together.\n */\nfunction scaleCompatible(scaleType1, scaleType2) {\n    const scaleCategory1 = SCALE_CATEGORY_INDEX[scaleType1];\n    const scaleCategory2 = SCALE_CATEGORY_INDEX[scaleType2];\n    return (scaleCategory1 === scaleCategory2 ||\n        (scaleCategory1 === 'ordinal-position' && scaleCategory2 === 'time') ||\n        (scaleCategory2 === 'ordinal-position' && scaleCategory1 === 'time'));\n}\n/**\n * Index for scale precedence -- high score = higher priority for merging.\n */\nconst SCALE_PRECEDENCE_INDEX = {\n    // numeric\n    linear: 0,\n    log: 1,\n    pow: 1,\n    sqrt: 1,\n    symlog: 1,\n    identity: 1,\n    sequential: 1,\n    // time\n    time: 0,\n    utc: 0,\n    // ordinal-position -- these have higher precedence than continuous scales as they support more types of data\n    point: 10,\n    band: 11,\n    // non grouped types\n    ordinal: 0,\n    'bin-ordinal': 0,\n    quantile: 0,\n    quantize: 0,\n    threshold: 0\n};\n/**\n * Return scale categories -- only scale of the same categories can be merged together.\n */\nfunction scaleTypePrecedence(scaleType) {\n    return SCALE_PRECEDENCE_INDEX[scaleType];\n}\nconst CONTINUOUS_TO_CONTINUOUS_SCALES = ['linear', 'log', 'pow', 'sqrt', 'symlog', 'time', 'utc'];\nconst CONTINUOUS_TO_CONTINUOUS_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(CONTINUOUS_TO_CONTINUOUS_SCALES);\nconst QUANTITATIVE_SCALES = ['linear', 'log', 'pow', 'sqrt', 'symlog'];\nconst QUANTITATIVE_SCALES_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(QUANTITATIVE_SCALES);\nfunction isQuantitative(type) {\n    return type in QUANTITATIVE_SCALES_INDEX;\n}\nconst CONTINUOUS_TO_DISCRETE_SCALES = ['quantile', 'quantize', 'threshold'];\nconst CONTINUOUS_TO_DISCRETE_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(CONTINUOUS_TO_DISCRETE_SCALES);\nconst CONTINUOUS_DOMAIN_SCALES = CONTINUOUS_TO_CONTINUOUS_SCALES.concat([\n    'quantile',\n    'quantize',\n    'threshold',\n    'sequential',\n    'identity'\n]);\nconst CONTINUOUS_DOMAIN_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(CONTINUOUS_DOMAIN_SCALES);\nconst DISCRETE_DOMAIN_SCALES = ['ordinal', 'bin-ordinal', 'point', 'band'];\nconst DISCRETE_DOMAIN_INDEX = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(DISCRETE_DOMAIN_SCALES);\nconst TIME_SCALE_TYPES = ['time', 'utc'];\nfunction hasDiscreteDomain(type) {\n    return type in DISCRETE_DOMAIN_INDEX;\n}\nfunction hasContinuousDomain(type) {\n    return type in CONTINUOUS_DOMAIN_INDEX;\n}\nfunction isContinuousToContinuous(type) {\n    return type in CONTINUOUS_TO_CONTINUOUS_INDEX;\n}\nfunction isContinuousToDiscrete(type) {\n    return type in CONTINUOUS_TO_DISCRETE_INDEX;\n}\nconst defaultScaleConfig = {\n    pointPadding: 0.5,\n    barBandPaddingInner: 0.1,\n    rectBandPaddingInner: 0,\n    minBandSize: 2,\n    minFontSize: 8,\n    maxFontSize: 40,\n    minOpacity: 0.3,\n    maxOpacity: 0.8,\n    // FIXME: revise if these *can* become ratios of width/height step\n    minSize: 9,\n    minStrokeWidth: 1,\n    maxStrokeWidth: 4,\n    quantileCount: 4,\n    quantizeCount: 4\n};\nfunction isExtendedScheme(scheme) {\n    return !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(scheme) && !!scheme['name'];\n}\nfunction isSelectionDomain(domain) {\n    return domain === null || domain === void 0 ? void 0 : domain['selection'];\n}\nfunction isDomainUnionWith(domain) {\n    return domain && domain['unionWith'];\n}\nconst SCALE_PROPERTY_INDEX = {\n    type: 1,\n    domain: 1,\n    domainMax: 1,\n    domainMin: 1,\n    domainMid: 1,\n    align: 1,\n    range: 1,\n    rangeMax: 1,\n    rangeMin: 1,\n    scheme: 1,\n    bins: 1,\n    // Other properties\n    reverse: 1,\n    round: 1,\n    // quantitative / time\n    clamp: 1,\n    nice: 1,\n    // quantitative\n    base: 1,\n    exponent: 1,\n    constant: 1,\n    interpolate: 1,\n    zero: 1,\n    // band/point\n    padding: 1,\n    paddingInner: 1,\n    paddingOuter: 1\n};\nconst SCALE_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(SCALE_PROPERTY_INDEX);\nconst { type, domain, range, rangeMax, rangeMin, scheme } = SCALE_PROPERTY_INDEX, NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTY_INDEX = __rest(SCALE_PROPERTY_INDEX, [\"type\", \"domain\", \"range\", \"rangeMax\", \"rangeMin\", \"scheme\"]);\nconst NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"keys\"])(NON_TYPE_DOMAIN_RANGE_VEGA_SCALE_PROPERTY_INDEX);\nfunction scaleTypeSupportProperty(scaleType, propName) {\n    switch (propName) {\n        case 'type':\n        case 'domain':\n        case 'reverse':\n        case 'range':\n            return true;\n        case 'scheme':\n        case 'interpolate':\n            return !Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['point', 'band', 'identity'], scaleType);\n        case 'bins':\n            return !Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['point', 'band', 'identity', 'ordinal'], scaleType);\n        case 'round':\n            return isContinuousToContinuous(scaleType) || scaleType === 'band' || scaleType === 'point';\n        case 'padding':\n        case 'rangeMin':\n        case 'rangeMax':\n            return isContinuousToContinuous(scaleType) || Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['point', 'band'], scaleType);\n        case 'paddingOuter':\n        case 'align':\n            return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['point', 'band'], scaleType);\n        case 'paddingInner':\n            return scaleType === 'band';\n        case 'domainMax':\n        case 'domainMid':\n        case 'domainMin':\n        case 'clamp':\n            return isContinuousToContinuous(scaleType);\n        case 'nice':\n            return isContinuousToContinuous(scaleType) || scaleType === 'quantize' || scaleType === 'threshold';\n        case 'exponent':\n            return scaleType === 'pow';\n        case 'base':\n            return scaleType === 'log';\n        case 'constant':\n            return scaleType === 'symlog';\n        case 'zero':\n            return (hasContinuousDomain(scaleType) &&\n                !Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])([\n                    'log',\n                    'time',\n                    'utc',\n                    'threshold',\n                    'quantile' // quantile depends on distribution so zero does not matter\n                ], scaleType));\n    }\n}\n/**\n * Returns undefined if the input channel supports the input scale property name\n */\nfunction channelScalePropertyIncompatability(channel, propName) {\n    switch (propName) {\n        case 'interpolate':\n        case 'scheme':\n        case 'domainMid':\n            if (!Object(_channel__WEBPACK_IMPORTED_MODULE_1__[\"isColorChannel\"])(channel)) {\n                return _log__WEBPACK_IMPORTED_MODULE_2__[\"message\"].cannotUseScalePropertyWithNonColor(channel);\n            }\n            return undefined;\n        case 'align':\n        case 'type':\n        case 'bins':\n        case 'domain':\n        case 'domainMax':\n        case 'domainMin':\n        case 'range':\n        case 'base':\n        case 'exponent':\n        case 'constant':\n        case 'nice':\n        case 'padding':\n        case 'paddingInner':\n        case 'paddingOuter':\n        case 'rangeMax':\n        case 'rangeMin':\n        case 'reverse':\n        case 'round':\n        case 'clamp':\n        case 'zero':\n            return undefined; // GOOD!\n    }\n}\nfunction scaleTypeSupportDataType(specifiedType, fieldDefType) {\n    if (Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])([_type__WEBPACK_IMPORTED_MODULE_3__[\"ORDINAL\"], _type__WEBPACK_IMPORTED_MODULE_3__[\"NOMINAL\"]], fieldDefType)) {\n        return specifiedType === undefined || hasDiscreteDomain(specifiedType);\n    }\n    else if (fieldDefType === _type__WEBPACK_IMPORTED_MODULE_3__[\"TEMPORAL\"]) {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])([ScaleType.TIME, ScaleType.UTC, undefined], specifiedType);\n    }\n    else if (fieldDefType === _type__WEBPACK_IMPORTED_MODULE_3__[\"QUANTITATIVE\"]) {\n        return Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])([\n            ScaleType.LOG,\n            ScaleType.POW,\n            ScaleType.SQRT,\n            ScaleType.SYMLOG,\n            ScaleType.QUANTILE,\n            ScaleType.QUANTIZE,\n            ScaleType.THRESHOLD,\n            ScaleType.LINEAR,\n            undefined\n        ], specifiedType);\n    }\n    return true;\n}\nfunction channelSupportScaleType(channel, scaleType) {\n    if (!_channel__WEBPACK_IMPORTED_MODULE_1__[\"isScaleChannel\"](channel)) {\n        return false;\n    }\n    switch (channel) {\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"X\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"Y\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"THETA\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"RADIUS\"]:\n            return isContinuousToContinuous(scaleType) || Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['band', 'point'], scaleType);\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"SIZE\"]: // TODO: size and opacity can support ordinal with more modification\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKEWIDTH\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"OPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"FILLOPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKEOPACITY\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"ANGLE\"]:\n            // Although it generally doesn't make sense to use band with size and opacity,\n            // it can also work since we use band: 0.5 to get midpoint.\n            return (isContinuousToContinuous(scaleType) ||\n                isContinuousToDiscrete(scaleType) ||\n                Object(_util__WEBPACK_IMPORTED_MODULE_4__[\"contains\"])(['band', 'point', 'ordinal'], scaleType));\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"COLOR\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"FILL\"]:\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKE\"]:\n            return scaleType !== 'band'; // band does not make sense with color\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"STROKEDASH\"]:\n            return scaleType === 'ordinal' || isContinuousToDiscrete(scaleType);\n        case _channel__WEBPACK_IMPORTED_MODULE_1__[\"SHAPE\"]:\n            return scaleType === 'ordinal'; // shape = lookup only\n    }\n}\n//# sourceMappingURL=scale.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/scale.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/selection.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/selection.js ***!
  \*******************************************************/
/*! exports provided: SELECTION_ID, defaultConfig, isLegendBinding, isLegendStreamBinding */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SELECTION_ID\", function() { return SELECTION_ID; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defaultConfig\", function() { return defaultConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLegendBinding\", function() { return isLegendBinding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLegendStreamBinding\", function() { return isLegendStreamBinding; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n\nconst SELECTION_ID = '_vgsid_';\nconst defaultConfig = {\n    single: {\n        on: 'click',\n        fields: [SELECTION_ID],\n        resolve: 'global',\n        empty: 'all',\n        clear: 'dblclick'\n    },\n    multi: {\n        on: 'click',\n        fields: [SELECTION_ID],\n        toggle: 'event.shiftKey',\n        resolve: 'global',\n        empty: 'all',\n        clear: 'dblclick'\n    },\n    interval: {\n        on: '[mousedown, window:mouseup] > window:mousemove!',\n        encodings: ['x', 'y'],\n        translate: '[mousedown, window:mouseup] > window:mousemove!',\n        zoom: 'wheel!',\n        mark: { fill: '#333', fillOpacity: 0.125, stroke: 'white' },\n        resolve: 'global',\n        clear: 'dblclick'\n    }\n};\nfunction isLegendBinding(bind) {\n    return !!bind && (bind === 'legend' || !!bind.legend);\n}\nfunction isLegendStreamBinding(bind) {\n    return isLegendBinding(bind) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(bind);\n}\n//# sourceMappingURL=selection.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/selection.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/sort.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/sort.js ***!
  \**************************************************/
/*! exports provided: DEFAULT_SORT_OP, isSortByChannel, isSortByEncoding, isSortField, isSortArray */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SORT_OP\", function() { return DEFAULT_SORT_OP; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSortByChannel\", function() { return isSortByChannel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSortByEncoding\", function() { return isSortByEncoding; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSortField\", function() { return isSortField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSortArray\", function() { return isSortArray; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n\nconst DEFAULT_SORT_OP = 'min';\nconst SORT_BY_CHANNEL_INDEX = {\n    x: 1,\n    y: 1,\n    color: 1,\n    fill: 1,\n    stroke: 1,\n    strokeWidth: 1,\n    size: 1,\n    shape: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    opacity: 1,\n    text: 1\n};\nfunction isSortByChannel(c) {\n    return c in SORT_BY_CHANNEL_INDEX;\n}\nfunction isSortByEncoding(sort) {\n    return !!sort && !!sort['encoding'];\n}\nfunction isSortField(sort) {\n    return !!sort && (sort['op'] === 'count' || !!sort['field']);\n}\nfunction isSortArray(sort) {\n    return !!sort && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(sort);\n}\n//# sourceMappingURL=sort.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/sort.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/base.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/base.js ***!
  \*******************************************************/
/*! exports provided: isStep, isFrameMixins, DEFAULT_SPACING, extractCompositionLayout */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isStep\", function() { return isStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFrameMixins\", function() { return isFrameMixins; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_SPACING\", function() { return DEFAULT_SPACING; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractCompositionLayout\", function() { return extractCompositionLayout; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ \"./node_modules/vega-lite/build/src/util.js\");\n/* harmony import */ var _concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./concat */ \"./node_modules/vega-lite/build/src/spec/concat.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n\n\n\n\nfunction isStep(size) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(size) && size['step'] !== undefined;\n}\nfunction isFrameMixins(o) {\n    return o['view'] || o['width'] || o['height'];\n}\nconst DEFAULT_SPACING = 20;\nconst COMPOSITION_LAYOUT_INDEX = {\n    align: 1,\n    bounds: 1,\n    center: 1,\n    columns: 1,\n    spacing: 1\n};\nconst COMPOSITION_LAYOUT_PROPERTIES = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(COMPOSITION_LAYOUT_INDEX);\nfunction extractCompositionLayout(spec, specType, config) {\n    var _a, _b;\n    const compositionConfig = config[specType];\n    const layout = {};\n    // Apply config first\n    const { spacing: spacingConfig, columns } = compositionConfig;\n    if (spacingConfig !== undefined) {\n        layout.spacing = spacingConfig;\n    }\n    if (columns !== undefined) {\n        if ((Object(_facet__WEBPACK_IMPORTED_MODULE_3__[\"isFacetSpec\"])(spec) && !Object(_facet__WEBPACK_IMPORTED_MODULE_3__[\"isFacetMapping\"])(spec.facet)) || Object(_concat__WEBPACK_IMPORTED_MODULE_2__[\"isConcatSpec\"])(spec)) {\n            layout.columns = columns;\n        }\n    }\n    if (Object(_concat__WEBPACK_IMPORTED_MODULE_2__[\"isVConcatSpec\"])(spec)) {\n        layout.columns = 1;\n    }\n    // Then copy properties from the spec\n    for (const prop of COMPOSITION_LAYOUT_PROPERTIES) {\n        if (spec[prop] !== undefined) {\n            if (prop === 'spacing') {\n                const spacing = spec[prop];\n                layout[prop] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(spacing)\n                    ? spacing\n                    : {\n                        row: (_a = spacing.row) !== null && _a !== void 0 ? _a : spacingConfig,\n                        column: (_b = spacing.column) !== null && _b !== void 0 ? _b : spacingConfig\n                    };\n            }\n            else {\n                layout[prop] = spec[prop];\n            }\n        }\n    }\n    return layout;\n}\n//# sourceMappingURL=base.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/base.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/concat.js":
/*!*********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/concat.js ***!
  \*********************************************************/
/*! exports provided: isAnyConcatSpec, isConcatSpec, isVConcatSpec, isHConcatSpec */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAnyConcatSpec\", function() { return isAnyConcatSpec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isConcatSpec\", function() { return isConcatSpec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVConcatSpec\", function() { return isVConcatSpec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isHConcatSpec\", function() { return isHConcatSpec; });\nfunction isAnyConcatSpec(spec) {\n    return isVConcatSpec(spec) || isHConcatSpec(spec) || isConcatSpec(spec);\n}\nfunction isConcatSpec(spec) {\n    return 'concat' in spec;\n}\nfunction isVConcatSpec(spec) {\n    return 'vconcat' in spec;\n}\nfunction isHConcatSpec(spec) {\n    return 'hconcat' in spec;\n}\n//# sourceMappingURL=concat.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/concat.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/facet.js":
/*!********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/facet.js ***!
  \********************************************************/
/*! exports provided: isFacetMapping, isFacetFieldDef, isFacetSpec */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFacetMapping\", function() { return isFacetMapping; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFacetFieldDef\", function() { return isFacetFieldDef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFacetSpec\", function() { return isFacetSpec; });\nfunction isFacetMapping(f) {\n    return 'row' in f || 'column' in f;\n}\nfunction isFacetFieldDef(channelDef) {\n    return !!channelDef && 'header' in channelDef;\n}\nfunction isFacetSpec(spec) {\n    return 'facet' in spec;\n}\n//# sourceMappingURL=facet.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/facet.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/index.js":
/*!********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/index.js ***!
  \********************************************************/
/*! exports provided: isAnyConcatSpec, isHConcatSpec, isVConcatSpec, isFacetSpec, isLayerSpec, isRepeatSpec, isUnitSpec */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./concat */ \"./node_modules/vega-lite/build/src/spec/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnyConcatSpec\", function() { return _concat__WEBPACK_IMPORTED_MODULE_0__[\"isAnyConcatSpec\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isHConcatSpec\", function() { return _concat__WEBPACK_IMPORTED_MODULE_0__[\"isHConcatSpec\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isVConcatSpec\", function() { return _concat__WEBPACK_IMPORTED_MODULE_0__[\"isVConcatSpec\"]; });\n\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isFacetSpec\", function() { return _facet__WEBPACK_IMPORTED_MODULE_1__[\"isFacetSpec\"]; });\n\n/* harmony import */ var _layer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layer */ \"./node_modules/vega-lite/build/src/spec/layer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isLayerSpec\", function() { return _layer__WEBPACK_IMPORTED_MODULE_2__[\"isLayerSpec\"]; });\n\n/* harmony import */ var _repeat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./repeat */ \"./node_modules/vega-lite/build/src/spec/repeat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isRepeatSpec\", function() { return _repeat__WEBPACK_IMPORTED_MODULE_3__[\"isRepeatSpec\"]; });\n\n/* harmony import */ var _unit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isUnitSpec\", function() { return _unit__WEBPACK_IMPORTED_MODULE_4__[\"isUnitSpec\"]; });\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/index.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/layer.js":
/*!********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/layer.js ***!
  \********************************************************/
/*! exports provided: isLayerSpec */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLayerSpec\", function() { return isLayerSpec; });\nfunction isLayerSpec(spec) {\n    return 'layer' in spec;\n}\n//# sourceMappingURL=layer.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/layer.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/map.js":
/*!******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/map.js ***!
  \******************************************************/
/*! exports provided: SpecMapper */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SpecMapper\", function() { return SpecMapper; });\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _concat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./concat */ \"./node_modules/vega-lite/build/src/spec/concat.js\");\n/* harmony import */ var _facet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./facet */ \"./node_modules/vega-lite/build/src/spec/facet.js\");\n/* harmony import */ var _layer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layer */ \"./node_modules/vega-lite/build/src/spec/layer.js\");\n/* harmony import */ var _repeat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./repeat */ \"./node_modules/vega-lite/build/src/spec/repeat.js\");\n/* harmony import */ var _unit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./unit */ \"./node_modules/vega-lite/build/src/spec/unit.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n\n\nclass SpecMapper {\n    map(spec, params) {\n        if (Object(_facet__WEBPACK_IMPORTED_MODULE_2__[\"isFacetSpec\"])(spec)) {\n            return this.mapFacet(spec, params);\n        }\n        else if (Object(_repeat__WEBPACK_IMPORTED_MODULE_4__[\"isRepeatSpec\"])(spec)) {\n            return this.mapRepeat(spec, params);\n        }\n        else if (Object(_concat__WEBPACK_IMPORTED_MODULE_1__[\"isHConcatSpec\"])(spec)) {\n            return this.mapHConcat(spec, params);\n        }\n        else if (Object(_concat__WEBPACK_IMPORTED_MODULE_1__[\"isVConcatSpec\"])(spec)) {\n            return this.mapVConcat(spec, params);\n        }\n        else if (Object(_concat__WEBPACK_IMPORTED_MODULE_1__[\"isConcatSpec\"])(spec)) {\n            return this.mapConcat(spec, params);\n        }\n        else {\n            return this.mapLayerOrUnit(spec, params);\n        }\n    }\n    mapLayerOrUnit(spec, params) {\n        if (Object(_layer__WEBPACK_IMPORTED_MODULE_3__[\"isLayerSpec\"])(spec)) {\n            return this.mapLayer(spec, params);\n        }\n        else if (Object(_unit__WEBPACK_IMPORTED_MODULE_5__[\"isUnitSpec\"])(spec)) {\n            return this.mapUnit(spec, params);\n        }\n        throw new Error(_log__WEBPACK_IMPORTED_MODULE_0__[\"message\"].invalidSpec(spec));\n    }\n    mapLayer(spec, params) {\n        return Object.assign(Object.assign({}, spec), { layer: spec.layer.map(subspec => this.mapLayerOrUnit(subspec, params)) });\n    }\n    mapHConcat(spec, params) {\n        return Object.assign(Object.assign({}, spec), { hconcat: spec.hconcat.map(subspec => this.map(subspec, params)) });\n    }\n    mapVConcat(spec, params) {\n        return Object.assign(Object.assign({}, spec), { vconcat: spec.vconcat.map(subspec => this.map(subspec, params)) });\n    }\n    mapConcat(spec, params) {\n        const { concat } = spec, rest = __rest(spec, [\"concat\"]);\n        return Object.assign(Object.assign({}, rest), { concat: concat.map(subspec => this.map(subspec, params)) });\n    }\n    mapFacet(spec, params) {\n        return Object.assign(Object.assign({}, spec), { \n            // TODO: remove \"any\" once we support all facet listed in https://github.com/vega/vega-lite/issues/2760\n            spec: this.map(spec.spec, params) });\n    }\n    mapRepeat(spec, params) {\n        return Object.assign(Object.assign({}, spec), { \n            // as any is required here since TS cannot infer that the output type satisfies the input type\n            spec: this.map(spec.spec, params) });\n    }\n}\n//# sourceMappingURL=map.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/map.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/repeat.js":
/*!*********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/repeat.js ***!
  \*********************************************************/
/*! exports provided: isRepeatSpec, isLayerRepeatSpec */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRepeatSpec\", function() { return isRepeatSpec; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLayerRepeatSpec\", function() { return isLayerRepeatSpec; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n\nfunction isRepeatSpec(spec) {\n    return 'repeat' in spec;\n}\nfunction isLayerRepeatSpec(spec) {\n    return !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(spec.repeat) && spec.repeat['layer'];\n}\n//# sourceMappingURL=repeat.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/repeat.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/toplevel.js":
/*!***********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/toplevel.js ***!
  \***********************************************************/
/*! exports provided: isFitType, getFitType, extractTopLevelProperties */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFitType\", function() { return isFitType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFitType\", function() { return getFitType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractTopLevelProperties\", function() { return extractTopLevelProperties; });\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _compile_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../compile/common */ \"./node_modules/vega-lite/build/src/compile/common.js\");\n\n\nfunction isFitType(autoSizeType) {\n    return autoSizeType === 'fit' || autoSizeType === 'fit-x' || autoSizeType === 'fit-y';\n}\nfunction getFitType(sizeType) {\n    return sizeType ? `fit-${Object(_channel__WEBPACK_IMPORTED_MODULE_0__[\"getPositionScaleChannel\"])(sizeType)}` : 'fit';\n}\nconst TOP_LEVEL_PROPERTIES = [\n    'background',\n    'padding'\n    // We do not include \"autosize\" here as it is supported by only unit and layer specs and thus need to be normalized\n];\nfunction extractTopLevelProperties(t, includeParams) {\n    const o = {};\n    for (const p of TOP_LEVEL_PROPERTIES) {\n        if (t && t[p] !== undefined) {\n            o[p] = Object(_compile_common__WEBPACK_IMPORTED_MODULE_1__[\"signalRefOrValue\"])(t[p]);\n        }\n    }\n    if (includeParams) {\n        o.params = t.params;\n    }\n    return o;\n}\n//# sourceMappingURL=toplevel.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/toplevel.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/spec/unit.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/spec/unit.js ***!
  \*******************************************************/
/*! exports provided: isUnitSpec */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUnitSpec\", function() { return isUnitSpec; });\nfunction isUnitSpec(spec) {\n    return 'mark' in spec;\n}\n//# sourceMappingURL=unit.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/spec/unit.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/stack.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-lite/build/src/stack.js ***!
  \***************************************************/
/*! exports provided: isStackOffset, STACKABLE_MARKS, STACK_BY_DEFAULT_MARKS, stack */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isStackOffset\", function() { return isStackOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STACKABLE_MARKS\", function() { return STACKABLE_MARKS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"STACK_BY_DEFAULT_MARKS\", function() { return STACK_BY_DEFAULT_MARKS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stack\", function() { return stack; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _aggregate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./aggregate */ \"./node_modules/vega-lite/build/src/aggregate.js\");\n/* harmony import */ var _channel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./channel */ \"./node_modules/vega-lite/build/src/channel.js\");\n/* harmony import */ var _channeldef__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./channeldef */ \"./node_modules/vega-lite/build/src/channeldef.js\");\n/* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./encoding */ \"./node_modules/vega-lite/build/src/encoding.js\");\n/* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./log */ \"./node_modules/vega-lite/build/src/log/index.js\");\n/* harmony import */ var _mark__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./mark */ \"./node_modules/vega-lite/build/src/mark.js\");\n/* harmony import */ var _scale__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./scale */ \"./node_modules/vega-lite/build/src/scale.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\n\n\n\n\n\n\n\nconst STACK_OFFSET_INDEX = {\n    zero: 1,\n    center: 1,\n    normalize: 1\n};\nfunction isStackOffset(s) {\n    return s in STACK_OFFSET_INDEX;\n}\nconst STACKABLE_MARKS = new Set([_mark__WEBPACK_IMPORTED_MODULE_6__[\"ARC\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"BAR\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"AREA\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"RULE\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"POINT\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"CIRCLE\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"SQUARE\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"LINE\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"TEXT\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"TICK\"]]);\nconst STACK_BY_DEFAULT_MARKS = new Set([_mark__WEBPACK_IMPORTED_MODULE_6__[\"BAR\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"AREA\"], _mark__WEBPACK_IMPORTED_MODULE_6__[\"ARC\"]]);\nfunction potentialStackedChannel(encoding, x) {\n    var _a, _b;\n    const y = x === 'x' ? 'y' : 'radius';\n    const xDef = encoding[x];\n    const yDef = encoding[y];\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(xDef) && Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(yDef)) {\n        if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"channelDefType\"])(xDef) === 'quantitative' && Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"channelDefType\"])(yDef) === 'quantitative') {\n            if (xDef.stack) {\n                return x;\n            }\n            else if (yDef.stack) {\n                return y;\n            }\n            const xAggregate = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(xDef) && !!xDef.aggregate;\n            const yAggregate = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(yDef) && !!yDef.aggregate;\n            // if there is no explicit stacking, only apply stack if there is only one aggregate for x or y\n            if (xAggregate !== yAggregate) {\n                return xAggregate ? x : y;\n            }\n            else {\n                const xScale = (_a = xDef.scale) === null || _a === void 0 ? void 0 : _a.type;\n                const yScale = (_b = yDef.scale) === null || _b === void 0 ? void 0 : _b.type;\n                if (xScale && xScale !== 'linear') {\n                    return y;\n                }\n                else if (yScale && yScale !== 'linear') {\n                    return x;\n                }\n            }\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"channelDefType\"])(xDef) === 'quantitative') {\n            return x;\n        }\n        else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"channelDefType\"])(yDef) === 'quantitative') {\n            return y;\n        }\n    }\n    else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"channelDefType\"])(xDef) === 'quantitative') {\n        return x;\n    }\n    else if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"channelDefType\"])(yDef) === 'quantitative') {\n        return y;\n    }\n    return undefined;\n}\nfunction getDimensionChannel(channel) {\n    switch (channel) {\n        case 'x':\n            return 'y';\n        case 'y':\n            return 'x';\n        case 'theta':\n            return 'radius';\n        case 'radius':\n            return 'theta';\n    }\n}\n// Note: CompassQL uses this method and only pass in required properties of each argument object.\n// If required properties change, make sure to update CompassQL.\nfunction stack(m, encoding, opt = {}) {\n    const mark = Object(_mark__WEBPACK_IMPORTED_MODULE_6__[\"isMarkDef\"])(m) ? m.type : m;\n    // Should have stackable mark\n    if (!STACKABLE_MARKS.has(mark)) {\n        return null;\n    }\n    // Run potential stacked twice, one for Cartesian and another for Polar,\n    // so text marks can be stacked in any of the coordinates.\n    // Note: The logic here is not perfectly correct.  If we want to support stacked dot plots where each dot is a pie chart with label, we have to change the stack logic here to separate Cartesian stacking for polar stacking.\n    // However, since we probably never want to do that, let's just note the limitation here.\n    const fieldChannel = potentialStackedChannel(encoding, 'x') || potentialStackedChannel(encoding, 'theta');\n    if (!fieldChannel) {\n        return null;\n    }\n    const stackedFieldDef = encoding[fieldChannel];\n    const stackedField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(stackedFieldDef) ? Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(stackedFieldDef, {}) : undefined;\n    let dimensionChannel = getDimensionChannel(fieldChannel);\n    let dimensionDef = encoding[dimensionChannel];\n    let dimensionField = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(dimensionDef) ? Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(dimensionDef, {}) : undefined;\n    // avoid grouping by the stacked field\n    if (dimensionField === stackedField) {\n        dimensionField = undefined;\n        dimensionDef = undefined;\n        dimensionChannel = undefined;\n    }\n    // Should have grouping level of detail that is different from the dimension field\n    const stackBy = _channel__WEBPACK_IMPORTED_MODULE_2__[\"NONPOSITION_CHANNELS\"].reduce((sc, channel) => {\n        // Ignore tooltip in stackBy (https://github.com/vega/vega-lite/issues/4001)\n        if (channel !== 'tooltip' && Object(_encoding__WEBPACK_IMPORTED_MODULE_4__[\"channelHasField\"])(encoding, channel)) {\n            const channelDef = encoding[channel];\n            for (const cDef of Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(channelDef)) {\n                const fieldDef = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"getFieldDef\"])(cDef);\n                if (fieldDef.aggregate) {\n                    continue;\n                }\n                // Check whether the channel's field is identical to x/y's field or if the channel is a repeat\n                const f = Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"vgField\"])(fieldDef, {});\n                if (\n                // if fielddef is a repeat, just include it in the stack by\n                !f ||\n                    // otherwise, the field must be different from x and y fields.\n                    f !== dimensionField) {\n                    sc.push({ channel, fieldDef });\n                }\n            }\n        }\n        return sc;\n    }, []);\n    // Automatically determine offset\n    let offset;\n    if (stackedFieldDef.stack !== undefined) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"])(stackedFieldDef.stack)) {\n            offset = stackedFieldDef.stack ? 'zero' : null;\n        }\n        else {\n            offset = stackedFieldDef.stack;\n        }\n    }\n    else if (stackBy.length > 0 && STACK_BY_DEFAULT_MARKS.has(mark)) {\n        // Bar and Area with sum ops are automatically stacked by default\n        offset = 'zero';\n    }\n    if (!offset || !isStackOffset(offset)) {\n        return null;\n    }\n    if (Object(_encoding__WEBPACK_IMPORTED_MODULE_4__[\"isAggregate\"])(encoding) && stackBy.length === 0) {\n        return null;\n    }\n    // warn when stacking non-linear\n    if (stackedFieldDef.scale && stackedFieldDef.scale.type && stackedFieldDef.scale.type !== _scale__WEBPACK_IMPORTED_MODULE_7__[\"ScaleType\"].LINEAR) {\n        if (opt.disallowNonLinearStack) {\n            return null;\n        }\n        else {\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].cannotStackNonLinearScale(stackedFieldDef.scale.type));\n        }\n    }\n    // Check if it is a ranged mark\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldOrDatumDef\"])(encoding[Object(_channel__WEBPACK_IMPORTED_MODULE_2__[\"getSecondaryRangeChannel\"])(fieldChannel)])) {\n        if (stackedFieldDef.stack !== undefined) {\n            _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].cannotStackRangedMark(fieldChannel));\n        }\n        return null;\n    }\n    // Warn if stacking non-summative aggregate\n    if (Object(_channeldef__WEBPACK_IMPORTED_MODULE_3__[\"isFieldDef\"])(stackedFieldDef) && stackedFieldDef.aggregate && !Object(_util__WEBPACK_IMPORTED_MODULE_8__[\"contains\"])(_aggregate__WEBPACK_IMPORTED_MODULE_1__[\"SUM_OPS\"], stackedFieldDef.aggregate)) {\n        _log__WEBPACK_IMPORTED_MODULE_5__[\"warn\"](_log__WEBPACK_IMPORTED_MODULE_5__[\"message\"].stackNonSummativeAggregate(stackedFieldDef.aggregate));\n    }\n    return {\n        groupbyChannel: dimensionDef ? dimensionChannel : undefined,\n        groupbyField: dimensionField,\n        fieldChannel,\n        impute: stackedFieldDef.impute === null ? false : Object(_mark__WEBPACK_IMPORTED_MODULE_6__[\"isPathMark\"])(mark),\n        stackBy,\n        offset\n    };\n}\n//# sourceMappingURL=stack.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/stack.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/timeunit.js":
/*!******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/timeunit.js ***!
  \******************************************************/
/*! exports provided: LOCAL_SINGLE_TIMEUNIT_INDEX, TIMEUNIT_PARTS, isLocalSingleTimeUnit, UTC_SINGLE_TIMEUNIT_INDEX, LOCAL_MULTI_TIMEUNIT_INDEX, UTC_MULTI_TIMEUNIT_INDEX, isUTCTimeUnit, getLocalTimeUnit, VEGALITE_TIMEFORMAT, getTimeUnitParts, containsTimeUnit, fieldExpr, timeUnitSpecifierExpression, formatExpression, normalizeTimeUnit, timeUnitToString */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCAL_SINGLE_TIMEUNIT_INDEX\", function() { return LOCAL_SINGLE_TIMEUNIT_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TIMEUNIT_PARTS\", function() { return TIMEUNIT_PARTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLocalSingleTimeUnit\", function() { return isLocalSingleTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UTC_SINGLE_TIMEUNIT_INDEX\", function() { return UTC_SINGLE_TIMEUNIT_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LOCAL_MULTI_TIMEUNIT_INDEX\", function() { return LOCAL_MULTI_TIMEUNIT_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UTC_MULTI_TIMEUNIT_INDEX\", function() { return UTC_MULTI_TIMEUNIT_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isUTCTimeUnit\", function() { return isUTCTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocalTimeUnit\", function() { return getLocalTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VEGALITE_TIMEFORMAT\", function() { return VEGALITE_TIMEFORMAT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTimeUnitParts\", function() { return getTimeUnitParts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"containsTimeUnit\", function() { return containsTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldExpr\", function() { return fieldExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeUnitSpecifierExpression\", function() { return timeUnitSpecifierExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatExpression\", function() { return formatExpression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeTimeUnit\", function() { return normalizeTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeUnitToString\", function() { return timeUnitToString; });\n/* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-json-stable-stringify */ \"./node_modules/fast-json-stable-stringify/index.js\");\n/* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datetime */ \"./node_modules/vega-lite/build/src/datetime.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\n\n\n/** Time Unit that only corresponds to only one part of Date objects. */\nconst LOCAL_SINGLE_TIMEUNIT_INDEX = {\n    year: 1,\n    quarter: 1,\n    month: 1,\n    week: 1,\n    day: 1,\n    dayofyear: 1,\n    date: 1,\n    hours: 1,\n    minutes: 1,\n    seconds: 1,\n    milliseconds: 1\n};\nconst TIMEUNIT_PARTS = Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(LOCAL_SINGLE_TIMEUNIT_INDEX);\nfunction isLocalSingleTimeUnit(timeUnit) {\n    return !!LOCAL_SINGLE_TIMEUNIT_INDEX[timeUnit];\n}\nconst UTC_SINGLE_TIMEUNIT_INDEX = {\n    utcyear: 1,\n    utcquarter: 1,\n    utcmonth: 1,\n    utcweek: 1,\n    utcday: 1,\n    utcdayofyear: 1,\n    utcdate: 1,\n    utchours: 1,\n    utcminutes: 1,\n    utcseconds: 1,\n    utcmilliseconds: 1\n};\nconst LOCAL_MULTI_TIMEUNIT_INDEX = {\n    yearquarter: 1,\n    yearquartermonth: 1,\n    yearmonth: 1,\n    yearmonthdate: 1,\n    yearmonthdatehours: 1,\n    yearmonthdatehoursminutes: 1,\n    yearmonthdatehoursminutesseconds: 1,\n    yearweek: 1,\n    yearweekday: 1,\n    yearweekdayhours: 1,\n    yearweekdayhoursminutes: 1,\n    yearweekdayhoursminutesseconds: 1,\n    yeardayofyear: 1,\n    quartermonth: 1,\n    monthdate: 1,\n    monthdatehours: 1,\n    monthdatehoursminutes: 1,\n    monthdatehoursminutesseconds: 1,\n    weekday: 1,\n    weeksdayhours: 1,\n    weekdayhoursminutes: 1,\n    weekdayhoursminutesseconds: 1,\n    dayhours: 1,\n    dayhoursminutes: 1,\n    dayhoursminutesseconds: 1,\n    hoursminutes: 1,\n    hoursminutesseconds: 1,\n    minutesseconds: 1,\n    secondsmilliseconds: 1\n};\nconst UTC_MULTI_TIMEUNIT_INDEX = {\n    utcyearquarter: 1,\n    utcyearquartermonth: 1,\n    utcyearmonth: 1,\n    utcyearmonthdate: 1,\n    utcyearmonthdatehours: 1,\n    utcyearmonthdatehoursminutes: 1,\n    utcyearmonthdatehoursminutesseconds: 1,\n    utcyearweek: 1,\n    utcyearweekday: 1,\n    utcyearweekdayhours: 1,\n    utcyearweekdayhoursminutes: 1,\n    utcyearweekdayhoursminutesseconds: 1,\n    utcyeardayofyear: 1,\n    utcquartermonth: 1,\n    utcmonthdate: 1,\n    utcmonthdatehours: 1,\n    utcmonthdatehoursminutes: 1,\n    utcmonthdatehoursminutesseconds: 1,\n    utcweekday: 1,\n    utcweeksdayhours: 1,\n    utcweekdayhoursminutes: 1,\n    utcweekdayhoursminutesseconds: 1,\n    utcdayhours: 1,\n    utcdayhoursminutes: 1,\n    utcdayhoursminutesseconds: 1,\n    utchoursminutes: 1,\n    utchoursminutesseconds: 1,\n    utcminutesseconds: 1,\n    utcsecondsmilliseconds: 1\n};\nfunction isUTCTimeUnit(t) {\n    return t.startsWith('utc');\n}\nfunction getLocalTimeUnit(t) {\n    return t.substr(3);\n}\n// In order of increasing specificity\nconst VEGALITE_TIMEFORMAT = {\n    'year-month': '%b %Y ',\n    'year-month-date': '%b %d, %Y '\n};\nfunction getTimeUnitParts(timeUnit) {\n    const parts = [];\n    for (const part of TIMEUNIT_PARTS) {\n        if (containsTimeUnit(timeUnit, part)) {\n            parts.push(part);\n        }\n    }\n    return parts;\n}\n/** Returns true if fullTimeUnit contains the timeUnit, false otherwise. */\nfunction containsTimeUnit(fullTimeUnit, timeUnit) {\n    const index = fullTimeUnit.indexOf(timeUnit);\n    if (index < 0) {\n        return false;\n    }\n    // exclude milliseconds\n    if (index > 0 && timeUnit === 'seconds' && fullTimeUnit.charAt(index - 1) === 'i') {\n        return false;\n    }\n    // exclude dayofyear\n    if (fullTimeUnit.length > index + 3 && timeUnit === 'day' && fullTimeUnit.charAt(index + 3) === 'o') {\n        return false;\n    }\n    if (index > 0 && timeUnit === 'year' && fullTimeUnit.charAt(index - 1) === 'f') {\n        return false;\n    }\n    return true;\n}\n/**\n * Returns Vega expression for a given timeUnit and fieldRef\n */\nfunction fieldExpr(fullTimeUnit, field, { end } = { end: false }) {\n    const fieldRef = Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"accessPathWithDatum\"])(field);\n    const utc = isUTCTimeUnit(fullTimeUnit) ? 'utc' : '';\n    function func(timeUnit) {\n        if (timeUnit === 'quarter') {\n            // quarter starting at 0 (0,3,6,9).\n            return `(${utc}quarter(${fieldRef})-1)`;\n        }\n        else {\n            return `${utc}${timeUnit}(${fieldRef})`;\n        }\n    }\n    let lastTimeUnit;\n    const dateExpr = {};\n    for (const part of TIMEUNIT_PARTS) {\n        if (containsTimeUnit(fullTimeUnit, part)) {\n            dateExpr[part] = func(part);\n            lastTimeUnit = part;\n        }\n    }\n    if (end) {\n        dateExpr[lastTimeUnit] += '+1';\n    }\n    return Object(_datetime__WEBPACK_IMPORTED_MODULE_2__[\"dateTimeExprToExpr\"])(dateExpr);\n}\nfunction timeUnitSpecifierExpression(timeUnit) {\n    if (!timeUnit) {\n        return undefined;\n    }\n    const timeUnitParts = getTimeUnitParts(timeUnit);\n    return `timeUnitSpecifier(${fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default()(timeUnitParts)}, ${fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default()(VEGALITE_TIMEFORMAT)})`;\n}\n/**\n * Returns the signal expression used for axis labels for a time unit.\n */\nfunction formatExpression(timeUnit, field, isUTCScale) {\n    if (!timeUnit) {\n        return undefined;\n    }\n    const expr = timeUnitSpecifierExpression(timeUnit);\n    // We only use utcFormat for utc scale\n    // For utc time units, the data is already converted as a part of timeUnit transform.\n    // Thus, utc time units should use timeFormat to avoid shifting the time twice.\n    const utc = isUTCScale || isUTCTimeUnit(timeUnit);\n    return `${utc ? 'utc' : 'time'}Format(${field}, ${expr})`;\n}\nfunction normalizeTimeUnit(timeUnit) {\n    if (!timeUnit) {\n        return undefined;\n    }\n    let params;\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(timeUnit)) {\n        params = {\n            unit: timeUnit\n        };\n    }\n    else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(timeUnit)) {\n        params = Object.assign(Object.assign({}, timeUnit), (timeUnit.unit ? { unit: timeUnit.unit } : {}));\n    }\n    if (isUTCTimeUnit(params.unit)) {\n        params.utc = true;\n        params.unit = getLocalTimeUnit(params.unit);\n    }\n    return params;\n}\nfunction timeUnitToString(tu) {\n    const _a = normalizeTimeUnit(tu), { utc } = _a, rest = __rest(_a, [\"utc\"]);\n    if (rest.unit) {\n        return ((utc ? 'utc' : '') +\n            Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(rest)\n                .map(p => Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(`${p === 'unit' ? '' : `_${p}_`}${rest[p]}`))\n                .join(''));\n    }\n    else {\n        // when maxbins is specified instead of units\n        return ((utc ? 'utc' : '') +\n            'timeunit' +\n            Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"keys\"])(rest)\n                .map(p => Object(_util__WEBPACK_IMPORTED_MODULE_3__[\"varName\"])(`_${p}_${rest[p]}`))\n                .join(''));\n    }\n}\n//# sourceMappingURL=timeunit.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/timeunit.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/title.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-lite/build/src/title.js ***!
  \***************************************************/
/*! exports provided: extractTitleConfig, isText */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractTitleConfig\", function() { return extractTitleConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isText\", function() { return isText; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                t[p[i]] = s[p[i]];\n        }\n    return t;\n};\n\n\nfunction extractTitleConfig(titleConfig) {\n    const { \n    // These are non-mark title config that need to be hardcoded\n    anchor, frame, offset, orient, \n    // color needs to be redirect to fill\n    color, \n    // subtitle properties\n    subtitleColor, subtitleFont, subtitleFontSize, subtitleFontStyle, subtitleFontWeight, subtitleLineHeight, subtitlePadding } = titleConfig, \n    // The rest are mark config.\n    rest = __rest(titleConfig, [\"anchor\", \"frame\", \"offset\", \"orient\", \"color\", \"subtitleColor\", \"subtitleFont\", \"subtitleFontSize\", \"subtitleFontStyle\", \"subtitleFontWeight\", \"subtitleLineHeight\", \"subtitlePadding\"]);\n    const titleMarkConfig = Object.assign(Object.assign({}, rest), (color ? { fill: color } : {}));\n    // These are non-mark title config that need to be hardcoded\n    const nonMark = Object.assign(Object.assign(Object.assign(Object.assign({}, (anchor ? { anchor } : {})), (frame ? { frame } : {})), (offset ? { offset } : {})), (orient ? { orient } : {}));\n    // subtitle part can stay in config.title since header titles do not use subtitle\n    const subtitle = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (subtitleColor ? { subtitleColor } : {})), (subtitleFont ? { subtitleFont } : {})), (subtitleFontSize ? { subtitleFontSize } : {})), (subtitleFontStyle ? { subtitleFontStyle } : {})), (subtitleFontWeight ? { subtitleFontWeight } : {})), (subtitleLineHeight ? { subtitleLineHeight } : {})), (subtitlePadding ? { subtitlePadding } : {}));\n    const subtitleMarkConfig = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"pick\"])(titleMarkConfig, ['align', 'baseline', 'dx', 'dy', 'limit']);\n    return { titleMarkConfig, subtitleMarkConfig, nonMark, subtitle };\n}\nfunction isText(v) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(v) || (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(v) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(v[0]));\n}\n//# sourceMappingURL=title.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/title.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/transform.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-lite/build/src/transform.js ***!
  \*******************************************************/
/*! exports provided: isFilter, isImputeSequence, isLookup, isLookupData, isLookupSelection, isPivot, isDensity, isQuantile, isRegression, isLoess, isSample, isWindow, isJoinAggregate, isFlatten, isCalculate, isBin, isImpute, isTimeUnit, isAggregate, isStack, isFold, normalizeTransform */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFilter\", function() { return isFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImputeSequence\", function() { return isImputeSequence; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLookup\", function() { return isLookup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLookupData\", function() { return isLookupData; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLookupSelection\", function() { return isLookupSelection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPivot\", function() { return isPivot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDensity\", function() { return isDensity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isQuantile\", function() { return isQuantile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRegression\", function() { return isRegression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLoess\", function() { return isLoess; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSample\", function() { return isSample; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isWindow\", function() { return isWindow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isJoinAggregate\", function() { return isJoinAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFlatten\", function() { return isFlatten; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCalculate\", function() { return isCalculate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBin\", function() { return isBin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isImpute\", function() { return isImpute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTimeUnit\", function() { return isTimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAggregate\", function() { return isAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isStack\", function() { return isStack; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFold\", function() { return isFold; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeTransform\", function() { return normalizeTransform; });\n/* harmony import */ var _logical__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logical */ \"./node_modules/vega-lite/build/src/logical.js\");\n/* harmony import */ var _predicate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./predicate */ \"./node_modules/vega-lite/build/src/predicate.js\");\n\n\nfunction isFilter(t) {\n    return 'filter' in t;\n}\nfunction isImputeSequence(t) {\n    return (t === null || t === void 0 ? void 0 : t['stop']) !== undefined;\n}\nfunction isLookup(t) {\n    return 'lookup' in t;\n}\nfunction isLookupData(from) {\n    return 'data' in from;\n}\nfunction isLookupSelection(from) {\n    return 'selection' in from;\n}\nfunction isPivot(t) {\n    return 'pivot' in t;\n}\nfunction isDensity(t) {\n    return 'density' in t;\n}\nfunction isQuantile(t) {\n    return 'quantile' in t;\n}\nfunction isRegression(t) {\n    return 'regression' in t;\n}\nfunction isLoess(t) {\n    return 'loess' in t;\n}\nfunction isSample(t) {\n    return 'sample' in t;\n}\nfunction isWindow(t) {\n    return 'window' in t;\n}\nfunction isJoinAggregate(t) {\n    return 'joinaggregate' in t;\n}\nfunction isFlatten(t) {\n    return 'flatten' in t;\n}\nfunction isCalculate(t) {\n    return 'calculate' in t;\n}\nfunction isBin(t) {\n    return 'bin' in t;\n}\nfunction isImpute(t) {\n    return 'impute' in t;\n}\nfunction isTimeUnit(t) {\n    return 'timeUnit' in t;\n}\nfunction isAggregate(t) {\n    return 'aggregate' in t;\n}\nfunction isStack(t) {\n    return 'stack' in t;\n}\nfunction isFold(t) {\n    return 'fold' in t;\n}\nfunction normalizeTransform(transform) {\n    return transform.map(t => {\n        if (isFilter(t)) {\n            return {\n                filter: Object(_logical__WEBPACK_IMPORTED_MODULE_0__[\"normalizeLogicalComposition\"])(t.filter, _predicate__WEBPACK_IMPORTED_MODULE_1__[\"normalizePredicate\"])\n            };\n        }\n        return t;\n    });\n}\n//# sourceMappingURL=transform.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/transform.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/type.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/type.js ***!
  \**************************************************/
/*! exports provided: Type, isType, QUANTITATIVE, ORDINAL, TEMPORAL, NOMINAL, GEOJSON, TYPES, getFullName */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Type\", function() { return Type; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isType\", function() { return isType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QUANTITATIVE\", function() { return QUANTITATIVE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ORDINAL\", function() { return ORDINAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TEMPORAL\", function() { return TEMPORAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"NOMINAL\", function() { return NOMINAL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GEOJSON\", function() { return GEOJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TYPES\", function() { return TYPES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFullName\", function() { return getFullName; });\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n/**\n * Data type based on level of measurement\n */\nconst Type = {\n    quantitative: 'quantitative',\n    ordinal: 'ordinal',\n    temporal: 'temporal',\n    nominal: 'nominal',\n    geojson: 'geojson'\n};\nfunction isType(t) {\n    return t in Type;\n}\nconst QUANTITATIVE = Type.quantitative;\nconst ORDINAL = Type.ordinal;\nconst TEMPORAL = Type.temporal;\nconst NOMINAL = Type.nominal;\nconst GEOJSON = Type.geojson;\nconst TYPES = Object(_util__WEBPACK_IMPORTED_MODULE_0__[\"keys\"])(Type);\n/**\n * Get full, lowercase type name for a given type.\n * @param  type\n * @return Full type name.\n */\nfunction getFullName(type) {\n    if (type) {\n        type = type.toLowerCase();\n        switch (type) {\n            case 'q':\n            case QUANTITATIVE:\n                return 'quantitative';\n            case 't':\n            case TEMPORAL:\n                return 'temporal';\n            case 'o':\n            case ORDINAL:\n                return 'ordinal';\n            case 'n':\n            case NOMINAL:\n                return 'nominal';\n            case GEOJSON:\n                return 'geojson';\n        }\n    }\n    // If we get invalid input, return undefined type.\n    return undefined;\n}\n//# sourceMappingURL=type.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/type.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/util.js":
/*!**************************************************!*\
  !*** ./node_modules/vega-lite/build/src/util.js ***!
  \**************************************************/
/*! exports provided: deepEqual, duplicate, pick, omit, stringify, hash, isNullOrFalse, contains, some, every, mergeDeep, unique, isEqual, setEqual, hasIntersection, prefixGenerator, fieldIntersection, isEmpty, keys, vals, entries, isBoolean, varName, logicalExpr, deleteNestedProperty, titleCase, accessPathWithDatum, flatAccessWithDatum, replacePathInField, replaceAll, removePathFromField, accessPathDepth, getFirstDefined, uniqueId, resetIdCounter, internalField, isInternalField, normalizeAngle, isNumeric */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepEqual\", function() { return deepEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"duplicate\", function() { return duplicate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pick\", function() { return pick; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"omit\", function() { return omit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringify\", function() { return stringify; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hash\", function() { return hash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNullOrFalse\", function() { return isNullOrFalse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"contains\", function() { return contains; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return some; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return every; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeDeep\", function() { return mergeDeep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique\", function() { return unique; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEqual\", function() { return isEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setEqual\", function() { return setEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasIntersection\", function() { return hasIntersection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prefixGenerator\", function() { return prefixGenerator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fieldIntersection\", function() { return fieldIntersection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return isEmpty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keys\", function() { return keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vals\", function() { return vals; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"entries\", function() { return entries; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoolean\", function() { return isBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"varName\", function() { return varName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logicalExpr\", function() { return logicalExpr; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deleteNestedProperty\", function() { return deleteNestedProperty; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"titleCase\", function() { return titleCase; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessPathWithDatum\", function() { return accessPathWithDatum; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flatAccessWithDatum\", function() { return flatAccessWithDatum; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replacePathInField\", function() { return replacePathInField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceAll\", function() { return replaceAll; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removePathFromField\", function() { return removePathFromField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessPathDepth\", function() { return accessPathDepth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getFirstDefined\", function() { return getFirstDefined; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"uniqueId\", function() { return uniqueId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetIdCounter\", function() { return resetIdCounter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"internalField\", function() { return internalField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInternalField\", function() { return isInternalField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"normalizeAngle\", function() { return normalizeAngle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumeric\", function() { return isNumeric; });\n/* harmony import */ var array_flat_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! array-flat-polyfill */ \"./node_modules/array-flat-polyfill/index.mjs\");\n/* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clone */ \"./node_modules/clone/clone.js\");\n/* harmony import */ var clone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(clone__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var fast_deep_equal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fast-deep-equal */ \"./node_modules/fast-deep-equal/index.js\");\n/* harmony import */ var fast_deep_equal__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fast_deep_equal__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! fast-json-stable-stringify */ \"./node_modules/fast-json-stable-stringify/index.js\");\n/* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _logical__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./logical */ \"./node_modules/vega-lite/build/src/logical.js\");\n\n\n\n\n\n\nconst deepEqual = fast_deep_equal__WEBPACK_IMPORTED_MODULE_2___default.a;\nconst duplicate = clone__WEBPACK_IMPORTED_MODULE_1___default.a;\n/**\n * Creates an object composed of the picked object properties.\n *\n * var object = {'a': 1, 'b': '2', 'c': 3};\n * pick(object, ['a', 'c']);\n * // → {'a': 1, 'c': 3}\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction pick(obj, props) {\n    const copy = {};\n    for (const prop of props) {\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"hasOwnProperty\"])(obj, prop)) {\n            copy[prop] = obj[prop];\n        }\n    }\n    return copy;\n}\n/**\n * The opposite of _.pick; this method creates an object composed of the own\n * and inherited enumerable string keyed properties of object that are not omitted.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction omit(obj, props) {\n    const copy = Object.assign({}, obj);\n    for (const prop of props) {\n        delete copy[prop];\n    }\n    return copy;\n}\n/**\n * Monkey patch Set so that `stringify` produces a string representation of sets.\n */\nSet.prototype['toJSON'] = function () {\n    return `Set(${[...this].map(x => fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default()(x)).join(',')})`;\n};\n/**\n * Converts any object to a string representation that can be consumed by humans.\n */\nconst stringify = fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default.a;\n/**\n * Converts any object to a string of limited size, or a number.\n */\nfunction hash(a) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"isNumber\"])(a)) {\n        return a;\n    }\n    const str = Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"isString\"])(a) ? a : fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default()(a);\n    // short strings can be used as hash directly, longer strings are hashed to reduce memory usage\n    if (str.length < 250) {\n        return str;\n    }\n    // from http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/\n    let h = 0;\n    for (let i = 0; i < str.length; i++) {\n        const char = str.charCodeAt(i);\n        h = (h << 5) - h + char;\n        h = h & h; // Convert to 32bit integer\n    }\n    return h;\n}\nfunction isNullOrFalse(x) {\n    return x === false || x === null;\n}\nfunction contains(array, item) {\n    return array.indexOf(item) > -1;\n}\n/**\n * Returns true if any item returns true.\n */\nfunction some(arr, f) {\n    let i = 0;\n    for (const [k, a] of arr.entries()) {\n        if (f(a, k, i++)) {\n            return true;\n        }\n    }\n    return false;\n}\n/**\n * Returns true if all items return true.\n */\nfunction every(arr, f) {\n    let i = 0;\n    for (const [k, a] of arr.entries()) {\n        if (!f(a, k, i++)) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * recursively merges src into dest\n */\nfunction mergeDeep(dest, ...src) {\n    for (const s of src) {\n        deepMerge_(dest, s !== null && s !== void 0 ? s : {});\n    }\n    return dest;\n}\nfunction deepMerge_(dest, src) {\n    for (const property of keys(src)) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"writeConfig\"])(dest, property, src[property], true);\n    }\n}\nfunction unique(values, f) {\n    const results = [];\n    const u = {};\n    let v;\n    for (const val of values) {\n        v = f(val);\n        if (v in u) {\n            continue;\n        }\n        u[v] = 1;\n        results.push(val);\n    }\n    return results;\n}\n/**\n * Returns true if the two dictionaries disagree. Applies only to defined values.\n */\nfunction isEqual(dict, other) {\n    const dictKeys = keys(dict);\n    const otherKeys = keys(other);\n    if (dictKeys.length !== otherKeys.length) {\n        return false;\n    }\n    for (const key of dictKeys) {\n        if (dict[key] !== other[key]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction setEqual(a, b) {\n    if (a.size !== b.size) {\n        return false;\n    }\n    for (const e of a) {\n        if (!b.has(e)) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction hasIntersection(a, b) {\n    for (const key of a) {\n        if (b.has(key)) {\n            return true;\n        }\n    }\n    return false;\n}\nfunction prefixGenerator(a) {\n    const prefixes = new Set();\n    for (const x of a) {\n        const splitField = Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"splitAccessPath\"])(x);\n        // Wrap every element other than the first in `[]`\n        const wrappedWithAccessors = splitField.map((y, i) => (i === 0 ? y : `[${y}]`));\n        const computedPrefixes = wrappedWithAccessors.map((_, i) => wrappedWithAccessors.slice(0, i + 1).join(''));\n        for (const y of computedPrefixes) {\n            prefixes.add(y);\n        }\n    }\n    return prefixes;\n}\n/**\n * Returns true if a and b have an intersection. Also return true if a or b are undefined\n * since this means we don't know what fields a node produces or depends on.\n */\nfunction fieldIntersection(a, b) {\n    if (a === undefined || b === undefined) {\n        return true;\n    }\n    return hasIntersection(prefixGenerator(a), prefixGenerator(b));\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isEmpty(obj) {\n    return keys(obj).length === 0;\n}\n// This is a stricter version of Object.keys but with better types. See https://github.com/Microsoft/TypeScript/pull/12253#issuecomment-263132208\nconst keys = Object.keys;\nconst vals = Object.values;\nconst entries = Object.entries;\nfunction isBoolean(b) {\n    return b === true || b === false;\n}\n/**\n * Convert a string into a valid variable name\n */\nfunction varName(s) {\n    // Replace non-alphanumeric characters (anything besides a-zA-Z0-9_) with _\n    const alphanumericS = s.replace(/\\W/g, '_');\n    // Add _ if the string has leading numbers.\n    return (s.match(/^\\d+/) ? '_' : '') + alphanumericS;\n}\nfunction logicalExpr(op, cb) {\n    if (Object(_logical__WEBPACK_IMPORTED_MODULE_5__[\"isLogicalNot\"])(op)) {\n        return '!(' + logicalExpr(op.not, cb) + ')';\n    }\n    else if (Object(_logical__WEBPACK_IMPORTED_MODULE_5__[\"isLogicalAnd\"])(op)) {\n        return '(' + op.and.map((and) => logicalExpr(and, cb)).join(') && (') + ')';\n    }\n    else if (Object(_logical__WEBPACK_IMPORTED_MODULE_5__[\"isLogicalOr\"])(op)) {\n        return '(' + op.or.map((or) => logicalExpr(or, cb)).join(') || (') + ')';\n    }\n    else {\n        return cb(op);\n    }\n}\n/**\n * Delete nested property of an object, and delete the ancestors of the property if they become empty.\n */\nfunction deleteNestedProperty(obj, orderedProps) {\n    if (orderedProps.length === 0) {\n        return true;\n    }\n    const prop = orderedProps.shift(); // eslint-disable-line @typescript-eslint/no-non-null-assertion\n    if (prop in obj && deleteNestedProperty(obj[prop], orderedProps)) {\n        delete obj[prop];\n    }\n    return isEmpty(obj);\n}\nfunction titleCase(s) {\n    return s.charAt(0).toUpperCase() + s.substr(1);\n}\n/**\n * Converts a path to an access path with datum.\n * @param path The field name.\n * @param datum The string to use for `datum`.\n */\nfunction accessPathWithDatum(path, datum = 'datum') {\n    const pieces = Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"splitAccessPath\"])(path);\n    const prefixes = [];\n    for (let i = 1; i <= pieces.length; i++) {\n        const prefix = `[${pieces.slice(0, i).map(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"stringValue\"]).join('][')}]`;\n        prefixes.push(`${datum}${prefix}`);\n    }\n    return prefixes.join(' && ');\n}\n/**\n * Return access with datum to the flattened field.\n *\n * @param path The field name.\n * @param datum The string to use for `datum`.\n */\nfunction flatAccessWithDatum(path, datum = 'datum') {\n    return `${datum}[${Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"stringValue\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"splitAccessPath\"])(path).join('.'))}]`;\n}\nfunction escapePathAccess(string) {\n    return string.replace(/(\\[|\\]|\\.|'|\")/g, '\\\\$1');\n}\n/**\n * Replaces path accesses with access to non-nested field.\n * For example, `foo[\"bar\"].baz` becomes `foo\\\\.bar\\\\.baz`.\n */\nfunction replacePathInField(path) {\n    return `${Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"splitAccessPath\"])(path).map(escapePathAccess).join('\\\\.')}`;\n}\n/**\n * Replace all occurrences of a string with another string.\n *\n * @param string the string to replace in\n * @param find the string to replace\n * @param replacement the replacement\n */\nfunction replaceAll(string, find, replacement) {\n    return string.replace(new RegExp(find.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'g'), replacement);\n}\n/**\n * Remove path accesses with access from field.\n * For example, `foo[\"bar\"].baz` becomes `foo.bar.baz`.\n */\nfunction removePathFromField(path) {\n    return `${Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"splitAccessPath\"])(path).join('.')}`;\n}\n/**\n * Count the depth of the path. Returns 1 for fields that are not nested.\n */\nfunction accessPathDepth(path) {\n    if (!path) {\n        return 0;\n    }\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"splitAccessPath\"])(path).length;\n}\n/**\n * This is a replacement for chained || for numeric properties or properties that respect null so that 0 will be included.\n */\nfunction getFirstDefined(...args) {\n    for (const arg of args) {\n        if (arg !== undefined) {\n            return arg;\n        }\n    }\n    return undefined;\n}\n// variable used to generate id\nlet idCounter = 42;\n/**\n * Returns a new random id every time it gets called.\n *\n * Has side effect!\n */\nfunction uniqueId(prefix) {\n    const id = ++idCounter;\n    return prefix ? String(prefix) + id : id;\n}\n/**\n * Resets the id counter used in uniqueId. This can be useful for testing.\n */\nfunction resetIdCounter() {\n    idCounter = 42;\n}\nfunction internalField(name) {\n    return isInternalField(name) ? name : `__${name}`;\n}\nfunction isInternalField(name) {\n    return name.indexOf('__') === 0;\n}\n/**\n * Normalize angle to be within [0,360).\n */\nfunction normalizeAngle(angle) {\n    if (angle === undefined) {\n        return undefined;\n    }\n    return ((angle % 360) + 360) % 360;\n}\n/**\n * Returns whether the passed in value is a valid number.\n */\nfunction isNumeric(value) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_4__[\"isNumber\"])(value)) {\n        return true;\n    }\n    return !isNaN(value) && !isNaN(parseFloat(value));\n}\n//# sourceMappingURL=util.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/util.js?");

/***/ }),

/***/ "./node_modules/vega-lite/build/src/vega.schema.js":
/*!*********************************************************!*\
  !*** ./node_modules/vega-lite/build/src/vega.schema.js ***!
  \*********************************************************/
/*! exports provided: isSignalRef, isVgRangeStep, isDataRefUnionedDomain, isFieldRefUnionDomain, isDataRefDomain, VG_MARK_CONFIGS, VG_MARK_INDEX, VG_CORNERRADIUS_CHANNELS */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isSignalRef\", function() { return isSignalRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isVgRangeStep\", function() { return isVgRangeStep; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDataRefUnionedDomain\", function() { return isDataRefUnionedDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFieldRefUnionDomain\", function() { return isFieldRefUnionDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDataRefDomain\", function() { return isDataRefDomain; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VG_MARK_CONFIGS\", function() { return VG_MARK_CONFIGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VG_MARK_INDEX\", function() { return VG_MARK_INDEX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VG_CORNERRADIUS_CHANNELS\", function() { return VG_CORNERRADIUS_CHANNELS; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ \"./node_modules/vega-lite/build/src/util.js\");\n\n\nfunction isSignalRef(o) {\n    return o && !!o['signal'];\n}\nfunction isVgRangeStep(range) {\n    return !!range['step'];\n}\nfunction isDataRefUnionedDomain(domain) {\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(domain)) {\n        return 'fields' in domain && !('data' in domain);\n    }\n    return false;\n}\nfunction isFieldRefUnionDomain(domain) {\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(domain)) {\n        return 'fields' in domain && 'data' in domain;\n    }\n    return false;\n}\nfunction isDataRefDomain(domain) {\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(domain)) {\n        return 'field' in domain && 'data' in domain;\n    }\n    return false;\n}\nconst VG_MARK_CONFIG_INDEX = {\n    aria: 1,\n    description: 1,\n    ariaRole: 1,\n    ariaRoleDescription: 1,\n    blend: 1,\n    opacity: 1,\n    fill: 1,\n    fillOpacity: 1,\n    stroke: 1,\n    strokeCap: 1,\n    strokeWidth: 1,\n    strokeOpacity: 1,\n    strokeDash: 1,\n    strokeDashOffset: 1,\n    strokeJoin: 1,\n    strokeOffset: 1,\n    strokeMiterLimit: 1,\n    startAngle: 1,\n    endAngle: 1,\n    padAngle: 1,\n    innerRadius: 1,\n    outerRadius: 1,\n    size: 1,\n    shape: 1,\n    interpolate: 1,\n    tension: 1,\n    orient: 1,\n    align: 1,\n    baseline: 1,\n    text: 1,\n    dir: 1,\n    dx: 1,\n    dy: 1,\n    ellipsis: 1,\n    limit: 1,\n    radius: 1,\n    theta: 1,\n    angle: 1,\n    font: 1,\n    fontSize: 1,\n    fontWeight: 1,\n    fontStyle: 1,\n    lineBreak: 1,\n    lineHeight: 1,\n    cursor: 1,\n    href: 1,\n    tooltip: 1,\n    cornerRadius: 1,\n    cornerRadiusTopLeft: 1,\n    cornerRadiusTopRight: 1,\n    cornerRadiusBottomLeft: 1,\n    cornerRadiusBottomRight: 1,\n    aspect: 1,\n    width: 1,\n    height: 1,\n    url: 1,\n    smooth: 1\n    // commented below are vg channel that do not have mark config.\n    // x: 1,\n    // y: 1,\n    // x2: 1,\n    // y2: 1,\n    // xc'|'yc'\n    // clip: 1,\n    // path: 1,\n    // url: 1,\n};\nconst VG_MARK_CONFIGS = Object(_util__WEBPACK_IMPORTED_MODULE_1__[\"keys\"])(VG_MARK_CONFIG_INDEX);\nconst VG_MARK_INDEX = {\n    arc: 1,\n    area: 1,\n    group: 1,\n    image: 1,\n    line: 1,\n    path: 1,\n    rect: 1,\n    rule: 1,\n    shape: 1,\n    symbol: 1,\n    text: 1,\n    trail: 1\n};\n// Vega's cornerRadius channels.\nconst VG_CORNERRADIUS_CHANNELS = [\n    'cornerRadius',\n    'cornerRadiusTopLeft',\n    'cornerRadiusTopRight',\n    'cornerRadiusBottomLeft',\n    'cornerRadiusBottomRight'\n];\n//# sourceMappingURL=vega.schema.js.map\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/build/src/vega.schema.js?");

/***/ }),

/***/ "./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js":
/*!*********************************************************************************!*\
  !*** ./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js ***!
  \*********************************************************************************/
/*! exports provided: Debug, Error, Info, None, Warn, accessor, accessorFields, accessorName, array, ascending, clampRange, compare, constant, debounce, error, extend, extent, extentIndex, falsy, fastmap, field, flush, hasOwnProperty, id, identity, inherits, inrange, isArray, isBoolean, isDate, isFunction, isNumber, isObject, isRegExp, isString, key, lerp, logger, lruCache, merge, mergeConfig, one, pad, panLinear, panLog, panPow, panSymlog, peek, quarter, repeat, span, splitAccessPath, stringValue, toBoolean, toDate, toNumber, toSet, toString, truncate, truthy, utcquarter, visitArray, writeConfig, zero, zoomLinear, zoomLog, zoomPow, zoomSymlog */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Debug\", function() { return Debug; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Error\", function() { return Error$1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Info\", function() { return Info; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"None\", function() { return None; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Warn\", function() { return Warn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessor\", function() { return accessor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessorFields\", function() { return accessorFields; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessorName\", function() { return accessorName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return array; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ascending\", function() { return ascending; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clampRange\", function() { return clampRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compare\", function() { return compare; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"constant\", function() { return constant; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"error\", function() { return error; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extend\", function() { return extend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extent\", function() { return extent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extentIndex\", function() { return extentIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"falsy\", function() { return falsy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fastmap\", function() { return fastmap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"field\", function() { return field; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flush\", function() { return flush; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"id\", function() { return id; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inherits\", function() { return inherits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inrange\", function() { return inrange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return isArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoolean\", function() { return isBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return isDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumber\", function() { return isNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRegExp\", function() { return isRegExp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return isString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"key\", function() { return key; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lerp\", function() { return lerp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logger\", function() { return logger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lruCache\", function() { return lruCache; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeConfig\", function() { return mergeConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"one\", function() { return one; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pad\", function() { return pad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panLinear\", function() { return panLinear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panLog\", function() { return panLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panPow\", function() { return panPow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panSymlog\", function() { return panSymlog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"peek\", function() { return peek; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quarter\", function() { return quarter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return repeat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"span\", function() { return span; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splitAccessPath\", function() { return splitAccessPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringValue\", function() { return $; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toBoolean\", function() { return toBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toDate\", function() { return toDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toNumber\", function() { return toNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toSet\", function() { return toSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return toString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truthy\", function() { return truthy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcquarter\", function() { return utcquarter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"visitArray\", function() { return visitArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"writeConfig\", function() { return writeConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zero\", function() { return zero; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomLinear\", function() { return zoomLinear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomLog\", function() { return zoomLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomPow\", function() { return zoomPow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomSymlog\", function() { return zoomSymlog; });\nfunction accessor (fn, fields, name) {\n  fn.fields = fields || [];\n  fn.fname = name;\n  return fn;\n}\nfunction accessorName(fn) {\n  return fn == null ? null : fn.fname;\n}\nfunction accessorFields(fn) {\n  return fn == null ? null : fn.fields;\n}\n\nfunction getter (path) {\n  return path.length === 1 ? get1(path[0]) : getN(path);\n}\n\nconst get1 = field => function (obj) {\n  return obj[field];\n};\n\nconst getN = path => {\n  const len = path.length;\n  return function (obj) {\n    for (let i = 0; i < len; ++i) {\n      obj = obj[path[i]];\n    }\n\n    return obj;\n  };\n};\n\nfunction error (message) {\n  throw Error(message);\n}\n\nfunction splitAccessPath (p) {\n  const path = [],\n        n = p.length;\n  let q = null,\n      b = 0,\n      s = '',\n      i,\n      j,\n      c;\n  p = p + '';\n\n  function push() {\n    path.push(s + p.substring(i, j));\n    s = '';\n    i = j + 1;\n  }\n\n  for (i = j = 0; j < n; ++j) {\n    c = p[j];\n\n    if (c === '\\\\') {\n      s += p.substring(i, j);\n      s += p.substring(++j, ++j);\n      i = j;\n    } else if (c === q) {\n      push();\n      q = null;\n      b = -1;\n    } else if (q) {\n      continue;\n    } else if (i === b && c === '\"') {\n      i = j + 1;\n      q = c;\n    } else if (i === b && c === \"'\") {\n      i = j + 1;\n      q = c;\n    } else if (c === '.' && !b) {\n      if (j > i) {\n        push();\n      } else {\n        i = j + 1;\n      }\n    } else if (c === '[') {\n      if (j > i) push();\n      b = i = j + 1;\n    } else if (c === ']') {\n      if (!b) error('Access path missing open bracket: ' + p);\n      if (b > 0) push();\n      b = 0;\n      i = j + 1;\n    }\n  }\n\n  if (b) error('Access path missing closing bracket: ' + p);\n  if (q) error('Access path missing closing quote: ' + p);\n\n  if (j > i) {\n    j++;\n    push();\n  }\n\n  return path;\n}\n\nfunction field (field, name, opt) {\n  const path = splitAccessPath(field);\n  field = path.length === 1 ? path[0] : field;\n  return accessor((opt && opt.get || getter)(path), [field], name || field);\n}\n\nconst id = field('id');\nconst identity = accessor(_ => _, [], 'identity');\nconst zero = accessor(() => 0, [], 'zero');\nconst one = accessor(() => 1, [], 'one');\nconst truthy = accessor(() => true, [], 'true');\nconst falsy = accessor(() => false, [], 'false');\n\nfunction log(method, level, input) {\n  const args = [level].concat([].slice.call(input));\n  console[method].apply(console, args); // eslint-disable-line no-console\n}\n\nconst None = 0;\nconst Error$1 = 1;\nconst Warn = 2;\nconst Info = 3;\nconst Debug = 4;\nfunction logger (_, method) {\n  let level = _ || None;\n  return {\n    level(_) {\n      if (arguments.length) {\n        level = +_;\n        return this;\n      } else {\n        return level;\n      }\n    },\n\n    error() {\n      if (level >= Error$1) log(method || 'error', 'ERROR', arguments);\n      return this;\n    },\n\n    warn() {\n      if (level >= Warn) log(method || 'warn', 'WARN', arguments);\n      return this;\n    },\n\n    info() {\n      if (level >= Info) log(method || 'log', 'INFO', arguments);\n      return this;\n    },\n\n    debug() {\n      if (level >= Debug) log(method || 'log', 'DEBUG', arguments);\n      return this;\n    }\n\n  };\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (_) {\n  return _ === Object(_);\n}\n\nconst isLegalKey = key => key !== '__proto__';\n\nfunction mergeConfig(...configs) {\n  return configs.reduce((out, source) => {\n    for (const key in source) {\n      if (key === 'signals') {\n        // for signals, we merge the signals arrays\n        // source signals take precedence over\n        // existing signals with the same name\n        out.signals = mergeNamed(out.signals, source.signals);\n      } else {\n        // otherwise, merge objects subject to recursion constraints\n        // for legend block, recurse for the layout entry only\n        // for style block, recurse for all properties\n        // otherwise, no recursion: objects overwrite, no merging\n        const r = key === 'legend' ? {\n          layout: 1\n        } : key === 'style' ? true : null;\n        writeConfig(out, key, source[key], r);\n      }\n    }\n\n    return out;\n  }, {});\n}\nfunction writeConfig(output, key, value, recurse) {\n  if (!isLegalKey(key)) return;\n  let k, o;\n\n  if (isObject(value) && !isArray(value)) {\n    o = isObject(output[key]) ? output[key] : output[key] = {};\n\n    for (k in value) {\n      if (recurse && (recurse === true || recurse[k])) {\n        writeConfig(o, k, value[k]);\n      } else if (isLegalKey(k)) {\n        o[k] = value[k];\n      }\n    }\n  } else {\n    output[key] = value;\n  }\n}\n\nfunction mergeNamed(a, b) {\n  if (a == null) return b;\n  const map = {},\n        out = [];\n\n  function add(_) {\n    if (!map[_.name]) {\n      map[_.name] = 1;\n      out.push(_);\n    }\n  }\n\n  b.forEach(add);\n  a.forEach(add);\n  return out;\n}\n\nfunction peek (array) {\n  return array[array.length - 1];\n}\n\nfunction toNumber (_) {\n  return _ == null || _ === '' ? null : +_;\n}\n\nconst exp = sign => x => sign * Math.exp(x);\n\nconst log$1 = sign => x => Math.log(sign * x);\n\nconst symlog = c => x => Math.sign(x) * Math.log1p(Math.abs(x / c));\n\nconst symexp = c => x => Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n\nconst pow = exponent => x => x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n\nfunction pan(domain, delta, lift, ground) {\n  const d0 = lift(domain[0]),\n        d1 = lift(peek(domain)),\n        dd = (d1 - d0) * delta;\n  return [ground(d0 - dd), ground(d1 - dd)];\n}\n\nfunction panLinear(domain, delta) {\n  return pan(domain, delta, toNumber, identity);\n}\nfunction panLog(domain, delta) {\n  var sign = Math.sign(domain[0]);\n  return pan(domain, delta, log$1(sign), exp(sign));\n}\nfunction panPow(domain, delta, exponent) {\n  return pan(domain, delta, pow(exponent), pow(1 / exponent));\n}\nfunction panSymlog(domain, delta, constant) {\n  return pan(domain, delta, symlog(constant), symexp(constant));\n}\n\nfunction zoom(domain, anchor, scale, lift, ground) {\n  const d0 = lift(domain[0]),\n        d1 = lift(peek(domain)),\n        da = anchor != null ? lift(anchor) : (d0 + d1) / 2;\n  return [ground(da + (d0 - da) * scale), ground(da + (d1 - da) * scale)];\n}\n\nfunction zoomLinear(domain, anchor, scale) {\n  return zoom(domain, anchor, scale, toNumber, identity);\n}\nfunction zoomLog(domain, anchor, scale) {\n  const sign = Math.sign(domain[0]);\n  return zoom(domain, anchor, scale, log$1(sign), exp(sign));\n}\nfunction zoomPow(domain, anchor, scale, exponent) {\n  return zoom(domain, anchor, scale, pow(exponent), pow(1 / exponent));\n}\nfunction zoomSymlog(domain, anchor, scale, constant) {\n  return zoom(domain, anchor, scale, symlog(constant), symexp(constant));\n}\n\nfunction quarter(date) {\n  return 1 + ~~(new Date(date).getMonth() / 3);\n}\nfunction utcquarter(date) {\n  return 1 + ~~(new Date(date).getUTCMonth() / 3);\n}\n\nfunction array (_) {\n  return _ != null ? isArray(_) ? _ : [_] : [];\n}\n\n/**\n * Span-preserving range clamp. If the span of the input range is less\n * than (max - min) and an endpoint exceeds either the min or max value,\n * the range is translated such that the span is preserved and one\n * endpoint touches the boundary of the min/max range.\n * If the span exceeds (max - min), the range [min, max] is returned.\n */\nfunction clampRange (range, min, max) {\n  let lo = range[0],\n      hi = range[1],\n      span;\n\n  if (hi < lo) {\n    span = hi;\n    hi = lo;\n    lo = span;\n  }\n\n  span = hi - lo;\n  return span >= max - min ? [min, max] : [lo = Math.min(Math.max(lo, min), max - span), lo + span];\n}\n\nfunction isFunction (_) {\n  return typeof _ === 'function';\n}\n\nconst DESCENDING = 'descending';\nfunction compare (fields, orders, opt) {\n  opt = opt || {};\n  orders = array(orders) || [];\n  const ord = [],\n        get = [],\n        fmap = {},\n        gen = opt.comparator || comparator;\n  array(fields).forEach((f, i) => {\n    if (f == null) return;\n    ord.push(orders[i] === DESCENDING ? -1 : 1);\n    get.push(f = isFunction(f) ? f : field(f, null, opt));\n    (accessorFields(f) || []).forEach(_ => fmap[_] = 1);\n  });\n  return get.length === 0 ? null : accessor(gen(get, ord), Object.keys(fmap));\n}\nconst ascending = (u, v) => (u < v || u == null) && v != null ? -1 : (u > v || v == null) && u != null ? 1 : (v = v instanceof Date ? +v : v, u = u instanceof Date ? +u : u) !== u && v === v ? -1 : v !== v && u === u ? 1 : 0;\n\nconst comparator = (fields, orders) => fields.length === 1 ? compare1(fields[0], orders[0]) : compareN(fields, orders, fields.length);\n\nconst compare1 = (field, order) => function (a, b) {\n  return ascending(field(a), field(b)) * order;\n};\n\nconst compareN = (fields, orders, n) => {\n  orders.push(0); // pad zero for convenient lookup\n\n  return function (a, b) {\n    let f,\n        c = 0,\n        i = -1;\n\n    while (c === 0 && ++i < n) {\n      f = fields[i];\n      c = ascending(f(a), f(b));\n    }\n\n    return c * orders[i];\n  };\n};\n\nfunction constant (_) {\n  return isFunction(_) ? _ : () => _;\n}\n\nfunction debounce (delay, handler) {\n  let tid;\n  return e => {\n    if (tid) clearTimeout(tid);\n    tid = setTimeout(() => (handler(e), tid = null), delay);\n  };\n}\n\nfunction extend (_) {\n  for (let x, k, i = 1, len = arguments.length; i < len; ++i) {\n    x = arguments[i];\n\n    for (k in x) {\n      _[k] = x[k];\n    }\n  }\n\n  return _;\n}\n\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nfunction extent (array, f) {\n  let i = 0,\n      n,\n      v,\n      min,\n      max;\n\n  if (array && (n = array.length)) {\n    if (f == null) {\n      // find first valid value\n      for (v = array[i]; i < n && (v == null || v !== v); v = array[++i]);\n\n      min = max = v; // visit all other values\n\n      for (; i < n; ++i) {\n        v = array[i]; // skip null/undefined; NaN will fail all comparisons\n\n        if (v != null) {\n          if (v < min) min = v;\n          if (v > max) max = v;\n        }\n      }\n    } else {\n      // find first valid value\n      for (v = f(array[i]); i < n && (v == null || v !== v); v = f(array[++i]));\n\n      min = max = v; // visit all other values\n\n      for (; i < n; ++i) {\n        v = f(array[i]); // skip null/undefined; NaN will fail all comparisons\n\n        if (v != null) {\n          if (v < min) min = v;\n          if (v > max) max = v;\n        }\n      }\n    }\n  }\n\n  return [min, max];\n}\n\nfunction extentIndex (array, f) {\n  const n = array.length;\n  let i = -1,\n      a,\n      b,\n      c,\n      u,\n      v;\n\n  if (f == null) {\n    while (++i < n) {\n      b = array[i];\n\n      if (b != null && b >= b) {\n        a = c = b;\n        break;\n      }\n    }\n\n    if (i === n) return [-1, -1];\n    u = v = i;\n\n    while (++i < n) {\n      b = array[i];\n\n      if (b != null) {\n        if (a > b) {\n          a = b;\n          u = i;\n        }\n\n        if (c < b) {\n          c = b;\n          v = i;\n        }\n      }\n    }\n  } else {\n    while (++i < n) {\n      b = f(array[i], i, array);\n\n      if (b != null && b >= b) {\n        a = c = b;\n        break;\n      }\n    }\n\n    if (i === n) return [-1, -1];\n    u = v = i;\n\n    while (++i < n) {\n      b = f(array[i], i, array);\n\n      if (b != null) {\n        if (a > b) {\n          a = b;\n          u = i;\n        }\n\n        if (c < b) {\n          c = b;\n          v = i;\n        }\n      }\n    }\n  }\n\n  return [u, v];\n}\n\nconst hop = Object.prototype.hasOwnProperty;\nfunction has (object, property) {\n  return hop.call(object, property);\n}\n\nconst NULL = {};\nfunction fastmap (input) {\n  let obj = {},\n      test;\n\n  function has$1(key) {\n    return has(obj, key) && obj[key] !== NULL;\n  }\n\n  const map = {\n    size: 0,\n    empty: 0,\n    object: obj,\n    has: has$1,\n\n    get(key) {\n      return has$1(key) ? obj[key] : undefined;\n    },\n\n    set(key, value) {\n      if (!has$1(key)) {\n        ++map.size;\n        if (obj[key] === NULL) --map.empty;\n      }\n\n      obj[key] = value;\n      return this;\n    },\n\n    delete(key) {\n      if (has$1(key)) {\n        --map.size;\n        ++map.empty;\n        obj[key] = NULL;\n      }\n\n      return this;\n    },\n\n    clear() {\n      map.size = map.empty = 0;\n      map.object = obj = {};\n    },\n\n    test(_) {\n      if (arguments.length) {\n        test = _;\n        return map;\n      } else {\n        return test;\n      }\n    },\n\n    clean() {\n      const next = {};\n      let size = 0;\n\n      for (const key in obj) {\n        const value = obj[key];\n\n        if (value !== NULL && (!test || !test(value))) {\n          next[key] = value;\n          ++size;\n        }\n      }\n\n      map.size = size;\n      map.empty = 0;\n      map.object = obj = next;\n    }\n\n  };\n  if (input) Object.keys(input).forEach(key => {\n    map.set(key, input[key]);\n  });\n  return map;\n}\n\nfunction flush (range, value, threshold, left, right, center) {\n  if (!threshold && threshold !== 0) return center;\n  const t = +threshold;\n  let a = range[0],\n      b = peek(range),\n      l; // swap endpoints if range is reversed\n\n  if (b < a) {\n    l = a;\n    a = b;\n    b = l;\n  } // compare value to endpoints\n\n\n  l = Math.abs(value - a);\n  const r = Math.abs(b - value); // adjust if value is within threshold distance of endpoint\n\n  return l < r && l <= t ? left : r <= t ? right : center;\n}\n\nfunction inherits (child, parent, members) {\n  const proto = child.prototype = Object.create(parent.prototype);\n  proto.constructor = child;\n  return extend(proto, members);\n}\n\n/**\n * Predicate that returns true if the value lies within the span\n * of the given range. The left and right flags control the use\n * of inclusive (true) or exclusive (false) comparisons.\n */\nfunction inrange (value, range, left, right) {\n  let r0 = range[0],\n      r1 = range[range.length - 1],\n      t;\n\n  if (r0 > r1) {\n    t = r0;\n    r0 = r1;\n    r1 = t;\n  }\n\n  left = left === undefined || left;\n  right = right === undefined || right;\n  return (left ? r0 <= value : r0 < value) && (right ? value <= r1 : value < r1);\n}\n\nfunction isBoolean (_) {\n  return typeof _ === 'boolean';\n}\n\nfunction isDate (_) {\n  return Object.prototype.toString.call(_) === '[object Date]';\n}\n\nfunction isNumber (_) {\n  return typeof _ === 'number';\n}\n\nfunction isRegExp (_) {\n  return Object.prototype.toString.call(_) === '[object RegExp]';\n}\n\nfunction isString (_) {\n  return typeof _ === 'string';\n}\n\nfunction key (fields, flat, opt) {\n  if (fields) {\n    fields = flat ? array(fields).map(f => f.replace(/\\\\(.)/g, '$1')) : array(fields);\n  }\n\n  const len = fields && fields.length,\n        gen = opt && opt.get || getter,\n        map = f => gen(flat ? [f] : splitAccessPath(f));\n\n  let fn;\n\n  if (!len) {\n    fn = function () {\n      return '';\n    };\n  } else if (len === 1) {\n    const get = map(fields[0]);\n\n    fn = function (_) {\n      return '' + get(_);\n    };\n  } else {\n    const get = fields.map(map);\n\n    fn = function (_) {\n      let s = '' + get[0](_),\n          i = 0;\n\n      while (++i < len) s += '|' + get[i](_);\n\n      return s;\n    };\n  }\n\n  return accessor(fn, fields, 'key');\n}\n\nfunction lerp (array, frac) {\n  const lo = array[0],\n        hi = peek(array),\n        f = +frac;\n  return !f ? lo : f === 1 ? hi : lo + f * (hi - lo);\n}\n\nconst DEFAULT_MAX_SIZE = 10000; // adapted from https://github.com/dominictarr/hashlru/ (MIT License)\n\nfunction lruCache (maxsize) {\n  maxsize = +maxsize || DEFAULT_MAX_SIZE;\n  let curr, prev, size;\n\n  const clear = () => {\n    curr = {};\n    prev = {};\n    size = 0;\n  };\n\n  const update = (key, value) => {\n    if (++size > maxsize) {\n      prev = curr;\n      curr = {};\n      size = 1;\n    }\n\n    return curr[key] = value;\n  };\n\n  clear();\n  return {\n    clear,\n    has: key => has(curr, key) || has(prev, key),\n    get: key => has(curr, key) ? curr[key] : has(prev, key) ? update(key, prev[key]) : undefined,\n    set: (key, value) => has(curr, key) ? curr[key] = value : update(key, value)\n  };\n}\n\nfunction merge (compare, array0, array1, output) {\n  const n0 = array0.length,\n        n1 = array1.length;\n  if (!n1) return array0;\n  if (!n0) return array1;\n  const merged = output || new array0.constructor(n0 + n1);\n  let i0 = 0,\n      i1 = 0,\n      i = 0;\n\n  for (; i0 < n0 && i1 < n1; ++i) {\n    merged[i] = compare(array0[i0], array1[i1]) > 0 ? array1[i1++] : array0[i0++];\n  }\n\n  for (; i0 < n0; ++i0, ++i) {\n    merged[i] = array0[i0];\n  }\n\n  for (; i1 < n1; ++i1, ++i) {\n    merged[i] = array1[i1];\n  }\n\n  return merged;\n}\n\nfunction repeat (str, reps) {\n  let s = '';\n\n  while (--reps >= 0) s += str;\n\n  return s;\n}\n\nfunction pad (str, length, padchar, align) {\n  const c = padchar || ' ',\n        s = str + '',\n        n = length - s.length;\n  return n <= 0 ? s : align === 'left' ? repeat(c, n) + s : align === 'center' ? repeat(c, ~~(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);\n}\n\n/**\n * Return the numerical span of an array: the difference between\n * the last and first values.\n */\n\nfunction span (array) {\n  return array && peek(array) - array[0] || 0;\n}\n\nfunction $(x) {\n  return isArray(x) ? '[' + x.map($) + ']' : isObject(x) || isString(x) ? // Output valid JSON and JS source strings.\n  // See http://timelessrepo.com/json-isnt-a-javascript-subset\n  JSON.stringify(x).replace('\\u2028', '\\\\u2028').replace('\\u2029', '\\\\u2029') : x;\n}\n\nfunction toBoolean (_) {\n  return _ == null || _ === '' ? null : !_ || _ === 'false' || _ === '0' ? false : !!_;\n}\n\nconst defaultParser = _ => isNumber(_) ? _ : isDate(_) ? _ : Date.parse(_);\n\nfunction toDate (_, parser) {\n  parser = parser || defaultParser;\n  return _ == null || _ === '' ? null : parser(_);\n}\n\nfunction toString (_) {\n  return _ == null || _ === '' ? null : _ + '';\n}\n\nfunction toSet (_) {\n  const s = {},\n        n = _.length;\n\n  for (let i = 0; i < n; ++i) s[_[i]] = true;\n\n  return s;\n}\n\nfunction truncate (str, length, align, ellipsis) {\n  const e = ellipsis != null ? ellipsis : '\\u2026',\n        s = str + '',\n        n = s.length,\n        l = Math.max(0, length - e.length);\n  return n <= length ? s : align === 'left' ? e + s.slice(n - l) : align === 'center' ? s.slice(0, Math.ceil(l / 2)) + e + s.slice(n - ~~(l / 2)) : s.slice(0, l) + e;\n}\n\nfunction visitArray (array, filter, visitor) {\n  if (array) {\n    if (filter) {\n      const n = array.length;\n\n      for (let i = 0; i < n; ++i) {\n        const t = filter(array[i]);\n        if (t) visitor(t, i, array);\n      }\n    } else {\n      array.forEach(visitor);\n    }\n  }\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-lite/node_modules/vega-util/build/vega-util.module.js?");

/***/ }),

/***/ "./node_modules/vega-loader/index.browser.js":
/*!***************************************************!*\
  !*** ./node_modules/vega-loader/index.browser.js ***!
  \***************************************************/
/*! exports provided: loader, read, inferType, inferTypes, typeParsers, format, formats, responseType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loader\", function() { return loader; });\n/* harmony import */ var _src_loader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./src/loader */ \"./node_modules/vega-loader/src/loader.js\");\n/* harmony import */ var _src_read__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./src/read */ \"./node_modules/vega-loader/src/read.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"read\", function() { return _src_read__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _src_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./src/type */ \"./node_modules/vega-loader/src/type.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inferType\", function() { return _src_type__WEBPACK_IMPORTED_MODULE_2__[\"inferType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inferTypes\", function() { return _src_type__WEBPACK_IMPORTED_MODULE_2__[\"inferTypes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"typeParsers\", function() { return _src_type__WEBPACK_IMPORTED_MODULE_2__[\"typeParsers\"]; });\n\n/* harmony import */ var _src_formats_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/formats/index */ \"./node_modules/vega-loader/src/formats/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return _src_formats_index__WEBPACK_IMPORTED_MODULE_3__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formats\", function() { return _src_formats_index__WEBPACK_IMPORTED_MODULE_3__[\"formats\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"responseType\", function() { return _src_formats_index__WEBPACK_IMPORTED_MODULE_3__[\"responseType\"]; });\n\n\n\nconst loader = Object(_src_loader__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\n  typeof fetch !== 'undefined' && fetch, // use built-in fetch API\n  null // no file system access\n);\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/index.browser.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/formats/dsv.js":
/*!*****************************************************!*\
  !*** ./node_modules/vega-loader/src/formats/dsv.js ***!
  \*****************************************************/
/*! exports provided: delimitedFormat, default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"delimitedFormat\", function() { return delimitedFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return dsv; });\n/* harmony import */ var d3_dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-dsv */ \"./node_modules/d3-dsv/src/index.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\nfunction delimitedFormat(delimiter) {\n  const parse = function(data, format) {\n    const delim = {delimiter: delimiter};\n    return dsv(data, format ? Object(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"extend\"])(format, delim) : delim);\n  };\n\n  parse.responseType = 'text';\n\n  return parse;\n}\n\nfunction dsv(data, format) {\n  if (format.header) {\n    data = format.header\n      .map(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"stringValue\"])\n      .join(format.delimiter) + '\\n' + data;\n  }\n  return Object(d3_dsv__WEBPACK_IMPORTED_MODULE_0__[\"dsvFormat\"])(format.delimiter).parse(data + '');\n}\n\ndsv.responseType = 'text';\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/formats/dsv.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/formats/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/vega-loader/src/formats/index.js ***!
  \*******************************************************/
/*! exports provided: format, formats, responseType */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formats\", function() { return formats; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"responseType\", function() { return responseType; });\n/* harmony import */ var _dsv__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dsv */ \"./node_modules/vega-loader/src/formats/dsv.js\");\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./json */ \"./node_modules/vega-loader/src/formats/json.js\");\n/* harmony import */ var _topojson__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./topojson */ \"./node_modules/vega-loader/src/formats/topojson.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\n\nconst format = {\n  dsv: _dsv__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n  csv: Object(_dsv__WEBPACK_IMPORTED_MODULE_0__[\"delimitedFormat\"])(','),\n  tsv: Object(_dsv__WEBPACK_IMPORTED_MODULE_0__[\"delimitedFormat\"])('\\t'),\n  json: _json__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  topojson: _topojson__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n};\n\nfunction formats(name, reader) {\n  if (arguments.length > 1) {\n    format[name] = reader;\n    return this;\n  } else {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"hasOwnProperty\"])(format, name) ? format[name] : null;\n  }\n}\n\nfunction responseType(type) {\n  const f = formats(type);\n  return f && f.responseType || 'text';\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/formats/index.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/formats/json.js":
/*!******************************************************!*\
  !*** ./node_modules/vega-loader/src/formats/json.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return json; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\nfunction isBuffer(_) {\n  return (typeof Buffer === 'function' && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(Buffer.isBuffer))\n    ? Buffer.isBuffer(_) : false;\n}\n\nfunction json(data, format) {\n  const prop = (format && format.property) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"])(format.property) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"];\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(data) && !isBuffer(data)\n    ? parseJSON(prop(data), format)\n    : prop(JSON.parse(data));\n}\n\njson.responseType = 'json';\n\nfunction parseJSON(data, format) {\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(data) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isIterable\"])(data)) {\n    data = [...data];\n  }\n  return (format && format.copy)\n    ? JSON.parse(JSON.stringify(data))\n    : data;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/formats/json.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/formats/topojson.js":
/*!**********************************************************!*\
  !*** ./node_modules/vega-loader/src/formats/topojson.js ***!
  \**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return topojson; });\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./json */ \"./node_modules/vega-loader/src/formats/json.js\");\n/* harmony import */ var topojson_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! topojson-client */ \"./node_modules/topojson-client/src/index.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\nconst filters = {\n  interior: (a, b) => a !== b,\n  exterior: (a, b) => a === b\n};\n\nfunction topojson(data, format) {\n  let method, object, property, filter;\n  data = Object(_json__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, format);\n\n  if (format && format.feature) {\n    method = topojson_client__WEBPACK_IMPORTED_MODULE_1__[\"feature\"];\n    property = format.feature;\n  } else if (format && format.mesh) {\n    method = topojson_client__WEBPACK_IMPORTED_MODULE_1__[\"mesh\"];\n    property = format.mesh;\n    filter = filters[format.filter];\n  } else {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('Missing TopoJSON feature or mesh parameter.');\n  }\n\n  object = (object = data.objects[property])\n    ? method(data, object, filter)\n    : Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('Invalid TopoJSON object: ' + property);\n\n  return object && object.features || [object];\n}\n\ntopojson.responseType = 'json';\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/formats/topojson.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/loader.js":
/*!************************************************!*\
  !*** ./node_modules/vega-loader/src/loader.js ***!
  \************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n// Matches absolute URLs with optional protocol\n//   https://...    file://...    //...\nconst protocol_re = /^([A-Za-z]+:)?\\/\\//;\n\n// Matches allowed URIs. From https://github.com/cure53/DOMPurify/blob/master/src/regexp.js with added file://\nconst allowed_re = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|file|data):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\nconst whitespace_re = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g; // eslint-disable-line no-control-regex\n\n\n// Special treatment in node.js for the file: protocol\nconst fileProtocol = 'file://';\n\n/**\n * Factory for a loader constructor that provides methods for requesting\n * files from either the network or disk, and for sanitizing request URIs.\n * @param {function} fetch - The Fetch API for HTTP network requests.\n *   If null or undefined, HTTP loading will be disabled.\n * @param {object} fs - The file system interface for file loading.\n *   If null or undefined, local file loading will be disabled.\n * @return {function} A loader constructor with the following signature:\n *   param {object} [options] - Optional default loading options to use.\n *   return {object} - A new loader instance.\n */\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(fetch, fs) {\n  return options => ({\n    options: options || {},\n    sanitize: sanitize,\n    load: load,\n    fileAccess: !!fs,\n    file: fileLoader(fs),\n    http: httpLoader(fetch)\n  });\n});\n\n/**\n * Load an external resource, typically either from the web or from the local\n * filesystem. This function uses {@link sanitize} to first sanitize the uri,\n * then calls either {@link http} (for web requests) or {@link file} (for\n * filesystem loading).\n * @param {string} uri - The resource indicator (e.g., URL or filename).\n * @param {object} [options] - Optional loading options. These options will\n *   override any existing default options.\n * @return {Promise} - A promise that resolves to the loaded content.\n */\nasync function load(uri, options) {\n  const opt = await this.sanitize(uri, options),\n        url = opt.href;\n\n  return opt.localFile\n    ? this.file(url)\n    : this.http(url, options);\n}\n\n/**\n * URI sanitizer function.\n * @param {string} uri - The uri (url or filename) to sanity check.\n * @param {object} options - An options hash.\n * @return {Promise} - A promise that resolves to an object containing\n *  sanitized uri data, or rejects it the input uri is deemed invalid.\n *  The properties of the resolved object are assumed to be\n *  valid attributes for an HTML 'a' tag. The sanitized uri *must* be\n *  provided by the 'href' property of the returned object.\n */\nasync function sanitize(uri, options) {\n  options = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, this.options, options);\n\n  const fileAccess = this.fileAccess,\n        result = {href: null};\n\n  let isFile, loadFile, base;\n\n  const isAllowed = allowed_re.test(uri.replace(whitespace_re, ''));\n\n  if (uri == null || typeof uri !== 'string' || !isAllowed) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Sanitize failure, invalid URI: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(uri));\n  }\n\n  const hasProtocol = protocol_re.test(uri);\n\n  // if relative url (no protocol/host), prepend baseURL\n  if ((base = options.baseURL) && !hasProtocol) {\n    // Ensure that there is a slash between the baseURL (e.g. hostname) and url\n    if (!uri.startsWith('/') && base[base.length-1] !== '/') {\n      uri = '/' + uri;\n    }\n    uri = base + uri;\n  }\n\n  // should we load from file system?\n  loadFile = (isFile = uri.startsWith(fileProtocol))\n    || options.mode === 'file'\n    || options.mode !== 'http' && !hasProtocol && fileAccess;\n\n  if (isFile) {\n    // strip file protocol\n    uri = uri.slice(fileProtocol.length);\n  } else if (uri.startsWith('//')) {\n    if (options.defaultProtocol === 'file') {\n      // if is file, strip protocol and set loadFile flag\n      uri = uri.slice(2);\n      loadFile = true;\n    } else {\n      // if relative protocol (starts with '//'), prepend default protocol\n      uri = (options.defaultProtocol || 'http') + ':' + uri;\n    }\n  }\n\n  // set non-enumerable mode flag to indicate local file load\n  Object.defineProperty(result, 'localFile', {value: !!loadFile});\n\n  // set uri\n  result.href = uri;\n\n  // set default result target, if specified\n  if (options.target) {\n    result.target = options.target + '';\n  }\n\n  // set default result rel, if specified (#1542)\n  if (options.rel) {\n    result.rel = options.rel + '';\n  }\n\n  // provide control over cross-origin image handling (#2238)\n  // https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image\n  if (options.context === 'image' && options.crossOrigin) {\n    result.crossOrigin = options.crossOrigin + '';\n  }\n\n  // return\n  return result;\n}\n\n/**\n * File system loader factory.\n * @param {object} fs - The file system interface.\n * @return {function} - A file loader with the following signature:\n *   param {string} filename - The file system path to load.\n *   param {string} filename - The file system path to load.\n *   return {Promise} A promise that resolves to the file contents.\n */\nfunction fileLoader(fs) {\n  return fs\n    ? filename => new Promise((accept, reject) => {\n        fs.readFile(filename, (error, data) => {\n          if (error) reject(error);\n          else accept(data);\n        });\n      })\n    : fileReject;\n}\n\n/**\n * Default file system loader that simply rejects.\n */\nasync function fileReject() {\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('No file system access.');\n}\n\n/**\n * HTTP request handler factory.\n * @param {function} fetch - The Fetch API method.\n * @return {function} - An http loader with the following signature:\n *   param {string} url - The url to request.\n *   param {object} options - An options hash.\n *   return {Promise} - A promise that resolves to the file contents.\n */\nfunction httpLoader(fetch) {\n  return fetch\n    ? async function(url, options) {\n        const opt = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, this.options.http, options),\n              type = options && options.response,\n              response = await fetch(url, opt);\n\n        return !response.ok\n          ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])(response.status + '' + response.statusText)\n          : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(response[type]) ? response[type]()\n          : response.text();\n      }\n    : httpReject;\n}\n\n/**\n * Default http request handler that simply rejects.\n */\nasync function httpReject() {\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('No HTTP fetch method available.');\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/loader.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/read.js":
/*!**********************************************!*\
  !*** ./node_modules/vega-loader/src/read.js ***!
  \**********************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _type__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type */ \"./node_modules/vega-loader/src/type.js\");\n/* harmony import */ var _formats_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formats/index */ \"./node_modules/vega-loader/src/formats/index.js\");\n/* harmony import */ var vega_format__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-format */ \"./node_modules/vega-format/build/vega-format.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(data, schema, timeParser, utcParser) {\n  schema = schema || {};\n\n  const reader = Object(_formats_index__WEBPACK_IMPORTED_MODULE_1__[\"formats\"])(schema.type || 'json');\n  if (!reader) Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"error\"])('Unknown data format type: ' + schema.type);\n\n  data = reader(data, schema);\n  if (schema.parse) parse(data, schema.parse, timeParser, utcParser);\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_3__[\"hasOwnProperty\"])(data, 'columns')) delete data.columns;\n  return data;\n});\n\nfunction parse(data, types, timeParser, utcParser) {\n  if (!data.length) return; // early exit for empty data\n\n  const locale = Object(vega_format__WEBPACK_IMPORTED_MODULE_2__[\"timeFormatDefaultLocale\"])();\n  timeParser = timeParser || locale.timeParse;\n  utcParser = utcParser || locale.utcParse;\n\n  let fields = data.columns || Object.keys(data[0]),\n      datum, field, i, j, n, m;\n\n  if (types === 'auto') types = Object(_type__WEBPACK_IMPORTED_MODULE_0__[\"inferTypes\"])(data, fields);\n\n  fields = Object.keys(types);\n  const parsers = fields.map(field => {\n    const type = types[field];\n    let parts, pattern;\n\n    if (type && (type.startsWith('date:') || type.startsWith('utc:'))) {\n      parts = type.split(/:(.+)?/, 2);  // split on first :\n      pattern = parts[1];\n\n      if ((pattern[0] === '\\'' && pattern[pattern.length-1] === '\\'') ||\n          (pattern[0] === '\"'  && pattern[pattern.length-1] === '\"')) {\n        pattern = pattern.slice(1, -1);\n      }\n\n      const parse = parts[0] === 'utc' ? utcParser : timeParser;\n      return parse(pattern);\n    }\n\n    if (!_type__WEBPACK_IMPORTED_MODULE_0__[\"typeParsers\"][type]) {\n      throw Error('Illegal format pattern: ' + field + ':' + type);\n    }\n\n    return _type__WEBPACK_IMPORTED_MODULE_0__[\"typeParsers\"][type];\n  });\n\n  for (i=0, n=data.length, m=fields.length; i<n; ++i) {\n    datum = data[i];\n    for (j=0; j<m; ++j) {\n      field = fields[j];\n      datum[field] = parsers[j](datum[field]);\n    }\n  }\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/read.js?");

/***/ }),

/***/ "./node_modules/vega-loader/src/type.js":
/*!**********************************************!*\
  !*** ./node_modules/vega-loader/src/type.js ***!
  \**********************************************/
/*! exports provided: typeParsers, inferType, inferTypes */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"typeParsers\", function() { return typeParsers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inferType\", function() { return inferType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inferTypes\", function() { return inferTypes; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\nconst isValid = _ => _ != null && _ === _;\n\nconst isBoolean = _ => _ === 'true'\n  || _ === 'false'\n  || _ === true\n  || _ === false;\n\nconst isDate = _ => !Number.isNaN(Date.parse(_));\n\nconst isNumber = _ => !Number.isNaN(+_) && !(_ instanceof Date);\n\nconst isInteger = _ => isNumber(_) && Number.isInteger(+_);\n\nconst typeParsers = {\n  boolean: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toBoolean\"],\n  integer: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"],\n  number:  vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"],\n  date:    vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toDate\"],\n  string:  vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toString\"],\n  unknown: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"]\n};\n\nconst typeTests = [\n  isBoolean,\n  isInteger,\n  isNumber,\n  isDate\n];\n\nconst typeList = [\n  'boolean',\n  'integer',\n  'number',\n  'date'\n];\n\nfunction inferType(values, field) {\n  if (!values || !values.length) return 'unknown';\n\n  const n = values.length,\n        m = typeTests.length,\n        a = typeTests.map((_, i) => i + 1);\n\n  for (let i = 0, t = 0, j, value; i < n; ++i) {\n    value = field ? values[i][field] : values[i];\n    for (j = 0; j < m; ++j) {\n      if (a[j] && isValid(value) && !typeTests[j](value)) {\n        a[j] = 0;\n        ++t;\n        if (t === typeTests.length) return 'string';\n      }\n    }\n  }\n\n  return typeList[\n    a.reduce((u, v) => u === 0 ? v : u, 0) - 1\n  ];\n}\n\nfunction inferTypes(data, fields) {\n  return fields.reduce((types, field) => {\n    types[field] = inferType(data, field);\n    return types;\n  }, {});\n}\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-loader/src/type.js?");

/***/ }),

/***/ "./node_modules/vega-parser/build/vega-parser.module.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-parser/build/vega-parser.module.js ***!
  \**************************************************************/
/*! exports provided: AxisDomainRole, AxisGridRole, AxisLabelRole, AxisRole, AxisTickRole, AxisTitleRole, DataScope, FrameRole, LegendEntryRole, LegendLabelRole, LegendRole, LegendSymbolRole, LegendTitleRole, MarkRole, Scope, ScopeRole, config, parse, signal, signalUpdates, stream */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisDomainRole\", function() { return AxisDomainRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisGridRole\", function() { return AxisGridRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisLabelRole\", function() { return AxisLabelRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisRole\", function() { return AxisRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisTickRole\", function() { return AxisTickRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AxisTitleRole\", function() { return AxisTitleRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DataScope\", function() { return DataScope; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FrameRole\", function() { return FrameRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LegendEntryRole\", function() { return LegendEntryRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LegendLabelRole\", function() { return LegendLabelRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LegendRole\", function() { return LegendRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LegendSymbolRole\", function() { return LegendSymbolRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LegendTitleRole\", function() { return LegendTitleRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MarkRole\", function() { return MarkRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Scope\", function() { return Scope$1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScopeRole\", function() { return ScopeRole; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"config\", function() { return defaults; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return parse$1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"signal\", function() { return parseSignal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"signalUpdates\", function() { return parseSignalUpdates; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stream\", function() { return parseStream; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-functions */ \"./node_modules/vega-functions/build/vega-functions.module.js\");\n/* harmony import */ var vega_event_selector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-event-selector */ \"./node_modules/vega-event-selector/build/vega-event-selector.module.js\");\n/* harmony import */ var vega_scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-scale */ \"./node_modules/vega-scale/build/vega-scale.module.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n\n\n\n\n\n\nfunction parseAutosize (spec) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(spec) ? spec : {\n    type: spec || 'pad'\n  };\n}\n\nconst number = _ => +_ || 0;\n\nconst paddingObject = _ => ({\n  top: _,\n  bottom: _,\n  left: _,\n  right: _\n});\n\nfunction parsePadding (spec) {\n  return !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(spec) ? paddingObject(number(spec)) : spec.signal ? spec : {\n    top: number(spec.top),\n    bottom: number(spec.bottom),\n    left: number(spec.left),\n    right: number(spec.right)\n  };\n}\n\nconst encoder = _ => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(_) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, _) : {\n  value: _\n};\nfunction addEncode(object, name, value, set) {\n  if (value != null) {\n    const isEncoder = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) && value.length && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value[0]); // Always assign signal to update, even if the signal is from the enter block\n\n    if (isEncoder) {\n      object.update[name] = value;\n    } else {\n      object[set || 'enter'][name] = {\n        value: value\n      };\n    }\n\n    return 1;\n  } else {\n    return 0;\n  }\n}\nfunction addEncoders(object, enter, update) {\n  for (const name in enter) {\n    addEncode(object, name, enter[name]);\n  }\n\n  for (const name in update) {\n    addEncode(object, name, update[name], 'update');\n  }\n}\nfunction extendEncode(encode, extra, skip) {\n  for (const name in extra) {\n    if (skip && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(skip, name)) continue;\n    encode[name] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(encode[name] || {}, extra[name]);\n  }\n\n  return encode;\n}\nfunction has(key, encode) {\n  return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]);\n}\n\nconst MarkRole = 'mark';\nconst FrameRole = 'frame';\nconst ScopeRole = 'scope';\nconst AxisRole = 'axis';\nconst AxisDomainRole = 'axis-domain';\nconst AxisGridRole = 'axis-grid';\nconst AxisLabelRole = 'axis-label';\nconst AxisTickRole = 'axis-tick';\nconst AxisTitleRole = 'axis-title';\nconst LegendRole = 'legend';\nconst LegendBandRole = 'legend-band';\nconst LegendEntryRole = 'legend-entry';\nconst LegendGradientRole = 'legend-gradient';\nconst LegendLabelRole = 'legend-label';\nconst LegendSymbolRole = 'legend-symbol';\nconst LegendTitleRole = 'legend-title';\nconst TitleRole = 'title';\nconst TitleTextRole = 'title-text';\nconst TitleSubtitleRole = 'title-subtitle';\n\nfunction applyDefaults (encode, type, role, style, config) {\n  const defaults = {},\n        enter = {};\n  let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370)\n\n  key = 'lineBreak';\n\n  if (type === 'text' && config[key] != null && !has(key, encode)) {\n    applyDefault(defaults, key, config[key]);\n  } // ignore legend and axis roles\n\n\n  if (role == 'legend' || String(role).startsWith('axis')) {\n    role = null;\n  } // resolve mark config\n\n\n  props = role === FrameRole ? config.group : role === MarkRole ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, config.mark, config[type]) : null;\n\n  for (key in props) {\n    // do not apply defaults if relevant fields are defined\n    skip = has(key, encode) || (key === 'fill' || key === 'stroke') && (has('fill', encode) || has('stroke', encode));\n    if (!skip) applyDefault(defaults, key, props[key]);\n  } // resolve styles, apply with increasing precedence\n\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(style).forEach(name => {\n    const props = config.style && config.style[name];\n\n    for (const key in props) {\n      if (!has(key, encode)) {\n        applyDefault(defaults, key, props[key]);\n      }\n    }\n  });\n  encode = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, encode); // defensive copy\n\n  for (key in defaults) {\n    props = defaults[key];\n\n    if (props.signal) {\n      (update = update || {})[key] = props;\n    } else {\n      enter[key] = props;\n    }\n  }\n\n  encode.enter = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(enter, encode.enter);\n  if (update) encode.update = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(update, encode.update);\n  return encode;\n}\n\nfunction applyDefault(defaults, key, value) {\n  defaults[key] = value && value.signal ? {\n    signal: value.signal\n  } : {\n    value: value\n  };\n}\n\nconst scaleRef = scale => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(scale) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(scale) : scale.signal ? \"(\".concat(scale.signal, \")\") : field(scale);\n\nfunction entry(enc) {\n  if (enc.gradient != null) {\n    return gradient(enc);\n  }\n\n  let value = enc.signal ? \"(\".concat(enc.signal, \")\") : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(enc.value) : undefined;\n\n  if (enc.scale != null) {\n    value = scale(enc, value);\n  }\n\n  if (value === undefined) {\n    value = null;\n  }\n\n  if (enc.exponent != null) {\n    value = \"pow(\".concat(value, \",\").concat(property(enc.exponent), \")\");\n  }\n\n  if (enc.mult != null) {\n    value += \"*\".concat(property(enc.mult));\n  }\n\n  if (enc.offset != null) {\n    value += \"+\".concat(property(enc.offset));\n  }\n\n  if (enc.round) {\n    value = \"round(\".concat(value, \")\");\n  }\n\n  return value;\n}\n\nconst _color = (type, x, y, z) => \"(\".concat(type, \"(\").concat([x, y, z].map(entry).join(','), \")+'')\");\n\nfunction color(enc) {\n  return enc.c ? _color('hcl', enc.h, enc.c, enc.l) : enc.h || enc.s ? _color('hsl', enc.h, enc.s, enc.l) : enc.l || enc.a ? _color('lab', enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color('rgb', enc.r, enc.g, enc.b) : null;\n}\n\nfunction gradient(enc) {\n  // map undefined to null; expression lang does not allow undefined\n  const args = [enc.start, enc.stop, enc.count].map(_ => _ == null ? null : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(_)); // trim null inputs from the end\n\n  while (args.length && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(args) == null) args.pop();\n\n  args.unshift(scaleRef(enc.gradient));\n  return \"gradient(\".concat(args.join(','), \")\");\n}\n\nfunction property(property) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(property) ? '(' + entry(property) + ')' : property;\n}\n\nfunction field(ref) {\n  return resolveField(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(ref) ? ref : {\n    datum: ref\n  });\n}\n\nfunction resolveField(ref) {\n  let object, level, field;\n\n  if (ref.signal) {\n    object = 'datum';\n    field = ref.signal;\n  } else if (ref.group || ref.parent) {\n    level = Math.max(1, ref.level || 1);\n    object = 'item';\n\n    while (level-- > 0) {\n      object += '.mark.group';\n    }\n\n    if (ref.parent) {\n      field = ref.parent;\n      object += '.datum';\n    } else {\n      field = ref.group;\n    }\n  } else if (ref.datum) {\n    object = 'datum';\n    field = ref.datum;\n  } else {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid field reference: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(ref));\n  }\n\n  if (!ref.signal) {\n    field = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(field) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"splitAccessPath\"])(field).map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"]).join('][') : resolveField(field);\n  }\n\n  return object + '[' + field + ']';\n}\n\nfunction scale(enc, value) {\n  const scale = scaleRef(enc.scale);\n\n  if (enc.range != null) {\n    // pull value from scale range\n    value = \"lerp(_range(\".concat(scale, \"), \").concat(+enc.range, \")\");\n  } else {\n    // run value through scale and/or pull scale bandwidth\n    if (value !== undefined) value = \"_scale(\".concat(scale, \", \").concat(value, \")\");\n\n    if (enc.band) {\n      value = (value ? value + '+' : '') + \"_bandwidth(\".concat(scale, \")\") + (+enc.band === 1 ? '' : '*' + property(enc.band));\n\n      if (enc.extra) {\n        // include logic to handle extraneous elements\n        value = \"(datum.extra ? _scale(\".concat(scale, \", datum.extra.value) : \").concat(value, \")\");\n      }\n    }\n\n    if (value == null) value = '0';\n  }\n\n  return value;\n}\n\nfunction rule (enc) {\n  let code = '';\n  enc.forEach(rule => {\n    const value = entry(rule);\n    code += rule.test ? \"(\".concat(rule.test, \")?\").concat(value, \":\") : value;\n  }); // if no else clause, terminate with null (#1366)\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(code) === ':') {\n    code += 'null';\n  }\n\n  return code;\n}\n\nfunction parseEncode (encode, type, role, style, scope, params) {\n  const enc = {};\n  params = params || {};\n  params.encoders = {\n    $encode: enc\n  };\n  encode = applyDefaults(encode, type, role, style, scope.config);\n\n  for (const key in encode) {\n    enc[key] = parseBlock(encode[key], type, params, scope);\n  }\n\n  return params;\n}\n\nfunction parseBlock(block, marktype, params, scope) {\n  const channels = {},\n        fields = {};\n\n  for (const name in block) {\n    if (block[name] != null) {\n      // skip any null entries\n      channels[name] = parse(expr(block[name]), scope, params, fields);\n    }\n  }\n\n  return {\n    $expr: {\n      marktype,\n      channels\n    },\n    $fields: Object.keys(fields),\n    $output: Object.keys(block)\n  };\n}\n\nfunction expr(enc) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(enc) ? rule(enc) : entry(enc);\n}\n\nfunction parse(code, scope, params, fields) {\n  const expr = Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(code, scope);\n  expr.$fields.forEach(name => fields[name] = 1);\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(params, expr.$params);\n  return expr.$expr;\n}\n\nconst OUTER = 'outer',\n      OUTER_INVALID = ['value', 'update', 'init', 'react', 'bind'];\n\nfunction outerError(prefix, name) {\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])(prefix + ' for \"outer\" push: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n}\n\nfunction parseSignal (signal, scope) {\n  const name = signal.name;\n\n  if (signal.push === OUTER) {\n    // signal must already be defined, raise error if not\n    if (!scope.signals[name]) outerError('No prior signal definition', name); // signal push must not use properties reserved for standard definition\n\n    OUTER_INVALID.forEach(prop => {\n      if (signal[prop] !== undefined) outerError('Invalid property ', prop);\n    });\n  } else {\n    // define a new signal in the current scope\n    const op = scope.addSignal(name, signal.value);\n    if (signal.react === false) op.react = false;\n    if (signal.bind) scope.addBinding(name, signal.bind);\n  }\n}\n\nfunction Entry(type, value, params, parent) {\n  this.id = -1;\n  this.type = type;\n  this.value = value;\n  this.params = params;\n  if (parent) this.parent = parent;\n}\nfunction entry$1(type, value, params, parent) {\n  return new Entry(type, value, params, parent);\n}\nfunction operator(value, params) {\n  return entry$1('operator', value, params);\n} // -----\n\nfunction ref(op) {\n  const ref = {\n    $ref: op.id\n  }; // if operator not yet registered, cache ref to resolve later\n\n  if (op.id < 0) (op.refs = op.refs || []).push(ref);\n  return ref;\n}\nfunction fieldRef(field, name) {\n  return name ? {\n    $field: field,\n    $name: name\n  } : {\n    $field: field\n  };\n}\nconst keyFieldRef = fieldRef('key');\nfunction compareRef(fields, orders) {\n  return {\n    $compare: fields,\n    $order: orders\n  };\n}\nfunction keyRef(fields, flat) {\n  const ref = {\n    $key: fields\n  };\n  if (flat) ref.$flat = true;\n  return ref;\n} // -----\n\nconst Ascending = 'ascending';\nconst Descending = 'descending';\nfunction sortKey(sort) {\n  return !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(sort) ? '' : (sort.order === Descending ? '-' : '+') + aggrField(sort.op, sort.field);\n}\nfunction aggrField(op, field) {\n  return (op && op.signal ? '$' + op.signal : op || '') + (op && field ? '_' : '') + (field && field.signal ? '$' + field.signal : field || '');\n} // -----\n\nconst Scope = 'scope';\nconst View = 'view';\nfunction isSignal(_) {\n  return _ && _.signal;\n}\nfunction isExpr(_) {\n  return _ && _.expr;\n}\nfunction hasSignal(_) {\n  if (isSignal(_)) return true;\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(_)) for (const key in _) {\n    if (hasSignal(_[key])) return true;\n  }\n  return false;\n}\nfunction value(specValue, defaultValue) {\n  return specValue != null ? specValue : defaultValue;\n}\nfunction deref(v) {\n  return v && v.signal || v;\n}\n\nconst Timer = 'timer';\nfunction parseStream(stream, scope) {\n  const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid stream specification: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(stream));\n  return method(stream, scope);\n}\n\nfunction eventSource(source) {\n  return source === Scope ? View : source || View;\n}\n\nfunction mergeStream(stream, scope) {\n  const list = stream.merge.map(s => parseStream(s, scope)),\n        entry = streamParameters({\n    merge: list\n  }, stream, scope);\n  return scope.addStream(entry).id;\n}\n\nfunction nestedStream(stream, scope) {\n  const id = parseStream(stream.stream, scope),\n        entry = streamParameters({\n    stream: id\n  }, stream, scope);\n  return scope.addStream(entry).id;\n}\n\nfunction eventStream(stream, scope) {\n  let id;\n\n  if (stream.type === Timer) {\n    id = scope.event(Timer, stream.throttle);\n    stream = {\n      between: stream.between,\n      filter: stream.filter\n    };\n  } else {\n    id = scope.event(eventSource(stream.source), stream.type);\n  }\n\n  const entry = streamParameters({\n    stream: id\n  }, stream, scope);\n  return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id;\n}\n\nfunction streamParameters(entry, stream, scope) {\n  let param = stream.between;\n\n  if (param) {\n    if (param.length !== 2) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Stream \"between\" parameter must have 2 entries: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(stream));\n    }\n\n    entry.between = [parseStream(param[0], scope), parseStream(param[1], scope)];\n  }\n\n  param = stream.filter ? [].concat(stream.filter) : [];\n\n  if (stream.marktype || stream.markname || stream.markrole) {\n    // add filter for mark type, name and/or role\n    param.push(filterMark(stream.marktype, stream.markname, stream.markrole));\n  }\n\n  if (stream.source === Scope) {\n    // add filter to limit events from sub-scope only\n    param.push('inScope(event.item)');\n  }\n\n  if (param.length) {\n    entry.filter = Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])('(' + param.join(')&&(') + ')', scope).$expr;\n  }\n\n  if ((param = stream.throttle) != null) {\n    entry.throttle = +param;\n  }\n\n  if ((param = stream.debounce) != null) {\n    entry.debounce = +param;\n  }\n\n  if (stream.consume) {\n    entry.consume = true;\n  }\n\n  return entry;\n}\n\nfunction filterMark(type, name, role) {\n  const item = 'event.item';\n  return item + (type && type !== '*' ? '&&' + item + '.mark.marktype===\\'' + type + '\\'' : '') + (role ? '&&' + item + '.mark.role===\\'' + role + '\\'' : '') + (name ? '&&' + item + '.mark.name===\\'' + name + '\\'' : '');\n}\n\nconst OP_VALUE_EXPR = {\n  code: '_.$value',\n  ast: {\n    type: 'Identifier',\n    value: 'value'\n  }\n};\nfunction parseUpdate (spec, scope, target) {\n  const encode = spec.encode,\n        entry = {\n    target: target\n  };\n  let events = spec.events,\n      update = spec.update,\n      sources = [];\n\n  if (!events) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Signal update missing events specification.');\n  } // interpret as an event selector string\n\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(events)) {\n    events = Object(vega_event_selector__WEBPACK_IMPORTED_MODULE_2__[\"selector\"])(events, scope.isSubscope() ? Scope : View);\n  } // separate event streams from signal updates\n\n\n  events = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(events).filter(s => s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners\n\n  if (sources.length > 1) {\n    sources = [mergeSources(sources)];\n  } // merge event streams, include as source\n\n\n  if (events.length) {\n    sources.push(events.length > 1 ? {\n      merge: events\n    } : events[0]);\n  }\n\n  if (encode != null) {\n    if (update) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Signal encode and update are mutually exclusive.');\n    update = 'encode(item(),' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(encode) + ')';\n  } // resolve update value\n\n\n  entry.update = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(update) ? Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(update, scope) : update.expr != null ? Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(update.expr, scope) : update.value != null ? update.value : update.signal != null ? {\n    $expr: OP_VALUE_EXPR,\n    $params: {\n      $value: scope.signalRef(update.signal)\n    }\n  } : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid signal update specification.');\n\n  if (spec.force) {\n    entry.options = {\n      force: true\n    };\n  }\n\n  sources.forEach(source => scope.addUpdate(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(streamSource(source, scope), entry)));\n}\n\nfunction streamSource(stream, scope) {\n  return {\n    source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope)\n  };\n}\n\nfunction mergeSources(sources) {\n  return {\n    signal: '[' + sources.map(s => s.scale ? 'scale(\"' + s.scale + '\")' : s.signal) + ']'\n  };\n}\n\nfunction parseSignalUpdates (signal, scope) {\n  const op = scope.getSignal(signal.name);\n  let expr = signal.update;\n\n  if (signal.init) {\n    if (expr) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Signals can not include both init and update expressions.');\n    } else {\n      expr = signal.init;\n      op.initonly = true;\n    }\n  }\n\n  if (expr) {\n    expr = Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(expr, scope);\n    op.update = expr.$expr;\n    op.params = expr.$params;\n  }\n\n  if (signal.on) {\n    signal.on.forEach(_ => parseUpdate(_, scope, op.id));\n  }\n}\n\nconst transform = name => (params, value, parent) => entry$1(name, value, params || undefined, parent);\n\nconst Aggregate = transform('aggregate');\nconst AxisTicks = transform('axisticks');\nconst Bound = transform('bound');\nconst Collect = transform('collect');\nconst Compare = transform('compare');\nconst DataJoin = transform('datajoin');\nconst Encode = transform('encode');\nconst Expression = transform('expression');\nconst Facet = transform('facet');\nconst Field = transform('field');\nconst Key = transform('key');\nconst LegendEntries = transform('legendentries');\nconst Load = transform('load');\nconst Mark = transform('mark');\nconst MultiExtent = transform('multiextent');\nconst MultiValues = transform('multivalues');\nconst Overlap = transform('overlap');\nconst Params = transform('params');\nconst PreFacet = transform('prefacet');\nconst Projection = transform('projection');\nconst Proxy = transform('proxy');\nconst Relay = transform('relay');\nconst Render = transform('render');\nconst Scale = transform('scale');\nconst Sieve = transform('sieve');\nconst SortItems = transform('sortitems');\nconst ViewLayout = transform('viewlayout');\nconst Values = transform('values');\n\nlet FIELD_REF_ID = 0;\nconst MULTIDOMAIN_SORT_OPS = {\n  min: 'min',\n  max: 'max',\n  count: 'sum'\n};\nfunction initScale(spec, scope) {\n  const type = spec.type || 'linear';\n\n  if (!Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isValidScaleType\"])(type)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized scale type: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(type));\n  }\n\n  scope.addScale(spec.name, {\n    type,\n    domain: undefined\n  });\n}\nfunction parseScale(spec, scope) {\n  const params = scope.getScale(spec.name).params;\n  let key;\n  params.domain = parseScaleDomain(spec.domain, spec, scope);\n\n  if (spec.range != null) {\n    params.range = parseScaleRange(spec, scope, params);\n  }\n\n  if (spec.interpolate != null) {\n    parseScaleInterpolate(spec.interpolate, params);\n  }\n\n  if (spec.nice != null) {\n    params.nice = parseScaleNice(spec.nice);\n  }\n\n  if (spec.bins != null) {\n    params.bins = parseScaleBins(spec.bins, scope);\n  }\n\n  for (key in spec) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(params, key) || key === 'name') continue;\n    params[key] = parseLiteral(spec[key], scope);\n  }\n}\n\nfunction parseLiteral(v, scope) {\n  return !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(v) ? v : v.signal ? scope.signalRef(v.signal) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unsupported object: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(v));\n}\n\nfunction parseArray(v, scope) {\n  return v.signal ? scope.signalRef(v.signal) : v.map(v => parseLiteral(v, scope));\n}\n\nfunction dataLookupError(name) {\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Can not find data set: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n} // -- SCALE DOMAIN ----\n\n\nfunction parseScaleDomain(domain, spec, scope) {\n  if (!domain) {\n    if (spec.domainMin != null || spec.domainMax != null) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('No scale domain defined for domainMin/domainMax to override.');\n    }\n\n    return; // default domain\n  }\n\n  return domain.signal ? scope.signalRef(domain.signal) : (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope);\n}\n\nfunction explicitDomain(domain, spec, scope) {\n  return domain.map(v => parseLiteral(v, scope));\n}\n\nfunction singularDomain(domain, spec, scope) {\n  const data = scope.getData(domain.data);\n  if (!data) dataLookupError(domain.data);\n  return Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isDiscrete\"])(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isQuantile\"])(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field);\n}\n\nfunction multipleDomain(domain, spec, scope) {\n  const data = domain.data,\n        fields = domain.fields.reduce((dom, d) => {\n    d = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(d) ? {\n      data: data,\n      field: d\n    } : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(d) || d.signal ? fieldRef$1(d, scope) : d;\n    dom.push(d);\n    return dom;\n  }, []);\n  return (Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isDiscrete\"])(spec.type) ? ordinalMultipleDomain : Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isQuantile\"])(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields);\n}\n\nfunction fieldRef$1(data, scope) {\n  const name = '_:vega:_' + FIELD_REF_ID++,\n        coll = Collect({});\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(data)) {\n    coll.value = {\n      $ingest: data\n    };\n  } else if (data.signal) {\n    const code = 'setdata(' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name) + ',' + data.signal + ')';\n    coll.params.input = scope.signalRef(code);\n  }\n\n  scope.addDataPipeline(name, [coll, Sieve({})]);\n  return {\n    data: name,\n    field: 'data'\n  };\n}\n\nfunction ordinalMultipleDomain(domain, scope, fields) {\n  const sort = parseSort(domain.sort, true);\n  let a, v; // get value counts for each domain field\n\n  const counts = fields.map(f => {\n    const data = scope.getData(f.data);\n    if (!data) dataLookupError(f.data);\n    return data.countsRef(scope, f.field, sort);\n  }); // aggregate the results from each domain field\n\n  const p = {\n    groupby: keyFieldRef,\n    pulse: counts\n  };\n\n  if (sort) {\n    a = sort.op || 'count';\n    v = sort.field ? aggrField(a, sort.field) : 'count';\n    p.ops = [MULTIDOMAIN_SORT_OPS[a]];\n    p.fields = [scope.fieldRef(v)];\n    p.as = [v];\n  }\n\n  a = scope.add(Aggregate(p)); // collect aggregate output\n\n  const c = scope.add(Collect({\n    pulse: ref(a)\n  })); // extract values for combined domain\n\n  v = scope.add(Values({\n    field: keyFieldRef,\n    sort: scope.sortRef(sort),\n    pulse: ref(c)\n  }));\n  return ref(v);\n}\n\nfunction parseSort(sort, multidomain) {\n  if (sort) {\n    if (!sort.field && !sort.op) {\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(sort)) sort.field = 'key';else sort = {\n        field: 'key'\n      };\n    } else if (!sort.field && sort.op !== 'count') {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('No field provided for sort aggregate op: ' + sort.op);\n    } else if (multidomain && sort.field) {\n      if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Multiple domain scales can not be sorted using ' + sort.op);\n      }\n    }\n  }\n\n  return sort;\n}\n\nfunction quantileMultipleDomain(domain, scope, fields) {\n  // get value arrays for each domain field\n  const values = fields.map(f => {\n    const data = scope.getData(f.data);\n    if (!data) dataLookupError(f.data);\n    return data.domainRef(scope, f.field);\n  }); // combine value arrays\n\n  return ref(scope.add(MultiValues({\n    values: values\n  })));\n}\n\nfunction numericMultipleDomain(domain, scope, fields) {\n  // get extents for each domain field\n  const extents = fields.map(f => {\n    const data = scope.getData(f.data);\n    if (!data) dataLookupError(f.data);\n    return data.extentRef(scope, f.field);\n  }); // combine extents\n\n  return ref(scope.add(MultiExtent({\n    extents: extents\n  })));\n} // -- SCALE BINS -----\n\n\nfunction parseScaleBins(v, scope) {\n  return v.signal || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(v) ? parseArray(v, scope) : scope.objectProperty(v);\n} // -- SCALE NICE -----\n\n\nfunction parseScaleNice(nice) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(nice) ? {\n    interval: parseLiteral(nice.interval),\n    step: parseLiteral(nice.step)\n  } : parseLiteral(nice);\n} // -- SCALE INTERPOLATION -----\n\n\nfunction parseScaleInterpolate(interpolate, params) {\n  params.interpolate = parseLiteral(interpolate.type || interpolate);\n\n  if (interpolate.gamma != null) {\n    params.interpolateGamma = parseLiteral(interpolate.gamma);\n  }\n} // -- SCALE RANGE -----\n\n\nfunction parseScaleRange(spec, scope, params) {\n  const config = scope.config.range;\n  let range = spec.range;\n\n  if (range.signal) {\n    return scope.signalRef(range.signal);\n  } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(range)) {\n    if (config && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(config, range)) {\n      spec = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, spec, {\n        range: config[range]\n      });\n      return parseScaleRange(spec, scope, params);\n    } else if (range === 'width') {\n      range = [0, {\n        signal: 'width'\n      }];\n    } else if (range === 'height') {\n      range = Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isDiscrete\"])(spec.type) ? [0, {\n        signal: 'height'\n      }] : [{\n        signal: 'height'\n      }, 0];\n    } else {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized scale range value: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(range));\n    }\n  } else if (range.scheme) {\n    params.scheme = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope);\n    if (range.extent) params.schemeExtent = parseArray(range.extent, scope);\n    if (range.count) params.schemeCount = parseLiteral(range.count, scope);\n    return;\n  } else if (range.step) {\n    params.rangeStep = parseLiteral(range.step, scope);\n    return;\n  } else if (Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isDiscrete\"])(spec.type) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(range)) {\n    return parseScaleDomain(range, spec, scope);\n  } else if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(range)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unsupported range type: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(range));\n  }\n\n  return range.map(v => (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(v) ? parseArray : parseLiteral)(v, scope));\n}\n\nfunction parseProjection (proj, scope) {\n  const config = scope.config.projection || {},\n        params = {};\n\n  for (const name in proj) {\n    if (name === 'name') continue;\n    params[name] = parseParameter(proj[name], name, scope);\n  } // apply projection defaults from config\n\n\n  for (const name in config) {\n    if (params[name] == null) {\n      params[name] = parseParameter(config[name], name, scope);\n    }\n  }\n\n  scope.addProjection(proj.name, params);\n}\n\nfunction parseParameter(_, name, scope) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_) ? _.map(_ => parseParameter(_, name, scope)) : !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === 'fit' ? _ : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unsupported parameter object: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(_));\n}\n\nconst Top = 'top';\nconst Left = 'left';\nconst Right = 'right';\nconst Bottom = 'bottom';\nconst Center = 'center';\nconst Vertical = 'vertical';\nconst Start = 'start';\nconst Middle = 'middle';\nconst End = 'end';\nconst Index = 'index';\nconst Label = 'label';\nconst Offset = 'offset';\nconst Perc = 'perc';\nconst Perc2 = 'perc2';\nconst Value = 'value';\nconst GuideLabelStyle = 'guide-label';\nconst GuideTitleStyle = 'guide-title';\nconst GroupTitleStyle = 'group-title';\nconst GroupSubtitleStyle = 'group-subtitle';\nconst Symbols = 'symbol';\nconst Gradient = 'gradient';\nconst Discrete = 'discrete';\nconst Size = 'size';\nconst Shape = 'shape';\nconst Fill = 'fill';\nconst Stroke = 'stroke';\nconst StrokeWidth = 'strokeWidth';\nconst StrokeDash = 'strokeDash';\nconst Opacity = 'opacity'; // Encoding channels supported by legends\n// In priority order of 'canonical' scale\n\nconst LegendScales = [Size, Shape, Fill, Stroke, StrokeWidth, StrokeDash, Opacity];\nconst Skip = {\n  name: 1,\n  style: 1,\n  interactive: 1\n};\nconst zero = {\n  value: 0\n};\nconst one = {\n  value: 1\n};\n\nconst GroupMark = 'group';\nconst RectMark = 'rect';\nconst RuleMark = 'rule';\nconst SymbolMark = 'symbol';\nconst TextMark = 'text';\n\nfunction guideGroup (mark) {\n  mark.type = GroupMark;\n  mark.interactive = mark.interactive || false;\n  return mark;\n}\n\nfunction lookup(spec, config) {\n  const _ = (name, dflt) => value(spec[name], value(config[name], dflt));\n\n  _.isVertical = s => Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection));\n\n  _.gradientLength = () => value(spec.gradientLength, config.gradientLength || config.gradientWidth);\n\n  _.gradientThickness = () => value(spec.gradientThickness, config.gradientThickness || config.gradientHeight);\n\n  _.entryColumns = () => value(spec.columns, value(config.columns, +_.isVertical(true)));\n\n  return _;\n}\nfunction getEncoding(name, encode) {\n  const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]);\n  return v && v.signal ? v : v ? v.value : null;\n}\nfunction getStyle(name, scope, style) {\n  const s = scope.config.style[style];\n  return s && s[name];\n}\nfunction anchorExpr(s, e, m) {\n  return \"item.anchor === '\".concat(Start, \"' ? \").concat(s, \" : item.anchor === '\").concat(End, \"' ? \").concat(e, \" : \").concat(m);\n}\nconst alignExpr = anchorExpr(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(Left), Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(Right), Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(Center));\nfunction tickBand(_) {\n  const v = _('tickBand');\n\n  let offset = _('tickOffset'),\n      band,\n      extra;\n\n  if (!v) {\n    // if no tick band entry, fall back on other properties\n    band = _('bandPosition');\n    extra = _('tickExtra');\n  } else if (v.signal) {\n    // if signal, augment code to interpret values\n    band = {\n      signal: \"(\".concat(v.signal, \") === 'extent' ? 1 : 0.5\")\n    };\n    extra = {\n      signal: \"(\".concat(v.signal, \") === 'extent'\")\n    };\n\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(offset)) {\n      offset = {\n        signal: \"(\".concat(v.signal, \") === 'extent' ? 0 : \").concat(offset)\n      };\n    }\n  } else if (v === 'extent') {\n    // if constant, simply set values\n    band = 1;\n    extra = true;\n    offset = 0;\n  } else {\n    band = 0.5;\n    extra = false;\n  }\n\n  return {\n    extra,\n    band,\n    offset\n  };\n}\nfunction extendOffset(value, offset) {\n  return !offset ? value : !value ? offset : !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) ? {\n    value,\n    offset\n  } : Object.assign({}, value, {\n    offset: extendOffset(value.offset, offset)\n  });\n}\n\nfunction guideMark (mark, extras) {\n  if (extras) {\n    mark.name = extras.name;\n    mark.style = extras.style || mark.style;\n    mark.interactive = !!extras.interactive;\n    mark.encode = extendEncode(mark.encode, extras, Skip);\n  } else {\n    mark.interactive = false;\n  }\n\n  return mark;\n}\n\nfunction legendGradient (spec, scale, config, userEncode) {\n  const _ = lookup(spec, config),\n        vertical = _.isVertical(),\n        thickness = _.gradientThickness(),\n        length = _.gradientLength();\n\n  let enter, start, stop, width, height;\n\n  if (vertical) {\n    start = [0, 1];\n    stop = [0, 0];\n    width = thickness;\n    height = length;\n  } else {\n    start = [0, 0];\n    stop = [1, 0];\n    width = length;\n    height = thickness;\n  }\n\n  const encode = {\n    enter: enter = {\n      opacity: zero,\n      x: zero,\n      y: zero,\n      width: encoder(width),\n      height: encoder(height)\n    },\n    update: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, enter, {\n      opacity: one,\n      fill: {\n        gradient: scale,\n        start: start,\n        stop: stop\n      }\n    }),\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    stroke: _('gradientStrokeColor'),\n    strokeWidth: _('gradientStrokeWidth')\n  }, {\n    // update\n    opacity: _('gradientOpacity')\n  });\n  return guideMark({\n    type: RectMark,\n    role: LegendGradientRole,\n    encode\n  }, userEncode);\n}\n\nfunction legendGradientDiscrete (spec, scale, config, userEncode, dataRef) {\n  const _ = lookup(spec, config),\n        vertical = _.isVertical(),\n        thickness = _.gradientThickness(),\n        length = _.gradientLength();\n\n  let u,\n      v,\n      uu,\n      vv,\n      adjust = '';\n  vertical ? (u = 'y', uu = 'y2', v = 'x', vv = 'width', adjust = '1-') : (u = 'x', uu = 'x2', v = 'y', vv = 'height');\n  const enter = {\n    opacity: zero,\n    fill: {\n      scale: scale,\n      field: Value\n    }\n  };\n  enter[u] = {\n    signal: adjust + 'datum.' + Perc,\n    mult: length\n  };\n  enter[v] = zero;\n  enter[uu] = {\n    signal: adjust + 'datum.' + Perc2,\n    mult: length\n  };\n  enter[vv] = encoder(thickness);\n  const encode = {\n    enter: enter,\n    update: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, enter, {\n      opacity: one\n    }),\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    stroke: _('gradientStrokeColor'),\n    strokeWidth: _('gradientStrokeWidth')\n  }, {\n    // update\n    opacity: _('gradientOpacity')\n  });\n  return guideMark({\n    type: RectMark,\n    role: LegendBandRole,\n    key: Value,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nconst alignExpr$1 = \"datum.\".concat(Perc, \"<=0?\\\"\").concat(Left, \"\\\":datum.\").concat(Perc, \">=1?\\\"\").concat(Right, \"\\\":\\\"\").concat(Center, \"\\\"\"),\n      baselineExpr = \"datum.\".concat(Perc, \"<=0?\\\"\").concat(Bottom, \"\\\":datum.\").concat(Perc, \">=1?\\\"\").concat(Top, \"\\\":\\\"\").concat(Middle, \"\\\"\");\nfunction legendGradientLabels (spec, config, userEncode, dataRef) {\n  const _ = lookup(spec, config),\n        vertical = _.isVertical(),\n        thickness = encoder(_.gradientThickness()),\n        length = _.gradientLength();\n\n  let overlap = _('labelOverlap'),\n      enter,\n      update,\n      u,\n      v,\n      adjust = '';\n\n  const encode = {\n    enter: enter = {\n      opacity: zero\n    },\n    update: update = {\n      opacity: one,\n      text: {\n        field: Label\n      }\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    fill: _('labelColor'),\n    fillOpacity: _('labelOpacity'),\n    font: _('labelFont'),\n    fontSize: _('labelFontSize'),\n    fontStyle: _('labelFontStyle'),\n    fontWeight: _('labelFontWeight'),\n    limit: value(spec.labelLimit, config.gradientLabelLimit)\n  });\n\n  if (vertical) {\n    enter.align = {\n      value: 'left'\n    };\n    enter.baseline = update.baseline = {\n      signal: baselineExpr\n    };\n    u = 'y';\n    v = 'x';\n    adjust = '1-';\n  } else {\n    enter.align = update.align = {\n      signal: alignExpr$1\n    };\n    enter.baseline = {\n      value: 'top'\n    };\n    u = 'x';\n    v = 'y';\n  }\n\n  enter[u] = update[u] = {\n    signal: adjust + 'datum.' + Perc,\n    mult: length\n  };\n  enter[v] = update[v] = thickness;\n  thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0;\n  overlap = overlap ? {\n    separation: _('labelSeparation'),\n    method: overlap,\n    order: 'datum.' + Index\n  } : undefined; // type, role, style, key, dataRef, encode, extras\n\n  return guideMark({\n    type: TextMark,\n    role: LegendLabelRole,\n    style: GuideLabelStyle,\n    key: Value,\n    from: dataRef,\n    encode,\n    overlap\n  }, userEncode);\n}\n\nfunction legendSymbolGroups (spec, config, userEncode, dataRef, columns) {\n  const _ = lookup(spec, config),\n        entries = userEncode.entries,\n        interactive = !!(entries && entries.interactive),\n        name = entries ? entries.name : undefined,\n        height = _('clipHeight'),\n        symbolOffset = _('symbolOffset'),\n        valueRef = {\n    data: 'value'\n  },\n        xSignal = \"(\".concat(columns, \") ? datum.\").concat(Offset, \" : datum.\").concat(Size),\n        yEncode = height ? encoder(height) : {\n    field: Size\n  },\n        index = \"datum.\".concat(Index),\n        ncols = \"max(1, \".concat(columns, \")\");\n\n  let encode, enter, update, nrows, sort;\n  yEncode.mult = 0.5; // -- LEGEND SYMBOLS --\n\n  encode = {\n    enter: enter = {\n      opacity: zero,\n      x: {\n        signal: xSignal,\n        mult: 0.5,\n        offset: symbolOffset\n      },\n      y: yEncode\n    },\n    update: update = {\n      opacity: one,\n      x: enter.x,\n      y: enter.y\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  let baseFill = null,\n      baseStroke = null;\n\n  if (!spec.fill) {\n    baseFill = config.symbolBaseFillColor;\n    baseStroke = config.symbolBaseStrokeColor;\n  }\n\n  addEncoders(encode, {\n    fill: _('symbolFillColor', baseFill),\n    shape: _('symbolType'),\n    size: _('symbolSize'),\n    stroke: _('symbolStrokeColor', baseStroke),\n    strokeDash: _('symbolDash'),\n    strokeDashOffset: _('symbolDashOffset'),\n    strokeWidth: _('symbolStrokeWidth')\n  }, {\n    // update\n    opacity: _('symbolOpacity')\n  });\n  LegendScales.forEach(scale => {\n    if (spec[scale]) {\n      update[scale] = enter[scale] = {\n        scale: spec[scale],\n        field: Value\n      };\n    }\n  });\n  const symbols = guideMark({\n    type: SymbolMark,\n    role: LegendSymbolRole,\n    key: Value,\n    from: valueRef,\n    clip: height ? true : undefined,\n    encode\n  }, userEncode.symbols); // -- LEGEND LABELS --\n\n  const labelOffset = encoder(symbolOffset);\n  labelOffset.offset = _('labelOffset');\n  encode = {\n    enter: enter = {\n      opacity: zero,\n      x: {\n        signal: xSignal,\n        offset: labelOffset\n      },\n      y: yEncode\n    },\n    update: update = {\n      opacity: one,\n      text: {\n        field: Label\n      },\n      x: enter.x,\n      y: enter.y\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    align: _('labelAlign'),\n    baseline: _('labelBaseline'),\n    fill: _('labelColor'),\n    fillOpacity: _('labelOpacity'),\n    font: _('labelFont'),\n    fontSize: _('labelFontSize'),\n    fontStyle: _('labelFontStyle'),\n    fontWeight: _('labelFontWeight'),\n    limit: _('labelLimit')\n  });\n  const labels = guideMark({\n    type: TextMark,\n    role: LegendLabelRole,\n    style: GuideLabelStyle,\n    key: Value,\n    from: valueRef,\n    encode\n  }, userEncode.labels); // -- LEGEND ENTRY GROUPS --\n\n  encode = {\n    enter: {\n      noBound: {\n        value: !height\n      },\n      // ignore width/height in bounds calc\n      width: zero,\n      height: height ? encoder(height) : zero,\n      opacity: zero\n    },\n    exit: {\n      opacity: zero\n    },\n    update: update = {\n      opacity: one,\n      row: {\n        signal: null\n      },\n      column: {\n        signal: null\n      }\n    }\n  }; // annotate and sort groups to ensure correct ordering\n\n  if (_.isVertical(true)) {\n    nrows = \"ceil(item.mark.items.length / \".concat(ncols, \")\");\n    update.row.signal = \"\".concat(index, \"%\").concat(nrows);\n    update.column.signal = \"floor(\".concat(index, \" / \").concat(nrows, \")\");\n    sort = {\n      field: ['row', index]\n    };\n  } else {\n    update.row.signal = \"floor(\".concat(index, \" / \").concat(ncols, \")\");\n    update.column.signal = \"\".concat(index, \" % \").concat(ncols);\n    sort = {\n      field: index\n    };\n  } // handle zero column case (implies infinite columns)\n\n\n  update.column.signal = \"(\".concat(columns, \")?\").concat(update.column.signal, \":\").concat(index); // facet legend entries into sub-groups\n\n  dataRef = {\n    facet: {\n      data: dataRef,\n      name: 'value',\n      groupby: Index\n    }\n  };\n  return guideGroup({\n    role: ScopeRole,\n    from: dataRef,\n    encode: extendEncode(encode, entries, Skip),\n    marks: [symbols, labels],\n    name,\n    interactive,\n    sort\n  });\n}\nfunction legendSymbolLayout(spec, config) {\n  const _ = lookup(spec, config); // layout parameters for legend entries\n\n\n  return {\n    align: _('gridAlign'),\n    columns: _.entryColumns(),\n    center: {\n      row: true,\n      column: false\n    },\n    padding: {\n      row: _('rowPadding'),\n      column: _('columnPadding')\n    }\n  };\n}\n\nconst isL = 'item.orient === \"left\"',\n      isR = 'item.orient === \"right\"',\n      isLR = \"(\".concat(isL, \" || \").concat(isR, \")\"),\n      isVG = \"datum.vgrad && \".concat(isLR),\n      baseline = anchorExpr('\"top\"', '\"bottom\"', '\"middle\"'),\n      alignFlip = anchorExpr('\"right\"', '\"left\"', '\"center\"'),\n      exprAlign = \"datum.vgrad && \".concat(isR, \" ? (\").concat(alignFlip, \") : (\").concat(isLR, \" && !(datum.vgrad && \").concat(isL, \")) ? \\\"left\\\" : \").concat(alignExpr),\n      exprAnchor = \"item._anchor || (\".concat(isLR, \" ? \\\"middle\\\" : \\\"start\\\")\"),\n      exprAngle = \"\".concat(isVG, \" ? (\").concat(isL, \" ? -90 : 90) : 0\"),\n      exprBaseline = \"\".concat(isLR, \" ? (datum.vgrad ? (\").concat(isR, \" ? \\\"bottom\\\" : \\\"top\\\") : \").concat(baseline, \") : \\\"top\\\"\");\nfunction legendTitle (spec, config, userEncode, dataRef) {\n  const _ = lookup(spec, config);\n\n  const encode = {\n    enter: {\n      opacity: zero\n    },\n    update: {\n      opacity: one,\n      x: {\n        field: {\n          group: 'padding'\n        }\n      },\n      y: {\n        field: {\n          group: 'padding'\n        }\n      }\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    orient: _('titleOrient'),\n    _anchor: _('titleAnchor'),\n    anchor: {\n      signal: exprAnchor\n    },\n    angle: {\n      signal: exprAngle\n    },\n    align: {\n      signal: exprAlign\n    },\n    baseline: {\n      signal: exprBaseline\n    },\n    text: spec.title,\n    fill: _('titleColor'),\n    fillOpacity: _('titleOpacity'),\n    font: _('titleFont'),\n    fontSize: _('titleFontSize'),\n    fontStyle: _('titleFontStyle'),\n    fontWeight: _('titleFontWeight'),\n    limit: _('titleLimit'),\n    lineHeight: _('titleLineHeight')\n  }, {\n    // require update\n    align: _('titleAlign'),\n    baseline: _('titleBaseline')\n  });\n  return guideMark({\n    type: TextMark,\n    role: LegendTitleRole,\n    style: GuideTitleStyle,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction clip (clip, scope) {\n  let expr;\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(clip)) {\n    if (clip.signal) {\n      expr = clip.signal;\n    } else if (clip.path) {\n      expr = 'pathShape(' + param(clip.path) + ')';\n    } else if (clip.sphere) {\n      expr = 'geoShape(' + param(clip.sphere) + ', {type: \"Sphere\"})';\n    }\n  }\n\n  return expr ? scope.signalRef(expr) : !!clip;\n}\n\nfunction param(value) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && value.signal ? value.signal : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(value);\n}\n\nfunction getRole (spec) {\n  const role = spec.role || '';\n  return !role.indexOf('axis') || !role.indexOf('legend') || !role.indexOf('title') ? role : spec.type === GroupMark ? ScopeRole : role || MarkRole;\n}\n\nfunction definition (spec) {\n  return {\n    marktype: spec.type,\n    name: spec.name || undefined,\n    role: spec.role || getRole(spec),\n    zindex: +spec.zindex || undefined,\n    aria: spec.aria,\n    description: spec.description\n  };\n}\n\nfunction interactive (spec, scope) {\n  return spec && spec.signal ? scope.signalRef(spec.signal) : spec === false ? false : true;\n}\n\n/**\n * Parse a data transform specification.\n */\n\nfunction parseTransform (spec, scope) {\n  const def = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_4__[\"definition\"])(spec.type);\n  if (!def) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized transform type: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(spec.type));\n  const t = entry$1(def.type.toLowerCase(), null, parseParameters(def, spec, scope));\n  if (spec.signal) scope.addSignal(spec.signal, scope.proxy(t));\n  t.metadata = def.metadata || {};\n  return t;\n}\n/**\n * Parse all parameters of a data transform.\n */\n\nfunction parseParameters(def, spec, scope) {\n  const params = {},\n        n = def.params.length;\n\n  for (let i = 0; i < n; ++i) {\n    const pdef = def.params[i];\n    params[pdef.name] = parseParameter$1(pdef, spec, scope);\n  }\n\n  return params;\n}\n/**\n * Parse a data transform parameter.\n */\n\n\nfunction parseParameter$1(def, spec, scope) {\n  const type = def.type,\n        value = spec[def.name];\n\n  if (type === 'index') {\n    return parseIndexParameter(def, spec, scope);\n  } else if (value === undefined) {\n    if (def.required) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing required ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(spec.type) + ' parameter: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(def.name));\n    }\n\n    return;\n  } else if (type === 'param') {\n    return parseSubParameters(def, spec, scope);\n  } else if (type === 'projection') {\n    return scope.projectionRef(spec[def.name]);\n  }\n\n  return def.array && !isSignal(value) ? value.map(v => parameterValue(def, v, scope)) : parameterValue(def, value, scope);\n}\n/**\n * Parse a single parameter value.\n */\n\n\nfunction parameterValue(def, value, scope) {\n  const type = def.type;\n\n  if (isSignal(value)) {\n    return isExpr$1(type) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Expression references can not be signals.') : isField(type) ? scope.fieldRef(value) : isCompare(type) ? scope.compareRef(value) : scope.signalRef(value.signal);\n  } else {\n    const expr = def.expr || isField(type);\n    return expr && outerExpr(value) ? scope.exprRef(value.expr, value.as) : expr && outerField(value) ? fieldRef(value.field, value.as) : isExpr$1(type) ? Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(value, scope) : isData(type) ? ref(scope.getData(value).values) : isField(type) ? fieldRef(value) : isCompare(type) ? scope.compareRef(value) : value;\n  }\n}\n/**\n * Parse parameter for accessing an index of another data set.\n */\n\n\nfunction parseIndexParameter(def, spec, scope) {\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(spec.from)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Lookup \"from\" parameter must be a string literal.');\n  }\n\n  return scope.getData(spec.from).lookupRef(scope, spec.key);\n}\n/**\n * Parse a parameter that contains one or more sub-parameter objects.\n */\n\n\nfunction parseSubParameters(def, spec, scope) {\n  const value = spec[def.name];\n\n  if (def.array) {\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value)) {\n      // signals not allowed!\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Expected an array of sub-parameters. Instead: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(value));\n    }\n\n    return value.map(v => parseSubParameter(def, v, scope));\n  } else {\n    return parseSubParameter(def, value, scope);\n  }\n}\n/**\n * Parse a sub-parameter object.\n */\n\n\nfunction parseSubParameter(def, value, scope) {\n  const n = def.params.length;\n  let pdef; // loop over defs to find matching key\n\n  for (let i = 0; i < n; ++i) {\n    pdef = def.params[i];\n\n    for (const k in pdef.key) {\n      if (pdef.key[k] !== value[k]) {\n        pdef = null;\n        break;\n      }\n    }\n\n    if (pdef) break;\n  } // raise error if matching key not found\n\n\n  if (!pdef) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unsupported parameter: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(value)); // parse params, create Params transform, return ref\n\n  const params = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(parseParameters(pdef, value, scope), pdef.key);\n  return ref(scope.add(Params(params)));\n} // -- Utilities -----\n\n\nconst outerExpr = _ => _ && _.expr;\nconst outerField = _ => _ && _.field;\nconst isData = _ => _ === 'data';\nconst isExpr$1 = _ => _ === 'expr';\nconst isField = _ => _ === 'field';\nconst isCompare = _ => _ === 'compare';\n\nfunction parseData (from, group, scope) {\n  let facet, key, op, dataRef, parent; // if no source data, generate singleton datum\n\n  if (!from) {\n    dataRef = ref(scope.add(Collect(null, [{}])));\n  } // if faceted, process facet specification\n  else if (facet = from.facet) {\n      if (!group) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Only group marks can be faceted.'); // use pre-faceted source data, if available\n\n      if (facet.field != null) {\n        dataRef = parent = getDataRef(facet, scope);\n      } else {\n        // generate facet aggregates if no direct data specification\n        if (!from.data) {\n          op = parseTransform(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n            type: 'aggregate',\n            groupby: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(facet.groupby)\n          }, facet.aggregate), scope);\n          op.params.key = scope.keyRef(facet.groupby);\n          op.params.pulse = getDataRef(facet, scope);\n          dataRef = parent = ref(scope.add(op));\n        } else {\n          parent = ref(scope.getData(from.data).aggregate);\n        }\n\n        key = scope.keyRef(facet.groupby, true);\n      }\n    } // if not yet defined, get source data reference\n\n\n  if (!dataRef) {\n    dataRef = getDataRef(from, scope);\n  }\n\n  return {\n    key: key,\n    pulse: dataRef,\n    parent: parent\n  };\n}\nfunction getDataRef(from, scope) {\n  return from.$ref ? from : from.data && from.data.$ref ? from.data : ref(scope.getData(from.data).output);\n}\n\nfunction DataScope(scope, input, output, values, aggr) {\n  this.scope = scope; // parent scope object\n\n  this.input = input; // first operator in pipeline (tuple input)\n\n  this.output = output; // last operator in pipeline (tuple output)\n\n  this.values = values; // operator for accessing tuples (but not tuple flow)\n  // last aggregate in transform pipeline\n\n  this.aggregate = aggr; // lookup table of field indices\n\n  this.index = {};\n}\n\nDataScope.fromEntries = function (scope, entries) {\n  const n = entries.length,\n        values = entries[n - 1],\n        output = entries[n - 2];\n  let input = entries[0],\n      aggr = null,\n      i = 1;\n\n  if (input && input.type === 'load') {\n    input = entries[1];\n  } // add operator entries to this scope, wire up pulse chain\n\n\n  scope.add(entries[0]);\n\n  for (; i < n; ++i) {\n    entries[i].params.pulse = ref(entries[i - 1]);\n    scope.add(entries[i]);\n    if (entries[i].type === 'aggregate') aggr = entries[i];\n  }\n\n  return new DataScope(scope, input, output, values, aggr);\n};\n\nfunction fieldKey(field) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(field) ? field : null;\n}\n\nfunction addSortField(scope, p, sort) {\n  const as = aggrField(sort.op, sort.field);\n  let s;\n\n  if (p.ops) {\n    for (let i = 0, n = p.as.length; i < n; ++i) {\n      if (p.as[i] === as) return;\n    }\n  } else {\n    p.ops = ['count'];\n    p.fields = [null];\n    p.as = ['count'];\n  }\n\n  if (sort.op) {\n    p.ops.push((s = sort.op.signal) ? scope.signalRef(s) : sort.op);\n    p.fields.push(scope.fieldRef(sort.field));\n    p.as.push(as);\n  }\n}\n\nfunction cache(scope, ds, name, optype, field, counts, index) {\n  const cache = ds[name] || (ds[name] = {}),\n        sort = sortKey(counts);\n  let k = fieldKey(field),\n      v,\n      op;\n\n  if (k != null) {\n    scope = ds.scope;\n    k = k + (sort ? '|' + sort : '');\n    v = cache[k];\n  }\n\n  if (!v) {\n    const params = counts ? {\n      field: keyFieldRef,\n      pulse: ds.countsRef(scope, field, counts)\n    } : {\n      field: scope.fieldRef(field),\n      pulse: ref(ds.output)\n    };\n    if (sort) params.sort = scope.sortRef(counts);\n    op = scope.add(entry$1(optype, undefined, params));\n    if (index) ds.index[field] = op;\n    v = ref(op);\n    if (k != null) cache[k] = v;\n  }\n\n  return v;\n}\n\nDataScope.prototype = {\n  countsRef(scope, field, sort) {\n    const ds = this,\n          cache = ds.counts || (ds.counts = {}),\n          k = fieldKey(field);\n    let v, a, p;\n\n    if (k != null) {\n      scope = ds.scope;\n      v = cache[k];\n    }\n\n    if (!v) {\n      p = {\n        groupby: scope.fieldRef(field, 'key'),\n        pulse: ref(ds.output)\n      };\n      if (sort && sort.field) addSortField(scope, p, sort);\n      a = scope.add(Aggregate(p));\n      v = scope.add(Collect({\n        pulse: ref(a)\n      }));\n      v = {\n        agg: a,\n        ref: ref(v)\n      };\n      if (k != null) cache[k] = v;\n    } else if (sort && sort.field) {\n      addSortField(scope, v.agg.params, sort);\n    }\n\n    return v.ref;\n  },\n\n  tuplesRef() {\n    return ref(this.values);\n  },\n\n  extentRef(scope, field) {\n    return cache(scope, this, 'extent', 'extent', field, false);\n  },\n\n  domainRef(scope, field) {\n    return cache(scope, this, 'domain', 'values', field, false);\n  },\n\n  valuesRef(scope, field, sort) {\n    return cache(scope, this, 'vals', 'values', field, sort || true);\n  },\n\n  lookupRef(scope, field) {\n    return cache(scope, this, 'lookup', 'tupleindex', field, false);\n  },\n\n  indataRef(scope, field) {\n    return cache(scope, this, 'indata', 'tupleindex', field, true, true);\n  }\n\n};\n\nfunction parseFacet (spec, scope, group) {\n  const facet = spec.from.facet,\n        name = facet.name,\n        data = getDataRef(facet, scope);\n  let op;\n\n  if (!facet.name) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Facet must have a name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(facet));\n  }\n\n  if (!facet.data) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Facet must reference a data set: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(facet));\n  }\n\n  if (facet.field) {\n    op = scope.add(PreFacet({\n      field: scope.fieldRef(facet.field),\n      pulse: data\n    }));\n  } else if (facet.groupby) {\n    op = scope.add(Facet({\n      key: scope.keyRef(facet.groupby),\n      group: ref(scope.proxy(group.parent)),\n      pulse: data\n    }));\n  } else {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Facet must specify groupby or field: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(facet));\n  } // initialize facet subscope\n\n\n  const subscope = scope.fork(),\n        source = subscope.add(Collect()),\n        values = subscope.add(Sieve({\n    pulse: ref(source)\n  }));\n  subscope.addData(name, new DataScope(subscope, source, source, values));\n  subscope.addSignal('parent', null); // parse faceted subflow\n\n  op.params.subflow = {\n    $subflow: subscope.parse(spec).toRuntime()\n  };\n}\n\nfunction parseSubflow (spec, scope, input) {\n  const op = scope.add(PreFacet({\n    pulse: input.pulse\n  })),\n        subscope = scope.fork();\n  subscope.add(Sieve());\n  subscope.addSignal('parent', null); // parse group mark subflow\n\n  op.params.subflow = {\n    $subflow: subscope.parse(spec).toRuntime()\n  };\n}\n\nfunction parseTrigger (spec, scope, name) {\n  const remove = spec.remove,\n        insert = spec.insert,\n        toggle = spec.toggle,\n        modify = spec.modify,\n        values = spec.values,\n        op = scope.add(operator());\n  const update = 'if(' + spec.trigger + ',modify(\"' + name + '\",' + [insert, remove, toggle, modify, values].map(_ => _ == null ? 'null' : _).join(',') + '),0)';\n  const expr = Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(update, scope);\n  op.update = expr.$expr;\n  op.params = expr.$params;\n}\n\nfunction parseMark (spec, scope) {\n  const role = getRole(spec),\n        group = spec.type === GroupMark,\n        facet = spec.from && spec.from.facet,\n        overlap = spec.overlap;\n  let layout = spec.layout || role === ScopeRole || role === FrameRole,\n      ops,\n      op,\n      store,\n      enc,\n      name,\n      layoutRef,\n      boundRef;\n  const nested = role === MarkRole || layout || facet; // resolve input data\n\n  const input = parseData(spec.from, group, scope); // data join to map tuples to visual items\n\n  op = scope.add(DataJoin({\n    key: input.key || (spec.key ? fieldRef(spec.key) : undefined),\n    pulse: input.pulse,\n    clean: !group\n  }));\n  const joinRef = ref(op); // collect visual items\n\n  op = store = scope.add(Collect({\n    pulse: joinRef\n  })); // connect visual items to scenegraph\n\n  op = scope.add(Mark({\n    markdef: definition(spec),\n    interactive: interactive(spec.interactive, scope),\n    clip: clip(spec.clip, scope),\n    context: {\n      $context: true\n    },\n    groups: scope.lookup(),\n    parent: scope.signals.parent ? scope.signalRef('parent') : null,\n    index: scope.markpath(),\n    pulse: ref(op)\n  }));\n  const markRef = ref(op); // add visual encoders\n\n  op = enc = scope.add(Encode(parseEncode(spec.encode, spec.type, role, spec.style, scope, {\n    mod: false,\n    pulse: markRef\n  }))); // monitor parent marks to propagate changes\n\n  op.params.parent = scope.encode(); // add post-encoding transforms, if defined\n\n  if (spec.transform) {\n    spec.transform.forEach(_ => {\n      const tx = parseTransform(_, scope),\n            md = tx.metadata;\n\n      if (md.generates || md.changes) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Mark transforms should not generate new data.');\n      }\n\n      if (!md.nomod) enc.params.mod = true; // update encode mod handling\n\n      tx.params.pulse = ref(op);\n      scope.add(op = tx);\n    });\n  } // if item sort specified, perform post-encoding\n\n\n  if (spec.sort) {\n    op = scope.add(SortItems({\n      sort: scope.compareRef(spec.sort),\n      pulse: ref(op)\n    }));\n  }\n\n  const encodeRef = ref(op); // add view layout operator if needed\n\n  if (facet || layout) {\n    layout = scope.add(ViewLayout({\n      layout: scope.objectProperty(spec.layout),\n      legends: scope.legends,\n      mark: markRef,\n      pulse: encodeRef\n    }));\n    layoutRef = ref(layout);\n  } // compute bounding boxes\n\n\n  const bound = scope.add(Bound({\n    mark: markRef,\n    pulse: layoutRef || encodeRef\n  }));\n  boundRef = ref(bound); // if group mark, recurse to parse nested content\n\n  if (group) {\n    // juggle layout & bounds to ensure they run *after* any faceting transforms\n    if (nested) {\n      ops = scope.operators;\n      ops.pop();\n      if (layout) ops.pop();\n    }\n\n    scope.pushState(encodeRef, layoutRef || boundRef, joinRef);\n    facet ? parseFacet(spec, scope, input) // explicit facet\n    : nested ? parseSubflow(spec, scope, input) // standard mark group\n    : scope.parse(spec); // guide group, we can avoid nested scopes\n\n    scope.popState();\n\n    if (nested) {\n      if (layout) ops.push(layout);\n      ops.push(bound);\n    }\n  } // if requested, add overlap removal transform\n\n\n  if (overlap) {\n    boundRef = parseOverlap(overlap, boundRef, scope);\n  } // render / sieve items\n\n\n  const render = scope.add(Render({\n    pulse: boundRef\n  })),\n        sieve = scope.add(Sieve({\n    pulse: ref(render)\n  }, undefined, scope.parent())); // if mark is named, make accessible as reactive geometry\n  // add trigger updates if defined\n\n  if (spec.name != null) {\n    name = spec.name;\n    scope.addData(name, new DataScope(scope, store, render, sieve));\n    if (spec.on) spec.on.forEach(on => {\n      if (on.insert || on.remove || on.toggle) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Marks only support modify triggers.');\n      }\n\n      parseTrigger(on, scope, name);\n    });\n  }\n}\n\nfunction parseOverlap(overlap, source, scope) {\n  const method = overlap.method,\n        bound = overlap.bound,\n        sep = overlap.separation;\n  const params = {\n    separation: isSignal(sep) ? scope.signalRef(sep.signal) : sep,\n    method: isSignal(method) ? scope.signalRef(method.signal) : method,\n    pulse: source\n  };\n\n  if (overlap.order) {\n    params.sort = scope.compareRef({\n      field: overlap.order\n    });\n  }\n\n  if (bound) {\n    const tol = bound.tolerance;\n    params.boundTolerance = isSignal(tol) ? scope.signalRef(tol.signal) : +tol;\n    params.boundScale = scope.scaleRef(bound.scale);\n    params.boundOrient = bound.orient;\n  }\n\n  return ref(scope.add(Overlap(params)));\n}\n\nfunction parseLegend (spec, scope) {\n  const config = scope.config.legend,\n        encode = spec.encode || {},\n        _ = lookup(spec, config),\n        legendEncode = encode.legend || {},\n        name = legendEncode.name || undefined,\n        interactive = legendEncode.interactive,\n        style = legendEncode.style,\n        scales = {};\n\n  let scale = 0,\n      entryLayout,\n      params,\n      children; // resolve scales and 'canonical' scale name\n\n  LegendScales.forEach(s => spec[s] ? (scales[s] = spec[s], scale = scale || spec[s]) : 0);\n  if (!scale) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing valid scale for legend.'); // resolve legend type (symbol, gradient, or discrete gradient)\n\n  const type = legendType(spec, scope.scaleType(scale)); // single-element data source for legend group\n\n  const datum = {\n    title: spec.title != null,\n    scales: scales,\n    type: type,\n    vgrad: type !== 'symbol' && _.isVertical()\n  };\n  const dataRef = ref(scope.add(Collect(null, [datum]))); // encoding properties for legend entry sub-group\n\n  const entryEncode = {\n    enter: {\n      x: {\n        value: 0\n      },\n      y: {\n        value: 0\n      }\n    }\n  }; // data source for legend values\n\n  const entryRef = ref(scope.add(LegendEntries(params = {\n    type: type,\n    scale: scope.scaleRef(scale),\n    count: scope.objectProperty(_('tickCount')),\n    limit: scope.property(_('symbolLimit')),\n    values: scope.objectProperty(spec.values),\n    minstep: scope.property(spec.tickMinStep),\n    formatType: scope.property(spec.formatType),\n    formatSpecifier: scope.property(spec.format)\n  }))); // continuous gradient legend\n\n  if (type === Gradient) {\n    children = [legendGradient(spec, scale, config, encode.gradient), legendGradientLabels(spec, config, encode.labels, entryRef)]; // adjust default tick count based on the gradient length\n\n    params.count = params.count || scope.signalRef(\"max(2,2*floor((\".concat(deref(_.gradientLength()), \")/100))\"));\n  } // discrete gradient legend\n  else if (type === Discrete) {\n      children = [legendGradientDiscrete(spec, scale, config, encode.gradient, entryRef), legendGradientLabels(spec, config, encode.labels, entryRef)];\n    } // symbol legend\n    else {\n        // determine legend symbol group layout\n        entryLayout = legendSymbolLayout(spec, config);\n        children = [legendSymbolGroups(spec, config, encode, entryRef, deref(entryLayout.columns))]; // pass symbol size information to legend entry generator\n\n        params.size = sizeExpression(spec, scope, children[0].marks);\n      } // generate legend marks\n\n\n  children = [guideGroup({\n    role: LegendEntryRole,\n    from: dataRef,\n    encode: entryEncode,\n    marks: children,\n    layout: entryLayout,\n    interactive\n  })]; // include legend title if defined\n\n  if (datum.title) {\n    children.push(legendTitle(spec, config, encode.title, dataRef));\n  } // parse legend specification\n\n\n  return parseMark(guideGroup({\n    role: LegendRole,\n    from: dataRef,\n    encode: extendEncode(buildLegendEncode(_, spec, config), legendEncode, Skip),\n    marks: children,\n    aria: _('aria'),\n    description: _('description'),\n    zindex: _('zindex'),\n    name,\n    interactive,\n    style\n  }), scope);\n}\n\nfunction legendType(spec, scaleType) {\n  let type = spec.type || Symbols;\n\n  if (!spec.type && scaleCount(spec) === 1 && (spec.fill || spec.stroke)) {\n    type = Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isContinuous\"])(scaleType) ? Gradient : Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isDiscretizing\"])(scaleType) ? Discrete : Symbols;\n  }\n\n  return type !== Gradient ? type : Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"isDiscretizing\"])(scaleType) ? Discrete : Gradient;\n}\n\nfunction scaleCount(spec) {\n  return LegendScales.reduce((count, type) => count + (spec[type] ? 1 : 0), 0);\n}\n\nfunction buildLegendEncode(_, spec, config) {\n  const encode = {\n    enter: {},\n    update: {}\n  };\n  addEncoders(encode, {\n    orient: _('orient'),\n    offset: _('offset'),\n    padding: _('padding'),\n    titlePadding: _('titlePadding'),\n    cornerRadius: _('cornerRadius'),\n    fill: _('fillColor'),\n    stroke: _('strokeColor'),\n    strokeWidth: config.strokeWidth,\n    strokeDash: config.strokeDash,\n    x: _('legendX'),\n    y: _('legendY'),\n    // accessibility support\n    format: spec.format,\n    formatType: spec.formatType\n  });\n  return encode;\n}\n\nfunction sizeExpression(spec, scope, marks) {\n  const size = deref(getChannel('size', spec, marks)),\n        strokeWidth = deref(getChannel('strokeWidth', spec, marks)),\n        fontSize = deref(getFontSize(marks[1].encode, scope, GuideLabelStyle));\n  return Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(\"max(ceil(sqrt(\".concat(size, \")+\").concat(strokeWidth, \"),\").concat(fontSize, \")\"), scope);\n}\n\nfunction getChannel(name, spec, marks) {\n  return spec[name] ? \"scale(\\\"\".concat(spec[name], \"\\\",datum)\") : getEncoding(name, marks[0].encode);\n}\n\nfunction getFontSize(encode, scope, style) {\n  return getEncoding('fontSize', encode) || getStyle('fontSize', scope, style);\n}\n\nconst angleExpr = \"item.orient===\\\"\".concat(Left, \"\\\"?-90:item.orient===\\\"\").concat(Right, \"\\\"?90:0\");\nfunction parseTitle (spec, scope) {\n  spec = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(spec) ? {\n    text: spec\n  } : spec;\n\n  const _ = lookup(spec, scope.config.title),\n        encode = spec.encode || {},\n        userEncode = encode.group || {},\n        name = userEncode.name || undefined,\n        interactive = userEncode.interactive,\n        style = userEncode.style,\n        children = []; // single-element data source for group title\n\n\n  const datum = {},\n        dataRef = ref(scope.add(Collect(null, [datum]))); // include title text\n\n  children.push(buildTitle(spec, _, titleEncode(spec), dataRef)); // include subtitle text\n\n  if (spec.subtitle) {\n    children.push(buildSubTitle(spec, _, encode.subtitle, dataRef));\n  } // parse title specification\n\n\n  return parseMark(guideGroup({\n    role: TitleRole,\n    from: dataRef,\n    encode: groupEncode(_, userEncode),\n    marks: children,\n    aria: _('aria'),\n    description: _('description'),\n    zindex: _('zindex'),\n    name,\n    interactive,\n    style\n  }), scope);\n} // provide backwards-compatibility for title custom encode;\n// the top-level encode block has been *deprecated*.\n\nfunction titleEncode(spec) {\n  const encode = spec.encode;\n  return encode && encode.title || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n    name: spec.name,\n    interactive: spec.interactive,\n    style: spec.style\n  }, encode);\n}\n\nfunction groupEncode(_, userEncode) {\n  const encode = {\n    enter: {},\n    update: {}\n  };\n  addEncoders(encode, {\n    orient: _('orient'),\n    anchor: _('anchor'),\n    align: {\n      signal: alignExpr\n    },\n    angle: {\n      signal: angleExpr\n    },\n    limit: _('limit'),\n    frame: _('frame'),\n    offset: _('offset') || 0,\n    padding: _('subtitlePadding')\n  });\n  return extendEncode(encode, userEncode, Skip);\n}\n\nfunction buildTitle(spec, _, userEncode, dataRef) {\n  const zero = {\n    value: 0\n  },\n        text = spec.text,\n        encode = {\n    enter: {\n      opacity: zero\n    },\n    update: {\n      opacity: {\n        value: 1\n      }\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    text: text,\n    align: {\n      signal: 'item.mark.group.align'\n    },\n    angle: {\n      signal: 'item.mark.group.angle'\n    },\n    limit: {\n      signal: 'item.mark.group.limit'\n    },\n    baseline: 'top',\n    dx: _('dx'),\n    dy: _('dy'),\n    fill: _('color'),\n    font: _('font'),\n    fontSize: _('fontSize'),\n    fontStyle: _('fontStyle'),\n    fontWeight: _('fontWeight'),\n    lineHeight: _('lineHeight')\n  }, {\n    // update\n    align: _('align'),\n    angle: _('angle'),\n    baseline: _('baseline')\n  });\n  return guideMark({\n    type: TextMark,\n    role: TitleTextRole,\n    style: GroupTitleStyle,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction buildSubTitle(spec, _, userEncode, dataRef) {\n  const zero = {\n    value: 0\n  },\n        text = spec.subtitle,\n        encode = {\n    enter: {\n      opacity: zero\n    },\n    update: {\n      opacity: {\n        value: 1\n      }\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    text: text,\n    align: {\n      signal: 'item.mark.group.align'\n    },\n    angle: {\n      signal: 'item.mark.group.angle'\n    },\n    limit: {\n      signal: 'item.mark.group.limit'\n    },\n    baseline: 'top',\n    dx: _('dx'),\n    dy: _('dy'),\n    fill: _('subtitleColor'),\n    font: _('subtitleFont'),\n    fontSize: _('subtitleFontSize'),\n    fontStyle: _('subtitleFontStyle'),\n    fontWeight: _('subtitleFontWeight'),\n    lineHeight: _('subtitleLineHeight')\n  }, {\n    // update\n    align: _('align'),\n    angle: _('angle'),\n    baseline: _('baseline')\n  });\n  return guideMark({\n    type: TextMark,\n    role: TitleSubtitleRole,\n    style: GroupSubtitleStyle,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction parseData$1(data, scope) {\n  const transforms = [];\n\n  if (data.transform) {\n    data.transform.forEach(tx => {\n      transforms.push(parseTransform(tx, scope));\n    });\n  }\n\n  if (data.on) {\n    data.on.forEach(on => {\n      parseTrigger(on, scope, data.name);\n    });\n  }\n\n  scope.addDataPipeline(data.name, analyze(data, scope, transforms));\n}\n/**\n * Analyze a data pipeline, add needed operators.\n */\n\nfunction analyze(data, scope, ops) {\n  const output = [];\n  let source = null,\n      modify = false,\n      generate = false,\n      upstream,\n      i,\n      n,\n      t,\n      m;\n\n  if (data.values) {\n    // hard-wired input data set\n    if (hasSignal(data.values) || hasSignal(data.format)) {\n      // if either values or format has signal, use dynamic loader\n      output.push(load(scope, data));\n      output.push(source = collect());\n    } else {\n      // otherwise, ingest upon dataflow init\n      output.push(source = collect({\n        $ingest: data.values,\n        $format: data.format\n      }));\n    }\n  } else if (data.url) {\n    // load data from external source\n    if (hasSignal(data.url) || hasSignal(data.format)) {\n      // if either url or format has signal, use dynamic loader\n      output.push(load(scope, data));\n      output.push(source = collect());\n    } else {\n      // otherwise, request load upon dataflow init\n      output.push(source = collect({\n        $request: data.url,\n        $format: data.format\n      }));\n    }\n  } else if (data.source) {\n    // derives from one or more other data sets\n    source = upstream = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(data.source).map(d => ref(scope.getData(d).output));\n    output.push(null); // populate later\n  } // scan data transforms, add collectors as needed\n\n\n  for (i = 0, n = ops.length; i < n; ++i) {\n    t = ops[i];\n    m = t.metadata;\n\n    if (!source && !m.source) {\n      output.push(source = collect());\n    }\n\n    output.push(t);\n    if (m.generates) generate = true;\n    if (m.modifies && !generate) modify = true;\n    if (m.source) source = t;else if (m.changes) source = null;\n  }\n\n  if (upstream) {\n    n = upstream.length - 1;\n    output[0] = Relay({\n      derive: modify,\n      pulse: n ? upstream : upstream[0]\n    });\n\n    if (modify || n) {\n      // collect derived and multi-pulse tuples\n      output.splice(1, 0, collect());\n    }\n  }\n\n  if (!source) output.push(collect());\n  output.push(Sieve({}));\n  return output;\n}\n\nfunction collect(values) {\n  const s = Collect({}, values);\n  s.metadata = {\n    source: true\n  };\n  return s;\n}\n\nfunction load(scope, data) {\n  return Load({\n    url: data.url ? scope.property(data.url) : undefined,\n    async: data.async ? scope.property(data.async) : undefined,\n    values: data.values ? scope.property(data.values) : undefined,\n    format: scope.objectProperty(data.format)\n  });\n}\n\nconst isX = orient => orient === Bottom || orient === Top; // get sign coefficient based on axis orient\n\n\nconst getSign = (orient, a, b) => isSignal(orient) ? ifLeftTopExpr(orient.signal, a, b) : orient === Left || orient === Top ? a : b; // condition on axis x-direction\n\nconst ifX = (orient, a, b) => isSignal(orient) ? ifXEnc(orient.signal, a, b) : isX(orient) ? a : b; // condition on axis y-direction\n\nconst ifY = (orient, a, b) => isSignal(orient) ? ifYEnc(orient.signal, a, b) : isX(orient) ? b : a;\nconst ifTop = (orient, a, b) => isSignal(orient) ? ifTopExpr(orient.signal, a, b) : orient === Top ? {\n  value: a\n} : {\n  value: b\n};\nconst ifRight = (orient, a, b) => isSignal(orient) ? ifRightExpr(orient.signal, a, b) : orient === Right ? {\n  value: a\n} : {\n  value: b\n};\n\nconst ifXEnc = ($orient, a, b) => ifEnc(\"\".concat($orient, \" === '\").concat(Top, \"' || \").concat($orient, \" === '\").concat(Bottom, \"'\"), a, b);\n\nconst ifYEnc = ($orient, a, b) => ifEnc(\"\".concat($orient, \" !== '\").concat(Top, \"' && \").concat($orient, \" !== '\").concat(Bottom, \"'\"), a, b);\n\nconst ifLeftTopExpr = ($orient, a, b) => ifExpr(\"\".concat($orient, \" === '\").concat(Left, \"' || \").concat($orient, \" === '\").concat(Top, \"'\"), a, b);\n\nconst ifTopExpr = ($orient, a, b) => ifExpr(\"\".concat($orient, \" === '\").concat(Top, \"'\"), a, b);\n\nconst ifRightExpr = ($orient, a, b) => ifExpr(\"\".concat($orient, \" === '\").concat(Right, \"'\"), a, b);\n\nconst ifEnc = (test, a, b) => {\n  // ensure inputs are encoder objects (or null)\n  a = a != null ? encoder(a) : a;\n  b = b != null ? encoder(b) : b;\n\n  if (isSimple(a) && isSimple(b)) {\n    // if possible generate simple signal expression\n    a = a ? a.signal || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(a.value) : null;\n    b = b ? b.signal || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(b.value) : null;\n    return {\n      signal: \"\".concat(test, \" ? (\").concat(a, \") : (\").concat(b, \")\")\n    };\n  } else {\n    // otherwise generate rule set\n    return [Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n      test\n    }, a)].concat(b || []);\n  }\n};\n\nconst isSimple = enc => enc == null || Object.keys(enc).length === 1;\n\nconst ifExpr = (test, a, b) => ({\n  signal: \"\".concat(test, \" ? (\").concat(toExpr(a), \") : (\").concat(toExpr(b), \")\")\n});\n\nconst ifOrient = ($orient, t, b, l, r) => ({\n  signal: (l != null ? \"\".concat($orient, \" === '\").concat(Left, \"' ? (\").concat(toExpr(l), \") : \") : '') + (b != null ? \"\".concat($orient, \" === '\").concat(Bottom, \"' ? (\").concat(toExpr(b), \") : \") : '') + (r != null ? \"\".concat($orient, \" === '\").concat(Right, \"' ? (\").concat(toExpr(r), \") : \") : '') + (t != null ? \"\".concat($orient, \" === '\").concat(Top, \"' ? (\").concat(toExpr(t), \") : \") : '') + '(null)'\n});\n\nconst toExpr = v => isSignal(v) ? v.signal : v == null ? null : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(v);\n\nconst mult = (sign, value) => value === 0 ? 0 : isSignal(sign) ? {\n  signal: \"(\".concat(sign.signal, \") * \").concat(value)\n} : {\n  value: sign * value\n};\nconst patch = (value, base) => {\n  const s = value.signal;\n  return s && s.endsWith('(null)') ? {\n    signal: s.slice(0, -6) + base.signal\n  } : value;\n};\n\nfunction fallback(prop, config, axisConfig, style) {\n  let styleProp;\n\n  if (config && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(config, prop)) {\n    return config[prop];\n  } else if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(axisConfig, prop)) {\n    return axisConfig[prop];\n  } else if (prop.startsWith('title')) {\n    switch (prop) {\n      case 'titleColor':\n        styleProp = 'fill';\n        break;\n\n      case 'titleFont':\n      case 'titleFontSize':\n      case 'titleFontWeight':\n        styleProp = prop[5].toLowerCase() + prop.slice(6);\n    }\n\n    return style[GuideTitleStyle][styleProp];\n  } else if (prop.startsWith('label')) {\n    switch (prop) {\n      case 'labelColor':\n        styleProp = 'fill';\n        break;\n\n      case 'labelFont':\n      case 'labelFontSize':\n        styleProp = prop[5].toLowerCase() + prop.slice(6);\n    }\n\n    return style[GuideLabelStyle][styleProp];\n  }\n\n  return null;\n}\n\nfunction keys(objects) {\n  const map = {};\n\n  for (const obj of objects) {\n    if (!obj) continue;\n\n    for (const key in obj) map[key] = 1;\n  }\n\n  return Object.keys(map);\n}\n\nfunction axisConfig (spec, scope) {\n  var config = scope.config,\n      style = config.style,\n      axis = config.axis,\n      band = scope.scaleType(spec.scale) === 'band' && config.axisBand,\n      orient = spec.orient,\n      xy,\n      or,\n      key;\n\n  if (isSignal(orient)) {\n    const xyKeys = keys([config.axisX, config.axisY]),\n          orientKeys = keys([config.axisTop, config.axisBottom, config.axisLeft, config.axisRight]);\n    xy = {};\n\n    for (key of xyKeys) {\n      xy[key] = ifX(orient, fallback(key, config.axisX, axis, style), fallback(key, config.axisY, axis, style));\n    }\n\n    or = {};\n\n    for (key of orientKeys) {\n      or[key] = ifOrient(orient.signal, fallback(key, config.axisTop, axis, style), fallback(key, config.axisBottom, axis, style), fallback(key, config.axisLeft, axis, style), fallback(key, config.axisRight, axis, style));\n    }\n  } else {\n    xy = orient === Top || orient === Bottom ? config.axisX : config.axisY;\n    or = config['axis' + orient[0].toUpperCase() + orient.slice(1)];\n  }\n\n  const result = xy || or || band ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, axis, xy, or, band) : axis;\n  return result;\n}\n\nfunction axisDomain (spec, config, userEncode, dataRef) {\n  const _ = lookup(spec, config),\n        orient = spec.orient;\n\n  let enter, update;\n  const encode = {\n    enter: enter = {\n      opacity: zero\n    },\n    update: update = {\n      opacity: one\n    },\n    exit: {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    stroke: _('domainColor'),\n    strokeCap: _('domainCap'),\n    strokeDash: _('domainDash'),\n    strokeDashOffset: _('domainDashOffset'),\n    strokeWidth: _('domainWidth'),\n    strokeOpacity: _('domainOpacity')\n  });\n  const pos0 = position(spec, 0);\n  const pos1 = position(spec, 1);\n  enter.x = update.x = ifX(orient, pos0, zero);\n  enter.x2 = update.x2 = ifX(orient, pos1);\n  enter.y = update.y = ifY(orient, pos0, zero);\n  enter.y2 = update.y2 = ifY(orient, pos1);\n  return guideMark({\n    type: RuleMark,\n    role: AxisDomainRole,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction position(spec, pos) {\n  return {\n    scale: spec.scale,\n    range: pos\n  };\n}\n\nfunction axisGrid (spec, config, userEncode, dataRef, band) {\n  const _ = lookup(spec, config),\n        orient = spec.orient,\n        vscale = spec.gridScale,\n        sign = getSign(orient, 1, -1),\n        offset = offsetValue(spec.offset, sign);\n\n  let enter, exit, update;\n  const encode = {\n    enter: enter = {\n      opacity: zero\n    },\n    update: update = {\n      opacity: one\n    },\n    exit: exit = {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    stroke: _('gridColor'),\n    strokeCap: _('gridCap'),\n    strokeDash: _('gridDash'),\n    strokeDashOffset: _('gridDashOffset'),\n    strokeOpacity: _('gridOpacity'),\n    strokeWidth: _('gridWidth')\n  });\n  const tickPos = {\n    scale: spec.scale,\n    field: Value,\n    band: band.band,\n    extra: band.extra,\n    offset: band.offset,\n    round: _('tickRound')\n  };\n  const sz = ifX(orient, {\n    signal: 'height'\n  }, {\n    signal: 'width'\n  });\n  const gridStart = vscale ? {\n    scale: vscale,\n    range: 0,\n    mult: sign,\n    offset: offset\n  } : {\n    value: 0,\n    offset: offset\n  };\n  const gridEnd = vscale ? {\n    scale: vscale,\n    range: 1,\n    mult: sign,\n    offset: offset\n  } : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(sz, {\n    mult: sign,\n    offset: offset\n  });\n  enter.x = update.x = ifX(orient, tickPos, gridStart);\n  enter.y = update.y = ifY(orient, tickPos, gridStart);\n  enter.x2 = update.x2 = ifY(orient, gridEnd);\n  enter.y2 = update.y2 = ifX(orient, gridEnd);\n  exit.x = ifX(orient, tickPos);\n  exit.y = ifY(orient, tickPos);\n  return guideMark({\n    type: RuleMark,\n    role: AxisGridRole,\n    key: Value,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction offsetValue(offset, sign) {\n  if (sign === 1) ; else if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(offset)) {\n    offset = isSignal(sign) ? {\n      signal: \"(\".concat(sign.signal, \") * (\").concat(offset || 0, \")\")\n    } : sign * (offset || 0);\n  } else {\n    let entry = offset = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, offset);\n\n    while (entry.mult != null) {\n      if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(entry.mult)) {\n        entry.mult = isSignal(sign) // no offset if sign === 1\n        ? {\n          signal: \"(\".concat(entry.mult, \") * (\").concat(sign.signal, \")\")\n        } : entry.mult * sign;\n        return offset;\n      } else {\n        entry = entry.mult = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, entry.mult);\n      }\n    }\n\n    entry.mult = sign;\n  }\n\n  return offset;\n}\n\nfunction axisTicks (spec, config, userEncode, dataRef, size, band) {\n  const _ = lookup(spec, config),\n        orient = spec.orient,\n        sign = getSign(orient, -1, 1);\n\n  let enter, exit, update;\n  const encode = {\n    enter: enter = {\n      opacity: zero\n    },\n    update: update = {\n      opacity: one\n    },\n    exit: exit = {\n      opacity: zero\n    }\n  };\n  addEncoders(encode, {\n    stroke: _('tickColor'),\n    strokeCap: _('tickCap'),\n    strokeDash: _('tickDash'),\n    strokeDashOffset: _('tickDashOffset'),\n    strokeOpacity: _('tickOpacity'),\n    strokeWidth: _('tickWidth')\n  });\n  const tickSize = encoder(size);\n  tickSize.mult = sign;\n  const tickPos = {\n    scale: spec.scale,\n    field: Value,\n    band: band.band,\n    extra: band.extra,\n    offset: band.offset,\n    round: _('tickRound')\n  };\n  update.y = enter.y = ifX(orient, zero, tickPos);\n  update.y2 = enter.y2 = ifX(orient, tickSize);\n  exit.x = ifX(orient, tickPos);\n  update.x = enter.x = ifY(orient, zero, tickPos);\n  update.x2 = enter.x2 = ifY(orient, tickSize);\n  exit.y = ifY(orient, tickPos);\n  return guideMark({\n    type: RuleMark,\n    role: AxisTickRole,\n    key: Value,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction flushExpr(scale, threshold, a, b, c) {\n  return {\n    signal: 'flush(range(\"' + scale + '\"), ' + 'scale(\"' + scale + '\", datum.value), ' + threshold + ',' + a + ',' + b + ',' + c + ')'\n  };\n}\n\nfunction axisLabels (spec, config, userEncode, dataRef, size, band) {\n  const _ = lookup(spec, config),\n        orient = spec.orient,\n        scale = spec.scale,\n        sign = getSign(orient, -1, 1),\n        flush = deref(_('labelFlush')),\n        flushOffset = deref(_('labelFlushOffset')),\n        labelAlign = _('labelAlign'),\n        labelBaseline = _('labelBaseline');\n\n  let flushOn = flush === 0 || !!flush,\n      update;\n  const tickSize = encoder(size);\n  tickSize.mult = sign;\n  tickSize.offset = encoder(_('labelPadding') || 0);\n  tickSize.offset.mult = sign;\n  const tickPos = {\n    scale: scale,\n    field: Value,\n    band: 0.5,\n    offset: extendOffset(band.offset, _('labelOffset'))\n  };\n  const align = ifX(orient, flushOn ? flushExpr(scale, flush, '\"left\"', '\"right\"', '\"center\"') : {\n    value: 'center'\n  }, ifRight(orient, 'left', 'right'));\n  const baseline = ifX(orient, ifTop(orient, 'bottom', 'top'), flushOn ? flushExpr(scale, flush, '\"top\"', '\"bottom\"', '\"middle\"') : {\n    value: 'middle'\n  });\n  const offsetExpr = flushExpr(scale, flush, \"-(\".concat(flushOffset, \")\"), flushOffset, 0);\n  flushOn = flushOn && flushOffset;\n  const enter = {\n    opacity: zero,\n    x: ifX(orient, tickPos, tickSize),\n    y: ifY(orient, tickPos, tickSize)\n  };\n  const encode = {\n    enter: enter,\n    update: update = {\n      opacity: one,\n      text: {\n        field: Label\n      },\n      x: enter.x,\n      y: enter.y,\n      align,\n      baseline\n    },\n    exit: {\n      opacity: zero,\n      x: enter.x,\n      y: enter.y\n    }\n  };\n  addEncoders(encode, {\n    dx: !labelAlign && flushOn ? ifX(orient, offsetExpr) : null,\n    dy: !labelBaseline && flushOn ? ifY(orient, offsetExpr) : null\n  });\n  addEncoders(encode, {\n    angle: _('labelAngle'),\n    fill: _('labelColor'),\n    fillOpacity: _('labelOpacity'),\n    font: _('labelFont'),\n    fontSize: _('labelFontSize'),\n    fontWeight: _('labelFontWeight'),\n    fontStyle: _('labelFontStyle'),\n    limit: _('labelLimit'),\n    lineHeight: _('labelLineHeight')\n  }, {\n    align: labelAlign,\n    baseline: labelBaseline\n  });\n\n  const bound = _('labelBound');\n\n  let overlap = _('labelOverlap'); // if overlap method or bound defined, request label overlap removal\n\n\n  overlap = overlap || bound ? {\n    separation: _('labelSeparation'),\n    method: overlap,\n    order: 'datum.index',\n    bound: bound ? {\n      scale,\n      orient,\n      tolerance: bound\n    } : null\n  } : undefined;\n\n  if (update.align !== align) {\n    update.align = patch(update.align, align);\n  }\n\n  if (update.baseline !== baseline) {\n    update.baseline = patch(update.baseline, baseline);\n  }\n\n  return guideMark({\n    type: TextMark,\n    role: AxisLabelRole,\n    style: GuideLabelStyle,\n    key: Value,\n    from: dataRef,\n    encode,\n    overlap\n  }, userEncode);\n}\n\nfunction axisTitle (spec, config, userEncode, dataRef) {\n  const _ = lookup(spec, config),\n        orient = spec.orient,\n        sign = getSign(orient, -1, 1);\n\n  let enter, update;\n  const encode = {\n    enter: enter = {\n      opacity: zero,\n      anchor: encoder(_('titleAnchor', null)),\n      align: {\n        signal: alignExpr\n      }\n    },\n    update: update = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, enter, {\n      opacity: one,\n      text: encoder(spec.title)\n    }),\n    exit: {\n      opacity: zero\n    }\n  };\n  const titlePos = {\n    signal: \"lerp(range(\\\"\".concat(spec.scale, \"\\\"), \").concat(anchorExpr(0, 1, 0.5), \")\")\n  };\n  update.x = ifX(orient, titlePos);\n  update.y = ifY(orient, titlePos);\n  enter.angle = ifX(orient, zero, mult(sign, 90));\n  enter.baseline = ifX(orient, ifTop(orient, Bottom, Top), {\n    value: Bottom\n  });\n  update.angle = enter.angle;\n  update.baseline = enter.baseline;\n  addEncoders(encode, {\n    fill: _('titleColor'),\n    fillOpacity: _('titleOpacity'),\n    font: _('titleFont'),\n    fontSize: _('titleFontSize'),\n    fontStyle: _('titleFontStyle'),\n    fontWeight: _('titleFontWeight'),\n    limit: _('titleLimit'),\n    lineHeight: _('titleLineHeight')\n  }, {\n    // require update\n    align: _('titleAlign'),\n    angle: _('titleAngle'),\n    baseline: _('titleBaseline')\n  });\n  autoLayout(_, orient, encode, userEncode);\n  encode.update.align = patch(encode.update.align, enter.align);\n  encode.update.angle = patch(encode.update.angle, enter.angle);\n  encode.update.baseline = patch(encode.update.baseline, enter.baseline);\n  return guideMark({\n    type: TextMark,\n    role: AxisTitleRole,\n    style: GuideTitleStyle,\n    from: dataRef,\n    encode\n  }, userEncode);\n}\n\nfunction autoLayout(_, orient, encode, userEncode) {\n  const auto = (value, dim) => value != null ? (encode.update[dim] = patch(encoder(value), encode.update[dim]), false) : !has(dim, userEncode) ? true : false;\n\n  const autoY = auto(_('titleX'), 'x'),\n        autoX = auto(_('titleY'), 'y');\n  encode.enter.auto = autoX === autoY ? encoder(autoX) : ifX(orient, encoder(autoX), encoder(autoY));\n}\n\nfunction parseAxis (spec, scope) {\n  const config = axisConfig(spec, scope),\n        encode = spec.encode || {},\n        axisEncode = encode.axis || {},\n        name = axisEncode.name || undefined,\n        interactive = axisEncode.interactive,\n        style = axisEncode.style,\n        _ = lookup(spec, config),\n        band = tickBand(_); // single-element data source for axis group\n\n\n  const datum = {\n    scale: spec.scale,\n    ticks: !!_('ticks'),\n    labels: !!_('labels'),\n    grid: !!_('grid'),\n    domain: !!_('domain'),\n    title: spec.title != null\n  };\n  const dataRef = ref(scope.add(Collect({}, [datum]))); // data source for axis ticks\n\n  const ticksRef = ref(scope.add(AxisTicks({\n    scale: scope.scaleRef(spec.scale),\n    extra: scope.property(band.extra),\n    count: scope.objectProperty(spec.tickCount),\n    values: scope.objectProperty(spec.values),\n    minstep: scope.property(spec.tickMinStep),\n    formatType: scope.property(spec.formatType),\n    formatSpecifier: scope.property(spec.format)\n  }))); // generate axis marks\n\n  const children = [];\n  let size; // include axis gridlines if requested\n\n  if (datum.grid) {\n    children.push(axisGrid(spec, config, encode.grid, ticksRef, band));\n  } // include axis ticks if requested\n\n\n  if (datum.ticks) {\n    size = _('tickSize');\n    children.push(axisTicks(spec, config, encode.ticks, ticksRef, size, band));\n  } // include axis labels if requested\n\n\n  if (datum.labels) {\n    size = datum.ticks ? size : 0;\n    children.push(axisLabels(spec, config, encode.labels, ticksRef, size, band));\n  } // include axis domain path if requested\n\n\n  if (datum.domain) {\n    children.push(axisDomain(spec, config, encode.domain, dataRef));\n  } // include axis title if defined\n\n\n  if (datum.title) {\n    children.push(axisTitle(spec, config, encode.title, dataRef));\n  } // parse axis specification\n\n\n  return parseMark(guideGroup({\n    role: AxisRole,\n    from: dataRef,\n    encode: extendEncode(buildAxisEncode(_, spec), axisEncode, Skip),\n    marks: children,\n    aria: _('aria'),\n    description: _('description'),\n    zindex: _('zindex'),\n    name,\n    interactive,\n    style\n  }), scope);\n}\n\nfunction buildAxisEncode(_, spec) {\n  const encode = {\n    enter: {},\n    update: {}\n  };\n  addEncoders(encode, {\n    orient: _('orient'),\n    offset: _('offset') || 0,\n    position: value(spec.position, 0),\n    titlePadding: _('titlePadding'),\n    minExtent: _('minExtent'),\n    maxExtent: _('maxExtent'),\n    range: {\n      signal: \"abs(span(range(\\\"\".concat(spec.scale, \"\\\")))\")\n    },\n    translate: _('translate'),\n    // accessibility support\n    format: spec.format,\n    formatType: spec.formatType\n  });\n  return encode;\n}\n\nfunction parseScope (spec, scope, preprocessed) {\n  const signals = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.signals),\n        scales = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.scales); // parse signal definitions, if not already preprocessed\n\n  if (!preprocessed) signals.forEach(_ => parseSignal(_, scope)); // parse cartographic projection definitions\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.projections).forEach(_ => parseProjection(_, scope)); // initialize scale references\n\n  scales.forEach(_ => initScale(_, scope)); // parse data sources\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.data).forEach(_ => parseData$1(_, scope)); // parse scale definitions\n\n  scales.forEach(_ => parseScale(_, scope)); // parse signal updates\n\n  (preprocessed || signals).forEach(_ => parseSignalUpdates(_, scope)); // parse axis definitions\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.axes).forEach(_ => parseAxis(_, scope)); // parse mark definitions\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.marks).forEach(_ => parseMark(_, scope)); // parse legend definitions\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.legends).forEach(_ => parseLegend(_, scope)); // parse title, if defined\n\n  if (spec.title) parseTitle(spec.title, scope); // parse collected lambda (anonymous) expressions\n\n  scope.parseLambdas();\n  return scope;\n}\n\nconst rootEncode = spec => extendEncode({\n  enter: {\n    x: {\n      value: 0\n    },\n    y: {\n      value: 0\n    }\n  },\n  update: {\n    width: {\n      signal: 'width'\n    },\n    height: {\n      signal: 'height'\n    }\n  }\n}, spec);\n\nfunction parseView(spec, scope) {\n  const config = scope.config; // add scenegraph root\n\n  const root = ref(scope.root = scope.add(operator())); // parse top-level signal definitions\n\n  const signals = collectSignals(spec, config);\n  signals.forEach(_ => parseSignal(_, scope)); // assign description, event, legend, and locale configuration\n\n  scope.description = spec.description || config.description;\n  scope.eventConfig = config.events;\n  scope.legends = scope.objectProperty(config.legend && config.legend.layout);\n  scope.locale = config.locale; // store root group item\n\n  const input = scope.add(Collect()); // encode root group item\n\n  const encode = scope.add(Encode(parseEncode(rootEncode(spec.encode), GroupMark, FrameRole, spec.style, scope, {\n    pulse: ref(input)\n  }))); // perform view layout\n\n  const parent = scope.add(ViewLayout({\n    layout: scope.objectProperty(spec.layout),\n    legends: scope.legends,\n    autosize: scope.signalRef('autosize'),\n    mark: root,\n    pulse: ref(encode)\n  }));\n  scope.operators.pop(); // parse remainder of specification\n\n  scope.pushState(ref(encode), ref(parent), null);\n  parseScope(spec, scope, signals);\n  scope.operators.push(parent); // bound / render / sieve root item\n\n  let op = scope.add(Bound({\n    mark: root,\n    pulse: ref(parent)\n  }));\n  op = scope.add(Render({\n    pulse: ref(op)\n  }));\n  op = scope.add(Sieve({\n    pulse: ref(op)\n  })); // track metadata for root item\n\n  scope.addData('root', new DataScope(scope, input, input, op));\n  return scope;\n}\n\nfunction signalObject(name, value) {\n  return value && value.signal ? {\n    name,\n    update: value.signal\n  } : {\n    name,\n    value\n  };\n}\n/**\n * Collect top-level signals, merging values as needed. Signals\n * defined in the config signals arrays are added only if that\n * signal is not explicitly defined in the specification.\n * Built-in signals (autosize, background, padding, width, height)\n * receive special treatment. They are initialized using the\n * top-level spec property, or, if undefined in the spec, using\n * the corresponding top-level config property. If this property\n * is a signal reference object, the signal expression maps to the\n * signal 'update' property. If the spec's top-level signal array\n * contains an entry that matches a built-in signal, that entry\n * will be merged with the built-in specification, potentially\n * overwriting existing 'value' or 'update' properties.\n */\n\n\nfunction collectSignals(spec, config) {\n  const _ = name => value(spec[name], config[name]),\n        signals = [signalObject('background', _('background')), signalObject('autosize', parseAutosize(_('autosize'))), signalObject('padding', parsePadding(_('padding'))), signalObject('width', _('width') || 0), signalObject('height', _('height') || 0)],\n        pre = signals.reduce((p, s) => (p[s.name] = s, p), {}),\n        map = {}; // add spec signal array\n\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(spec.signals).forEach(s => {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(pre, s.name)) {\n      // merge if built-in signal\n      s = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(pre[s.name], s);\n    } else {\n      // otherwise add to signal list\n      signals.push(s);\n    }\n\n    map[s.name] = s;\n  }); // add config signal array\n\n  Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(config.signals).forEach(s => {\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(map, s.name) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(pre, s.name)) {\n      // add to signal list if not already defined\n      signals.push(s);\n    }\n  });\n  return signals;\n}\n\nfunction Scope$1(config, options) {\n  this.config = config || {};\n  this.options = options || {};\n  this.bindings = [];\n  this.field = {};\n  this.signals = {};\n  this.lambdas = {};\n  this.scales = {};\n  this.events = {};\n  this.data = {};\n  this.streams = [];\n  this.updates = [];\n  this.operators = [];\n  this.eventConfig = null;\n  this.locale = null;\n  this._id = 0;\n  this._subid = 0;\n  this._nextsub = [0];\n  this._parent = [];\n  this._encode = [];\n  this._lookup = [];\n  this._markpath = [];\n}\n\nfunction Subscope(scope) {\n  this.config = scope.config;\n  this.options = scope.options;\n  this.legends = scope.legends;\n  this.field = Object.create(scope.field);\n  this.signals = Object.create(scope.signals);\n  this.lambdas = Object.create(scope.lambdas);\n  this.scales = Object.create(scope.scales);\n  this.events = Object.create(scope.events);\n  this.data = Object.create(scope.data);\n  this.streams = [];\n  this.updates = [];\n  this.operators = [];\n  this._id = 0;\n  this._subid = ++scope._nextsub[0];\n  this._nextsub = scope._nextsub;\n  this._parent = scope._parent.slice();\n  this._encode = scope._encode.slice();\n  this._lookup = scope._lookup.slice();\n  this._markpath = scope._markpath;\n}\n\nScope$1.prototype = Subscope.prototype = {\n  parse(spec) {\n    return parseScope(spec, this);\n  },\n\n  fork() {\n    return new Subscope(this);\n  },\n\n  isSubscope() {\n    return this._subid > 0;\n  },\n\n  toRuntime() {\n    this.finish();\n    return {\n      description: this.description,\n      operators: this.operators,\n      streams: this.streams,\n      updates: this.updates,\n      bindings: this.bindings,\n      eventConfig: this.eventConfig,\n      locale: this.locale\n    };\n  },\n\n  id() {\n    return (this._subid ? this._subid + ':' : 0) + this._id++;\n  },\n\n  add(op) {\n    this.operators.push(op);\n    op.id = this.id(); // if pre-registration references exist, resolve them now\n\n    if (op.refs) {\n      op.refs.forEach(ref => {\n        ref.$ref = op.id;\n      });\n      op.refs = null;\n    }\n\n    return op;\n  },\n\n  proxy(op) {\n    const vref = op instanceof Entry ? ref(op) : op;\n    return this.add(Proxy({\n      value: vref\n    }));\n  },\n\n  addStream(stream) {\n    this.streams.push(stream);\n    stream.id = this.id();\n    return stream;\n  },\n\n  addUpdate(update) {\n    this.updates.push(update);\n    return update;\n  },\n\n  // Apply metadata\n  finish() {\n    let name, ds; // annotate root\n\n    if (this.root) this.root.root = true; // annotate signals\n\n    for (name in this.signals) {\n      this.signals[name].signal = name;\n    } // annotate scales\n\n\n    for (name in this.scales) {\n      this.scales[name].scale = name;\n    } // annotate data sets\n\n\n    function annotate(op, name, type) {\n      let data, list;\n\n      if (op) {\n        data = op.data || (op.data = {});\n        list = data[name] || (data[name] = []);\n        list.push(type);\n      }\n    }\n\n    for (name in this.data) {\n      ds = this.data[name];\n      annotate(ds.input, name, 'input');\n      annotate(ds.output, name, 'output');\n      annotate(ds.values, name, 'values');\n\n      for (const field in ds.index) {\n        annotate(ds.index[field], name, 'index:' + field);\n      }\n    }\n\n    return this;\n  },\n\n  // ----\n  pushState(encode, parent, lookup) {\n    this._encode.push(ref(this.add(Sieve({\n      pulse: encode\n    }))));\n\n    this._parent.push(parent);\n\n    this._lookup.push(lookup ? ref(this.proxy(lookup)) : null);\n\n    this._markpath.push(-1);\n  },\n\n  popState() {\n    this._encode.pop();\n\n    this._parent.pop();\n\n    this._lookup.pop();\n\n    this._markpath.pop();\n  },\n\n  parent() {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(this._parent);\n  },\n\n  encode() {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(this._encode);\n  },\n\n  lookup() {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(this._lookup);\n  },\n\n  markpath() {\n    const p = this._markpath;\n    return ++p[p.length - 1];\n  },\n\n  // ----\n  fieldRef(field, name) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(field)) return fieldRef(field, name);\n\n    if (!field.signal) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unsupported field reference: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(field));\n    }\n\n    const s = field.signal;\n    let f = this.field[s];\n\n    if (!f) {\n      const params = {\n        name: this.signalRef(s)\n      };\n      if (name) params.as = name;\n      this.field[s] = f = ref(this.add(Field(params)));\n    }\n\n    return f;\n  },\n\n  compareRef(cmp) {\n    let signal = false;\n\n    const check = _ => isSignal(_) ? (signal = true, this.signalRef(_.signal)) : isExpr(_) ? (signal = true, this.exprRef(_.expr)) : _;\n\n    const fields = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(cmp.field).map(check),\n          orders = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(cmp.order).map(check);\n    return signal ? ref(this.add(Compare({\n      fields: fields,\n      orders: orders\n    }))) : compareRef(fields, orders);\n  },\n\n  keyRef(fields, flat) {\n    let signal = false;\n\n    const check = _ => isSignal(_) ? (signal = true, ref(sig[_.signal])) : _;\n\n    const sig = this.signals;\n    fields = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(fields).map(check);\n    return signal ? ref(this.add(Key({\n      fields: fields,\n      flat: flat\n    }))) : keyRef(fields, flat);\n  },\n\n  sortRef(sort) {\n    if (!sort) return sort; // including id ensures stable sorting\n\n    const a = aggrField(sort.op, sort.field),\n          o = sort.order || Ascending;\n    return o.signal ? ref(this.add(Compare({\n      fields: a,\n      orders: this.signalRef(o.signal)\n    }))) : compareRef(a, o);\n  },\n\n  // ----\n  event(source, type) {\n    const key = source + ':' + type;\n\n    if (!this.events[key]) {\n      const id = this.id();\n      this.streams.push({\n        id: id,\n        source: source,\n        type: type\n      });\n      this.events[key] = id;\n    }\n\n    return this.events[key];\n  },\n\n  // ----\n  hasOwnSignal(name) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(this.signals, name);\n  },\n\n  addSignal(name, value) {\n    if (this.hasOwnSignal(name)) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Duplicate signal name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    const op = value instanceof Entry ? value : this.add(operator(value));\n    return this.signals[name] = op;\n  },\n\n  getSignal(name) {\n    if (!this.signals[name]) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized signal name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    return this.signals[name];\n  },\n\n  signalRef(s) {\n    if (this.signals[s]) {\n      return ref(this.signals[s]);\n    } else if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(this.lambdas, s)) {\n      this.lambdas[s] = this.add(operator(null));\n    }\n\n    return ref(this.lambdas[s]);\n  },\n\n  parseLambdas() {\n    const code = Object.keys(this.lambdas);\n\n    for (let i = 0, n = code.length; i < n; ++i) {\n      const s = code[i],\n            e = Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(s, this),\n            op = this.lambdas[s];\n      op.params = e.$params;\n      op.update = e.$expr;\n    }\n  },\n\n  property(spec) {\n    return spec && spec.signal ? this.signalRef(spec.signal) : spec;\n  },\n\n  objectProperty(spec) {\n    return !spec || !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec));\n  },\n\n  exprRef(code, name) {\n    const params = {\n      expr: Object(vega_functions__WEBPACK_IMPORTED_MODULE_1__[\"parseExpression\"])(code, this)\n    };\n    if (name) params.expr.$name = name;\n    return ref(this.add(Expression(params)));\n  },\n\n  addBinding(name, bind) {\n    if (!this.bindings) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Nested signals do not support binding: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    this.bindings.push(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n      signal: name\n    }, bind));\n  },\n\n  // ----\n  addScaleProj(name, transform) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(this.scales, name)) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Duplicate scale or projection name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    this.scales[name] = this.add(transform);\n  },\n\n  addScale(name, params) {\n    this.addScaleProj(name, Scale(params));\n  },\n\n  addProjection(name, params) {\n    this.addScaleProj(name, Projection(params));\n  },\n\n  getScale(name) {\n    if (!this.scales[name]) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized scale name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    return this.scales[name];\n  },\n\n  scaleRef(name) {\n    return ref(this.getScale(name));\n  },\n\n  scaleType(name) {\n    return this.getScale(name).params.type;\n  },\n\n  projectionRef(name) {\n    return this.scaleRef(name);\n  },\n\n  projectionType(name) {\n    return this.scaleType(name);\n  },\n\n  // ----\n  addData(name, dataScope) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(this.data, name)) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Duplicate data set name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    return this.data[name] = dataScope;\n  },\n\n  getData(name) {\n    if (!this.data[name]) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Undefined data set name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    return this.data[name];\n  },\n\n  addDataPipeline(name, entries) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(this.data, name)) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Duplicate data set name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n    }\n\n    return this.addData(name, DataScope.fromEntries(this, entries));\n  }\n\n};\n\nfunction propertyLambda(spec) {\n  return (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(spec) ? arrayLambda : objectLambda)(spec);\n}\n\nfunction arrayLambda(array) {\n  const n = array.length;\n  let code = '[';\n\n  for (let i = 0; i < n; ++i) {\n    const value = array[i];\n    code += (i > 0 ? ',' : '') + (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) ? value.signal || propertyLambda(value) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(value));\n  }\n\n  return code + ']';\n}\n\nfunction objectLambda(obj) {\n  let code = '{',\n      i = 0,\n      key,\n      value;\n\n  for (key in obj) {\n    value = obj[key];\n    code += (++i > 1 ? ',' : '') + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(key) + ':' + (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) ? value.signal || propertyLambda(value) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(value));\n  }\n\n  return code + '}';\n}\n\n/**\n * Standard configuration defaults for Vega specification parsing.\n * Users can provide their own (sub-)set of these default values\n * by passing in a config object to the top-level parse method.\n */\nfunction defaults () {\n  const defaultFont = 'sans-serif',\n        defaultSymbolSize = 30,\n        defaultStrokeWidth = 2,\n        defaultColor = '#4c78a8',\n        black = '#000',\n        gray = '#888',\n        lightGray = '#ddd';\n  return {\n    // default visualization description\n    description: 'Vega visualization',\n    // default padding around visualization\n    padding: 0,\n    // default for automatic sizing; options: 'none', 'pad', 'fit'\n    // or provide an object (e.g., {'type': 'pad', 'resize': true})\n    autosize: 'pad',\n    // default view background color\n    // covers the entire view component\n    background: null,\n    // default event handling configuration\n    // preventDefault for view-sourced event types except 'wheel'\n    events: {\n      defaults: {\n        allow: ['wheel']\n      }\n    },\n    // defaults for top-level group marks\n    // accepts mark properties (fill, stroke, etc)\n    // covers the data rectangle within group width/height\n    group: null,\n    // defaults for basic mark types\n    // each subset accepts mark properties (fill, stroke, etc)\n    mark: null,\n    arc: {\n      fill: defaultColor\n    },\n    area: {\n      fill: defaultColor\n    },\n    image: null,\n    line: {\n      stroke: defaultColor,\n      strokeWidth: defaultStrokeWidth\n    },\n    path: {\n      stroke: defaultColor\n    },\n    rect: {\n      fill: defaultColor\n    },\n    rule: {\n      stroke: black\n    },\n    shape: {\n      stroke: defaultColor\n    },\n    symbol: {\n      fill: defaultColor,\n      size: 64\n    },\n    text: {\n      fill: black,\n      font: defaultFont,\n      fontSize: 11\n    },\n    trail: {\n      fill: defaultColor,\n      size: defaultStrokeWidth\n    },\n    // style definitions\n    style: {\n      // axis & legend labels\n      'guide-label': {\n        fill: black,\n        font: defaultFont,\n        fontSize: 10\n      },\n      // axis & legend titles\n      'guide-title': {\n        fill: black,\n        font: defaultFont,\n        fontSize: 11,\n        fontWeight: 'bold'\n      },\n      // headers, including chart title\n      'group-title': {\n        fill: black,\n        font: defaultFont,\n        fontSize: 13,\n        fontWeight: 'bold'\n      },\n      // chart subtitle\n      'group-subtitle': {\n        fill: black,\n        font: defaultFont,\n        fontSize: 12\n      },\n      // defaults for styled point marks in Vega-Lite\n      point: {\n        size: defaultSymbolSize,\n        strokeWidth: defaultStrokeWidth,\n        shape: 'circle'\n      },\n      circle: {\n        size: defaultSymbolSize,\n        strokeWidth: defaultStrokeWidth\n      },\n      square: {\n        size: defaultSymbolSize,\n        strokeWidth: defaultStrokeWidth,\n        shape: 'square'\n      },\n      // defaults for styled group marks in Vega-Lite\n      cell: {\n        fill: 'transparent',\n        stroke: lightGray\n      }\n    },\n    // defaults for title\n    title: {\n      orient: 'top',\n      anchor: 'middle',\n      offset: 4,\n      subtitlePadding: 3\n    },\n    // defaults for axes\n    axis: {\n      minExtent: 0,\n      maxExtent: 200,\n      bandPosition: 0.5,\n      domain: true,\n      domainWidth: 1,\n      domainColor: gray,\n      grid: false,\n      gridWidth: 1,\n      gridColor: lightGray,\n      labels: true,\n      labelAngle: 0,\n      labelLimit: 180,\n      labelOffset: 0,\n      labelPadding: 2,\n      ticks: true,\n      tickColor: gray,\n      tickOffset: 0,\n      tickRound: true,\n      tickSize: 5,\n      tickWidth: 1,\n      titlePadding: 4\n    },\n    // correction for centering bias\n    axisBand: {\n      tickOffset: -0.5\n    },\n    // defaults for cartographic projection\n    projection: {\n      type: 'mercator'\n    },\n    // defaults for legends\n    legend: {\n      orient: 'right',\n      padding: 0,\n      gridAlign: 'each',\n      columnPadding: 10,\n      rowPadding: 2,\n      symbolDirection: 'vertical',\n      gradientDirection: 'vertical',\n      gradientLength: 200,\n      gradientThickness: 16,\n      gradientStrokeColor: lightGray,\n      gradientStrokeWidth: 0,\n      gradientLabelOffset: 2,\n      labelAlign: 'left',\n      labelBaseline: 'middle',\n      labelLimit: 160,\n      labelOffset: 4,\n      labelOverlap: true,\n      symbolLimit: 30,\n      symbolType: 'circle',\n      symbolSize: 100,\n      symbolOffset: 0,\n      symbolStrokeWidth: 1.5,\n      symbolBaseFillColor: 'transparent',\n      symbolBaseStrokeColor: gray,\n      titleLimit: 180,\n      titleOrient: 'top',\n      titlePadding: 5,\n      layout: {\n        offset: 18,\n        direction: 'horizontal',\n        left: {\n          direction: 'vertical'\n        },\n        right: {\n          direction: 'vertical'\n        }\n      }\n    },\n    // defaults for scale ranges\n    range: {\n      category: {\n        scheme: 'tableau10'\n      },\n      ordinal: {\n        scheme: 'blues'\n      },\n      heatmap: {\n        scheme: 'yellowgreenblue'\n      },\n      ramp: {\n        scheme: 'blues'\n      },\n      diverging: {\n        scheme: 'blueorange',\n        extent: [1, 0]\n      },\n      symbol: ['circle', 'square', 'triangle-up', 'cross', 'diamond', 'triangle-right', 'triangle-down', 'triangle-left']\n    }\n  };\n}\n\nfunction parse$1 (spec, config, options) {\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(spec)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Input Vega specification must be an object.');\n  }\n\n  config = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"mergeConfig\"])(defaults(), config, spec.config);\n  return parseView(spec, new Scope$1(config, options)).toRuntime();\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-parser/build/vega-parser.module.js?");

/***/ }),

/***/ "./node_modules/vega-projection/build/vega-projection.module.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-projection/build/vega-projection.module.js ***!
  \**********************************************************************/
/*! exports provided: getProjectionPath, projection, projectionProperties */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getProjectionPath\", function() { return getProjectionPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"projection\", function() { return projection; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"projectionProperties\", function() { return projectionProperties; });\n/* harmony import */ var d3_geo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-geo */ \"./node_modules/d3-geo/src/index.js\");\n/* harmony import */ var d3_geo_projection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-geo-projection */ \"./node_modules/d3-geo-projection/src/index.js\");\n\n\n\nconst defaultPath = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoPath\"])();\nconst projectionProperties = [// standard properties in d3-geo\n'clipAngle', 'clipExtent', 'scale', 'translate', 'center', 'rotate', 'parallels', 'precision', 'reflectX', 'reflectY', // extended properties in d3-geo-projections\n'coefficient', 'distance', 'fraction', 'lobes', 'parallel', 'radius', 'ratio', 'spacing', 'tilt'];\n/**\n * Augment projections with their type and a copy method.\n */\n\nfunction create(type, constructor) {\n  return function projection() {\n    const p = constructor();\n    p.type = type;\n    p.path = Object(d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoPath\"])().projection(p);\n\n    p.copy = p.copy || function () {\n      const c = projection();\n      projectionProperties.forEach(prop => {\n        if (p[prop]) c[prop](p[prop]());\n      });\n      c.path.pointRadius(p.path.pointRadius());\n      return c;\n    };\n\n    return p;\n  };\n}\n\nfunction projection(type, proj) {\n  if (!type || typeof type !== 'string') {\n    throw new Error('Projection type must be a name string.');\n  }\n\n  type = type.toLowerCase();\n\n  if (arguments.length > 1) {\n    projections[type] = create(type, proj);\n    return this;\n  } else {\n    return projections[type] || null;\n  }\n}\nfunction getProjectionPath(proj) {\n  return proj && proj.path || defaultPath;\n}\nconst projections = {\n  // base d3-geo projection types\n  albers: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAlbers\"],\n  albersusa: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAlbersUsa\"],\n  azimuthalequalarea: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEqualArea\"],\n  azimuthalequidistant: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoAzimuthalEquidistant\"],\n  conicconformal: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoConicConformal\"],\n  conicequalarea: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoConicEqualArea\"],\n  conicequidistant: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoConicEquidistant\"],\n  equalEarth: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoEqualEarth\"],\n  equirectangular: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoEquirectangular\"],\n  gnomonic: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoGnomonic\"],\n  identity: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoIdentity\"],\n  mercator: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoMercator\"],\n  mollweide: d3_geo_projection__WEBPACK_IMPORTED_MODULE_1__[\"geoMollweide\"],\n  naturalEarth1: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoNaturalEarth1\"],\n  orthographic: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoOrthographic\"],\n  stereographic: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoStereographic\"],\n  transversemercator: d3_geo__WEBPACK_IMPORTED_MODULE_0__[\"geoTransverseMercator\"]\n};\n\nfor (const key in projections) {\n  projection(key, projections[key]);\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-projection/build/vega-projection.module.js?");

/***/ }),

/***/ "./node_modules/vega-regression/build/vega-regression.module.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-regression/build/vega-regression.module.js ***!
  \**********************************************************************/
/*! exports provided: loess, regression */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"loess\", function() { return Loess; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regression\", function() { return Regression; });\n/* harmony import */ var vega_statistics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-statistics */ \"./node_modules/vega-statistics/build/vega-statistics.module.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\nfunction partition (data, groupby) {\n  var groups = [],\n      get = function (f) {\n    return f(t);\n  },\n      map,\n      i,\n      n,\n      t,\n      k,\n      g; // partition data points into stack groups\n\n\n  if (groupby == null) {\n    groups.push(data);\n  } else {\n    for (map = {}, i = 0, n = data.length; i < n; ++i) {\n      t = data[i];\n      k = groupby.map(get);\n      g = map[k];\n\n      if (!g) {\n        map[k] = g = [];\n        g.dims = k;\n        groups.push(g);\n      }\n\n      g.push(t);\n    }\n  }\n\n  return groups;\n}\n\n/**\n * Compute locally-weighted regression fits for one or more data groups.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.x - An accessor for the predictor data field.\n * @param {function(object): *} params.y - An accessor for the predicted data field.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.\n * @param {number} [params.bandwidth=0.3] - The loess bandwidth.\n */\n\nfunction Loess(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nLoess.Definition = {\n  'type': 'Loess',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'x',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'y',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'bandwidth',\n    'type': 'number',\n    'default': 0.3\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Loess, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n\n    if (!this.value || pulse.changed() || _.modified()) {\n      const source = pulse.materialize(pulse.SOURCE).source,\n            groups = partition(source, _.groupby),\n            names = (_.groupby || []).map(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"accessorName\"]),\n            m = names.length,\n            as = _.as || [Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"accessorName\"])(_.x), Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"accessorName\"])(_.y)],\n            values = [];\n      groups.forEach(g => {\n        Object(vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionLoess\"])(g, _.x, _.y, _.bandwidth || 0.3).forEach(p => {\n          const t = {};\n\n          for (let i = 0; i < m; ++i) {\n            t[names[i]] = g.dims[i];\n          }\n\n          t[as[0]] = p[0];\n          t[as[1]] = p[1];\n          values.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t));\n        });\n      });\n      if (this.value) out.rem = this.value;\n      this.value = out.add = out.source = values;\n    }\n\n    return out;\n  }\n\n});\n\nconst Methods = {\n  linear: vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionLinear\"],\n  log: vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionLog\"],\n  exp: vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionExp\"],\n  pow: vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionPow\"],\n  quad: vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionQuad\"],\n  poly: vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"regressionPoly\"]\n};\n\nconst degreesOfFreedom = (method, order) => method === 'poly' ? order : method === 'quad' ? 2 : 1;\n/**\n * Compute regression fits for one or more data groups.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.x - An accessor for the predictor data field.\n * @param {function(object): *} params.y - An accessor for the predicted data field.\n * @param {string} [params.method='linear'] - The regression method to apply.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.\n * @param {Array<number>} [params.extent] - The domain extent over which to plot the regression line.\n * @param {number} [params.order=3] - The polynomial order. Only applies to the 'poly' method.\n */\n\n\nfunction Regression(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nRegression.Definition = {\n  'type': 'Regression',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'x',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'y',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'method',\n    'type': 'string',\n    'default': 'linear',\n    'values': Object.keys(Methods)\n  }, {\n    'name': 'order',\n    'type': 'number',\n    'default': 3\n  }, {\n    'name': 'extent',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'params',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Regression, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n\n    if (!this.value || pulse.changed() || _.modified()) {\n      const source = pulse.materialize(pulse.SOURCE).source,\n            groups = partition(source, _.groupby),\n            names = (_.groupby || []).map(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"accessorName\"]),\n            method = _.method || 'linear',\n            order = _.order || 3,\n            dof = degreesOfFreedom(method, order),\n            as = _.as || [Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"accessorName\"])(_.x), Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"accessorName\"])(_.y)],\n            fit = Methods[method],\n            values = [];\n      let domain = _.extent;\n\n      if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"hasOwnProperty\"])(Methods, method)) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('Invalid regression method: ' + method);\n      }\n\n      if (domain != null) {\n        if (method === 'log' && domain[0] <= 0) {\n          pulse.dataflow.warn('Ignoring extent with values <= 0 for log regression.');\n          domain = null;\n        }\n      }\n\n      groups.forEach(g => {\n        const n = g.length;\n\n        if (n <= dof) {\n          pulse.dataflow.warn('Skipping regression with more parameters than data points.');\n          return;\n        }\n\n        const model = fit(g, _.x, _.y, order);\n\n        if (_.params) {\n          // if parameter vectors requested return those\n          values.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])({\n            keys: g.dims,\n            coef: model.coef,\n            rSquared: model.rSquared\n          }));\n          return;\n        }\n\n        const dom = domain || Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"extent\"])(g, _.x),\n              add = p => {\n          const t = {};\n\n          for (let i = 0; i < names.length; ++i) {\n            t[names[i]] = g.dims[i];\n          }\n\n          t[as[0]] = p[0];\n          t[as[1]] = p[1];\n          values.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t));\n        };\n\n        if (method === 'linear') {\n          // for linear regression we only need the end points\n          dom.forEach(x => add([x, model.predict(x)]));\n        } else {\n          // otherwise return trend line sample points\n          Object(vega_statistics__WEBPACK_IMPORTED_MODULE_0__[\"sampleCurve\"])(model.predict, dom, 25, 200).forEach(add);\n        }\n      });\n      if (this.value) out.rem = this.value;\n      this.value = out.add = out.source = values;\n    }\n\n    return out;\n  }\n\n});\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-regression/build/vega-regression.module.js?");

/***/ }),

/***/ "./node_modules/vega-runtime/build/vega-runtime.module.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-runtime/build/vega-runtime.module.js ***!
  \****************************************************************/
/*! exports provided: context */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"context\", function() { return context; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n\n\n\n/**\n * Parse a serialized dataflow specification.\n */\nfunction parse (spec) {\n  const ctx = this,\n        operators = spec.operators || []; // parse background\n\n  if (spec.background) {\n    ctx.background = spec.background;\n  } // parse event configuration\n\n\n  if (spec.eventConfig) {\n    ctx.eventConfig = spec.eventConfig;\n  } // parse locale configuration\n\n\n  if (spec.locale) {\n    ctx.locale = spec.locale;\n  } // parse operators\n\n\n  operators.forEach(entry => ctx.parseOperator(entry)); // parse operator parameters\n\n  operators.forEach(entry => ctx.parseOperatorParameters(entry)); // parse streams\n\n  (spec.streams || []).forEach(entry => ctx.parseStream(entry)); // parse updates\n\n  (spec.updates || []).forEach(entry => ctx.parseUpdate(entry));\n  return ctx.resolve();\n}\n\nconst Skip = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(['rule']),\n      Swap = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(['group', 'image', 'rect']);\nfunction adjustSpatial(encode, marktype) {\n  let code = '';\n  if (Skip[marktype]) return code;\n\n  if (encode.x2) {\n    if (encode.x) {\n      if (Swap[marktype]) {\n        code += 'if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;';\n      }\n\n      code += 'o.width=o.x2-o.x;';\n    } else {\n      code += 'o.x=o.x2-(o.width||0);';\n    }\n  }\n\n  if (encode.xc) {\n    code += 'o.x=o.xc-(o.width||0)/2;';\n  }\n\n  if (encode.y2) {\n    if (encode.y) {\n      if (Swap[marktype]) {\n        code += 'if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;';\n      }\n\n      code += 'o.height=o.y2-o.y;';\n    } else {\n      code += 'o.y=o.y2-(o.height||0);';\n    }\n  }\n\n  if (encode.yc) {\n    code += 'o.y=o.yc-(o.height||0)/2;';\n  }\n\n  return code;\n}\nfunction canonicalType(type) {\n  return (type + '').toLowerCase();\n}\nfunction isOperator(type) {\n  return canonicalType(type) === 'operator';\n}\nfunction isCollect(type) {\n  return canonicalType(type) === 'collect';\n}\n\nfunction expression(ctx, args, code) {\n  // wrap code in return statement if expression does not terminate\n  if (code[code.length - 1] !== ';') {\n    code = 'return(' + code + ');';\n  }\n\n  const fn = Function(...args.concat(code));\n  return ctx && ctx.functions ? fn.bind(ctx.functions) : fn;\n} // generate code for comparing a single field\n\n\nfunction _compare(u, v, lt, gt) {\n  return \"((u = \".concat(u, \") < (v = \").concat(v, \") || u == null) && v != null ? \").concat(lt, \"\\n  : (u > v || v == null) && u != null ? \").concat(gt, \"\\n  : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? \").concat(lt, \"\\n  : v !== v && u === u ? \").concat(gt, \" : \");\n}\n\nvar expressionCodegen = {\n  /**\n   * Parse an expression used to update an operator value.\n   */\n  operator: (ctx, expr) => expression(ctx, ['_'], expr.code),\n\n  /**\n   * Parse an expression provided as an operator parameter value.\n   */\n  parameter: (ctx, expr) => expression(ctx, ['datum', '_'], expr.code),\n\n  /**\n   * Parse an expression applied to an event stream.\n   */\n  event: (ctx, expr) => expression(ctx, ['event'], expr.code),\n\n  /**\n   * Parse an expression used to handle an event-driven operator update.\n   */\n  handler: (ctx, expr) => {\n    const code = \"var datum=event.item&&event.item.datum;return \".concat(expr.code, \";\");\n    return expression(ctx, ['_', 'event'], code);\n  },\n\n  /**\n   * Parse an expression that performs visual encoding.\n   */\n  encode: (ctx, encode) => {\n    const {\n      marktype,\n      channels\n    } = encode;\n    let code = 'var o=item,datum=o.datum,m=0,$;';\n\n    for (const name in channels) {\n      const o = 'o[' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name) + ']';\n      code += \"$=\".concat(channels[name].code, \";if(\").concat(o, \"!==$)\").concat(o, \"=$,m=1;\");\n    }\n\n    code += adjustSpatial(channels, marktype);\n    code += 'return m;';\n    return expression(ctx, ['item', '_'], code);\n  },\n\n  /**\n   * Optimized code generators for access and comparison.\n   */\n  codegen: {\n    get(path) {\n      const ref = \"[\".concat(path.map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"]).join(']['), \"]\");\n      const get = Function('_', \"return _\".concat(ref, \";\"));\n      get.path = ref;\n      return get;\n    },\n\n    comparator(fields, orders) {\n      let t;\n\n      const map = (f, i) => {\n        const o = orders[i];\n        let u, v;\n\n        if (f.path) {\n          u = \"a\".concat(f.path);\n          v = \"b\".concat(f.path);\n        } else {\n          (t = t || {})['f' + i] = f;\n          u = \"this.f\".concat(i, \"(a)\");\n          v = \"this.f\".concat(i, \"(b)\");\n        }\n\n        return _compare(u, v, -o, o);\n      };\n\n      const fn = Function('a', 'b', 'var u, v; return ' + fields.map(map).join('') + '0;');\n      return t ? fn.bind(t) : fn;\n    }\n\n  }\n};\n\n/**\n * Parse a dataflow operator.\n */\n\nfunction parseOperator(spec) {\n  const ctx = this;\n\n  if (isOperator(spec.type) || !spec.type) {\n    ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null);\n  } else {\n    ctx.transform(spec, spec.type);\n  }\n}\n/**\n * Parse and assign operator parameters.\n */\n\nfunction parseOperatorParameters(spec) {\n  const ctx = this;\n\n  if (spec.params) {\n    const op = ctx.get(spec.id);\n    if (!op) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid operator id: ' + spec.id);\n    ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly));\n  }\n}\n\n/**\n * Parse a set of operator parameters.\n */\n\nfunction parseParameters(spec, params) {\n  params = params || {};\n  const ctx = this;\n\n  for (const key in spec) {\n    const value = spec[key];\n    params[key] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) ? value.map(v => parseParameter(v, ctx, params)) : parseParameter(value, ctx, params);\n  }\n\n  return params;\n}\n/**\n * Parse a single parameter.\n */\n\nfunction parseParameter(spec, ctx, params) {\n  if (!spec || !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(spec)) return spec;\n\n  for (let i = 0, n = PARSERS.length, p; i < n; ++i) {\n    p = PARSERS[i];\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(spec, p.key)) {\n      return p.parse(spec, ctx, params);\n    }\n  }\n\n  return spec;\n}\n/** Reference parsers. */\n\n\nvar PARSERS = [{\n  key: '$ref',\n  parse: getOperator\n}, {\n  key: '$key',\n  parse: getKey\n}, {\n  key: '$expr',\n  parse: getExpression\n}, {\n  key: '$field',\n  parse: getField\n}, {\n  key: '$encode',\n  parse: getEncode\n}, {\n  key: '$compare',\n  parse: getCompare\n}, {\n  key: '$context',\n  parse: getContext\n}, {\n  key: '$subflow',\n  parse: getSubflow\n}, {\n  key: '$tupleid',\n  parse: getTupleId\n}];\n/**\n * Resolve an operator reference.\n */\n\nfunction getOperator(_, ctx) {\n  return ctx.get(_.$ref) || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Operator not defined: ' + _.$ref);\n}\n/**\n * Resolve an expression reference.\n */\n\n\nfunction getExpression(_, ctx, params) {\n  if (_.$params) {\n    // parse expression parameters\n    ctx.parseParameters(_.$params, params);\n  }\n\n  const k = 'e:' + _.$expr.code + '_' + _.$name;\n  return ctx.fn[k] || (ctx.fn[k] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessor\"])(ctx.parameterExpression(_.$expr), _.$fields, _.$name));\n}\n/**\n * Resolve a key accessor reference.\n */\n\n\nfunction getKey(_, ctx) {\n  const k = 'k:' + _.$key + '_' + !!_.$flat;\n  return ctx.fn[k] || (ctx.fn[k] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"key\"])(_.$key, _.$flat, ctx.expr.codegen));\n}\n/**\n * Resolve a field accessor reference.\n */\n\n\nfunction getField(_, ctx) {\n  if (!_.$field) return null;\n  const k = 'f:' + _.$field + '_' + _.$name;\n  return ctx.fn[k] || (ctx.fn[k] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"])(_.$field, _.$name, ctx.expr.codegen));\n}\n/**\n * Resolve a comparator function reference.\n */\n\n\nfunction getCompare(_, ctx) {\n  // As of Vega 5.5.3, $tupleid sort is no longer used.\n  // Keep here for now for backwards compatibility.\n  const k = 'c:' + _.$compare + '_' + _.$order,\n        c = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.$compare).map(_ => _ && _.$tupleid ? vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"] : _);\n  return ctx.fn[k] || (ctx.fn[k] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"compare\"])(c, _.$order, ctx.expr.codegen));\n}\n/**\n * Resolve an encode operator reference.\n */\n\n\nfunction getEncode(_, ctx) {\n  const spec = _.$encode,\n        encode = {};\n\n  for (const name in spec) {\n    const enc = spec[name];\n    encode[name] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessor\"])(ctx.encodeExpression(enc.$expr), enc.$fields);\n    encode[name].output = enc.$output;\n  }\n\n  return encode;\n}\n/**\n * Resolve a context reference.\n */\n\n\nfunction getContext(_, ctx) {\n  return ctx;\n}\n/**\n * Resolve a recursive subflow specification.\n */\n\n\nfunction getSubflow(_, ctx) {\n  const spec = _.$subflow;\n  return function (dataflow, key, parent) {\n    const subctx = ctx.fork().parse(spec),\n          op = subctx.get(spec.operators[0].id),\n          p = subctx.signals.parent;\n    if (p) p.set(parent);\n\n    op.detachSubflow = () => ctx.detach(subctx);\n\n    return op;\n  };\n}\n/**\n * Resolve a tuple id reference.\n */\n\n\nfunction getTupleId() {\n  return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"];\n}\n\n/**\n * Parse an event stream specification.\n */\n\nfunction parseStream (spec) {\n  var ctx = this,\n      filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined,\n      stream = spec.stream != null ? ctx.get(spec.stream) : undefined,\n      args;\n\n  if (spec.source) {\n    stream = ctx.events(spec.source, spec.type, filter);\n  } else if (spec.merge) {\n    args = spec.merge.map(_ => ctx.get(_));\n    stream = args[0].merge.apply(args[0], args.slice(1));\n  }\n\n  if (spec.between) {\n    args = spec.between.map(_ => ctx.get(_));\n    stream = stream.between(args[0], args[1]);\n  }\n\n  if (spec.filter) {\n    stream = stream.filter(filter);\n  }\n\n  if (spec.throttle != null) {\n    stream = stream.throttle(+spec.throttle);\n  }\n\n  if (spec.debounce != null) {\n    stream = stream.debounce(+spec.debounce);\n  }\n\n  if (stream == null) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid stream definition: ' + JSON.stringify(spec));\n  }\n\n  if (spec.consume) stream.consume(true);\n  ctx.stream(spec, stream);\n}\n\n/**\n * Parse an event-driven operator update.\n */\n\nfunction parseUpdate (spec) {\n  var ctx = this,\n      srcid = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(srcid = spec.source) ? srcid.$ref : srcid,\n      source = ctx.get(srcid),\n      target = null,\n      update = spec.update,\n      params = undefined;\n  if (!source) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Source not defined: ' + spec.source);\n  target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target);\n\n  if (update && update.$expr) {\n    if (update.$params) {\n      params = ctx.parseParameters(update.$params);\n    }\n\n    update = ctx.handlerExpression(update.$expr);\n  }\n\n  ctx.update(spec, source, target, update, params);\n}\n\nconst SKIP = {\n  skip: true\n};\nfunction getState(options) {\n  var ctx = this,\n      state = {};\n\n  if (options.signals) {\n    var signals = state.signals = {};\n    Object.keys(ctx.signals).forEach(key => {\n      const op = ctx.signals[key];\n\n      if (options.signals(key, op)) {\n        signals[key] = op.value;\n      }\n    });\n  }\n\n  if (options.data) {\n    var data = state.data = {};\n    Object.keys(ctx.data).forEach(key => {\n      const dataset = ctx.data[key];\n\n      if (options.data(key, dataset)) {\n        data[key] = dataset.input.value;\n      }\n    });\n  }\n\n  if (ctx.subcontext && options.recurse !== false) {\n    state.subcontext = ctx.subcontext.map(ctx => ctx.getState(options));\n  }\n\n  return state;\n}\nfunction setState(state) {\n  var ctx = this,\n      df = ctx.dataflow,\n      data = state.data,\n      signals = state.signals;\n  Object.keys(signals || {}).forEach(key => {\n    df.update(ctx.signals[key], signals[key], SKIP);\n  });\n  Object.keys(data || {}).forEach(key => {\n    df.pulse(ctx.data[key].input, df.changeset().remove(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"]).insert(data[key]));\n  });\n  (state.subcontext || []).forEach((substate, i) => {\n    const subctx = ctx.subcontext[i];\n    if (subctx) subctx.setState(substate);\n  });\n}\n\n/**\n * Context objects store the current parse state.\n * Enables lookup of parsed operators, event streams, accessors, etc.\n * Provides a 'fork' method for creating child contexts for subflows.\n */\n\nfunction context (df, transforms, functions, expr) {\n  return new Context(df, transforms, functions, expr);\n}\n\nfunction Context(df, transforms, functions, expr) {\n  this.dataflow = df;\n  this.transforms = transforms;\n  this.events = df.events.bind(df);\n  this.expr = expr || expressionCodegen, this.signals = {};\n  this.scales = {};\n  this.nodes = {};\n  this.data = {};\n  this.fn = {};\n\n  if (functions) {\n    this.functions = Object.create(functions);\n    this.functions.context = this;\n  }\n}\n\nfunction Subcontext(ctx) {\n  this.dataflow = ctx.dataflow;\n  this.transforms = ctx.transforms;\n  this.events = ctx.events;\n  this.expr = ctx.expr;\n  this.signals = Object.create(ctx.signals);\n  this.scales = Object.create(ctx.scales);\n  this.nodes = Object.create(ctx.nodes);\n  this.data = Object.create(ctx.data);\n  this.fn = Object.create(ctx.fn);\n\n  if (ctx.functions) {\n    this.functions = Object.create(ctx.functions);\n    this.functions.context = this;\n  }\n}\n\nContext.prototype = Subcontext.prototype = {\n  fork() {\n    const ctx = new Subcontext(this);\n    (this.subcontext || (this.subcontext = [])).push(ctx);\n    return ctx;\n  },\n\n  detach(ctx) {\n    this.subcontext = this.subcontext.filter(c => c !== ctx); // disconnect all nodes in the subcontext\n    // wipe out targets first for better efficiency\n\n    const keys = Object.keys(ctx.nodes);\n\n    for (const key of keys) ctx.nodes[key]._targets = null;\n\n    for (const key of keys) ctx.nodes[key].detach();\n\n    ctx.nodes = null;\n  },\n\n  get(id) {\n    return this.nodes[id];\n  },\n\n  set(id, node) {\n    return this.nodes[id] = node;\n  },\n\n  add(spec, op) {\n    const ctx = this,\n          df = ctx.dataflow,\n          data = spec.value;\n    ctx.set(spec.id, op);\n\n    if (isCollect(spec.type) && data) {\n      if (data.$ingest) {\n        df.ingest(op, data.$ingest, data.$format);\n      } else if (data.$request) {\n        df.preload(op, data.$request, data.$format);\n      } else {\n        df.pulse(op, df.changeset().insert(data));\n      }\n    }\n\n    if (spec.root) {\n      ctx.root = op;\n    }\n\n    if (spec.parent) {\n      let p = ctx.get(spec.parent.$ref);\n\n      if (p) {\n        df.connect(p, [op]);\n        op.targets().add(p);\n      } else {\n        (ctx.unresolved = ctx.unresolved || []).push(() => {\n          p = ctx.get(spec.parent.$ref);\n          df.connect(p, [op]);\n          op.targets().add(p);\n        });\n      }\n    }\n\n    if (spec.signal) {\n      ctx.signals[spec.signal] = op;\n    }\n\n    if (spec.scale) {\n      ctx.scales[spec.scale] = op;\n    }\n\n    if (spec.data) {\n      for (const name in spec.data) {\n        const data = ctx.data[name] || (ctx.data[name] = {});\n        spec.data[name].forEach(role => data[role] = op);\n      }\n    }\n  },\n\n  resolve() {\n    (this.unresolved || []).forEach(fn => fn());\n    delete this.unresolved;\n    return this;\n  },\n\n  operator(spec, update) {\n    this.add(spec, this.dataflow.add(spec.value, update));\n  },\n\n  transform(spec, type) {\n    this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)]));\n  },\n\n  stream(spec, stream) {\n    this.set(spec.id, stream);\n  },\n\n  update(spec, stream, target, update, params) {\n    this.dataflow.on(stream, target, update, params, spec.options);\n  },\n\n  // expression parsing\n  operatorExpression(expr) {\n    return this.expr.operator(this, expr);\n  },\n\n  parameterExpression(expr) {\n    return this.expr.parameter(this, expr);\n  },\n\n  eventExpression(expr) {\n    return this.expr.event(this, expr);\n  },\n\n  handlerExpression(expr) {\n    return this.expr.handler(this, expr);\n  },\n\n  encodeExpression(encode) {\n    return this.expr.encode(this, encode);\n  },\n\n  // parse methods\n  parse,\n  parseOperator,\n  parseOperatorParameters,\n  parseParameters,\n  parseStream,\n  parseUpdate,\n  // state methods\n  getState,\n  setState\n};\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-runtime/build/vega-runtime.module.js?");

/***/ }),

/***/ "./node_modules/vega-scale/build/vega-scale.module.js":
/*!************************************************************!*\
  !*** ./node_modules/vega-scale/build/vega-scale.module.js ***!
  \************************************************************/
/*! exports provided: scaleImplicit, Band, BinOrdinal, DiscreteLegend, Diverging, GradientLegend, Identity, Linear, Log, Ordinal, Point, Pow, Quantile, Quantize, Sequential, Sqrt, SymbolLegend, Symlog, Threshold, Time, UTC, bandSpace, domainCaption, interpolate, interpolateColors, interpolateRange, isContinuous, isDiscrete, isDiscretizing, isInterpolating, isLogarithmic, isQuantile, isTemporal, isValidScaleType, labelFormat, labelFraction, labelValues, quantizeInterpolator, scale, scaleCopy, scaleFraction, scheme, tickCount, tickFormat, tickValues, validTicks */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Band\", function() { return Band; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BinOrdinal\", function() { return BinOrdinal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DiscreteLegend\", function() { return DiscreteLegend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Diverging\", function() { return Diverging; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GradientLegend\", function() { return GradientLegend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Identity\", function() { return Identity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Linear\", function() { return Linear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Log\", function() { return Log; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Ordinal\", function() { return Ordinal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Point\", function() { return Point; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Pow\", function() { return Pow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Quantile\", function() { return Quantile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Quantize\", function() { return Quantize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Sequential\", function() { return Sequential; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Sqrt\", function() { return Sqrt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SymbolLegend\", function() { return SymbolLegend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Symlog\", function() { return Symlog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Threshold\", function() { return Threshold; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Time\", function() { return Time; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UTC\", function() { return UTC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bandSpace\", function() { return bandSpace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domainCaption\", function() { return domainCaption; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolate\", function() { return interpolate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateColors\", function() { return interpolateColors; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"interpolateRange\", function() { return interpolateRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isContinuous\", function() { return isContinuous; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDiscrete\", function() { return isDiscrete; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDiscretizing\", function() { return isDiscretizing; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInterpolating\", function() { return isInterpolating; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isLogarithmic\", function() { return isLogarithmic; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isQuantile\", function() { return isQuantile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTemporal\", function() { return isTemporal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isValidScaleType\", function() { return isValidScaleType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelFormat\", function() { return labelFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelFraction\", function() { return labelFraction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"labelValues\", function() { return labelValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantizeInterpolator\", function() { return quantizeInterpolator; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scale\", function() { return scale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleCopy\", function() { return scaleCopy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scaleFraction\", function() { return scaleFraction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scheme\", function() { return scheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tickCount\", function() { return tickCount; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tickFormat\", function() { return tickFormat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tickValues\", function() { return tickValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"validTicks\", function() { return validTicks; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var d3_scale__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-scale */ \"./node_modules/d3-scale/src/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scaleImplicit\", function() { return d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleImplicit\"]; });\n\n/* harmony import */ var d3_interpolate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-interpolate */ \"./node_modules/d3-interpolate/src/index.js\");\n/* harmony import */ var vega_time__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-time */ \"./node_modules/vega-time/build/vega-time.module.js\");\n\n\n\n\n\n\n\n\nfunction bandSpace (count, paddingInner, paddingOuter) {\n  const space = count - paddingInner + paddingOuter * 2;\n  return count ? space > 0 ? space : 1 : 0;\n}\n\nconst Identity = 'identity';\nconst Linear = 'linear';\nconst Log = 'log';\nconst Pow = 'pow';\nconst Sqrt = 'sqrt';\nconst Symlog = 'symlog';\nconst Time = 'time';\nconst UTC = 'utc';\nconst Sequential = 'sequential';\nconst Diverging = 'diverging';\nconst Quantile = 'quantile';\nconst Quantize = 'quantize';\nconst Threshold = 'threshold';\nconst Ordinal = 'ordinal';\nconst Point = 'point';\nconst Band = 'band';\nconst BinOrdinal = 'bin-ordinal'; // categories\n\nconst Continuous = 'continuous';\nconst Discrete = 'discrete';\nconst Discretizing = 'discretizing';\nconst Interpolating = 'interpolating';\nconst Temporal = 'temporal';\n\nfunction invertRange (scale) {\n  return function (_) {\n    let lo = _[0],\n        hi = _[1],\n        t;\n\n    if (hi < lo) {\n      t = lo;\n      lo = hi;\n      hi = t;\n    }\n\n    return [scale.invert(lo), scale.invert(hi)];\n  };\n}\n\nfunction invertRangeExtent (scale) {\n  return function (_) {\n    const range = scale.range();\n    let lo = _[0],\n        hi = _[1],\n        min = -1,\n        max,\n        t,\n        i,\n        n;\n\n    if (hi < lo) {\n      t = lo;\n      lo = hi;\n      hi = t;\n    }\n\n    for (i = 0, n = range.length; i < n; ++i) {\n      if (range[i] >= lo && range[i] <= hi) {\n        if (min < 0) min = i;\n        max = i;\n      }\n    }\n\n    if (min < 0) return undefined;\n    lo = scale.invertExtent(range[min]);\n    hi = scale.invertExtent(range[max]);\n    return [lo[0] === undefined ? lo[1] : lo[0], hi[1] === undefined ? hi[0] : hi[1]];\n  };\n}\n\nfunction band() {\n  const scale = Object(d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleOrdinal\"])().unknown(undefined),\n        domain = scale.domain,\n        ordinalRange = scale.range;\n  let range$1 = [0, 1],\n      step,\n      bandwidth,\n      round = false,\n      paddingInner = 0,\n      paddingOuter = 0,\n      align = 0.5;\n  delete scale.unknown;\n\n  function rescale() {\n    const n = domain().length,\n          reverse = range$1[1] < range$1[0],\n          stop = range$1[1 - reverse],\n          space = bandSpace(n, paddingInner, paddingOuter);\n    let start = range$1[reverse - 0];\n    step = (stop - start) / (space || 1);\n\n    if (round) {\n      step = Math.floor(step);\n    }\n\n    start += (stop - start - step * (n - paddingInner)) * align;\n    bandwidth = step * (1 - paddingInner);\n\n    if (round) {\n      start = Math.round(start);\n      bandwidth = Math.round(bandwidth);\n    }\n\n    const values = Object(d3_array__WEBPACK_IMPORTED_MODULE_1__[\"range\"])(n).map(i => start + step * i);\n    return ordinalRange(reverse ? values.reverse() : values);\n  }\n\n  scale.domain = function (_) {\n    if (arguments.length) {\n      domain(_);\n      return rescale();\n    } else {\n      return domain();\n    }\n  };\n\n  scale.range = function (_) {\n    if (arguments.length) {\n      range$1 = [+_[0], +_[1]];\n      return rescale();\n    } else {\n      return range$1.slice();\n    }\n  };\n\n  scale.rangeRound = function (_) {\n    range$1 = [+_[0], +_[1]];\n    round = true;\n    return rescale();\n  };\n\n  scale.bandwidth = function () {\n    return bandwidth;\n  };\n\n  scale.step = function () {\n    return step;\n  };\n\n  scale.round = function (_) {\n    if (arguments.length) {\n      round = !!_;\n      return rescale();\n    } else {\n      return round;\n    }\n  };\n\n  scale.padding = function (_) {\n    if (arguments.length) {\n      paddingOuter = Math.max(0, Math.min(1, _));\n      paddingInner = paddingOuter;\n      return rescale();\n    } else {\n      return paddingInner;\n    }\n  };\n\n  scale.paddingInner = function (_) {\n    if (arguments.length) {\n      paddingInner = Math.max(0, Math.min(1, _));\n      return rescale();\n    } else {\n      return paddingInner;\n    }\n  };\n\n  scale.paddingOuter = function (_) {\n    if (arguments.length) {\n      paddingOuter = Math.max(0, Math.min(1, _));\n      return rescale();\n    } else {\n      return paddingOuter;\n    }\n  };\n\n  scale.align = function (_) {\n    if (arguments.length) {\n      align = Math.max(0, Math.min(1, _));\n      return rescale();\n    } else {\n      return align;\n    }\n  };\n\n  scale.invertRange = function (_) {\n    // bail if range has null or undefined values\n    if (_[0] == null || _[1] == null) return;\n    const reverse = range$1[1] < range$1[0],\n          values = reverse ? ordinalRange().reverse() : ordinalRange(),\n          n = values.length - 1;\n    let lo = +_[0],\n        hi = +_[1],\n        a,\n        b,\n        t; // bail if either range endpoint is invalid\n\n    if (lo !== lo || hi !== hi) return; // order range inputs, bail if outside of scale range\n\n    if (hi < lo) {\n      t = lo;\n      lo = hi;\n      hi = t;\n    }\n\n    if (hi < values[0] || lo > range$1[1 - reverse]) return; // binary search to index into scale range\n\n    a = Math.max(0, Object(d3_array__WEBPACK_IMPORTED_MODULE_1__[\"bisectRight\"])(values, lo) - 1);\n    b = lo === hi ? a : Object(d3_array__WEBPACK_IMPORTED_MODULE_1__[\"bisectRight\"])(values, hi) - 1; // increment index a if lo is within padding gap\n\n    if (lo - values[a] > bandwidth + 1e-10) ++a;\n\n    if (reverse) {\n      // map + swap\n      t = a;\n      a = n - b;\n      b = n - t;\n    }\n\n    return a > b ? undefined : domain().slice(a, b + 1);\n  };\n\n  scale.invert = function (_) {\n    const value = scale.invertRange([_, _]);\n    return value ? value[0] : value;\n  };\n\n  scale.copy = function () {\n    return band().domain(domain()).range(range$1).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align);\n  };\n\n  return rescale();\n}\n\nfunction pointish(scale) {\n  const copy = scale.copy;\n  scale.padding = scale.paddingOuter;\n  delete scale.paddingInner;\n\n  scale.copy = function () {\n    return pointish(copy());\n  };\n\n  return scale;\n}\n\nfunction point() {\n  return pointish(band().paddingInner(1));\n}\n\nvar map = Array.prototype.map;\nfunction numbers(_) {\n  return map.call(_, vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"]);\n}\n\nconst slice = Array.prototype.slice;\n\nfunction scaleBinOrdinal() {\n  let domain = [],\n      range = [];\n\n  function scale(x) {\n    return x == null || x !== x ? undefined : range[(Object(d3_array__WEBPACK_IMPORTED_MODULE_1__[\"bisect\"])(domain, x) - 1) % range.length];\n  }\n\n  scale.domain = function (_) {\n    if (arguments.length) {\n      domain = numbers(_);\n      return scale;\n    } else {\n      return domain.slice();\n    }\n  };\n\n  scale.range = function (_) {\n    if (arguments.length) {\n      range = slice.call(_);\n      return scale;\n    } else {\n      return range.slice();\n    }\n  };\n\n  scale.tickFormat = function (count, specifier) {\n    return Object(d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"tickFormat\"])(domain[0], Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(domain), count == null ? 10 : count, specifier);\n  };\n\n  scale.copy = function () {\n    return scaleBinOrdinal().domain(scale.domain()).range(scale.range());\n  };\n\n  return scale;\n}\n\nconst scales = {};\n/**\n * Augment scales with their type and needed inverse methods.\n */\n\nfunction create(type, constructor, metadata) {\n  const ctr = function scale() {\n    const s = constructor();\n\n    if (!s.invertRange) {\n      s.invertRange = s.invert ? invertRange(s) : s.invertExtent ? invertRangeExtent(s) : undefined;\n    }\n\n    s.type = type;\n    return s;\n  };\n\n  ctr.metadata = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(metadata));\n  return ctr;\n}\n\nfunction scale(type, scale, metadata) {\n  if (arguments.length > 1) {\n    scales[type] = create(type, scale, metadata);\n    return this;\n  } else {\n    return isValidScaleType(type) ? scales[type] : undefined;\n  }\n} // identity scale\n\nscale(Identity, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleIdentity\"]); // continuous scales\n\nscale(Linear, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleLinear\"], Continuous);\nscale(Log, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleLog\"], [Continuous, Log]);\nscale(Pow, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scalePow\"], Continuous);\nscale(Sqrt, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSqrt\"], Continuous);\nscale(Symlog, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSymlog\"], Continuous);\nscale(Time, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleTime\"], [Continuous, Temporal]);\nscale(UTC, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleUtc\"], [Continuous, Temporal]); // sequential scales\n\nscale(Sequential, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSequential\"], [Continuous, Interpolating]); // backwards compat\n\nscale(\"\".concat(Sequential, \"-\").concat(Linear), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSequential\"], [Continuous, Interpolating]);\nscale(\"\".concat(Sequential, \"-\").concat(Log), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSequentialLog\"], [Continuous, Interpolating, Log]);\nscale(\"\".concat(Sequential, \"-\").concat(Pow), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSequentialPow\"], [Continuous, Interpolating]);\nscale(\"\".concat(Sequential, \"-\").concat(Sqrt), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSequentialSqrt\"], [Continuous, Interpolating]);\nscale(\"\".concat(Sequential, \"-\").concat(Symlog), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleSequentialSymlog\"], [Continuous, Interpolating]); // diverging scales\n\nscale(\"\".concat(Diverging, \"-\").concat(Linear), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleDiverging\"], [Continuous, Interpolating]);\nscale(\"\".concat(Diverging, \"-\").concat(Log), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleDivergingLog\"], [Continuous, Interpolating, Log]);\nscale(\"\".concat(Diverging, \"-\").concat(Pow), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleDivergingPow\"], [Continuous, Interpolating]);\nscale(\"\".concat(Diverging, \"-\").concat(Sqrt), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleDivergingSqrt\"], [Continuous, Interpolating]);\nscale(\"\".concat(Diverging, \"-\").concat(Symlog), d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleDivergingSymlog\"], [Continuous, Interpolating]); // discretizing scales\n\nscale(Quantile, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleQuantile\"], [Discretizing, Quantile]);\nscale(Quantize, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleQuantize\"], Discretizing);\nscale(Threshold, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleThreshold\"], Discretizing); // discrete scales\n\nscale(BinOrdinal, scaleBinOrdinal, [Discrete, Discretizing]);\nscale(Ordinal, d3_scale__WEBPACK_IMPORTED_MODULE_2__[\"scaleOrdinal\"], Discrete);\nscale(Band, band, Discrete);\nscale(Point, point, Discrete);\nfunction isValidScaleType(type) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(scales, type);\n}\n\nfunction hasType(key, type) {\n  const s = scales[key];\n  return s && s.metadata[type];\n}\n\nfunction isContinuous(key) {\n  return hasType(key, Continuous);\n}\nfunction isDiscrete(key) {\n  return hasType(key, Discrete);\n}\nfunction isDiscretizing(key) {\n  return hasType(key, Discretizing);\n}\nfunction isLogarithmic(key) {\n  return hasType(key, Log);\n}\nfunction isTemporal(key) {\n  return hasType(key, Temporal);\n}\nfunction isInterpolating(key) {\n  return hasType(key, Interpolating);\n}\nfunction isQuantile(key) {\n  return hasType(key, Quantile);\n}\n\nconst scaleProps = ['clamp', 'base', 'constant', 'exponent'];\nfunction interpolateRange(interpolator, range) {\n  const start = range[0],\n        span = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(range) - start;\n  return function (i) {\n    return interpolator(start + i * span);\n  };\n}\nfunction interpolateColors(colors, type, gamma) {\n  return Object(d3_interpolate__WEBPACK_IMPORTED_MODULE_3__[\"piecewise\"])(interpolate(type || 'rgb', gamma), colors);\n}\nfunction quantizeInterpolator(interpolator, count) {\n  const samples = new Array(count),\n        n = count + 1;\n\n  for (let i = 0; i < count;) samples[i] = interpolator(++i / n);\n\n  return samples;\n}\nfunction scaleCopy(scale) {\n  const t = scale.type,\n        s = scale.copy();\n  s.type = t;\n  return s;\n}\nfunction scaleFraction(scale$1, min, max) {\n  const delta = max - min;\n  let i, t, s;\n\n  if (!delta || !Number.isFinite(delta)) {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(0.5);\n  } else {\n    i = (t = scale$1.type).indexOf('-');\n    t = i < 0 ? t : t.slice(i + 1);\n    s = scale(t)().domain([min, max]).range([0, 1]);\n    scaleProps.forEach(m => scale$1[m] ? s[m](scale$1[m]()) : 0);\n    return s;\n  }\n}\nfunction interpolate(type, gamma) {\n  const interp = d3_interpolate__WEBPACK_IMPORTED_MODULE_3__[method(type)];\n  return gamma != null && interp && interp.gamma ? interp.gamma(gamma) : interp;\n}\n\nfunction method(type) {\n  return 'interpolate' + type.toLowerCase().split('-').map(s => s[0].toUpperCase() + s.slice(1)).join('');\n}\n\nconst continuous = {\n  blues: 'cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90',\n  greens: 'd3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429',\n  greys: 'e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e',\n  oranges: 'fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303',\n  purples: 'e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c',\n  reds: 'fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13',\n  blueGreen: 'd5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429',\n  bluePurple: 'ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71',\n  greenBlue: 'd3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1',\n  orangeRed: 'fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403',\n  purpleBlue: 'dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281',\n  purpleBlueGreen: 'dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353',\n  purpleRed: 'dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a',\n  redPurple: 'fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174',\n  yellowGreen: 'e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034',\n  yellowOrangeBrown: 'feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204',\n  yellowOrangeRed: 'fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225',\n  blueOrange: '134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07',\n  brownBlueGreen: '704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147',\n  purpleGreen: '5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29',\n  purpleOrange: '4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07',\n  redBlue: '8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85',\n  redGrey: '8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434',\n  yellowGreenBlue: 'eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185',\n  redYellowBlue: 'a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695',\n  redYellowGreen: 'a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837',\n  pinkYellowGreen: '8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419',\n  spectral: '9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2',\n  viridis: '440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725',\n  magma: '0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf',\n  inferno: '0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4',\n  plasma: '0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921',\n  cividis: '00205100235800265d002961012b65042e670831690d346b11366c16396d1c3c6e213f6e26426e2c456e31476e374a6e3c4d6e42506e47536d4c566d51586e555b6e5a5e6e5e616e62646f66676f6a6a706e6d717270717573727976737c79747f7c75827f758682768985778c8877908b78938e789691789a94789e9778a19b78a59e77a9a177aea575b2a874b6ab73bbaf71c0b26fc5b66dc9b96acebd68d3c065d8c462ddc85fe2cb5ce7cf58ebd355f0d652f3da4ff7de4cfae249fce647',\n  rainbow: '6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa',\n  sinebow: 'ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040',\n  turbo: '23171b32204a3e2a71453493493eae4b49c54a53d7485ee44569ee4074f53c7ff8378af93295f72e9ff42ba9ef28b3e926bce125c5d925cdcf27d5c629dcbc2de3b232e9a738ee9d3ff39347f68950f9805afc7765fd6e70fe667cfd5e88fc5795fb51a1f84badf545b9f140c5ec3cd0e637dae034e4d931ecd12ef4c92bfac029ffb626ffad24ffa223ff9821ff8d1fff821dff771cfd6c1af76118f05616e84b14df4111d5380fcb2f0dc0260ab61f07ac1805a313029b0f00950c00910b00',\n  browns: 'eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632',\n  tealBlues: 'bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985',\n  teals: 'bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667',\n  warmGreys: 'dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e',\n  goldGreen: 'f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36',\n  goldOrange: 'f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26',\n  goldRed: 'f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e',\n  lightGreyRed: 'efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b',\n  lightGreyTeal: 'e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc',\n  lightMulti: 'e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c',\n  lightOrange: 'f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b',\n  lightTealBlue: 'e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988',\n  darkBlue: '3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff',\n  darkGold: '3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff',\n  darkGreen: '3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa',\n  darkMulti: '3737371f5287197d8c29a86995ce3fffe800ffffff',\n  darkRed: '3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c'\n};\nconst discrete = {\n  category10: '1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf',\n  category20: '1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5',\n  category20b: '393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6',\n  category20c: '3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9',\n  tableau10: '4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac',\n  tableau20: '4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5',\n  accent: '7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666',\n  dark2: '1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666',\n  paired: 'a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928',\n  pastel1: 'fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2',\n  pastel2: 'b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc',\n  set1: 'e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999',\n  set2: '66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3',\n  set3: '8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f'\n};\n\nfunction colors(palette) {\n  const n = palette.length / 6 | 0,\n        c = new Array(n);\n\n  for (let i = 0; i < n;) {\n    c[i] = '#' + palette.slice(i * 6, ++i * 6);\n  }\n\n  return c;\n}\n\nfunction apply(_, f) {\n  for (const k in _) scheme(k, f(_[k]));\n}\n\nconst schemes = {};\napply(discrete, colors);\napply(continuous, _ => interpolateColors(colors(_)));\nfunction scheme(name, scheme) {\n  name = name && name.toLowerCase();\n\n  if (arguments.length > 1) {\n    schemes[name] = scheme;\n    return this;\n  } else {\n    return schemes[name];\n  }\n}\n\nconst SymbolLegend = 'symbol';\nconst DiscreteLegend = 'discrete';\nconst GradientLegend = 'gradient';\n\nconst defaultFormatter = value => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) ? value.map(v => String(v)) : String(value);\n\nconst ascending = (a, b) => a[1] - b[1];\n\nconst descending = (a, b) => b[1] - a[1];\n/**\n * Determine the tick count or interval function.\n * @param {Scale} scale - The scale for which to generate tick values.\n * @param {*} count - The desired tick count or interval specifier.\n * @param {number} minStep - The desired minimum step between tick values.\n * @return {*} - The tick count or interval function.\n */\n\n\nfunction tickCount(scale, count, minStep) {\n  let step;\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(count)) {\n    if (scale.bins) {\n      count = Math.max(count, scale.bins.length);\n    }\n\n    if (minStep != null) {\n      count = Math.min(count, Math.floor(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"span\"])(scale.domain()) / minStep || 1));\n    }\n  }\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(count)) {\n    step = count.step;\n    count = count.interval;\n  }\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(count)) {\n    count = scale.type === Time ? Object(vega_time__WEBPACK_IMPORTED_MODULE_4__[\"timeInterval\"])(count) : scale.type == UTC ? Object(vega_time__WEBPACK_IMPORTED_MODULE_4__[\"utcInterval\"])(count) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Only time and utc scales accept interval strings.');\n    if (step) count = count.every(step);\n  }\n\n  return count;\n}\n/**\n * Filter a set of candidate tick values, ensuring that only tick values\n * that lie within the scale range are included.\n * @param {Scale} scale - The scale for which to generate tick values.\n * @param {Array<*>} ticks - The candidate tick values.\n * @param {*} count - The tick count or interval function.\n * @return {Array<*>} - The filtered tick values.\n */\n\nfunction validTicks(scale, ticks, count) {\n  let range = scale.range(),\n      lo = range[0],\n      hi = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(range),\n      cmp = ascending;\n\n  if (lo > hi) {\n    range = hi;\n    hi = lo;\n    lo = range;\n    cmp = descending;\n  }\n\n  lo = Math.floor(lo);\n  hi = Math.ceil(hi); // filter ticks to valid values within the range\n  // additionally sort ticks in range order (#2579)\n\n  ticks = ticks.map(v => [v, scale(v)]).filter(_ => lo <= _[1] && _[1] <= hi).sort(cmp).map(_ => _[0]);\n\n  if (count > 0 && ticks.length > 1) {\n    const endpoints = [ticks[0], Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(ticks)];\n\n    while (ticks.length > count && ticks.length >= 3) {\n      ticks = ticks.filter((_, i) => !(i % 2));\n    }\n\n    if (ticks.length < 3) {\n      ticks = endpoints;\n    }\n  }\n\n  return ticks;\n}\n/**\n * Generate tick values for the given scale and approximate tick count or\n * interval value. If the scale has a 'ticks' method, it will be used to\n * generate the ticks, with the count argument passed as a parameter. If the\n * scale lacks a 'ticks' method, the full scale domain will be returned.\n * @param {Scale} scale - The scale for which to generate tick values.\n * @param {*} [count] - The approximate number of desired ticks.\n * @return {Array<*>} - The generated tick values.\n */\n\nfunction tickValues(scale, count) {\n  return scale.bins ? validTicks(scale, scale.bins) : scale.ticks ? scale.ticks(count) : scale.domain();\n}\n/**\n * Generate a label format function for a scale. If the scale has a\n * 'tickFormat' method, it will be used to generate the formatter, with the\n * count and specifier arguments passed as parameters. If the scale lacks a\n * 'tickFormat' method, the returned formatter performs simple string coercion.\n * If the input scale is a logarithmic scale and the format specifier does not\n * indicate a desired decimal precision, a special variable precision formatter\n * that automatically trims trailing zeroes will be generated.\n * @param {Scale} scale - The scale for which to generate the label formatter.\n * @param {*} [count] - The approximate number of desired ticks.\n * @param {string} [specifier] - The format specifier. Must be a legal d3\n *   specifier string (see https://github.com/d3/d3-format#formatSpecifier) or\n *   time multi-format specifier object.\n * @return {function(*):string} - The generated label formatter.\n */\n\nfunction tickFormat(locale, scale, count, specifier, formatType, noSkip) {\n  const type = scale.type;\n  let format = defaultFormatter;\n\n  if (type === Time || formatType === Time) {\n    format = locale.timeFormat(specifier);\n  } else if (type === UTC || formatType === UTC) {\n    format = locale.utcFormat(specifier);\n  } else if (isLogarithmic(type)) {\n    const varfmt = locale.formatFloat(specifier);\n\n    if (noSkip || scale.bins) {\n      format = varfmt;\n    } else {\n      const test = tickLog(scale, count, false);\n\n      format = _ => test(_) ? varfmt(_) : '';\n    }\n  } else if (scale.tickFormat) {\n    // if d3 scale has tickFormat, it must be continuous\n    const d = scale.domain();\n    format = locale.formatSpan(d[0], d[d.length - 1], count, specifier);\n  } else if (specifier) {\n    format = locale.format(specifier);\n  }\n\n  return format;\n}\nfunction tickLog(scale, count, values) {\n  const ticks = tickValues(scale, count),\n        base = scale.base(),\n        logb = Math.log(base),\n        k = Math.max(1, base * count / ticks.length); // apply d3-scale's log format filter criteria\n\n  const test = d => {\n    let i = d / Math.pow(base, Math.round(Math.log(d) / logb));\n    if (i * base < base - 0.5) i *= base;\n    return i <= k;\n  };\n\n  return values ? ticks.filter(test) : test;\n}\n\nconst symbols = {\n  [Quantile]: 'quantiles',\n  [Quantize]: 'thresholds',\n  [Threshold]: 'domain'\n};\nconst formats = {\n  [Quantile]: 'quantiles',\n  [Quantize]: 'domain'\n};\nfunction labelValues(scale, count) {\n  return scale.bins ? binValues(scale.bins) : scale.type === Log ? tickLog(scale, count, true) : symbols[scale.type] ? thresholdValues(scale[symbols[scale.type]]()) : tickValues(scale, count);\n}\nfunction thresholdFormat(locale, scale, specifier) {\n  const _ = scale[formats[scale.type]](),\n        n = _.length;\n\n  let d = n > 1 ? _[1] - _[0] : _[0],\n      i;\n\n  for (i = 1; i < n; ++i) {\n    d = Math.min(d, _[i] - _[i - 1]);\n  } // tickCount = 3 ticks times 10 for increased resolution\n\n\n  return locale.formatSpan(0, d, 3 * 10, specifier);\n}\n\nfunction thresholdValues(thresholds) {\n  const values = [-Infinity].concat(thresholds);\n  values.max = +Infinity;\n  return values;\n}\n\nfunction binValues(bins) {\n  const values = bins.slice(0, -1);\n  values.max = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(bins);\n  return values;\n}\n\nconst isDiscreteRange = scale => symbols[scale.type] || scale.bins;\n\nfunction labelFormat(locale, scale, count, type, specifier, formatType, noSkip) {\n  const format = formats[scale.type] && formatType !== Time && formatType !== UTC ? thresholdFormat(locale, scale, specifier) : tickFormat(locale, scale, count, specifier, formatType, noSkip);\n  return type === SymbolLegend && isDiscreteRange(scale) ? formatRange(format) : type === DiscreteLegend ? formatDiscrete(format) : formatPoint(format);\n}\n\nconst formatRange = format => (value, index, array) => {\n  const limit = get(array[index + 1], get(array.max, +Infinity)),\n        lo = formatValue(value, format),\n        hi = formatValue(limit, format);\n  return lo && hi ? lo + ' \\u2013 ' + hi : hi ? '< ' + hi : '\\u2265 ' + lo;\n};\n\nconst get = (value, dflt) => value != null ? value : dflt;\n\nconst formatDiscrete = format => (value, index) => index ? format(value) : null;\n\nconst formatPoint = format => value => format(value);\n\nconst formatValue = (value, format) => Number.isFinite(value) ? format(value) : null;\n\nfunction labelFraction(scale) {\n  const domain = scale.domain(),\n        count = domain.length - 1;\n  let lo = +domain[0],\n      hi = +Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(domain),\n      span = hi - lo;\n\n  if (scale.type === Threshold) {\n    const adjust = count ? span / count : 0.1;\n    lo -= adjust;\n    hi += adjust;\n    span = hi - lo;\n  }\n\n  return value => (value - lo) / span;\n}\n\nfunction format(locale, scale, specifier, formatType) {\n  const type = formatType || scale.type; // replace abbreviated time specifiers to improve screen reader experience\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(specifier) && isTemporal(type)) {\n    specifier = specifier.replace(/%a/g, '%A').replace(/%b/g, '%B');\n  }\n\n  return !specifier && type === Time ? locale.timeFormat('%A, %d %B %Y, %X') : !specifier && type === UTC ? locale.utcFormat('%A, %d %B %Y, %X UTC') : labelFormat(locale, scale, 5, null, specifier, formatType, true);\n}\n\nfunction domainCaption(locale, scale, opt) {\n  opt = opt || {};\n  const max = Math.max(3, opt.maxlen || 7),\n        fmt = format(locale, scale, opt.format, opt.formatType); // if scale breaks domain into bins, describe boundaries\n\n  if (isDiscretizing(scale.type)) {\n    const v = labelValues(scale).slice(1).map(fmt),\n          n = v.length;\n    return \"\".concat(n, \" boundar\").concat(n === 1 ? 'y' : 'ies', \": \").concat(v.join(', '));\n  } // if scale domain is discrete, list values\n  else if (isDiscrete(scale.type)) {\n      const d = scale.domain(),\n            n = d.length,\n            v = n > max ? d.slice(0, max - 2).map(fmt).join(', ') + ', ending with ' + d.slice(-1).map(fmt) : d.map(fmt).join(', ');\n      return \"\".concat(n, \" value\").concat(n === 1 ? '' : 's', \": \").concat(v);\n    } // if scale domain is continuous, describe value range\n    else {\n        const d = scale.domain();\n        return \"values from \".concat(fmt(d[0]), \" to \").concat(fmt(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(d)));\n      }\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-scale/build/vega-scale.module.js?");

/***/ }),

/***/ "./node_modules/vega-scenegraph/build/vega-scenegraph.module.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-scenegraph/build/vega-scenegraph.module.js ***!
  \**********************************************************************/
/*! exports provided: Bounds, CanvasHandler, CanvasRenderer, Gradient, GroupItem, Handler, Item, Marks, RenderType, Renderer, ResourceLoader, SVGHandler, SVGRenderer, SVGStringRenderer, Scenegraph, boundClip, boundContext, boundItem, boundMark, boundStroke, domChild, domClear, domCreate, domFind, font, fontFamily, fontSize, intersect, intersectBoxLine, intersectPath, intersectPoint, intersectRule, lineHeight, markup, multiLineOffset, pathCurves, pathEqual, pathParse, pathRectangle, pathRender, pathSymbols, pathTrail, point, renderModule, resetSVGClipId, resetSVGDefIds, sceneEqual, sceneFromJSON, scenePickVisit, sceneToJSON, sceneVisit, sceneZOrder, serializeXML, textMetrics */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Bounds\", function() { return Bounds; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CanvasHandler\", function() { return CanvasHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CanvasRenderer\", function() { return CanvasRenderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Gradient\", function() { return Gradient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GroupItem\", function() { return GroupItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Handler\", function() { return Handler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Item\", function() { return Item; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Marks\", function() { return Marks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RenderType\", function() { return RenderType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Renderer\", function() { return Renderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ResourceLoader\", function() { return ResourceLoader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVGHandler\", function() { return SVGHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVGRenderer\", function() { return SVGRenderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SVGStringRenderer\", function() { return SVGStringRenderer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Scenegraph\", function() { return Scenegraph; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boundClip\", function() { return boundClip; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boundContext\", function() { return boundContext; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boundItem\", function() { return boundItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boundMark\", function() { return boundMark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"boundStroke\", function() { return boundStroke; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domChild\", function() { return domChild; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domClear\", function() { return domClear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domCreate\", function() { return domCreate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domFind\", function() { return domFind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"font\", function() { return font; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontFamily\", function() { return fontFamily; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fontSize\", function() { return fontSize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersect\", function() { return intersect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersectBoxLine\", function() { return intersectBoxLine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersectPath\", function() { return intersectPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersectPoint\", function() { return intersectPoint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"intersectRule\", function() { return intersectRule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lineHeight\", function() { return lineHeight; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"markup\", function() { return markup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multiLineOffset\", function() { return multiLineOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathCurves\", function() { return curves; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathEqual\", function() { return pathEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathParse\", function() { return pathParse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathRectangle\", function() { return vg_rect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathRender\", function() { return pathRender; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathSymbols\", function() { return symbols; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pathTrail\", function() { return vg_trail; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return point; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderModule\", function() { return renderModule; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSVGClipId\", function() { return resetSVGClipId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetSVGDefIds\", function() { return resetSVGDefIds; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sceneEqual\", function() { return sceneEqual; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sceneFromJSON\", function() { return sceneFromJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"scenePickVisit\", function() { return pickVisit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sceneToJSON\", function() { return sceneToJSON; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sceneVisit\", function() { return visit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sceneZOrder\", function() { return zorder; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"serializeXML\", function() { return serializeXML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"textMetrics\", function() { return textMetrics; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_shape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-shape */ \"./node_modules/d3-shape/src/index.js\");\n/* harmony import */ var d3_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-path */ \"./node_modules/d3-path/src/index.js\");\n/* harmony import */ var vega_canvas__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-canvas */ \"./node_modules/vega-canvas/index.browser.js\");\n/* harmony import */ var vega_loader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-loader */ \"./node_modules/vega-loader/index.browser.js\");\n/* harmony import */ var vega_scale__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vega-scale */ \"./node_modules/vega-scale/build/vega-scale.module.js\");\n\n\n\n\n\n\n\nlet gradient_id = 0;\nfunction resetSVGGradientId() {\n  gradient_id = 0;\n}\nconst patternPrefix = 'p_';\nfunction isGradient(value) {\n  return value && value.gradient;\n}\nfunction gradientRef(g, defs, base) {\n  const type = g.gradient;\n  let id = g.id,\n      prefix = type === 'radial' ? patternPrefix : ''; // check id, assign default values as needed\n\n  if (!id) {\n    id = g.id = 'gradient_' + gradient_id++;\n\n    if (type === 'radial') {\n      g.x1 = get(g.x1, 0.5);\n      g.y1 = get(g.y1, 0.5);\n      g.r1 = get(g.r1, 0);\n      g.x2 = get(g.x2, 0.5);\n      g.y2 = get(g.y2, 0.5);\n      g.r2 = get(g.r2, 0.5);\n      prefix = patternPrefix;\n    } else {\n      g.x1 = get(g.x1, 0);\n      g.y1 = get(g.y1, 0);\n      g.x2 = get(g.x2, 1);\n      g.y2 = get(g.y2, 0);\n    }\n  } // register definition\n\n\n  defs[id] = g; // return url reference\n\n  return 'url(' + (base || '') + '#' + prefix + id + ')';\n}\n\nfunction get(val, def) {\n  return val != null ? val : def;\n}\n\nfunction Gradient (p0, p1) {\n  var stops = [],\n      gradient;\n  return gradient = {\n    gradient: 'linear',\n    x1: p0 ? p0[0] : 0,\n    y1: p0 ? p0[1] : 0,\n    x2: p1 ? p1[0] : 1,\n    y2: p1 ? p1[1] : 0,\n    stops: stops,\n    stop: function (offset, color) {\n      stops.push({\n        offset: offset,\n        color: color\n      });\n      return gradient;\n    }\n  };\n}\n\nconst lookup = {\n  'basis': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveBasis\"]\n  },\n  'basis-closed': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveBasisClosed\"]\n  },\n  'basis-open': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveBasisOpen\"]\n  },\n  'bundle': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveBundle\"],\n    tension: 'beta',\n    value: 0.85\n  },\n  'cardinal': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveCardinal\"],\n    tension: 'tension',\n    value: 0\n  },\n  'cardinal-open': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveCardinalOpen\"],\n    tension: 'tension',\n    value: 0\n  },\n  'cardinal-closed': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveCardinalClosed\"],\n    tension: 'tension',\n    value: 0\n  },\n  'catmull-rom': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveCatmullRom\"],\n    tension: 'alpha',\n    value: 0.5\n  },\n  'catmull-rom-closed': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveCatmullRomClosed\"],\n    tension: 'alpha',\n    value: 0.5\n  },\n  'catmull-rom-open': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveCatmullRomOpen\"],\n    tension: 'alpha',\n    value: 0.5\n  },\n  'linear': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveLinear\"]\n  },\n  'linear-closed': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveLinearClosed\"]\n  },\n  'monotone': {\n    horizontal: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveMonotoneY\"],\n    vertical: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveMonotoneX\"]\n  },\n  'natural': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveNatural\"]\n  },\n  'step': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveStep\"]\n  },\n  'step-after': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveStepAfter\"]\n  },\n  'step-before': {\n    curve: d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"curveStepBefore\"]\n  }\n};\nfunction curves(type, orientation, tension) {\n  var entry = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(lookup, type) && lookup[type],\n      curve = null;\n\n  if (entry) {\n    curve = entry.curve || entry[orientation || 'vertical'];\n\n    if (entry.tension && tension != null) {\n      curve = curve[entry.tension](tension);\n    }\n  }\n\n  return curve;\n}\n\n// Path parsing and rendering code adapted from fabric.js -- Thanks!\nconst cmdlen = {\n  m: 2,\n  l: 2,\n  h: 1,\n  v: 1,\n  c: 6,\n  s: 4,\n  q: 4,\n  t: 2,\n  a: 7\n},\n      regexp = [/([MLHVCSQTAZmlhvcsqtaz])/g, /###/, /(\\.\\d+)(\\.\\d)/g, /(\\d)([-+])/g, /\\s|,|###/];\nfunction pathParse (pathstr) {\n  const result = [];\n  let curr, chunks, parsed, param, cmd, len, i, j, n, m; // First, break path into command sequence\n\n  const path = pathstr.slice().replace(regexp[0], '###$1').split(regexp[1]).slice(1); // Next, parse each command in turn\n\n  for (i = 0, n = path.length; i < n; ++i) {\n    curr = path[i];\n    chunks = curr.slice(1).trim().replace(regexp[2], '$1###$2').replace(regexp[3], '$1###$2').split(regexp[4]);\n    cmd = curr.charAt(0);\n    parsed = [cmd];\n\n    for (j = 0, m = chunks.length; j < m; ++j) {\n      if ((param = +chunks[j]) === param) {\n        // not NaN\n        parsed.push(param);\n      }\n    }\n\n    len = cmdlen[cmd.toLowerCase()];\n\n    if (parsed.length - 1 > len) {\n      const m = parsed.length;\n      j = 1;\n      result.push([cmd].concat(parsed.slice(j, j += len))); // handle implicit lineTo (#2803)\n\n      cmd = cmd === 'M' ? 'L' : cmd === 'm' ? 'l' : cmd;\n\n      for (; j < m; j += len) {\n        result.push([cmd].concat(parsed.slice(j, j + len)));\n      }\n    } else {\n      result.push(parsed);\n    }\n  }\n\n  return result;\n}\n\nconst DegToRad = Math.PI / 180;\nconst Epsilon = 1e-14;\nconst HalfPi = Math.PI / 2;\nconst Tau = Math.PI * 2;\nconst HalfSqrt3 = Math.sqrt(3) / 2;\n\nvar segmentCache = {};\nvar bezierCache = {};\nvar join = [].join; // Copied from Inkscape svgtopdf, thanks!\n\nfunction segments(x, y, rx, ry, large, sweep, rotateX, ox, oy) {\n  const key = join.call(arguments);\n\n  if (segmentCache[key]) {\n    return segmentCache[key];\n  }\n\n  const th = rotateX * DegToRad;\n  const sin_th = Math.sin(th);\n  const cos_th = Math.cos(th);\n  rx = Math.abs(rx);\n  ry = Math.abs(ry);\n  const px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y) * 0.5;\n  const py = cos_th * (oy - y) * 0.5 - sin_th * (ox - x) * 0.5;\n  let pl = px * px / (rx * rx) + py * py / (ry * ry);\n\n  if (pl > 1) {\n    pl = Math.sqrt(pl);\n    rx *= pl;\n    ry *= pl;\n  }\n\n  const a00 = cos_th / rx;\n  const a01 = sin_th / rx;\n  const a10 = -sin_th / ry;\n  const a11 = cos_th / ry;\n  const x0 = a00 * ox + a01 * oy;\n  const y0 = a10 * ox + a11 * oy;\n  const x1 = a00 * x + a01 * y;\n  const y1 = a10 * x + a11 * y;\n  const d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n  let sfactor_sq = 1 / d - 0.25;\n  if (sfactor_sq < 0) sfactor_sq = 0;\n  let sfactor = Math.sqrt(sfactor_sq);\n  if (sweep == large) sfactor = -sfactor;\n  const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n  const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n  const th0 = Math.atan2(y0 - yc, x0 - xc);\n  const th1 = Math.atan2(y1 - yc, x1 - xc);\n  let th_arc = th1 - th0;\n\n  if (th_arc < 0 && sweep === 1) {\n    th_arc += Tau;\n  } else if (th_arc > 0 && sweep === 0) {\n    th_arc -= Tau;\n  }\n\n  const segs = Math.ceil(Math.abs(th_arc / (HalfPi + 0.001)));\n  const result = [];\n\n  for (let i = 0; i < segs; ++i) {\n    const th2 = th0 + i * th_arc / segs;\n    const th3 = th0 + (i + 1) * th_arc / segs;\n    result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th];\n  }\n\n  return segmentCache[key] = result;\n}\nfunction bezier(params) {\n  const key = join.call(params);\n\n  if (bezierCache[key]) {\n    return bezierCache[key];\n  }\n\n  var cx = params[0],\n      cy = params[1],\n      th0 = params[2],\n      th1 = params[3],\n      rx = params[4],\n      ry = params[5],\n      sin_th = params[6],\n      cos_th = params[7];\n  const a00 = cos_th * rx;\n  const a01 = -sin_th * ry;\n  const a10 = sin_th * rx;\n  const a11 = cos_th * ry;\n  const cos_th0 = Math.cos(th0);\n  const sin_th0 = Math.sin(th0);\n  const cos_th1 = Math.cos(th1);\n  const sin_th1 = Math.sin(th1);\n  const th_half = 0.5 * (th1 - th0);\n  const sin_th_h2 = Math.sin(th_half * 0.5);\n  const t = 8 / 3 * sin_th_h2 * sin_th_h2 / Math.sin(th_half);\n  const x1 = cx + cos_th0 - t * sin_th0;\n  const y1 = cy + sin_th0 + t * cos_th0;\n  const x3 = cx + cos_th1;\n  const y3 = cy + sin_th1;\n  const x2 = x3 + t * sin_th1;\n  const y2 = y3 - t * cos_th1;\n  return bezierCache[key] = [a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3];\n}\n\nconst temp = ['l', 0, 0, 0, 0, 0, 0, 0];\n\nfunction scale(current, sX, sY) {\n  const c = temp[0] = current[0];\n\n  if (c === 'a' || c === 'A') {\n    temp[1] = sX * current[1];\n    temp[2] = sY * current[2];\n    temp[3] = current[3];\n    temp[4] = current[4];\n    temp[5] = current[5];\n    temp[6] = sX * current[6];\n    temp[7] = sY * current[7];\n  } else if (c === 'h' || c === 'H') {\n    temp[1] = sX * current[1];\n  } else if (c === 'v' || c === 'V') {\n    temp[1] = sY * current[1];\n  } else {\n    for (var i = 1, n = current.length; i < n; ++i) {\n      temp[i] = (i % 2 == 1 ? sX : sY) * current[i];\n    }\n  }\n\n  return temp;\n}\n\nfunction pathRender (context, path, l, t, sX, sY) {\n  var current,\n      // current instruction\n  previous = null,\n      x = 0,\n      // current x\n  y = 0,\n      // current y\n  controlX = 0,\n      // current control point x\n  controlY = 0,\n      // current control point y\n  tempX,\n      tempY,\n      tempControlX,\n      tempControlY;\n  if (l == null) l = 0;\n  if (t == null) t = 0;\n  if (sX == null) sX = 1;\n  if (sY == null) sY = sX;\n  if (context.beginPath) context.beginPath();\n\n  for (var i = 0, len = path.length; i < len; ++i) {\n    current = path[i];\n\n    if (sX !== 1 || sY !== 1) {\n      current = scale(current, sX, sY);\n    }\n\n    switch (current[0]) {\n      // first letter\n      case 'l':\n        // lineto, relative\n        x += current[1];\n        y += current[2];\n        context.lineTo(x + l, y + t);\n        break;\n\n      case 'L':\n        // lineto, absolute\n        x = current[1];\n        y = current[2];\n        context.lineTo(x + l, y + t);\n        break;\n\n      case 'h':\n        // horizontal lineto, relative\n        x += current[1];\n        context.lineTo(x + l, y + t);\n        break;\n\n      case 'H':\n        // horizontal lineto, absolute\n        x = current[1];\n        context.lineTo(x + l, y + t);\n        break;\n\n      case 'v':\n        // vertical lineto, relative\n        y += current[1];\n        context.lineTo(x + l, y + t);\n        break;\n\n      case 'V':\n        // verical lineto, absolute\n        y = current[1];\n        context.lineTo(x + l, y + t);\n        break;\n\n      case 'm':\n        // moveTo, relative\n        x += current[1];\n        y += current[2];\n        context.moveTo(x + l, y + t);\n        break;\n\n      case 'M':\n        // moveTo, absolute\n        x = current[1];\n        y = current[2];\n        context.moveTo(x + l, y + t);\n        break;\n\n      case 'c':\n        // bezierCurveTo, relative\n        tempX = x + current[5];\n        tempY = y + current[6];\n        controlX = x + current[3];\n        controlY = y + current[4];\n        context.bezierCurveTo(x + current[1] + l, // x1\n        y + current[2] + t, // y1\n        controlX + l, // x2\n        controlY + t, // y2\n        tempX + l, tempY + t);\n        x = tempX;\n        y = tempY;\n        break;\n\n      case 'C':\n        // bezierCurveTo, absolute\n        x = current[5];\n        y = current[6];\n        controlX = current[3];\n        controlY = current[4];\n        context.bezierCurveTo(current[1] + l, current[2] + t, controlX + l, controlY + t, x + l, y + t);\n        break;\n\n      case 's':\n        // shorthand cubic bezierCurveTo, relative\n        // transform to absolute x,y\n        tempX = x + current[3];\n        tempY = y + current[4]; // calculate reflection of previous control points\n\n        controlX = 2 * x - controlX;\n        controlY = 2 * y - controlY;\n        context.bezierCurveTo(controlX + l, controlY + t, x + current[1] + l, y + current[2] + t, tempX + l, tempY + t); // set control point to 2nd one of this command\n        // the first control point is assumed to be the reflection of\n        // the second control point on the previous command relative\n        // to the current point.\n\n        controlX = x + current[1];\n        controlY = y + current[2];\n        x = tempX;\n        y = tempY;\n        break;\n\n      case 'S':\n        // shorthand cubic bezierCurveTo, absolute\n        tempX = current[3];\n        tempY = current[4]; // calculate reflection of previous control points\n\n        controlX = 2 * x - controlX;\n        controlY = 2 * y - controlY;\n        context.bezierCurveTo(controlX + l, controlY + t, current[1] + l, current[2] + t, tempX + l, tempY + t);\n        x = tempX;\n        y = tempY; // set control point to 2nd one of this command\n        // the first control point is assumed to be the reflection of\n        // the second control point on the previous command relative\n        // to the current point.\n\n        controlX = current[1];\n        controlY = current[2];\n        break;\n\n      case 'q':\n        // quadraticCurveTo, relative\n        // transform to absolute x,y\n        tempX = x + current[3];\n        tempY = y + current[4];\n        controlX = x + current[1];\n        controlY = y + current[2];\n        context.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t);\n        x = tempX;\n        y = tempY;\n        break;\n\n      case 'Q':\n        // quadraticCurveTo, absolute\n        tempX = current[3];\n        tempY = current[4];\n        context.quadraticCurveTo(current[1] + l, current[2] + t, tempX + l, tempY + t);\n        x = tempX;\n        y = tempY;\n        controlX = current[1];\n        controlY = current[2];\n        break;\n\n      case 't':\n        // shorthand quadraticCurveTo, relative\n        // transform to absolute x,y\n        tempX = x + current[1];\n        tempY = y + current[2];\n\n        if (previous[0].match(/[QqTt]/) === null) {\n          // If there is no previous command or if the previous command was not a Q, q, T or t,\n          // assume the control point is coincident with the current point\n          controlX = x;\n          controlY = y;\n        } else if (previous[0] === 't') {\n          // calculate reflection of previous control points for t\n          controlX = 2 * x - tempControlX;\n          controlY = 2 * y - tempControlY;\n        } else if (previous[0] === 'q') {\n          // calculate reflection of previous control points for q\n          controlX = 2 * x - controlX;\n          controlY = 2 * y - controlY;\n        }\n\n        tempControlX = controlX;\n        tempControlY = controlY;\n        context.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t);\n        x = tempX;\n        y = tempY;\n        controlX = x + current[1];\n        controlY = y + current[2];\n        break;\n\n      case 'T':\n        tempX = current[1];\n        tempY = current[2]; // calculate reflection of previous control points\n\n        controlX = 2 * x - controlX;\n        controlY = 2 * y - controlY;\n        context.quadraticCurveTo(controlX + l, controlY + t, tempX + l, tempY + t);\n        x = tempX;\n        y = tempY;\n        break;\n\n      case 'a':\n        drawArc(context, x + l, y + t, [current[1], current[2], current[3], current[4], current[5], current[6] + x + l, current[7] + y + t]);\n        x += current[6];\n        y += current[7];\n        break;\n\n      case 'A':\n        drawArc(context, x + l, y + t, [current[1], current[2], current[3], current[4], current[5], current[6] + l, current[7] + t]);\n        x = current[6];\n        y = current[7];\n        break;\n\n      case 'z':\n      case 'Z':\n        context.closePath();\n        break;\n    }\n\n    previous = current;\n  }\n}\n\nfunction drawArc(context, x, y, coords) {\n  const seg = segments(coords[5], // end x\n  coords[6], // end y\n  coords[0], // radius x\n  coords[1], // radius y\n  coords[3], // large flag\n  coords[4], // sweep flag\n  coords[2], // rotation\n  x, y);\n\n  for (let i = 0; i < seg.length; ++i) {\n    const bez = bezier(seg[i]);\n    context.bezierCurveTo(bez[0], bez[1], bez[2], bez[3], bez[4], bez[5]);\n  }\n}\n\nconst Tan30 = 0.5773502691896257;\nconst builtins = {\n  'circle': {\n    draw: function (context, size) {\n      const r = Math.sqrt(size) / 2;\n      context.moveTo(r, 0);\n      context.arc(0, 0, r, 0, Tau);\n    }\n  },\n  'cross': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          s = r / 2.5;\n      context.moveTo(-r, -s);\n      context.lineTo(-r, s);\n      context.lineTo(-s, s);\n      context.lineTo(-s, r);\n      context.lineTo(s, r);\n      context.lineTo(s, s);\n      context.lineTo(r, s);\n      context.lineTo(r, -s);\n      context.lineTo(s, -s);\n      context.lineTo(s, -r);\n      context.lineTo(-s, -r);\n      context.lineTo(-s, -s);\n      context.closePath();\n    }\n  },\n  'diamond': {\n    draw: function (context, size) {\n      const r = Math.sqrt(size) / 2;\n      context.moveTo(-r, 0);\n      context.lineTo(0, -r);\n      context.lineTo(r, 0);\n      context.lineTo(0, r);\n      context.closePath();\n    }\n  },\n  'square': {\n    draw: function (context, size) {\n      var w = Math.sqrt(size),\n          x = -w / 2;\n      context.rect(x, x, w, w);\n    }\n  },\n  'arrow': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          s = r / 7,\n          t = r / 2.5,\n          v = r / 8;\n      context.moveTo(-s, r);\n      context.lineTo(s, r);\n      context.lineTo(s, -v);\n      context.lineTo(t, -v);\n      context.lineTo(0, -r);\n      context.lineTo(-t, -v);\n      context.lineTo(-s, -v);\n      context.closePath();\n    }\n  },\n  'wedge': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          h = HalfSqrt3 * r,\n          o = h - r * Tan30,\n          b = r / 4;\n      context.moveTo(0, -h - o);\n      context.lineTo(-b, h - o);\n      context.lineTo(b, h - o);\n      context.closePath();\n    }\n  },\n  'triangle': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          h = HalfSqrt3 * r,\n          o = h - r * Tan30;\n      context.moveTo(0, -h - o);\n      context.lineTo(-r, h - o);\n      context.lineTo(r, h - o);\n      context.closePath();\n    }\n  },\n  'triangle-up': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          h = HalfSqrt3 * r;\n      context.moveTo(0, -h);\n      context.lineTo(-r, h);\n      context.lineTo(r, h);\n      context.closePath();\n    }\n  },\n  'triangle-down': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          h = HalfSqrt3 * r;\n      context.moveTo(0, h);\n      context.lineTo(-r, -h);\n      context.lineTo(r, -h);\n      context.closePath();\n    }\n  },\n  'triangle-right': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          h = HalfSqrt3 * r;\n      context.moveTo(h, 0);\n      context.lineTo(-h, -r);\n      context.lineTo(-h, r);\n      context.closePath();\n    }\n  },\n  'triangle-left': {\n    draw: function (context, size) {\n      var r = Math.sqrt(size) / 2,\n          h = HalfSqrt3 * r;\n      context.moveTo(-h, 0);\n      context.lineTo(h, -r);\n      context.lineTo(h, r);\n      context.closePath();\n    }\n  },\n  'stroke': {\n    draw: function (context, size) {\n      const r = Math.sqrt(size) / 2;\n      context.moveTo(-r, 0);\n      context.lineTo(r, 0);\n    }\n  }\n};\nfunction symbols(_) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(builtins, _) ? builtins[_] : customSymbol(_);\n}\nvar custom = {};\n\nfunction customSymbol(path) {\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(custom, path)) {\n    const parsed = pathParse(path);\n    custom[path] = {\n      draw: function (context, size) {\n        pathRender(context, parsed, 0, 0, Math.sqrt(size) / 2);\n      }\n    };\n  }\n\n  return custom[path];\n}\n\nconst C = 0.448084975506; // C = 1 - c\n\nfunction rectangleX(d) {\n  return d.x;\n}\n\nfunction rectangleY(d) {\n  return d.y;\n}\n\nfunction rectangleWidth(d) {\n  return d.width;\n}\n\nfunction rectangleHeight(d) {\n  return d.height;\n}\n\nfunction number(_) {\n  return typeof _ === 'function' ? _ : () => +_;\n}\n\nfunction clamp(value, min, max) {\n  return Math.max(min, Math.min(value, max));\n}\n\nfunction vg_rect () {\n  var x = rectangleX,\n      y = rectangleY,\n      width = rectangleWidth,\n      height = rectangleHeight,\n      crTL = number(0),\n      crTR = crTL,\n      crBL = crTL,\n      crBR = crTL,\n      context = null;\n\n  function rectangle(_, x0, y0) {\n    var buffer,\n        x1 = x0 != null ? x0 : +x.call(this, _),\n        y1 = y0 != null ? y0 : +y.call(this, _),\n        w = +width.call(this, _),\n        h = +height.call(this, _),\n        s = Math.min(w, h) / 2,\n        tl = clamp(+crTL.call(this, _), 0, s),\n        tr = clamp(+crTR.call(this, _), 0, s),\n        bl = clamp(+crBL.call(this, _), 0, s),\n        br = clamp(+crBR.call(this, _), 0, s);\n    if (!context) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_2__[\"path\"])();\n\n    if (tl <= 0 && tr <= 0 && bl <= 0 && br <= 0) {\n      context.rect(x1, y1, w, h);\n    } else {\n      var x2 = x1 + w,\n          y2 = y1 + h;\n      context.moveTo(x1 + tl, y1);\n      context.lineTo(x2 - tr, y1);\n      context.bezierCurveTo(x2 - C * tr, y1, x2, y1 + C * tr, x2, y1 + tr);\n      context.lineTo(x2, y2 - br);\n      context.bezierCurveTo(x2, y2 - C * br, x2 - C * br, y2, x2 - br, y2);\n      context.lineTo(x1 + bl, y2);\n      context.bezierCurveTo(x1 + C * bl, y2, x1, y2 - C * bl, x1, y2 - bl);\n      context.lineTo(x1, y1 + tl);\n      context.bezierCurveTo(x1, y1 + C * tl, x1 + C * tl, y1, x1 + tl, y1);\n      context.closePath();\n    }\n\n    if (buffer) {\n      context = null;\n      return buffer + '' || null;\n    }\n  }\n\n  rectangle.x = function (_) {\n    if (arguments.length) {\n      x = number(_);\n      return rectangle;\n    } else {\n      return x;\n    }\n  };\n\n  rectangle.y = function (_) {\n    if (arguments.length) {\n      y = number(_);\n      return rectangle;\n    } else {\n      return y;\n    }\n  };\n\n  rectangle.width = function (_) {\n    if (arguments.length) {\n      width = number(_);\n      return rectangle;\n    } else {\n      return width;\n    }\n  };\n\n  rectangle.height = function (_) {\n    if (arguments.length) {\n      height = number(_);\n      return rectangle;\n    } else {\n      return height;\n    }\n  };\n\n  rectangle.cornerRadius = function (tl, tr, br, bl) {\n    if (arguments.length) {\n      crTL = number(tl);\n      crTR = tr != null ? number(tr) : crTL;\n      crBR = br != null ? number(br) : crTL;\n      crBL = bl != null ? number(bl) : crTR;\n      return rectangle;\n    } else {\n      return crTL;\n    }\n  };\n\n  rectangle.context = function (_) {\n    if (arguments.length) {\n      context = _ == null ? null : _;\n      return rectangle;\n    } else {\n      return context;\n    }\n  };\n\n  return rectangle;\n}\n\nfunction vg_trail () {\n  var x,\n      y,\n      size,\n      defined,\n      context = null,\n      ready,\n      x1,\n      y1,\n      r1;\n\n  function point(x2, y2, w2) {\n    const r2 = w2 / 2;\n\n    if (ready) {\n      var ux = y1 - y2,\n          uy = x2 - x1;\n\n      if (ux || uy) {\n        // get normal vector\n        var ud = Math.sqrt(ux * ux + uy * uy),\n            rx = (ux /= ud) * r1,\n            ry = (uy /= ud) * r1,\n            t = Math.atan2(uy, ux); // draw segment\n\n        context.moveTo(x1 - rx, y1 - ry);\n        context.lineTo(x2 - ux * r2, y2 - uy * r2);\n        context.arc(x2, y2, r2, t - Math.PI, t);\n        context.lineTo(x1 + rx, y1 + ry);\n        context.arc(x1, y1, r1, t, t + Math.PI);\n      } else {\n        context.arc(x2, y2, r2, 0, Tau);\n      }\n\n      context.closePath();\n    } else {\n      ready = 1;\n    }\n\n    x1 = x2;\n    y1 = y2;\n    r1 = r2;\n  }\n\n  function trail(data) {\n    var i,\n        n = data.length,\n        d,\n        defined0 = false,\n        buffer;\n    if (context == null) context = buffer = Object(d3_path__WEBPACK_IMPORTED_MODULE_2__[\"path\"])();\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) ready = 0;\n      }\n\n      if (defined0) point(+x(d, i, data), +y(d, i, data), +size(d, i, data));\n    }\n\n    if (buffer) {\n      context = null;\n      return buffer + '' || null;\n    }\n  }\n\n  trail.x = function (_) {\n    if (arguments.length) {\n      x = _;\n      return trail;\n    } else {\n      return x;\n    }\n  };\n\n  trail.y = function (_) {\n    if (arguments.length) {\n      y = _;\n      return trail;\n    } else {\n      return y;\n    }\n  };\n\n  trail.size = function (_) {\n    if (arguments.length) {\n      size = _;\n      return trail;\n    } else {\n      return size;\n    }\n  };\n\n  trail.defined = function (_) {\n    if (arguments.length) {\n      defined = _;\n      return trail;\n    } else {\n      return defined;\n    }\n  };\n\n  trail.context = function (_) {\n    if (arguments.length) {\n      if (_ == null) {\n        context = null;\n      } else {\n        context = _;\n      }\n\n      return trail;\n    } else {\n      return context;\n    }\n  };\n\n  return trail;\n}\n\nfunction value(a, b) {\n  return a != null ? a : b;\n}\n\nconst x = item => item.x || 0,\n      y = item => item.y || 0,\n      w = item => item.width || 0,\n      h = item => item.height || 0,\n      xw = item => (item.x || 0) + (item.width || 0),\n      yh = item => (item.y || 0) + (item.height || 0),\n      sa = item => item.startAngle || 0,\n      ea = item => item.endAngle || 0,\n      pa = item => item.padAngle || 0,\n      ir = item => item.innerRadius || 0,\n      or = item => item.outerRadius || 0,\n      cr = item => item.cornerRadius || 0,\n      tl = item => value(item.cornerRadiusTopLeft, item.cornerRadius) || 0,\n      tr = item => value(item.cornerRadiusTopRight, item.cornerRadius) || 0,\n      br = item => value(item.cornerRadiusBottomRight, item.cornerRadius) || 0,\n      bl = item => value(item.cornerRadiusBottomLeft, item.cornerRadius) || 0,\n      sz = item => value(item.size, 64),\n      ts = item => item.size || 1,\n      def = item => !(item.defined === false),\n      type = item => symbols(item.shape || 'circle');\n\nconst arcShape = Object(d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"arc\"])().startAngle(sa).endAngle(ea).padAngle(pa).innerRadius(ir).outerRadius(or).cornerRadius(cr),\n      areavShape = Object(d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"area\"])().x(x).y1(y).y0(yh).defined(def),\n      areahShape = Object(d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"area\"])().y(y).x1(x).x0(xw).defined(def),\n      lineShape = Object(d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"line\"])().x(x).y(y).defined(def),\n      rectShape = vg_rect().x(x).y(y).width(w).height(h).cornerRadius(tl, tr, br, bl),\n      symbolShape = Object(d3_shape__WEBPACK_IMPORTED_MODULE_1__[\"symbol\"])().type(type).size(sz),\n      trailShape = vg_trail().x(x).y(y).defined(def).size(ts);\nfunction hasCornerRadius(item) {\n  return item.cornerRadius || item.cornerRadiusTopLeft || item.cornerRadiusTopRight || item.cornerRadiusBottomRight || item.cornerRadiusBottomLeft;\n}\nfunction arc(context, item) {\n  return arcShape.context(context)(item);\n}\nfunction area(context, items) {\n  const item = items[0],\n        interp = item.interpolate || 'linear';\n  return (item.orient === 'horizontal' ? areahShape : areavShape).curve(curves(interp, item.orient, item.tension)).context(context)(items);\n}\nfunction line(context, items) {\n  const item = items[0],\n        interp = item.interpolate || 'linear';\n  return lineShape.curve(curves(interp, item.orient, item.tension)).context(context)(items);\n}\nfunction rectangle(context, item, x, y) {\n  return rectShape.context(context)(item, x, y);\n}\nfunction shape(context, item) {\n  return (item.mark.shape || item.shape).context(context)(item);\n}\nfunction symbol(context, item) {\n  return symbolShape.context(context)(item);\n}\nfunction trail(context, items) {\n  return trailShape.context(context)(items);\n}\n\nvar clip_id = 1;\nfunction resetSVGClipId() {\n  clip_id = 1;\n}\nfunction clip (renderer, item, size) {\n  var clip = item.clip,\n      defs = renderer._defs,\n      id = item.clip_id || (item.clip_id = 'clip' + clip_id++),\n      c = defs.clipping[id] || (defs.clipping[id] = {\n    id: id\n  });\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(clip)) {\n    c.path = clip(null);\n  } else if (hasCornerRadius(size)) {\n    c.path = rectangle(null, size, 0, 0);\n  } else {\n    c.width = size.width || 0;\n    c.height = size.height || 0;\n  }\n\n  return 'url(#' + id + ')';\n}\n\nfunction Bounds(b) {\n  this.clear();\n  if (b) this.union(b);\n}\nBounds.prototype = {\n  clone() {\n    return new Bounds(this);\n  },\n\n  clear() {\n    this.x1 = +Number.MAX_VALUE;\n    this.y1 = +Number.MAX_VALUE;\n    this.x2 = -Number.MAX_VALUE;\n    this.y2 = -Number.MAX_VALUE;\n    return this;\n  },\n\n  empty() {\n    return this.x1 === +Number.MAX_VALUE && this.y1 === +Number.MAX_VALUE && this.x2 === -Number.MAX_VALUE && this.y2 === -Number.MAX_VALUE;\n  },\n\n  equals(b) {\n    return this.x1 === b.x1 && this.y1 === b.y1 && this.x2 === b.x2 && this.y2 === b.y2;\n  },\n\n  set(x1, y1, x2, y2) {\n    if (x2 < x1) {\n      this.x2 = x1;\n      this.x1 = x2;\n    } else {\n      this.x1 = x1;\n      this.x2 = x2;\n    }\n\n    if (y2 < y1) {\n      this.y2 = y1;\n      this.y1 = y2;\n    } else {\n      this.y1 = y1;\n      this.y2 = y2;\n    }\n\n    return this;\n  },\n\n  add(x, y) {\n    if (x < this.x1) this.x1 = x;\n    if (y < this.y1) this.y1 = y;\n    if (x > this.x2) this.x2 = x;\n    if (y > this.y2) this.y2 = y;\n    return this;\n  },\n\n  expand(d) {\n    this.x1 -= d;\n    this.y1 -= d;\n    this.x2 += d;\n    this.y2 += d;\n    return this;\n  },\n\n  round() {\n    this.x1 = Math.floor(this.x1);\n    this.y1 = Math.floor(this.y1);\n    this.x2 = Math.ceil(this.x2);\n    this.y2 = Math.ceil(this.y2);\n    return this;\n  },\n\n  scale(s) {\n    this.x1 *= s;\n    this.y1 *= s;\n    this.x2 *= s;\n    this.y2 *= s;\n    return this;\n  },\n\n  translate(dx, dy) {\n    this.x1 += dx;\n    this.x2 += dx;\n    this.y1 += dy;\n    this.y2 += dy;\n    return this;\n  },\n\n  rotate(angle, x, y) {\n    const p = this.rotatedPoints(angle, x, y);\n    return this.clear().add(p[0], p[1]).add(p[2], p[3]).add(p[4], p[5]).add(p[6], p[7]);\n  },\n\n  rotatedPoints(angle, x, y) {\n    var {\n      x1,\n      y1,\n      x2,\n      y2\n    } = this,\n        cos = Math.cos(angle),\n        sin = Math.sin(angle),\n        cx = x - x * cos + y * sin,\n        cy = y - x * sin - y * cos;\n    return [cos * x1 - sin * y1 + cx, sin * x1 + cos * y1 + cy, cos * x1 - sin * y2 + cx, sin * x1 + cos * y2 + cy, cos * x2 - sin * y1 + cx, sin * x2 + cos * y1 + cy, cos * x2 - sin * y2 + cx, sin * x2 + cos * y2 + cy];\n  },\n\n  union(b) {\n    if (b.x1 < this.x1) this.x1 = b.x1;\n    if (b.y1 < this.y1) this.y1 = b.y1;\n    if (b.x2 > this.x2) this.x2 = b.x2;\n    if (b.y2 > this.y2) this.y2 = b.y2;\n    return this;\n  },\n\n  intersect(b) {\n    if (b.x1 > this.x1) this.x1 = b.x1;\n    if (b.y1 > this.y1) this.y1 = b.y1;\n    if (b.x2 < this.x2) this.x2 = b.x2;\n    if (b.y2 < this.y2) this.y2 = b.y2;\n    return this;\n  },\n\n  encloses(b) {\n    return b && this.x1 <= b.x1 && this.x2 >= b.x2 && this.y1 <= b.y1 && this.y2 >= b.y2;\n  },\n\n  alignsWith(b) {\n    return b && (this.x1 == b.x1 || this.x2 == b.x2 || this.y1 == b.y1 || this.y2 == b.y2);\n  },\n\n  intersects(b) {\n    return b && !(this.x2 < b.x1 || this.x1 > b.x2 || this.y2 < b.y1 || this.y1 > b.y2);\n  },\n\n  contains(x, y) {\n    return !(x < this.x1 || x > this.x2 || y < this.y1 || y > this.y2);\n  },\n\n  width() {\n    return this.x2 - this.x1;\n  },\n\n  height() {\n    return this.y2 - this.y1;\n  }\n\n};\n\nfunction Item(mark) {\n  this.mark = mark;\n  this.bounds = this.bounds || new Bounds();\n}\n\nfunction GroupItem(mark) {\n  Item.call(this, mark);\n  this.items = this.items || [];\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(GroupItem, Item);\n\nfunction ResourceLoader(customLoader) {\n  this._pending = 0;\n  this._loader = customLoader || Object(vega_loader__WEBPACK_IMPORTED_MODULE_4__[\"loader\"])();\n}\n\nfunction increment(loader) {\n  loader._pending += 1;\n}\n\nfunction decrement(loader) {\n  loader._pending -= 1;\n}\n\nResourceLoader.prototype = {\n  pending() {\n    return this._pending;\n  },\n\n  sanitizeURL(uri) {\n    const loader = this;\n    increment(loader);\n    return loader._loader.sanitize(uri, {\n      context: 'href'\n    }).then(opt => {\n      decrement(loader);\n      return opt;\n    }).catch(() => {\n      decrement(loader);\n      return null;\n    });\n  },\n\n  loadImage(uri) {\n    const loader = this,\n          Image = Object(vega_canvas__WEBPACK_IMPORTED_MODULE_3__[\"image\"])();\n    increment(loader);\n    return loader._loader.sanitize(uri, {\n      context: 'image'\n    }).then(opt => {\n      const url = opt.href;\n      if (!url || !Image) throw {\n        url: url\n      };\n      const img = new Image(); // set crossOrigin only if cors is defined; empty string sets anonymous mode\n      // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/crossOrigin\n\n      const cors = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(opt, 'crossOrigin') ? opt.crossOrigin : 'anonymous';\n      if (cors != null) img.crossOrigin = cors; // attempt to load image resource\n\n      img.onload = () => decrement(loader);\n\n      img.onerror = () => decrement(loader);\n\n      img.src = url;\n      return img;\n    }).catch(e => {\n      decrement(loader);\n      return {\n        complete: false,\n        width: 0,\n        height: 0,\n        src: e && e.url || ''\n      };\n    });\n  },\n\n  ready() {\n    const loader = this;\n    return new Promise(accept => {\n      function poll(value) {\n        if (!loader.pending()) accept(value);else setTimeout(() => {\n          poll(true);\n        }, 10);\n      }\n\n      poll(false);\n    });\n  }\n\n};\n\nfunction boundStroke (bounds, item, miter) {\n  if (item.stroke && item.opacity !== 0 && item.strokeOpacity !== 0) {\n    const sw = item.strokeWidth != null ? +item.strokeWidth : 1;\n    bounds.expand(sw + (miter ? miterAdjustment(item, sw) : 0));\n  }\n\n  return bounds;\n}\n\nfunction miterAdjustment(item, strokeWidth) {\n  // TODO: more sophisticated adjustment? Or miter support in boundContext?\n  return item.strokeJoin && item.strokeJoin !== 'miter' ? 0 : strokeWidth;\n}\n\nconst circleThreshold = Tau - 1e-8;\nlet bounds, lx, ly, rot, ma, mb, mc, md;\n\nconst add = (x, y) => bounds.add(x, y);\n\nconst addL = (x, y) => add(lx = x, ly = y);\n\nconst addX = x => add(x, bounds.y1);\n\nconst addY = y => add(bounds.x1, y);\n\nconst px = (x, y) => ma * x + mc * y;\n\nconst py = (x, y) => mb * x + md * y;\n\nconst addp = (x, y) => add(px(x, y), py(x, y));\n\nconst addpL = (x, y) => addL(px(x, y), py(x, y));\n\nfunction boundContext (_, deg) {\n  bounds = _;\n\n  if (deg) {\n    rot = deg * DegToRad;\n    ma = md = Math.cos(rot);\n    mb = Math.sin(rot);\n    mc = -mb;\n  } else {\n    ma = md = 1;\n    rot = mb = mc = 0;\n  }\n\n  return context;\n}\nconst context = {\n  beginPath() {},\n\n  closePath() {},\n\n  moveTo: addpL,\n  lineTo: addpL,\n\n  rect(x, y, w, h) {\n    if (rot) {\n      addp(x + w, y);\n      addp(x + w, y + h);\n      addp(x, y + h);\n      addpL(x, y);\n    } else {\n      add(x + w, y + h);\n      addL(x, y);\n    }\n  },\n\n  quadraticCurveTo(x1, y1, x2, y2) {\n    const px1 = px(x1, y1),\n          py1 = py(x1, y1),\n          px2 = px(x2, y2),\n          py2 = py(x2, y2);\n    quadExtrema(lx, px1, px2, addX);\n    quadExtrema(ly, py1, py2, addY);\n    addL(px2, py2);\n  },\n\n  bezierCurveTo(x1, y1, x2, y2, x3, y3) {\n    const px1 = px(x1, y1),\n          py1 = py(x1, y1),\n          px2 = px(x2, y2),\n          py2 = py(x2, y2),\n          px3 = px(x3, y3),\n          py3 = py(x3, y3);\n    cubicExtrema(lx, px1, px2, px3, addX);\n    cubicExtrema(ly, py1, py2, py3, addY);\n    addL(px3, py3);\n  },\n\n  arc(cx, cy, r, sa, ea, ccw) {\n    sa += rot;\n    ea += rot; // store last point on path\n\n    lx = r * Math.cos(ea) + cx;\n    ly = r * Math.sin(ea) + cy;\n\n    if (Math.abs(ea - sa) > circleThreshold) {\n      // treat as full circle\n      add(cx - r, cy - r);\n      add(cx + r, cy + r);\n    } else {\n      const update = a => add(r * Math.cos(a) + cx, r * Math.sin(a) + cy);\n\n      let s, i; // sample end points\n\n      update(sa);\n      update(ea); // sample interior points aligned with 90 degrees\n\n      if (ea !== sa) {\n        sa = sa % Tau;\n        if (sa < 0) sa += Tau;\n        ea = ea % Tau;\n        if (ea < 0) ea += Tau;\n\n        if (ea < sa) {\n          ccw = !ccw; // flip direction\n\n          s = sa;\n          sa = ea;\n          ea = s; // swap end-points\n        }\n\n        if (ccw) {\n          ea -= Tau;\n          s = sa - sa % HalfPi;\n\n          for (i = 0; i < 4 && s > ea; ++i, s -= HalfPi) update(s);\n        } else {\n          s = sa - sa % HalfPi + HalfPi;\n\n          for (i = 0; i < 4 && s < ea; ++i, s = s + HalfPi) update(s);\n        }\n      }\n    }\n  }\n\n};\n\nfunction quadExtrema(x0, x1, x2, cb) {\n  const t = (x0 - x1) / (x0 + x2 - 2 * x1);\n  if (0 < t && t < 1) cb(x0 + (x1 - x0) * t);\n}\n\nfunction cubicExtrema(x0, x1, x2, x3, cb) {\n  const a = x3 - x0 + 3 * x1 - 3 * x2,\n        b = x0 + x2 - 2 * x1,\n        c = x0 - x1;\n  let t0 = 0,\n      t1 = 0,\n      r; // solve for parameter t\n\n  if (Math.abs(a) > Epsilon) {\n    // quadratic equation\n    r = b * b + c * a;\n\n    if (r >= 0) {\n      r = Math.sqrt(r);\n      t0 = (-b + r) / a;\n      t1 = (-b - r) / a;\n    }\n  } else {\n    // linear equation\n    t0 = 0.5 * c / b;\n  } // calculate position\n\n\n  if (0 < t0 && t0 < 1) cb(cubic(t0, x0, x1, x2, x3));\n  if (0 < t1 && t1 < 1) cb(cubic(t1, x0, x1, x2, x3));\n}\n\nfunction cubic(t, x0, x1, x2, x3) {\n  const s = 1 - t,\n        s2 = s * s,\n        t2 = t * t;\n  return s2 * s * x0 + 3 * s2 * t * x1 + 3 * s * t2 * x2 + t2 * t * x3;\n}\n\nvar context$1 = (context$1 = Object(vega_canvas__WEBPACK_IMPORTED_MODULE_3__[\"canvas\"])(1, 1)) ? context$1.getContext('2d') : null;\n\nconst b = new Bounds();\nfunction intersectPath(draw) {\n  return function (item, brush) {\n    // rely on (inaccurate) bounds intersection if no context\n    if (!context$1) return true; // add path to offscreen graphics context\n\n    draw(context$1, item); // get bounds intersection region\n\n    b.clear().union(item.bounds).intersect(brush).round();\n    const {\n      x1,\n      y1,\n      x2,\n      y2\n    } = b; // iterate over intersection region\n    // perform fine grained inclusion test\n\n    for (let y = y1; y <= y2; ++y) {\n      for (let x = x1; x <= x2; ++x) {\n        if (context$1.isPointInPath(x, y)) {\n          return true;\n        }\n      }\n    } // false if no hits in intersection region\n\n\n    return false;\n  };\n}\nfunction intersectPoint(item, box) {\n  return box.contains(item.x || 0, item.y || 0);\n}\nfunction intersectRect(item, box) {\n  const x = item.x || 0,\n        y = item.y || 0,\n        w = item.width || 0,\n        h = item.height || 0;\n  return box.intersects(b.set(x, y, x + w, y + h));\n}\nfunction intersectRule(item, box) {\n  const x = item.x || 0,\n        y = item.y || 0,\n        x2 = item.x2 != null ? item.x2 : x,\n        y2 = item.y2 != null ? item.y2 : y;\n  return intersectBoxLine(box, x, y, x2, y2);\n}\nfunction intersectBoxLine(box, x, y, u, v) {\n  const {\n    x1,\n    y1,\n    x2,\n    y2\n  } = box,\n        dx = u - x,\n        dy = v - y;\n  let t0 = 0,\n      t1 = 1,\n      p,\n      q,\n      r,\n      e;\n\n  for (e = 0; e < 4; ++e) {\n    if (e === 0) {\n      p = -dx;\n      q = -(x1 - x);\n    }\n\n    if (e === 1) {\n      p = dx;\n      q = x2 - x;\n    }\n\n    if (e === 2) {\n      p = -dy;\n      q = -(y1 - y);\n    }\n\n    if (e === 3) {\n      p = dy;\n      q = y2 - y;\n    }\n\n    if (Math.abs(p) < 1e-10 && q < 0) return false;\n    r = q / p;\n\n    if (p < 0) {\n      if (r > t1) return false;else if (r > t0) t0 = r;\n    } else if (p > 0) {\n      if (r < t0) return false;else if (r < t1) t1 = r;\n    }\n  }\n\n  return true;\n}\n\nfunction blend (context, item) {\n  context.globalCompositeOperation = item.blend || 'source-over';\n}\n\nfunction value$1 (value, dflt) {\n  return value == null ? dflt : value;\n}\n\nfunction addStops(gradient, stops) {\n  const n = stops.length;\n\n  for (let i = 0; i < n; ++i) {\n    gradient.addColorStop(stops[i].offset, stops[i].color);\n  }\n\n  return gradient;\n}\n\nfunction gradient (context, spec, bounds) {\n  const w = bounds.width(),\n        h = bounds.height();\n  let gradient;\n\n  if (spec.gradient === 'radial') {\n    gradient = context.createRadialGradient(bounds.x1 + value$1(spec.x1, 0.5) * w, bounds.y1 + value$1(spec.y1, 0.5) * h, Math.max(w, h) * value$1(spec.r1, 0), bounds.x1 + value$1(spec.x2, 0.5) * w, bounds.y1 + value$1(spec.y2, 0.5) * h, Math.max(w, h) * value$1(spec.r2, 0.5));\n  } else {\n    // linear gradient\n    const x1 = value$1(spec.x1, 0),\n          y1 = value$1(spec.y1, 0),\n          x2 = value$1(spec.x2, 1),\n          y2 = value$1(spec.y2, 0);\n\n    if (x1 === x2 || y1 === y2 || w === h) {\n      // axis aligned: use normal gradient\n      gradient = context.createLinearGradient(bounds.x1 + x1 * w, bounds.y1 + y1 * h, bounds.x1 + x2 * w, bounds.y1 + y2 * h);\n    } else {\n      // not axis aligned: render gradient into a pattern (#2365)\n      // this allows us to use normalized bounding box coordinates\n      const image = Object(vega_canvas__WEBPACK_IMPORTED_MODULE_3__[\"canvas\"])(Math.ceil(w), Math.ceil(h)),\n            ictx = image.getContext('2d');\n      ictx.scale(w, h);\n      ictx.fillStyle = addStops(ictx.createLinearGradient(x1, y1, x2, y2), spec.stops);\n      ictx.fillRect(0, 0, w, h);\n      return context.createPattern(image, 'no-repeat');\n    }\n  }\n\n  return addStops(gradient, spec.stops);\n}\n\nfunction color (context, item, value) {\n  return isGradient(value) ? gradient(context, value, item.bounds) : value;\n}\n\nfunction fill (context, item, opacity) {\n  opacity *= item.fillOpacity == null ? 1 : item.fillOpacity;\n\n  if (opacity > 0) {\n    context.globalAlpha = opacity;\n    context.fillStyle = color(context, item, item.fill);\n    return true;\n  } else {\n    return false;\n  }\n}\n\nvar Empty = [];\nfunction stroke (context, item, opacity) {\n  var lw = (lw = item.strokeWidth) != null ? lw : 1;\n  if (lw <= 0) return false;\n  opacity *= item.strokeOpacity == null ? 1 : item.strokeOpacity;\n\n  if (opacity > 0) {\n    context.globalAlpha = opacity;\n    context.strokeStyle = color(context, item, item.stroke);\n    context.lineWidth = lw;\n    context.lineCap = item.strokeCap || 'butt';\n    context.lineJoin = item.strokeJoin || 'miter';\n    context.miterLimit = item.strokeMiterLimit || 10;\n\n    if (context.setLineDash) {\n      context.setLineDash(item.strokeDash || Empty);\n      context.lineDashOffset = item.strokeDashOffset || 0;\n    }\n\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction compare(a, b) {\n  return a.zindex - b.zindex || a.index - b.index;\n}\n\nfunction zorder(scene) {\n  if (!scene.zdirty) return scene.zitems;\n  var items = scene.items,\n      output = [],\n      item,\n      i,\n      n;\n\n  for (i = 0, n = items.length; i < n; ++i) {\n    item = items[i];\n    item.index = i;\n    if (item.zindex) output.push(item);\n  }\n\n  scene.zdirty = false;\n  return scene.zitems = output.sort(compare);\n}\nfunction visit(scene, visitor) {\n  var items = scene.items,\n      i,\n      n;\n  if (!items || !items.length) return;\n  const zitems = zorder(scene);\n\n  if (zitems && zitems.length) {\n    for (i = 0, n = items.length; i < n; ++i) {\n      if (!items[i].zindex) visitor(items[i]);\n    }\n\n    items = zitems;\n  }\n\n  for (i = 0, n = items.length; i < n; ++i) {\n    visitor(items[i]);\n  }\n}\nfunction pickVisit(scene, visitor) {\n  var items = scene.items,\n      hit,\n      i;\n  if (!items || !items.length) return null;\n  const zitems = zorder(scene);\n  if (zitems && zitems.length) items = zitems;\n\n  for (i = items.length; --i >= 0;) {\n    if (hit = visitor(items[i])) return hit;\n  }\n\n  if (items === zitems) {\n    for (items = scene.items, i = items.length; --i >= 0;) {\n      if (!items[i].zindex) {\n        if (hit = visitor(items[i])) return hit;\n      }\n    }\n  }\n\n  return null;\n}\n\nfunction drawAll(path) {\n  return function (context, scene, bounds) {\n    visit(scene, item => {\n      if (!bounds || bounds.intersects(item.bounds)) {\n        drawPath(path, context, item, item);\n      }\n    });\n  };\n}\nfunction drawOne(path) {\n  return function (context, scene, bounds) {\n    if (scene.items.length && (!bounds || bounds.intersects(scene.bounds))) {\n      drawPath(path, context, scene.items[0], scene.items);\n    }\n  };\n}\n\nfunction drawPath(path, context, item, items) {\n  var opacity = item.opacity == null ? 1 : item.opacity;\n  if (opacity === 0) return;\n  if (path(context, items)) return;\n  blend(context, item);\n\n  if (item.fill && fill(context, item, opacity)) {\n    context.fill();\n  }\n\n  if (item.stroke && stroke(context, item, opacity)) {\n    context.stroke();\n  }\n}\n\nfunction pick(test) {\n  test = test || vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"];\n  return function (context, scene, x, y, gx, gy) {\n    x *= context.pixelRatio;\n    y *= context.pixelRatio;\n    return pickVisit(scene, item => {\n      const b = item.bounds; // first hit test against bounding box\n\n      if (b && !b.contains(gx, gy) || !b) return; // if in bounding box, perform more careful test\n\n      if (test(context, item, x, y, gx, gy)) return item;\n    });\n  };\n}\nfunction hitPath(path, filled) {\n  return function (context, o, x, y) {\n    var item = Array.isArray(o) ? o[0] : o,\n        fill = filled == null ? item.fill : filled,\n        stroke = item.stroke && context.isPointInStroke,\n        lw,\n        lc;\n\n    if (stroke) {\n      lw = item.strokeWidth;\n      lc = item.strokeCap;\n      context.lineWidth = lw != null ? lw : 1;\n      context.lineCap = lc != null ? lc : 'butt';\n    }\n\n    return path(context, o) ? false : fill && context.isPointInPath(x, y) || stroke && context.isPointInStroke(x, y);\n  };\n}\nfunction pickPath(path) {\n  return pick(hitPath(path));\n}\n\nfunction translate(x, y) {\n  return 'translate(' + x + ',' + y + ')';\n}\nfunction rotate(a) {\n  return 'rotate(' + a + ')';\n}\nfunction scale$1(scaleX, scaleY) {\n  return 'scale(' + scaleX + ',' + scaleY + ')';\n}\nfunction translateItem(item) {\n  return translate(item.x || 0, item.y || 0);\n}\nfunction rotateItem(item) {\n  return translate(item.x || 0, item.y || 0) + (item.angle ? ' ' + rotate(item.angle) : '');\n}\nfunction transformItem(item) {\n  return translate(item.x || 0, item.y || 0) + (item.angle ? ' ' + rotate(item.angle) : '') + (item.scaleX || item.scaleY ? ' ' + scale$1(item.scaleX || 1, item.scaleY || 1) : '');\n}\n\nfunction markItemPath (type, shape, isect) {\n  function attr(emit, item) {\n    emit('transform', rotateItem(item));\n    emit('d', shape(null, item));\n  }\n\n  function bound(bounds, item) {\n    shape(boundContext(bounds, item.angle), item);\n    return boundStroke(bounds, item).translate(item.x || 0, item.y || 0);\n  }\n\n  function draw(context, item) {\n    var x = item.x || 0,\n        y = item.y || 0,\n        a = item.angle || 0;\n    context.translate(x, y);\n    if (a) context.rotate(a *= DegToRad);\n    context.beginPath();\n    shape(context, item);\n    if (a) context.rotate(-a);\n    context.translate(-x, -y);\n  }\n\n  return {\n    type: type,\n    tag: 'path',\n    nested: false,\n    attr: attr,\n    bound: bound,\n    draw: drawAll(draw),\n    pick: pickPath(draw),\n    isect: isect || intersectPath(draw)\n  };\n}\n\nvar arc$1 = markItemPath('arc', arc);\n\nfunction pickArea(a, p) {\n  var v = a[0].orient === 'horizontal' ? p[1] : p[0],\n      z = a[0].orient === 'horizontal' ? 'y' : 'x',\n      i = a.length,\n      min = +Infinity,\n      hit,\n      d;\n\n  while (--i >= 0) {\n    if (a[i].defined === false) continue;\n    d = Math.abs(a[i][z] - v);\n\n    if (d < min) {\n      min = d;\n      hit = a[i];\n    }\n  }\n\n  return hit;\n}\nfunction pickLine(a, p) {\n  var t = Math.pow(a[0].strokeWidth || 1, 2),\n      i = a.length,\n      dx,\n      dy,\n      dd;\n\n  while (--i >= 0) {\n    if (a[i].defined === false) continue;\n    dx = a[i].x - p[0];\n    dy = a[i].y - p[1];\n    dd = dx * dx + dy * dy;\n    if (dd < t) return a[i];\n  }\n\n  return null;\n}\nfunction pickTrail(a, p) {\n  var i = a.length,\n      dx,\n      dy,\n      dd;\n\n  while (--i >= 0) {\n    if (a[i].defined === false) continue;\n    dx = a[i].x - p[0];\n    dy = a[i].y - p[1];\n    dd = dx * dx + dy * dy;\n    dx = a[i].size || 1;\n    if (dd < dx * dx) return a[i];\n  }\n\n  return null;\n}\n\nfunction markMultiItemPath (type, shape, tip) {\n  function attr(emit, item) {\n    var items = item.mark.items;\n    if (items.length) emit('d', shape(null, items));\n  }\n\n  function bound(bounds, mark) {\n    var items = mark.items;\n\n    if (items.length === 0) {\n      return bounds;\n    } else {\n      shape(boundContext(bounds), items);\n      return boundStroke(bounds, items[0]);\n    }\n  }\n\n  function draw(context, items) {\n    context.beginPath();\n    shape(context, items);\n  }\n\n  const hit = hitPath(draw);\n\n  function pick(context, scene, x, y, gx, gy) {\n    var items = scene.items,\n        b = scene.bounds;\n\n    if (!items || !items.length || b && !b.contains(gx, gy)) {\n      return null;\n    }\n\n    x *= context.pixelRatio;\n    y *= context.pixelRatio;\n    return hit(context, items, x, y) ? items[0] : null;\n  }\n\n  return {\n    type: type,\n    tag: 'path',\n    nested: true,\n    attr: attr,\n    bound: bound,\n    draw: drawOne(draw),\n    pick: pick,\n    isect: intersectPoint,\n    tip: tip\n  };\n}\n\nvar area$1 = markMultiItemPath('area', area, pickArea);\n\nfunction clip$1 (context, scene) {\n  var clip = scene.clip;\n  context.save();\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(clip)) {\n    context.beginPath();\n    clip(context);\n    context.clip();\n  } else {\n    clipGroup(context, scene.group);\n  }\n}\nfunction clipGroup(context, group) {\n  context.beginPath();\n  hasCornerRadius(group) ? rectangle(context, group, 0, 0) : context.rect(0, 0, group.width || 0, group.height || 0);\n  context.clip();\n}\n\nfunction offset(item) {\n  const sw = value$1(item.strokeWidth, 1);\n  return item.strokeOffset != null ? item.strokeOffset : item.stroke && sw > 0.5 && sw < 1.5 ? 0.5 - Math.abs(sw - 1) : 0;\n}\n\nfunction attr(emit, item) {\n  emit('transform', translateItem(item));\n}\n\nfunction emitRectangle(emit, item) {\n  const off = offset(item);\n  emit('d', rectangle(null, item, off, off));\n}\n\nfunction background(emit, item) {\n  emit('class', 'background');\n  emit('aria-hidden', true);\n  emitRectangle(emit, item);\n}\n\nfunction foreground(emit, item) {\n  emit('class', 'foreground');\n  emit('aria-hidden', true);\n\n  if (item.strokeForeground) {\n    emitRectangle(emit, item);\n  } else {\n    emit('d', '');\n  }\n}\n\nfunction content(emit, item, renderer) {\n  const url = item.clip ? clip(renderer, item, item) : null;\n  emit('clip-path', url);\n}\n\nfunction bound(bounds, group) {\n  if (!group.clip && group.items) {\n    const items = group.items,\n          m = items.length;\n\n    for (let j = 0; j < m; ++j) {\n      bounds.union(items[j].bounds);\n    }\n  }\n\n  if ((group.clip || group.width || group.height) && !group.noBound) {\n    bounds.add(0, 0).add(group.width || 0, group.height || 0);\n  }\n\n  boundStroke(bounds, group);\n  return bounds.translate(group.x || 0, group.y || 0);\n}\n\nfunction rectanglePath(context, group, x, y) {\n  const off = offset(group);\n  context.beginPath();\n  rectangle(context, group, (x || 0) + off, (y || 0) + off);\n}\n\nconst hitBackground = hitPath(rectanglePath);\nconst hitForeground = hitPath(rectanglePath, false);\nconst hitCorner = hitPath(rectanglePath, true);\n\nfunction draw(context, scene, bounds) {\n  visit(scene, group => {\n    const gx = group.x || 0,\n          gy = group.y || 0,\n          fore = group.strokeForeground,\n          opacity = group.opacity == null ? 1 : group.opacity; // draw group background\n\n    if ((group.stroke || group.fill) && opacity) {\n      rectanglePath(context, group, gx, gy);\n      blend(context, group);\n\n      if (group.fill && fill(context, group, opacity)) {\n        context.fill();\n      }\n\n      if (group.stroke && !fore && stroke(context, group, opacity)) {\n        context.stroke();\n      }\n    } // setup graphics context, set clip and bounds\n\n\n    context.save();\n    context.translate(gx, gy);\n    if (group.clip) clipGroup(context, group);\n    if (bounds) bounds.translate(-gx, -gy); // draw group contents\n\n    visit(group, item => {\n      this.draw(context, item, bounds);\n    }); // restore graphics context\n\n    if (bounds) bounds.translate(gx, gy);\n    context.restore(); // draw group foreground\n\n    if (fore && group.stroke && opacity) {\n      rectanglePath(context, group, gx, gy);\n      blend(context, group);\n\n      if (stroke(context, group, opacity)) {\n        context.stroke();\n      }\n    }\n  });\n}\n\nfunction pick$1(context, scene, x, y, gx, gy) {\n  if (scene.bounds && !scene.bounds.contains(gx, gy) || !scene.items) {\n    return null;\n  }\n\n  const cx = x * context.pixelRatio,\n        cy = y * context.pixelRatio;\n  return pickVisit(scene, group => {\n    let hit, dx, dy; // first hit test bounding box\n\n    const b = group.bounds;\n    if (b && !b.contains(gx, gy)) return; // passed bounds check, test rectangular clip\n\n    dx = group.x || 0;\n    dy = group.y || 0;\n    const dw = dx + (group.width || 0),\n          dh = dy + (group.height || 0),\n          c = group.clip;\n    if (c && (gx < dx || gx > dw || gy < dy || gy > dh)) return; // adjust coordinate system\n\n    context.save();\n    context.translate(dx, dy);\n    dx = gx - dx;\n    dy = gy - dy; // test background for rounded corner clip\n\n    if (c && hasCornerRadius(group) && !hitCorner(context, group, cx, cy)) {\n      context.restore();\n      return null;\n    }\n\n    const fore = group.strokeForeground,\n          ix = scene.interactive !== false; // hit test against group foreground\n\n    if (ix && fore && group.stroke && hitForeground(context, group, cx, cy)) {\n      context.restore();\n      return group;\n    } // hit test against contained marks\n\n\n    hit = pickVisit(group, mark => pickMark(mark, dx, dy) ? this.pick(mark, x, y, dx, dy) : null); // hit test against group background\n\n    if (!hit && ix && (group.fill || !fore && group.stroke) && hitBackground(context, group, cx, cy)) {\n      hit = group;\n    } // restore state and return\n\n\n    context.restore();\n    return hit || null;\n  });\n}\n\nfunction pickMark(mark, x, y) {\n  return (mark.interactive !== false || mark.marktype === 'group') && mark.bounds && mark.bounds.contains(x, y);\n}\n\nvar group = {\n  type: 'group',\n  tag: 'g',\n  nested: false,\n  attr: attr,\n  bound: bound,\n  draw: draw,\n  pick: pick$1,\n  isect: intersectRect,\n  content: content,\n  background: background,\n  foreground: foreground\n};\n\nvar metadata = {\n  'xmlns': 'http://www.w3.org/2000/svg',\n  'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n  'version': '1.1'\n};\n\nfunction getImage(item, renderer) {\n  var image = item.image;\n\n  if (!image || item.url && item.url !== image.url) {\n    image = {\n      complete: false,\n      width: 0,\n      height: 0\n    };\n    renderer.loadImage(item.url).then(image => {\n      item.image = image;\n      item.image.url = item.url;\n    });\n  }\n\n  return image;\n}\n\nfunction imageWidth(item, image) {\n  return item.width != null ? item.width : !image || !image.width ? 0 : item.aspect !== false && item.height ? item.height * image.width / image.height : image.width;\n}\n\nfunction imageHeight(item, image) {\n  return item.height != null ? item.height : !image || !image.height ? 0 : item.aspect !== false && item.width ? item.width * image.height / image.width : image.height;\n}\n\nfunction imageXOffset(align, w) {\n  return align === 'center' ? w / 2 : align === 'right' ? w : 0;\n}\n\nfunction imageYOffset(baseline, h) {\n  return baseline === 'middle' ? h / 2 : baseline === 'bottom' ? h : 0;\n}\n\nfunction attr$1(emit, item, renderer) {\n  const img = getImage(item, renderer),\n        w = imageWidth(item, img),\n        h = imageHeight(item, img),\n        x = (item.x || 0) - imageXOffset(item.align, w),\n        y = (item.y || 0) - imageYOffset(item.baseline, h),\n        i = !img.src && img.toDataURL ? img.toDataURL() : img.src || '';\n  emit('href', i, metadata['xmlns:xlink'], 'xlink:href');\n  emit('transform', translate(x, y));\n  emit('width', w);\n  emit('height', h);\n  emit('preserveAspectRatio', item.aspect === false ? 'none' : 'xMidYMid');\n}\n\nfunction bound$1(bounds, item) {\n  const img = item.image,\n        w = imageWidth(item, img),\n        h = imageHeight(item, img),\n        x = (item.x || 0) - imageXOffset(item.align, w),\n        y = (item.y || 0) - imageYOffset(item.baseline, h);\n  return bounds.set(x, y, x + w, y + h);\n}\n\nfunction draw$1(context, scene, bounds) {\n  visit(scene, item => {\n    if (bounds && !bounds.intersects(item.bounds)) return; // bounds check\n\n    const img = getImage(item, this);\n    let w = imageWidth(item, img),\n        h = imageHeight(item, img),\n        x = (item.x || 0) - imageXOffset(item.align, w),\n        y = (item.y || 0) - imageYOffset(item.baseline, h),\n        opacity,\n        ar0,\n        ar1,\n        t;\n\n    if (item.aspect !== false) {\n      ar0 = img.width / img.height;\n      ar1 = item.width / item.height;\n\n      if (ar0 === ar0 && ar1 === ar1 && ar0 !== ar1) {\n        if (ar1 < ar0) {\n          t = w / ar0;\n          y += (h - t) / 2;\n          h = t;\n        } else {\n          t = h * ar0;\n          x += (w - t) / 2;\n          w = t;\n        }\n      }\n    }\n\n    if (img.complete || img.toDataURL) {\n      blend(context, item);\n      context.globalAlpha = (opacity = item.opacity) != null ? opacity : 1;\n      context.imageSmoothingEnabled = item.smooth !== false;\n      context.drawImage(img, x, y, w, h);\n    }\n  });\n}\n\nvar image = {\n  type: 'image',\n  tag: 'image',\n  nested: false,\n  attr: attr$1,\n  bound: bound$1,\n  draw: draw$1,\n  pick: pick(),\n  isect: vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"],\n  // bounds check is sufficient\n  get: getImage,\n  xOffset: imageXOffset,\n  yOffset: imageYOffset\n};\n\nvar line$1 = markMultiItemPath('line', line, pickLine);\n\nfunction attr$2(emit, item) {\n  var sx = item.scaleX || 1,\n      sy = item.scaleY || 1;\n\n  if (sx !== 1 || sy !== 1) {\n    emit('vector-effect', 'non-scaling-stroke');\n  }\n\n  emit('transform', transformItem(item));\n  emit('d', item.path);\n}\n\nfunction path(context, item) {\n  var path = item.path;\n  if (path == null) return true;\n  var x = item.x || 0,\n      y = item.y || 0,\n      sx = item.scaleX || 1,\n      sy = item.scaleY || 1,\n      a = (item.angle || 0) * DegToRad,\n      cache = item.pathCache;\n\n  if (!cache || cache.path !== path) {\n    (item.pathCache = cache = pathParse(path)).path = path;\n  }\n\n  if (a && context.rotate && context.translate) {\n    context.translate(x, y);\n    context.rotate(a);\n    pathRender(context, cache, 0, 0, sx, sy);\n    context.rotate(-a);\n    context.translate(-x, -y);\n  } else {\n    pathRender(context, cache, x, y, sx, sy);\n  }\n}\n\nfunction bound$2(bounds, item) {\n  return path(boundContext(bounds, item.angle), item) ? bounds.set(0, 0, 0, 0) : boundStroke(bounds, item, true);\n}\n\nvar path$1 = {\n  type: 'path',\n  tag: 'path',\n  nested: false,\n  attr: attr$2,\n  bound: bound$2,\n  draw: drawAll(path),\n  pick: pickPath(path),\n  isect: intersectPath(path)\n};\n\nfunction attr$3(emit, item) {\n  emit('d', rectangle(null, item));\n}\n\nfunction bound$3(bounds, item) {\n  var x, y;\n  return boundStroke(bounds.set(x = item.x || 0, y = item.y || 0, x + item.width || 0, y + item.height || 0), item);\n}\n\nfunction draw$2(context, item) {\n  context.beginPath();\n  rectangle(context, item);\n}\n\nvar rect = {\n  type: 'rect',\n  tag: 'path',\n  nested: false,\n  attr: attr$3,\n  bound: bound$3,\n  draw: drawAll(draw$2),\n  pick: pickPath(draw$2),\n  isect: intersectRect\n};\n\nfunction attr$4(emit, item) {\n  emit('transform', translateItem(item));\n  emit('x2', item.x2 != null ? item.x2 - (item.x || 0) : 0);\n  emit('y2', item.y2 != null ? item.y2 - (item.y || 0) : 0);\n}\n\nfunction bound$4(bounds, item) {\n  var x1, y1;\n  return boundStroke(bounds.set(x1 = item.x || 0, y1 = item.y || 0, item.x2 != null ? item.x2 : x1, item.y2 != null ? item.y2 : y1), item);\n}\n\nfunction path$2(context, item, opacity) {\n  var x1, y1, x2, y2;\n\n  if (item.stroke && stroke(context, item, opacity)) {\n    x1 = item.x || 0;\n    y1 = item.y || 0;\n    x2 = item.x2 != null ? item.x2 : x1;\n    y2 = item.y2 != null ? item.y2 : y1;\n    context.beginPath();\n    context.moveTo(x1, y1);\n    context.lineTo(x2, y2);\n    return true;\n  }\n\n  return false;\n}\n\nfunction draw$3(context, scene, bounds) {\n  visit(scene, item => {\n    if (bounds && !bounds.intersects(item.bounds)) return; // bounds check\n\n    var opacity = item.opacity == null ? 1 : item.opacity;\n\n    if (opacity && path$2(context, item, opacity)) {\n      blend(context, item);\n      context.stroke();\n    }\n  });\n}\n\nfunction hit(context, item, x, y) {\n  if (!context.isPointInStroke) return false;\n  return path$2(context, item, 1) && context.isPointInStroke(x, y);\n}\n\nvar rule = {\n  type: 'rule',\n  tag: 'line',\n  nested: false,\n  attr: attr$4,\n  bound: bound$4,\n  draw: draw$3,\n  pick: pick(hit),\n  isect: intersectRule\n};\n\nvar shape$1 = markItemPath('shape', shape);\n\nvar symbol$1 = markItemPath('symbol', symbol, intersectPoint);\n\nconst widthCache = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"lruCache\"])();\nvar textMetrics = {\n  height: fontSize,\n  measureWidth: measureWidth,\n  estimateWidth: estimateWidth,\n  width: estimateWidth,\n  canvas: useCanvas\n};\nuseCanvas(true);\n\nfunction useCanvas(use) {\n  textMetrics.width = use && context$1 ? measureWidth : estimateWidth;\n} // make dumb, simple estimate if no canvas is available\n\n\nfunction estimateWidth(item, text) {\n  return _estimateWidth(textValue(item, text), fontSize(item));\n}\n\nfunction _estimateWidth(text, currentFontHeight) {\n  return ~~(0.8 * text.length * currentFontHeight);\n} // measure text width if canvas is available\n\n\nfunction measureWidth(item, text) {\n  return fontSize(item) <= 0 || !(text = textValue(item, text)) ? 0 : _measureWidth(text, font(item));\n}\n\nfunction _measureWidth(text, currentFont) {\n  const key = \"(\".concat(currentFont, \") \").concat(text);\n  let width = widthCache.get(key);\n\n  if (width === undefined) {\n    context$1.font = currentFont;\n    width = context$1.measureText(text).width;\n    widthCache.set(key, width);\n  }\n\n  return width;\n}\n\nfunction fontSize(item) {\n  return item.fontSize != null ? +item.fontSize || 0 : 11;\n}\nfunction lineHeight(item) {\n  return item.lineHeight != null ? item.lineHeight : fontSize(item) + 2;\n}\n\nfunction lineArray(_) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_) ? _.length > 1 ? _ : _[0] : _;\n}\n\nfunction textLines(item) {\n  return lineArray(item.lineBreak && item.text && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(item.text) ? item.text.split(item.lineBreak) : item.text);\n}\nfunction multiLineOffset(item) {\n  const tl = textLines(item);\n  return (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(tl) ? tl.length - 1 : 0) * lineHeight(item);\n}\nfunction textValue(item, line) {\n  const text = line == null ? '' : (line + '').trim();\n  return item.limit > 0 && text.length ? truncate(item, text) : text;\n}\n\nfunction widthGetter(item) {\n  if (textMetrics.width === measureWidth) {\n    // we are using canvas\n    const currentFont = font(item);\n    return text => _measureWidth(text, currentFont);\n  } else {\n    // we are relying on estimates\n    const currentFontHeight = fontSize(item);\n    return text => _estimateWidth(text, currentFontHeight);\n  }\n}\n\nfunction truncate(item, text) {\n  var limit = +item.limit,\n      width = widthGetter(item);\n  if (width(text) < limit) return text;\n  var ellipsis = item.ellipsis || '\\u2026',\n      rtl = item.dir === 'rtl',\n      lo = 0,\n      hi = text.length,\n      mid;\n  limit -= width(ellipsis);\n\n  if (rtl) {\n    while (lo < hi) {\n      mid = lo + hi >>> 1;\n      if (width(text.slice(mid)) > limit) lo = mid + 1;else hi = mid;\n    }\n\n    return ellipsis + text.slice(lo);\n  } else {\n    while (lo < hi) {\n      mid = 1 + (lo + hi >>> 1);\n      if (width(text.slice(0, mid)) < limit) lo = mid;else hi = mid - 1;\n    }\n\n    return text.slice(0, lo) + ellipsis;\n  }\n}\n\nfunction fontFamily(item, quote) {\n  var font = item.font;\n  return (quote && font ? String(font).replace(/\"/g, '\\'') : font) || 'sans-serif';\n}\nfunction font(item, quote) {\n  return '' + (item.fontStyle ? item.fontStyle + ' ' : '') + (item.fontVariant ? item.fontVariant + ' ' : '') + (item.fontWeight ? item.fontWeight + ' ' : '') + fontSize(item) + 'px ' + fontFamily(item, quote);\n}\nfunction offset$1(item) {\n  // perform our own font baseline calculation\n  // why? not all browsers support SVG 1.1 'alignment-baseline' :(\n  // this also ensures consistent layout across renderers\n  var baseline = item.baseline,\n      h = fontSize(item);\n  return Math.round(baseline === 'top' ? 0.79 * h : baseline === 'middle' ? 0.30 * h : baseline === 'bottom' ? -0.21 * h : baseline === 'line-top' ? 0.29 * h + 0.5 * lineHeight(item) : baseline === 'line-bottom' ? 0.29 * h - 0.5 * lineHeight(item) : 0);\n}\n\nconst textAlign = {\n  'left': 'start',\n  'center': 'middle',\n  'right': 'end'\n};\nconst tempBounds = new Bounds();\n\nfunction anchorPoint(item) {\n  var x = item.x || 0,\n      y = item.y || 0,\n      r = item.radius || 0,\n      t;\n\n  if (r) {\n    t = (item.theta || 0) - HalfPi;\n    x += r * Math.cos(t);\n    y += r * Math.sin(t);\n  }\n\n  tempBounds.x1 = x;\n  tempBounds.y1 = y;\n  return tempBounds;\n}\n\nfunction attr$5(emit, item) {\n  var dx = item.dx || 0,\n      dy = (item.dy || 0) + offset$1(item),\n      p = anchorPoint(item),\n      x = p.x1,\n      y = p.y1,\n      a = item.angle || 0,\n      t;\n  emit('text-anchor', textAlign[item.align] || 'start');\n\n  if (a) {\n    t = translate(x, y) + ' ' + rotate(a);\n    if (dx || dy) t += ' ' + translate(dx, dy);\n  } else {\n    t = translate(x + dx, y + dy);\n  }\n\n  emit('transform', t);\n}\n\nfunction bound$5(bounds, item, mode) {\n  var h = textMetrics.height(item),\n      a = item.align,\n      p = anchorPoint(item),\n      x = p.x1,\n      y = p.y1,\n      dx = item.dx || 0,\n      dy = (item.dy || 0) + offset$1(item) - Math.round(0.8 * h),\n      // use 4/5 offset\n  tl = textLines(item),\n      w; // get dimensions\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(tl)) {\n    // multi-line text\n    h += lineHeight(item) * (tl.length - 1);\n    w = tl.reduce((w, t) => Math.max(w, textMetrics.width(item, t)), 0);\n  } else {\n    // single-line text\n    w = textMetrics.width(item, tl);\n  } // horizontal alignment\n\n\n  if (a === 'center') {\n    dx -= w / 2;\n  } else if (a === 'right') {\n    dx -= w;\n  } else ;\n\n  bounds.set(dx += x, dy += y, dx + w, dy + h);\n\n  if (item.angle && !mode) {\n    bounds.rotate(item.angle * DegToRad, x, y);\n  } else if (mode === 2) {\n    return bounds.rotatedPoints(item.angle * DegToRad, x, y);\n  }\n\n  return bounds;\n}\n\nfunction draw$4(context, scene, bounds) {\n  visit(scene, item => {\n    var opacity = item.opacity == null ? 1 : item.opacity,\n        p,\n        x,\n        y,\n        i,\n        lh,\n        tl,\n        str;\n    if (bounds && !bounds.intersects(item.bounds) || // bounds check\n    opacity === 0 || item.fontSize <= 0 || item.text == null || item.text.length === 0) return;\n    context.font = font(item);\n    context.textAlign = item.align || 'left';\n    p = anchorPoint(item);\n    x = p.x1, y = p.y1;\n\n    if (item.angle) {\n      context.save();\n      context.translate(x, y);\n      context.rotate(item.angle * DegToRad);\n      x = y = 0; // reset x, y\n    }\n\n    x += item.dx || 0;\n    y += (item.dy || 0) + offset$1(item);\n    tl = textLines(item);\n    blend(context, item);\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(tl)) {\n      lh = lineHeight(item);\n\n      for (i = 0; i < tl.length; ++i) {\n        str = textValue(item, tl[i]);\n\n        if (item.fill && fill(context, item, opacity)) {\n          context.fillText(str, x, y);\n        }\n\n        if (item.stroke && stroke(context, item, opacity)) {\n          context.strokeText(str, x, y);\n        }\n\n        y += lh;\n      }\n    } else {\n      str = textValue(item, tl);\n\n      if (item.fill && fill(context, item, opacity)) {\n        context.fillText(str, x, y);\n      }\n\n      if (item.stroke && stroke(context, item, opacity)) {\n        context.strokeText(str, x, y);\n      }\n    }\n\n    if (item.angle) context.restore();\n  });\n}\n\nfunction hit$1(context, item, x, y, gx, gy) {\n  if (item.fontSize <= 0) return false;\n  if (!item.angle) return true; // bounds sufficient if no rotation\n  // project point into space of unrotated bounds\n\n  var p = anchorPoint(item),\n      ax = p.x1,\n      ay = p.y1,\n      b = bound$5(tempBounds, item, 1),\n      a = -item.angle * DegToRad,\n      cos = Math.cos(a),\n      sin = Math.sin(a),\n      px = cos * gx - sin * gy + (ax - cos * ax + sin * ay),\n      py = sin * gx + cos * gy + (ay - sin * ax - cos * ay);\n  return b.contains(px, py);\n}\n\nfunction intersectText(item, box) {\n  const p = bound$5(tempBounds, item, 2);\n  return intersectBoxLine(box, p[0], p[1], p[2], p[3]) || intersectBoxLine(box, p[0], p[1], p[4], p[5]) || intersectBoxLine(box, p[4], p[5], p[6], p[7]) || intersectBoxLine(box, p[2], p[3], p[6], p[7]);\n}\n\nvar text = {\n  type: 'text',\n  tag: 'text',\n  nested: false,\n  attr: attr$5,\n  bound: bound$5,\n  draw: draw$4,\n  pick: pick(hit$1),\n  isect: intersectText\n};\n\nvar trail$1 = markMultiItemPath('trail', trail, pickTrail);\n\nvar Marks = {\n  arc: arc$1,\n  area: area$1,\n  group: group,\n  image: image,\n  line: line$1,\n  path: path$1,\n  rect: rect,\n  rule: rule,\n  shape: shape$1,\n  symbol: symbol$1,\n  text: text,\n  trail: trail$1\n};\n\nfunction boundItem (item, func, opt) {\n  var type = Marks[item.mark.marktype],\n      bound = func || type.bound;\n  if (type.nested) item = item.mark;\n  return bound(item.bounds || (item.bounds = new Bounds()), item, opt);\n}\n\nvar DUMMY = {\n  mark: null\n};\nfunction boundMark (mark, bounds, opt) {\n  var type = Marks[mark.marktype],\n      bound = type.bound,\n      items = mark.items,\n      hasItems = items && items.length,\n      i,\n      n,\n      item,\n      b;\n\n  if (type.nested) {\n    if (hasItems) {\n      item = items[0];\n    } else {\n      // no items, fake it\n      DUMMY.mark = mark;\n      item = DUMMY;\n    }\n\n    b = boundItem(item, bound, opt);\n    bounds = bounds && bounds.union(b) || b;\n    return bounds;\n  }\n\n  bounds = bounds || mark.bounds && mark.bounds.clear() || new Bounds();\n\n  if (hasItems) {\n    for (i = 0, n = items.length; i < n; ++i) {\n      bounds.union(boundItem(items[i], bound, opt));\n    }\n  }\n\n  return mark.bounds = bounds;\n}\n\nconst keys = ['marktype', 'name', 'role', 'interactive', 'clip', 'items', 'zindex', 'x', 'y', 'width', 'height', 'align', 'baseline', // layout\n'fill', 'fillOpacity', 'opacity', 'blend', // fill\n'stroke', 'strokeOpacity', 'strokeWidth', 'strokeCap', // stroke\n'strokeDash', 'strokeDashOffset', // stroke dash\n'strokeForeground', 'strokeOffset', // group\n'startAngle', 'endAngle', 'innerRadius', 'outerRadius', // arc\n'cornerRadius', 'padAngle', // arc, rect\n'cornerRadiusTopLeft', 'cornerRadiusTopRight', // rect, group\n'cornerRadiusBottomLeft', 'cornerRadiusBottomRight', 'interpolate', 'tension', 'orient', 'defined', // area, line\n'url', 'aspect', 'smooth', // image\n'path', 'scaleX', 'scaleY', // path\n'x2', 'y2', // rule\n'size', 'shape', // symbol\n'text', 'angle', 'theta', 'radius', 'dir', 'dx', 'dy', // text\n'ellipsis', 'limit', 'lineBreak', 'lineHeight', 'font', 'fontSize', 'fontWeight', 'fontStyle', 'fontVariant', // font\n'description', 'aria', 'ariaRole', 'ariaRoleDescription' // aria\n];\nfunction sceneToJSON(scene, indent) {\n  return JSON.stringify(scene, keys, indent);\n}\nfunction sceneFromJSON(json) {\n  const scene = typeof json === 'string' ? JSON.parse(json) : json;\n  return initialize(scene);\n}\n\nfunction initialize(scene) {\n  var type = scene.marktype,\n      items = scene.items,\n      parent,\n      i,\n      n;\n\n  if (items) {\n    for (i = 0, n = items.length; i < n; ++i) {\n      parent = type ? 'mark' : 'group';\n      items[i][parent] = scene;\n      if (items[i].zindex) items[i][parent].zdirty = true;\n      if ('group' === (type || parent)) initialize(items[i]);\n    }\n  }\n\n  if (type) boundMark(scene);\n  return scene;\n}\n\nfunction Scenegraph(scene) {\n  if (arguments.length) {\n    this.root = sceneFromJSON(scene);\n  } else {\n    this.root = createMark({\n      marktype: 'group',\n      name: 'root',\n      role: 'frame'\n    });\n    this.root.items = [new GroupItem(this.root)];\n  }\n}\nScenegraph.prototype = {\n  toJSON(indent) {\n    return sceneToJSON(this.root, indent || 0);\n  },\n\n  mark(markdef, group, index) {\n    group = group || this.root.items[0];\n    const mark = createMark(markdef, group);\n    group.items[index] = mark;\n    if (mark.zindex) mark.group.zdirty = true;\n    return mark;\n  }\n\n};\n\nfunction createMark(def, group) {\n  const mark = {\n    bounds: new Bounds(),\n    clip: !!def.clip,\n    group: group,\n    interactive: def.interactive === false ? false : true,\n    items: [],\n    marktype: def.marktype,\n    name: def.name || undefined,\n    role: def.role || undefined,\n    zindex: def.zindex || 0\n  }; // add accessibility properties if defined\n\n  if (def.aria != null) {\n    mark.aria = def.aria;\n  }\n\n  if (def.description) {\n    mark.description = def.description;\n  }\n\n  return mark;\n}\n\n// create a new DOM element\nfunction domCreate(doc, tag, ns) {\n  if (!doc && typeof document !== 'undefined' && document.createElement) {\n    doc = document;\n  }\n\n  return doc ? ns ? doc.createElementNS(ns, tag) : doc.createElement(tag) : null;\n} // find first child element with matching tag\n\nfunction domFind(el, tag) {\n  tag = tag.toLowerCase();\n  var nodes = el.childNodes,\n      i = 0,\n      n = nodes.length;\n\n  for (; i < n; ++i) if (nodes[i].tagName.toLowerCase() === tag) {\n    return nodes[i];\n  }\n} // retrieve child element at given index\n// create & insert if doesn't exist or if tags do not match\n\nfunction domChild(el, index, tag, ns) {\n  var a = el.childNodes[index],\n      b;\n\n  if (!a || a.tagName.toLowerCase() !== tag.toLowerCase()) {\n    b = a || null;\n    a = domCreate(el.ownerDocument, tag, ns);\n    el.insertBefore(a, b);\n  }\n\n  return a;\n} // remove all child elements at or above the given index\n\nfunction domClear(el, index) {\n  var nodes = el.childNodes,\n      curr = nodes.length;\n\n  while (curr > index) el.removeChild(nodes[--curr]);\n\n  return el;\n} // generate css class name for mark\n\nfunction cssClass(mark) {\n  return 'mark-' + mark.marktype + (mark.role ? ' role-' + mark.role : '') + (mark.name ? ' ' + mark.name : '');\n}\n\nfunction point (event, el) {\n  const rect = el.getBoundingClientRect();\n  return [event.clientX - rect.left - (el.clientLeft || 0), event.clientY - rect.top - (el.clientTop || 0)];\n}\n\nfunction resolveItem (item, event, el, origin) {\n  var mark = item && item.mark,\n      mdef,\n      p;\n\n  if (mark && (mdef = Marks[mark.marktype]).tip) {\n    p = point(event, el);\n    p[0] -= origin[0];\n    p[1] -= origin[1];\n\n    while (item = item.mark.group) {\n      p[0] -= item.x || 0;\n      p[1] -= item.y || 0;\n    }\n\n    item = mdef.tip(mark.items, p);\n  }\n\n  return item;\n}\n\n/**\n * Create a new Handler instance.\n * @param {object} [customLoader] - Optional loader instance for\n *   href URL sanitization. If not specified, a standard loader\n *   instance will be generated.\n * @param {function} [customTooltip] - Optional tooltip handler\n *   function for custom tooltip display.\n * @constructor\n */\n\nfunction Handler(customLoader, customTooltip) {\n  this._active = null;\n  this._handlers = {};\n  this._loader = customLoader || Object(vega_loader__WEBPACK_IMPORTED_MODULE_4__[\"loader\"])();\n  this._tooltip = customTooltip || defaultTooltip;\n} // The default tooltip display handler.\n// Sets the HTML title attribute on the visualization container.\n\nfunction defaultTooltip(handler, event, item, value) {\n  handler.element().setAttribute('title', value || '');\n}\n\nHandler.prototype = {\n  /**\n   * Initialize a new Handler instance.\n   * @param {DOMElement} el - The containing DOM element for the display.\n   * @param {Array<number>} origin - The origin of the display, in pixels.\n   *   The coordinate system will be translated to this point.\n   * @param {object} [obj] - Optional context object that should serve as\n   *   the \"this\" context for event callbacks.\n   * @return {Handler} - This handler instance.\n   */\n  initialize(el, origin, obj) {\n    this._el = el;\n    this._obj = obj || null;\n    return this.origin(origin);\n  },\n\n  /**\n   * Returns the parent container element for a visualization.\n   * @return {DOMElement} - The containing DOM element.\n   */\n  element() {\n    return this._el;\n  },\n\n  /**\n   * Returns the scene element (e.g., canvas or SVG) of the visualization\n   * Subclasses must override if the first child is not the scene element.\n   * @return {DOMElement} - The scene (e.g., canvas or SVG) element.\n   */\n  canvas() {\n    return this._el && this._el.firstChild;\n  },\n\n  /**\n   * Get / set the origin coordinates of the visualization.\n   */\n  origin(origin) {\n    if (arguments.length) {\n      this._origin = origin || [0, 0];\n      return this;\n    } else {\n      return this._origin.slice();\n    }\n  },\n\n  /**\n   * Get / set the scenegraph root.\n   */\n  scene(scene) {\n    if (!arguments.length) return this._scene;\n    this._scene = scene;\n    return this;\n  },\n\n  /**\n   * Add an event handler. Subclasses should override this method.\n   */\n  on()\n  /*type, handler*/\n  {},\n\n  /**\n   * Remove an event handler. Subclasses should override this method.\n   */\n  off()\n  /*type, handler*/\n  {},\n\n  /**\n   * Utility method for finding the array index of an event handler.\n   * @param {Array} h - An array of registered event handlers.\n   * @param {string} type - The event type.\n   * @param {function} handler - The event handler instance to find.\n   * @return {number} - The handler's array index or -1 if not registered.\n   */\n  _handlerIndex(h, type, handler) {\n    for (let i = h ? h.length : 0; --i >= 0;) {\n      if (h[i].type === type && (!handler || h[i].handler === handler)) {\n        return i;\n      }\n    }\n\n    return -1;\n  },\n\n  /**\n   * Returns an array with registered event handlers.\n   * @param {string} [type] - The event type to query. Any annotations\n   *   are ignored; for example, for the argument \"click.foo\", \".foo\" will\n   *   be ignored and the method returns all \"click\" handlers. If type is\n   *   null or unspecified, this method returns handlers for all types.\n   * @return {Array} - A new array containing all registered event handlers.\n   */\n  handlers(type) {\n    const h = this._handlers,\n          a = [];\n\n    if (type) {\n      a.push(...h[this.eventName(type)]);\n    } else {\n      for (const k in h) {\n        a.push(...h[k]);\n      }\n    }\n\n    return a;\n  },\n\n  /**\n   * Parses an event name string to return the specific event type.\n   * For example, given \"click.foo\" returns \"click\"\n   * @param {string} name - The input event type string.\n   * @return {string} - A string with the event type only.\n   */\n  eventName(name) {\n    const i = name.indexOf('.');\n    return i < 0 ? name : name.slice(0, i);\n  },\n\n  /**\n   * Handle hyperlink navigation in response to an item.href value.\n   * @param {Event} event - The event triggering hyperlink navigation.\n   * @param {Item} item - The scenegraph item.\n   * @param {string} href - The URL to navigate to.\n   */\n  handleHref(event, item, href) {\n    this._loader.sanitize(href, {\n      context: 'href'\n    }).then(opt => {\n      const e = new MouseEvent(event.type, event),\n            a = domCreate(null, 'a');\n\n      for (const name in opt) a.setAttribute(name, opt[name]);\n\n      a.dispatchEvent(e);\n    }).catch(() => {\n      /* do nothing */\n    });\n  },\n\n  /**\n   * Handle tooltip display in response to an item.tooltip value.\n   * @param {Event} event - The event triggering tooltip display.\n   * @param {Item} item - The scenegraph item.\n   * @param {boolean} show - A boolean flag indicating whether\n   *   to show or hide a tooltip for the given item.\n   */\n  handleTooltip(event, item, show) {\n    if (item && item.tooltip != null) {\n      item = resolveItem(item, event, this.canvas(), this._origin);\n      const value = show && item && item.tooltip || null;\n\n      this._tooltip.call(this._obj, this, event, item, value);\n    }\n  },\n\n  /**\n   * Returns the size of a scenegraph item and its position relative\n   * to the viewport.\n   * @param {Item} item - The scenegraph item.\n   * @return {object} - A bounding box object (compatible with the\n   *   DOMRect type) consisting of x, y, width, heigh, top, left,\n   *   right, and bottom properties.\n   */\n  getItemBoundingClientRect(item) {\n    const el = this.canvas();\n    if (!el) return;\n    const rect = el.getBoundingClientRect(),\n          origin = this._origin,\n          bounds = item.bounds,\n          width = bounds.width(),\n          height = bounds.height();\n    let x = bounds.x1 + origin[0] + rect.left,\n        y = bounds.y1 + origin[1] + rect.top; // translate coordinate for each parent group\n\n    while (item.mark && (item = item.mark.group)) {\n      x += item.x || 0;\n      y += item.y || 0;\n    } // return DOMRect-compatible bounding box\n\n\n    return {\n      x,\n      y,\n      width,\n      height,\n      left: x,\n      top: y,\n      right: x + width,\n      bottom: y + height\n    };\n  }\n\n};\n\n/**\n * Create a new Renderer instance.\n * @param {object} [loader] - Optional loader instance for\n *   image and href URL sanitization. If not specified, a\n *   standard loader instance will be generated.\n * @constructor\n */\n\nfunction Renderer(loader) {\n  this._el = null;\n  this._bgcolor = null;\n  this._loader = new ResourceLoader(loader);\n}\nRenderer.prototype = {\n  /**\n   * Initialize a new Renderer instance.\n   * @param {DOMElement} el - The containing DOM element for the display.\n   * @param {number} width - The coordinate width of the display, in pixels.\n   * @param {number} height - The coordinate height of the display, in pixels.\n   * @param {Array<number>} origin - The origin of the display, in pixels.\n   *   The coordinate system will be translated to this point.\n   * @param {number} [scaleFactor=1] - Optional scaleFactor by which to multiply\n   *   the width and height to determine the final pixel size.\n   * @return {Renderer} - This renderer instance.\n   */\n  initialize(el, width, height, origin, scaleFactor) {\n    this._el = el;\n    return this.resize(width, height, origin, scaleFactor);\n  },\n\n  /**\n   * Returns the parent container element for a visualization.\n   * @return {DOMElement} - The containing DOM element.\n   */\n  element() {\n    return this._el;\n  },\n\n  /**\n   * Returns the scene element (e.g., canvas or SVG) of the visualization\n   * Subclasses must override if the first child is not the scene element.\n   * @return {DOMElement} - The scene (e.g., canvas or SVG) element.\n   */\n  canvas() {\n    return this._el && this._el.firstChild;\n  },\n\n  /**\n   * Get / set the background color.\n   */\n  background(bgcolor) {\n    if (arguments.length === 0) return this._bgcolor;\n    this._bgcolor = bgcolor;\n    return this;\n  },\n\n  /**\n   * Resize the display.\n   * @param {number} width - The new coordinate width of the display, in pixels.\n   * @param {number} height - The new coordinate height of the display, in pixels.\n   * @param {Array<number>} origin - The new origin of the display, in pixels.\n   *   The coordinate system will be translated to this point.\n   * @param {number} [scaleFactor=1] - Optional scaleFactor by which to multiply\n   *   the width and height to determine the final pixel size.\n   * @return {Renderer} - This renderer instance;\n   */\n  resize(width, height, origin, scaleFactor) {\n    this._width = width;\n    this._height = height;\n    this._origin = origin || [0, 0];\n    this._scale = scaleFactor || 1;\n    return this;\n  },\n\n  /**\n   * Report a dirty item whose bounds should be redrawn.\n   * This base class method does nothing. Subclasses that perform\n   * incremental should implement this method.\n   * @param {Item} item - The dirty item whose bounds should be redrawn.\n   */\n  dirty()\n  /*item*/\n  {},\n\n  /**\n   * Render an input scenegraph, potentially with a set of dirty items.\n   * This method will perform an immediate rendering with available resources.\n   * The renderer may also need to perform image loading to perform a complete\n   * render. This process can lead to asynchronous re-rendering of the scene\n   * after this method returns. To receive notification when rendering is\n   * complete, use the renderAsync method instead.\n   * @param {object} scene - The root mark of a scenegraph to render.\n   * @return {Renderer} - This renderer instance.\n   */\n  render(scene) {\n    const r = this; // bind arguments into a render call, and cache it\n    // this function may be subsequently called for async redraw\n\n    r._call = function () {\n      r._render(scene);\n    }; // invoke the renderer\n\n\n    r._call(); // clear the cached call for garbage collection\n    // async redraws will stash their own copy\n\n\n    r._call = null;\n    return r;\n  },\n\n  /**\n   * Internal rendering method. Renderer subclasses should override this\n   * method to actually perform rendering.\n   * @param {object} scene - The root mark of a scenegraph to render.\n   */\n  _render()\n  /*scene*/\n  {// subclasses to override\n  },\n\n  /**\n   * Asynchronous rendering method. Similar to render, but returns a Promise\n   * that resolves when all rendering is completed. Sometimes a renderer must\n   * perform image loading to get a complete rendering. The returned\n   * Promise will not resolve until this process completes.\n   * @param {object} scene - The root mark of a scenegraph to render.\n   * @return {Promise} - A Promise that resolves when rendering is complete.\n   */\n  renderAsync(scene) {\n    const r = this.render(scene);\n    return this._ready ? this._ready.then(() => r) : Promise.resolve(r);\n  },\n\n  /**\n   * Internal method for asynchronous resource loading.\n   * Proxies method calls to the ImageLoader, and tracks loading\n   * progress to invoke a re-render once complete.\n   * @param {string} method - The method name to invoke on the ImageLoader.\n   * @param {string} uri - The URI for the requested resource.\n   * @return {Promise} - A Promise that resolves to the requested resource.\n   */\n  _load(method, uri) {\n    var r = this,\n        p = r._loader[method](uri);\n\n    if (!r._ready) {\n      // re-render the scene when loading completes\n      const call = r._call;\n      r._ready = r._loader.ready().then(redraw => {\n        if (redraw) call();\n        r._ready = null;\n      });\n    }\n\n    return p;\n  },\n\n  /**\n   * Sanitize a URL to include as a hyperlink in the rendered scene.\n   * This method proxies a call to ImageLoader.sanitizeURL, but also tracks\n   * image loading progress and invokes a re-render once complete.\n   * @param {string} uri - The URI string to sanitize.\n   * @return {Promise} - A Promise that resolves to the sanitized URL.\n   */\n  sanitizeURL(uri) {\n    return this._load('sanitizeURL', uri);\n  },\n\n  /**\n   * Requests an image to include in the rendered scene.\n   * This method proxies a call to ImageLoader.loadImage, but also tracks\n   * image loading progress and invokes a re-render once complete.\n   * @param {string} uri - The URI string of the image.\n   * @return {Promise} - A Promise that resolves to the loaded Image.\n   */\n  loadImage(uri) {\n    return this._load('loadImage', uri);\n  }\n\n};\n\nconst KeyDownEvent = 'keydown';\nconst KeyPressEvent = 'keypress';\nconst KeyUpEvent = 'keyup';\nconst DragEnterEvent = 'dragenter';\nconst DragLeaveEvent = 'dragleave';\nconst DragOverEvent = 'dragover';\nconst MouseDownEvent = 'mousedown';\nconst MouseUpEvent = 'mouseup';\nconst MouseMoveEvent = 'mousemove';\nconst MouseOutEvent = 'mouseout';\nconst MouseOverEvent = 'mouseover';\nconst ClickEvent = 'click';\nconst DoubleClickEvent = 'dblclick';\nconst WheelEvent = 'wheel';\nconst MouseWheelEvent = 'mousewheel';\nconst TouchStartEvent = 'touchstart';\nconst TouchMoveEvent = 'touchmove';\nconst TouchEndEvent = 'touchend';\nconst Events = [KeyDownEvent, KeyPressEvent, KeyUpEvent, DragEnterEvent, DragLeaveEvent, DragOverEvent, MouseDownEvent, MouseUpEvent, MouseMoveEvent, MouseOutEvent, MouseOverEvent, ClickEvent, DoubleClickEvent, WheelEvent, MouseWheelEvent, TouchStartEvent, TouchMoveEvent, TouchEndEvent];\nconst TooltipShowEvent = MouseMoveEvent;\nconst TooltipHideEvent = MouseOutEvent;\nconst HrefEvent = ClickEvent;\n\nfunction CanvasHandler(loader, tooltip) {\n  Handler.call(this, loader, tooltip);\n  this._down = null;\n  this._touch = null;\n  this._first = true;\n  this._events = {};\n}\n\nconst eventBundle = type => type === TouchStartEvent || type === TouchMoveEvent || type === TouchEndEvent ? [TouchStartEvent, TouchMoveEvent, TouchEndEvent] : [type]; // lazily add listeners to the canvas as needed\n\n\nfunction eventListenerCheck(handler, type) {\n  eventBundle(type).forEach(_ => addEventListener(handler, _));\n}\n\nfunction addEventListener(handler, type) {\n  const canvas = handler.canvas();\n\n  if (canvas && !handler._events[type]) {\n    handler._events[type] = 1;\n    canvas.addEventListener(type, handler[type] ? evt => handler[type](evt) : evt => handler.fire(type, evt));\n  }\n}\n\nfunction move(moveEvent, overEvent, outEvent) {\n  return function (evt) {\n    const a = this._active,\n          p = this.pickEvent(evt);\n\n    if (p === a) {\n      // active item and picked item are the same\n      this.fire(moveEvent, evt); // fire move\n    } else {\n      // active item and picked item are different\n      if (!a || !a.exit) {\n        // fire out for prior active item\n        // suppress if active item was removed from scene\n        this.fire(outEvent, evt);\n      }\n\n      this._active = p; // set new active item\n\n      this.fire(overEvent, evt); // fire over for new active item\n\n      this.fire(moveEvent, evt); // fire move for new active item\n    }\n  };\n}\n\nfunction inactive(type) {\n  return function (evt) {\n    this.fire(type, evt);\n    this._active = null;\n  };\n}\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(CanvasHandler, Handler, {\n  initialize(el, origin, obj) {\n    this._canvas = el && domFind(el, 'canvas'); // add minimal events required for proper state management\n\n    [ClickEvent, MouseDownEvent, MouseMoveEvent, MouseOutEvent, DragLeaveEvent].forEach(type => eventListenerCheck(this, type));\n    return Handler.prototype.initialize.call(this, el, origin, obj);\n  },\n\n  // return the backing canvas instance\n  canvas() {\n    return this._canvas;\n  },\n\n  // retrieve the current canvas context\n  context() {\n    return this._canvas.getContext('2d');\n  },\n\n  // supported events\n  events: Events,\n\n  // to keep old versions of firefox happy\n  DOMMouseScroll(evt) {\n    this.fire(MouseWheelEvent, evt);\n  },\n\n  mousemove: move(MouseMoveEvent, MouseOverEvent, MouseOutEvent),\n  dragover: move(DragOverEvent, DragEnterEvent, DragLeaveEvent),\n  mouseout: inactive(MouseOutEvent),\n  dragleave: inactive(DragLeaveEvent),\n\n  mousedown(evt) {\n    this._down = this._active;\n    this.fire(MouseDownEvent, evt);\n  },\n\n  click(evt) {\n    if (this._down === this._active) {\n      this.fire(ClickEvent, evt);\n      this._down = null;\n    }\n  },\n\n  touchstart(evt) {\n    this._touch = this.pickEvent(evt.changedTouches[0]);\n\n    if (this._first) {\n      this._active = this._touch;\n      this._first = false;\n    }\n\n    this.fire(TouchStartEvent, evt, true);\n  },\n\n  touchmove(evt) {\n    this.fire(TouchMoveEvent, evt, true);\n  },\n\n  touchend(evt) {\n    this.fire(TouchEndEvent, evt, true);\n    this._touch = null;\n  },\n\n  // fire an event\n  fire(type, evt, touch) {\n    const a = touch ? this._touch : this._active,\n          h = this._handlers[type]; // set event type relative to scenegraph items\n\n    evt.vegaType = type; // handle hyperlinks and tooltips first\n\n    if (type === HrefEvent && a && a.href) {\n      this.handleHref(evt, a, a.href);\n    } else if (type === TooltipShowEvent || type === TooltipHideEvent) {\n      this.handleTooltip(evt, a, type !== TooltipHideEvent);\n    } // invoke all registered handlers\n\n\n    if (h) {\n      for (let i = 0, len = h.length; i < len; ++i) {\n        h[i].handler.call(this._obj, evt, a);\n      }\n    }\n  },\n\n  // add an event handler\n  on(type, handler) {\n    const name = this.eventName(type),\n          h = this._handlers,\n          i = this._handlerIndex(h[name], type, handler);\n\n    if (i < 0) {\n      eventListenerCheck(this, type);\n      (h[name] || (h[name] = [])).push({\n        type: type,\n        handler: handler\n      });\n    }\n\n    return this;\n  },\n\n  // remove an event handler\n  off(type, handler) {\n    const name = this.eventName(type),\n          h = this._handlers[name],\n          i = this._handlerIndex(h, type, handler);\n\n    if (i >= 0) {\n      h.splice(i, 1);\n    }\n\n    return this;\n  },\n\n  pickEvent(evt) {\n    const p = point(evt, this._canvas),\n          o = this._origin;\n    return this.pick(this._scene, p[0], p[1], p[0] - o[0], p[1] - o[1]);\n  },\n\n  // find the scenegraph item at the current mouse position\n  // x, y -- the absolute x, y mouse coordinates on the canvas element\n  // gx, gy -- the relative coordinates within the current group\n  pick(scene, x, y, gx, gy) {\n    const g = this.context(),\n          mark = Marks[scene.marktype];\n    return mark.pick.call(this, g, scene, x, y, gx, gy);\n  }\n\n});\n\nfunction devicePixelRatio() {\n  return typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1;\n}\n\nvar pixelRatio = devicePixelRatio();\nfunction resize (canvas, width, height, origin, scaleFactor, opt) {\n  const inDOM = typeof HTMLElement !== 'undefined' && canvas instanceof HTMLElement && canvas.parentNode != null,\n        context = canvas.getContext('2d'),\n        ratio = inDOM ? pixelRatio : scaleFactor;\n  canvas.width = width * ratio;\n  canvas.height = height * ratio;\n\n  for (const key in opt) {\n    context[key] = opt[key];\n  }\n\n  if (inDOM && ratio !== 1) {\n    canvas.style.width = width + 'px';\n    canvas.style.height = height + 'px';\n  }\n\n  context.pixelRatio = ratio;\n  context.setTransform(ratio, 0, 0, ratio, ratio * origin[0], ratio * origin[1]);\n  return canvas;\n}\n\nfunction CanvasRenderer(loader) {\n  Renderer.call(this, loader);\n  this._options = {};\n  this._redraw = false;\n  this._dirty = new Bounds();\n  this._tempb = new Bounds();\n}\nconst base = Renderer.prototype;\n\nconst viewBounds = (origin, width, height) => new Bounds().set(0, 0, width, height).translate(-origin[0], -origin[1]);\n\nfunction clipToBounds(g, b, origin) {\n  // expand bounds by 1 pixel, then round to pixel boundaries\n  b.expand(1).round(); // align to base pixel grid in case of non-integer scaling (#2425)\n\n  if (g.pixelRatio % 1) {\n    b.scale(g.pixelRatio).round().scale(1 / g.pixelRatio);\n  } // to avoid artifacts translate if origin has fractional pixels\n\n\n  b.translate(-(origin[0] % 1), -(origin[1] % 1)); // set clip path\n\n  g.beginPath();\n  g.rect(b.x1, b.y1, b.width(), b.height());\n  g.clip();\n  return b;\n}\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(CanvasRenderer, Renderer, {\n  initialize(el, width, height, origin, scaleFactor, options) {\n    this._options = options || {};\n    this._canvas = this._options.externalContext ? null : Object(vega_canvas__WEBPACK_IMPORTED_MODULE_3__[\"canvas\"])(1, 1, this._options.type); // instantiate a small canvas\n\n    if (el && this._canvas) {\n      domClear(el, 0).appendChild(this._canvas);\n\n      this._canvas.setAttribute('class', 'marks');\n    } // this method will invoke resize to size the canvas appropriately\n\n\n    return base.initialize.call(this, el, width, height, origin, scaleFactor);\n  },\n\n  resize(width, height, origin, scaleFactor) {\n    base.resize.call(this, width, height, origin, scaleFactor);\n\n    if (this._canvas) {\n      // configure canvas size and transform\n      resize(this._canvas, this._width, this._height, this._origin, this._scale, this._options.context);\n    } else {\n      // external context needs to be scaled and positioned to origin\n      const ctx = this._options.externalContext;\n      if (!ctx) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('CanvasRenderer is missing a valid canvas or context');\n      ctx.scale(this._scale, this._scale);\n      ctx.translate(this._origin[0], this._origin[1]);\n    }\n\n    this._redraw = true;\n    return this;\n  },\n\n  canvas() {\n    return this._canvas;\n  },\n\n  context() {\n    return this._options.externalContext || (this._canvas ? this._canvas.getContext('2d') : null);\n  },\n\n  dirty(item) {\n    const b = this._tempb.clear().union(item.bounds);\n\n    let g = item.mark.group;\n\n    while (g) {\n      b.translate(g.x || 0, g.y || 0);\n      g = g.mark.group;\n    }\n\n    this._dirty.union(b);\n  },\n\n  _render(scene) {\n    const g = this.context(),\n          o = this._origin,\n          w = this._width,\n          h = this._height,\n          db = this._dirty,\n          vb = viewBounds(o, w, h); // setup\n\n    g.save();\n    const b = this._redraw || db.empty() ? (this._redraw = false, vb.expand(1)) : clipToBounds(g, vb.intersect(db), o);\n    this.clear(-o[0], -o[1], w, h); // render\n\n    this.draw(g, scene, b); // takedown\n\n    g.restore();\n    db.clear();\n    return this;\n  },\n\n  draw(ctx, scene, bounds) {\n    const mark = Marks[scene.marktype];\n    if (scene.clip) clip$1(ctx, scene);\n    mark.draw.call(this, ctx, scene, bounds);\n    if (scene.clip) ctx.restore();\n  },\n\n  clear(x, y, w, h) {\n    const opt = this._options,\n          g = this.context();\n\n    if (opt.type !== 'pdf' && !opt.externalContext) {\n      // calling clear rect voids vector output in pdf mode\n      // and could remove external context content (#2615)\n      g.clearRect(x, y, w, h);\n    }\n\n    if (this._bgcolor != null) {\n      g.fillStyle = this._bgcolor;\n      g.fillRect(x, y, w, h);\n    }\n  }\n\n});\n\nfunction SVGHandler(loader, tooltip) {\n  Handler.call(this, loader, tooltip);\n  const h = this;\n  h._hrefHandler = listener(h, (evt, item) => {\n    if (item && item.href) h.handleHref(evt, item, item.href);\n  });\n  h._tooltipHandler = listener(h, (evt, item) => {\n    h.handleTooltip(evt, item, evt.type !== TooltipHideEvent);\n  });\n} // wrap an event listener for the SVG DOM\n\nconst listener = (context, handler) => evt => {\n  let item = evt.target.__data__;\n  item = Array.isArray(item) ? item[0] : item;\n  evt.vegaType = evt.type;\n  handler.call(context._obj, evt, item);\n};\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(SVGHandler, Handler, {\n  initialize(el, origin, obj) {\n    let svg = this._svg;\n\n    if (svg) {\n      svg.removeEventListener(HrefEvent, this._hrefHandler);\n      svg.removeEventListener(TooltipShowEvent, this._tooltipHandler);\n      svg.removeEventListener(TooltipHideEvent, this._tooltipHandler);\n    }\n\n    this._svg = svg = el && domFind(el, 'svg');\n\n    if (svg) {\n      svg.addEventListener(HrefEvent, this._hrefHandler);\n      svg.addEventListener(TooltipShowEvent, this._tooltipHandler);\n      svg.addEventListener(TooltipHideEvent, this._tooltipHandler);\n    }\n\n    return Handler.prototype.initialize.call(this, el, origin, obj);\n  },\n\n  canvas() {\n    return this._svg;\n  },\n\n  // add an event handler\n  on(type, handler) {\n    const name = this.eventName(type),\n          h = this._handlers,\n          i = this._handlerIndex(h[name], type, handler);\n\n    if (i < 0) {\n      const x = {\n        type,\n        handler,\n        listener: listener(this, handler)\n      };\n      (h[name] || (h[name] = [])).push(x);\n\n      if (this._svg) {\n        this._svg.addEventListener(name, x.listener);\n      }\n    }\n\n    return this;\n  },\n\n  // remove an event handler\n  off(type, handler) {\n    const name = this.eventName(type),\n          h = this._handlers[name],\n          i = this._handlerIndex(h, type, handler);\n\n    if (i >= 0) {\n      if (this._svg) {\n        this._svg.removeEventListener(name, h[i].listener);\n      }\n\n      h.splice(i, 1);\n    }\n\n    return this;\n  }\n\n});\n\nconst ARIA_HIDDEN = 'aria-hidden';\nconst ARIA_LABEL = 'aria-label';\nconst ARIA_ROLE = 'role';\nconst ARIA_ROLEDESCRIPTION = 'aria-roledescription';\nconst GRAPHICS_OBJECT = 'graphics-object';\nconst GRAPHICS_SYMBOL = 'graphics-symbol';\n\nconst bundle = (role, roledesc, label) => ({\n  [ARIA_ROLE]: role,\n  [ARIA_ROLEDESCRIPTION]: roledesc,\n  [ARIA_LABEL]: label || undefined\n}); // these roles are covered by related roles\n// we can ignore them, no need to generate attributes\n\n\nconst AriaIgnore = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(['axis-domain', 'axis-grid', 'axis-label', 'axis-tick', 'axis-title', 'legend-band', 'legend-entry', 'legend-gradient', 'legend-label', 'legend-title', 'legend-symbol', 'title']); // aria attribute generators for guide roles\n\nconst AriaGuides = {\n  'axis': {\n    desc: 'axis',\n    caption: axisCaption\n  },\n  'legend': {\n    desc: 'legend',\n    caption: legendCaption\n  },\n  'title-text': {\n    desc: 'title',\n    caption: item => \"Title text '\".concat(titleCaption(item), \"'\")\n  },\n  'title-subtitle': {\n    desc: 'subtitle',\n    caption: item => \"Subtitle text '\".concat(titleCaption(item), \"'\")\n  }\n}; // aria properties generated for mark item encoding channels\n\nconst AriaEncode = {\n  ariaRole: ARIA_ROLE,\n  ariaRoleDescription: ARIA_ROLEDESCRIPTION,\n  description: ARIA_LABEL\n};\nfunction ariaItemAttributes(emit, item) {\n  const hide = item.aria === false;\n  emit(ARIA_HIDDEN, hide || undefined);\n\n  if (hide || item.description == null) {\n    for (const prop in AriaEncode) {\n      emit(AriaEncode[prop], undefined);\n    }\n  } else {\n    const type = item.mark.marktype;\n    emit(ARIA_LABEL, item.description);\n    emit(ARIA_ROLE, item.ariaRole || (type === 'group' ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL));\n    emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || \"\".concat(type, \" mark\"));\n  }\n}\nfunction ariaMarkAttributes(mark) {\n  return mark.aria === false ? {\n    [ARIA_HIDDEN]: true\n  } : AriaIgnore[mark.role] ? null : AriaGuides[mark.role] ? ariaGuide(mark, AriaGuides[mark.role]) : ariaMark(mark);\n}\n\nfunction ariaMark(mark) {\n  const type = mark.marktype;\n  const recurse = type === 'group' || type === 'text' || mark.items.some(_ => _.description != null && _.aria !== false);\n  return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, \"\".concat(type, \" mark container\"), mark.description);\n}\n\nfunction ariaGuide(mark, opt) {\n  try {\n    const item = mark.items[0],\n          caption = opt.caption || (() => '');\n\n    return bundle(opt.role || GRAPHICS_SYMBOL, opt.desc, item.description || caption(item));\n  } catch (err) {\n    return null;\n  }\n}\n\nfunction titleCaption(item) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(item.text).join(' ');\n}\n\nfunction axisCaption(item) {\n  const datum = item.datum,\n        orient = item.orient,\n        title = datum.title ? extractTitle(item) : null,\n        ctx = item.context,\n        scale = ctx.scales[datum.scale].value,\n        locale = ctx.dataflow.locale(),\n        type = scale.type,\n        xy = orient === 'left' || orient === 'right' ? 'Y' : 'X';\n  return \"\".concat(xy, \"-axis\") + (title ? \" titled '\".concat(title, \"'\") : '') + \" for a \".concat(Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"isDiscrete\"])(type) ? 'discrete' : type, \" scale\") + \" with \".concat(Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"domainCaption\"])(locale, scale, item));\n}\n\nfunction legendCaption(item) {\n  const datum = item.datum,\n        title = datum.title ? extractTitle(item) : null,\n        type = \"\".concat(datum.type || '', \" legend\").trim(),\n        scales = datum.scales,\n        props = Object.keys(scales),\n        ctx = item.context,\n        scale = ctx.scales[scales[props[0]]].value,\n        locale = ctx.dataflow.locale();\n  return capitalize(type) + (title ? \" titled '\".concat(title, \"'\") : '') + \" for \".concat(channelCaption(props)) + \" with \".concat(Object(vega_scale__WEBPACK_IMPORTED_MODULE_5__[\"domainCaption\"])(locale, scale, item));\n}\n\nfunction extractTitle(item) {\n  try {\n    return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(item.items).items[0].text).join(' ');\n  } catch (err) {\n    return null;\n  }\n}\n\nfunction channelCaption(props) {\n  props = props.map(p => p + (p === 'fill' || p === 'stroke' ? ' color' : ''));\n  return props.length < 2 ? props[0] : props.slice(0, -1).join(', ') + ' and ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(props);\n}\n\nfunction capitalize(s) {\n  return s.length ? s[0].toUpperCase() + s.slice(1) : s;\n}\n\nconst innerText = val => (val + '').replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\nconst attrText = val => innerText(val).replace(/\"/g, '&quot;').replace(/\\t/g, '&#x9;').replace(/\\n/g, '&#xA;').replace(/\\r/g, '&#xD;');\n\nfunction markup() {\n  let buf = '',\n      outer = '',\n      inner = '';\n\n  const stack = [],\n        clear = () => outer = inner = '',\n        push = tag => {\n    if (outer) {\n      buf += \"\".concat(outer, \">\").concat(inner);\n      clear();\n    }\n\n    stack.push(tag);\n  },\n        attr = (name, value) => {\n    if (value != null) outer += \" \".concat(name, \"=\\\"\").concat(attrText(value), \"\\\"\");\n    return m;\n  },\n        m = {\n    open(tag, ...attrs) {\n      push(tag);\n      outer = '<' + tag;\n\n      for (const set of attrs) {\n        for (const key in set) attr(key, set[key]);\n      }\n\n      return m;\n    },\n\n    close() {\n      const tag = stack.pop();\n\n      if (outer) {\n        buf += outer + (inner ? \">\".concat(inner, \"</\").concat(tag, \">\") : '/>');\n      } else {\n        buf += \"</\".concat(tag, \">\");\n      }\n\n      clear();\n      return m;\n    },\n\n    attr,\n    text: t => (inner += innerText(t), m),\n    toString: () => buf\n  };\n\n  return m;\n}\nconst serializeXML = node => _serialize(markup(), node) + '';\n\nfunction _serialize(m, node) {\n  m.open(node.tagName);\n\n  if (node.hasAttributes()) {\n    const attrs = node.attributes,\n          n = attrs.length;\n\n    for (let i = 0; i < n; ++i) {\n      m.attr(attrs[i].name, attrs[i].value);\n    }\n  }\n\n  if (node.hasChildNodes()) {\n    const children = node.childNodes,\n          n = children.length;\n\n    for (let i = 0; i < n; i++) {\n      const child = children[i];\n      child.nodeType === 3 // text node\n      ? m.text(child.nodeValue) : _serialize(m, child);\n    }\n  }\n\n  return m.close();\n}\n\nconst styles = {\n  fill: 'fill',\n  fillOpacity: 'fill-opacity',\n  stroke: 'stroke',\n  strokeOpacity: 'stroke-opacity',\n  strokeWidth: 'stroke-width',\n  strokeCap: 'stroke-linecap',\n  strokeJoin: 'stroke-linejoin',\n  strokeDash: 'stroke-dasharray',\n  strokeDashOffset: 'stroke-dashoffset',\n  strokeMiterLimit: 'stroke-miterlimit',\n  opacity: 'opacity',\n  blend: 'mix-blend-mode'\n}; // ensure miter limit default is consistent with canvas (#2498)\n\nconst rootAttributes = {\n  'fill': 'none',\n  'stroke-miterlimit': 10\n};\n\nconst RootIndex = 0,\n      ns = metadata.xmlns;\nfunction SVGRenderer(loader) {\n  Renderer.call(this, loader);\n  this._dirtyID = 0;\n  this._dirty = [];\n  this._svg = null;\n  this._root = null;\n  this._defs = null;\n}\nconst base$1 = Renderer.prototype;\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(SVGRenderer, Renderer, {\n  /**\n   * Initialize a new SVGRenderer instance.\n   * @param {DOMElement} el - The containing DOM element for the display.\n   * @param {number} width - The coordinate width of the display, in pixels.\n   * @param {number} height - The coordinate height of the display, in pixels.\n   * @param {Array<number>} origin - The origin of the display, in pixels.\n   *   The coordinate system will be translated to this point.\n   * @param {number} [scaleFactor=1] - Optional scaleFactor by which to multiply\n   *   the width and height to determine the final pixel size.\n   * @return {SVGRenderer} - This renderer instance.\n   */\n  initialize(el, width, height, origin, scaleFactor) {\n    // create the svg definitions cache\n    this._defs = {};\n\n    this._clearDefs();\n\n    if (el) {\n      this._svg = domChild(el, 0, 'svg', ns);\n      setAttributes(this._svg, metadata);\n\n      this._svg.setAttribute('class', 'marks');\n\n      domClear(el, 1); // set the svg root group\n\n      this._root = domChild(this._svg, RootIndex, 'g', ns);\n      setAttributes(this._root, rootAttributes); // ensure no additional child elements\n\n      domClear(this._svg, RootIndex + 1);\n    } // set background color if defined\n\n\n    this.background(this._bgcolor);\n    return base$1.initialize.call(this, el, width, height, origin, scaleFactor);\n  },\n\n  /**\n   * Get / set the background color.\n   */\n  background(bgcolor) {\n    if (arguments.length && this._svg) {\n      this._svg.style.setProperty('background-color', bgcolor);\n    }\n\n    return base$1.background.apply(this, arguments);\n  },\n\n  /**\n   * Resize the display.\n   * @param {number} width - The new coordinate width of the display, in pixels.\n   * @param {number} height - The new coordinate height of the display, in pixels.\n   * @param {Array<number>} origin - The new origin of the display, in pixels.\n   *   The coordinate system will be translated to this point.\n   * @param {number} [scaleFactor=1] - Optional scaleFactor by which to multiply\n   *   the width and height to determine the final pixel size.\n   * @return {SVGRenderer} - This renderer instance;\n   */\n  resize(width, height, origin, scaleFactor) {\n    base$1.resize.call(this, width, height, origin, scaleFactor);\n\n    if (this._svg) {\n      setAttributes(this._svg, {\n        width: this._width * this._scale,\n        height: this._height * this._scale,\n        viewBox: \"0 0 \".concat(this._width, \" \").concat(this._height)\n      });\n\n      this._root.setAttribute('transform', \"translate(\".concat(this._origin, \")\"));\n    }\n\n    this._dirty = [];\n    return this;\n  },\n\n  /**\n   * Returns the SVG element of the visualization.\n   * @return {DOMElement} - The SVG element.\n   */\n  canvas() {\n    return this._svg;\n  },\n\n  /**\n   * Returns an SVG text string for the rendered content,\n   * or null if this renderer is currently headless.\n   */\n  svg() {\n    const svg = this._svg,\n          bg = this._bgcolor;\n    if (!svg) return null;\n    let node;\n\n    if (bg) {\n      svg.removeAttribute('style');\n      node = domChild(svg, RootIndex, 'rect', ns);\n      setAttributes(node, {\n        width: this._width,\n        height: this._height,\n        fill: bg\n      });\n    }\n\n    const text = serializeXML(svg);\n\n    if (bg) {\n      svg.removeChild(node);\n\n      this._svg.style.setProperty('background-color', bg);\n    }\n\n    return text;\n  },\n\n  /**\n   * Internal rendering method.\n   * @param {object} scene - The root mark of a scenegraph to render.\n   */\n  _render(scene) {\n    // perform spot updates and re-render markup\n    if (this._dirtyCheck()) {\n      if (this._dirtyAll) this._clearDefs();\n      this.mark(this._root, scene);\n      domClear(this._root, 1);\n    }\n\n    this.defs();\n    this._dirty = [];\n    ++this._dirtyID;\n    return this;\n  },\n\n  // -- Manage rendering of items marked as dirty --\n\n  /**\n   * Flag a mark item as dirty.\n   * @param {Item} item - The mark item.\n   */\n  dirty(item) {\n    if (item.dirty !== this._dirtyID) {\n      item.dirty = this._dirtyID;\n\n      this._dirty.push(item);\n    }\n  },\n\n  /**\n   * Check if a mark item is considered dirty.\n   * @param {Item} item - The mark item.\n   */\n  isDirty(item) {\n    return this._dirtyAll || !item._svg || item.dirty === this._dirtyID;\n  },\n\n  /**\n   * Internal method to check dirty status and, if possible,\n   * make targetted updates without a full rendering pass.\n   */\n  _dirtyCheck() {\n    this._dirtyAll = true;\n    const items = this._dirty;\n    if (!items.length || !this._dirtyID) return true;\n    const id = ++this._dirtyID;\n    let item, mark, type, mdef, i, n, o;\n\n    for (i = 0, n = items.length; i < n; ++i) {\n      item = items[i];\n      mark = item.mark;\n\n      if (mark.marktype !== type) {\n        // memoize mark instance lookup\n        type = mark.marktype;\n        mdef = Marks[type];\n      }\n\n      if (mark.zdirty && mark.dirty !== id) {\n        this._dirtyAll = false;\n        dirtyParents(item, id);\n        mark.items.forEach(i => {\n          i.dirty = id;\n        });\n      }\n\n      if (mark.zdirty) continue; // handle in standard drawing pass\n\n      if (item.exit) {\n        // EXIT\n        if (mdef.nested && mark.items.length) {\n          // if nested mark with remaining points, update instead\n          o = mark.items[0];\n          if (o._svg) this._update(mdef, o._svg, o);\n        } else if (item._svg) {\n          // otherwise remove from DOM\n          o = item._svg.parentNode;\n          if (o) o.removeChild(item._svg);\n        }\n\n        item._svg = null;\n        continue;\n      }\n\n      item = mdef.nested ? mark.items[0] : item;\n      if (item._update === id) continue; // already visited\n\n      if (!item._svg || !item._svg.ownerSVGElement) {\n        // ENTER\n        this._dirtyAll = false;\n        dirtyParents(item, id);\n      } else {\n        // IN-PLACE UPDATE\n        this._update(mdef, item._svg, item);\n      }\n\n      item._update = id;\n    }\n\n    return !this._dirtyAll;\n  },\n\n  // -- Construct & maintain scenegraph to SVG mapping ---\n\n  /**\n   * Render a set of mark items.\n   * @param {SVGElement} el - The parent element in the SVG tree.\n   * @param {object} scene - The mark parent to render.\n   * @param {SVGElement} prev - The previous sibling in the SVG tree.\n   */\n  mark(el, scene, prev) {\n    if (!this.isDirty(scene)) return scene._svg;\n    const svg = this._svg,\n          mdef = Marks[scene.marktype],\n          events = scene.interactive === false ? 'none' : null,\n          isGroup = mdef.tag === 'g';\n    let sibling = null,\n        i = 0;\n    const parent = bind(scene, el, prev, 'g', svg);\n    parent.setAttribute('class', cssClass(scene)); // apply aria attributes to parent container element\n\n    const aria = ariaMarkAttributes(scene);\n\n    for (const key in aria) setAttribute(parent, key, aria[key]);\n\n    if (!isGroup) {\n      setAttribute(parent, 'pointer-events', events);\n    }\n\n    setAttribute(parent, 'clip-path', scene.clip ? clip(this, scene, scene.group) : null);\n\n    const process = item => {\n      const dirty = this.isDirty(item),\n            node = bind(item, parent, sibling, mdef.tag, svg);\n\n      if (dirty) {\n        this._update(mdef, node, item);\n\n        if (isGroup) recurse(this, node, item);\n      }\n\n      sibling = node;\n      ++i;\n    };\n\n    if (mdef.nested) {\n      if (scene.items.length) process(scene.items[0]);\n    } else {\n      visit(scene, process);\n    }\n\n    domClear(parent, i);\n    return parent;\n  },\n\n  /**\n   * Update the attributes of an SVG element for a mark item.\n   * @param {object} mdef - The mark definition object\n   * @param {SVGElement} el - The SVG element.\n   * @param {Item} item - The mark item.\n   */\n  _update(mdef, el, item) {\n    // set dom element and values cache\n    // provides access to emit method\n    element = el;\n    values = el.__values__; // apply aria-specific properties\n\n    ariaItemAttributes(emit, item); // apply svg attributes\n\n    mdef.attr(emit, item, this); // some marks need special treatment\n\n    const extra = mark_extras[mdef.type];\n    if (extra) extra.call(this, mdef, el, item); // apply svg style attributes\n    // note: element state may have been modified by 'extra' method\n\n    if (element) this.style(element, item);\n  },\n\n  /**\n   * Update the presentation attributes of an SVG element for a mark item.\n   * @param {SVGElement} el - The SVG element.\n   * @param {Item} item - The mark item.\n   */\n  style(el, item) {\n    if (item == null) return;\n\n    for (const prop in styles) {\n      let value = prop === 'font' ? fontFamily(item) : item[prop];\n      if (value === values[prop]) continue;\n      const name = styles[prop];\n\n      if (value == null) {\n        el.removeAttribute(name);\n      } else {\n        if (isGradient(value)) {\n          value = gradientRef(value, this._defs.gradient, href());\n        }\n\n        el.setAttribute(name, value + '');\n      }\n\n      values[prop] = value;\n    }\n  },\n\n  /**\n   * Render SVG defs, as needed.\n   * Must be called *after* marks have been processed to ensure the\n   * collected state is current and accurate.\n   */\n  defs() {\n    const svg = this._svg,\n          defs = this._defs;\n    let el = defs.el,\n        index = 0;\n\n    for (const id in defs.gradient) {\n      if (!el) defs.el = el = domChild(svg, RootIndex + 1, 'defs', ns);\n      index = updateGradient(el, defs.gradient[id], index);\n    }\n\n    for (const id in defs.clipping) {\n      if (!el) defs.el = el = domChild(svg, RootIndex + 1, 'defs', ns);\n      index = updateClipping(el, defs.clipping[id], index);\n    } // clean-up\n\n\n    if (el) {\n      index === 0 ? (svg.removeChild(el), defs.el = null) : domClear(el, index);\n    }\n  },\n\n  /**\n   * Clear defs caches.\n   */\n  _clearDefs() {\n    const def = this._defs;\n    def.gradient = {};\n    def.clipping = {};\n  }\n\n}); // mark ancestor chain with a dirty id\n\nfunction dirtyParents(item, id) {\n  for (; item && item.dirty !== id; item = item.mark.group) {\n    item.dirty = id;\n\n    if (item.mark && item.mark.dirty !== id) {\n      item.mark.dirty = id;\n    } else return;\n  }\n} // update gradient definitions\n\n\nfunction updateGradient(el, grad, index) {\n  let i, n, stop;\n\n  if (grad.gradient === 'radial') {\n    // SVG radial gradients automatically transform to normalized bbox\n    // coordinates, in a way that is cumbersome to replicate in canvas.\n    // We wrap the radial gradient in a pattern element, allowing us to\n    // maintain a circular gradient that matches what canvas provides.\n    let pt = domChild(el, index++, 'pattern', ns);\n    setAttributes(pt, {\n      id: patternPrefix + grad.id,\n      viewBox: '0,0,1,1',\n      width: '100%',\n      height: '100%',\n      preserveAspectRatio: 'xMidYMid slice'\n    });\n    pt = domChild(pt, 0, 'rect', ns);\n    setAttributes(pt, {\n      width: 1,\n      height: 1,\n      fill: \"url(\".concat(href(), \"#\").concat(grad.id, \")\")\n    });\n    el = domChild(el, index++, 'radialGradient', ns);\n    setAttributes(el, {\n      id: grad.id,\n      fx: grad.x1,\n      fy: grad.y1,\n      fr: grad.r1,\n      cx: grad.x2,\n      cy: grad.y2,\n      r: grad.r2\n    });\n  } else {\n    el = domChild(el, index++, 'linearGradient', ns);\n    setAttributes(el, {\n      id: grad.id,\n      x1: grad.x1,\n      x2: grad.x2,\n      y1: grad.y1,\n      y2: grad.y2\n    });\n  }\n\n  for (i = 0, n = grad.stops.length; i < n; ++i) {\n    stop = domChild(el, i, 'stop', ns);\n    stop.setAttribute('offset', grad.stops[i].offset);\n    stop.setAttribute('stop-color', grad.stops[i].color);\n  }\n\n  domClear(el, i);\n  return index;\n} // update clipping path definitions\n\n\nfunction updateClipping(el, clip, index) {\n  let mask;\n  el = domChild(el, index, 'clipPath', ns);\n  el.setAttribute('id', clip.id);\n\n  if (clip.path) {\n    mask = domChild(el, 0, 'path', ns);\n    mask.setAttribute('d', clip.path);\n  } else {\n    mask = domChild(el, 0, 'rect', ns);\n    setAttributes(mask, {\n      x: 0,\n      y: 0,\n      width: clip.width,\n      height: clip.height\n    });\n  }\n\n  domClear(el, 1);\n  return index + 1;\n} // Recursively process group contents.\n\n\nfunction recurse(renderer, el, group) {\n  el = el.lastChild.previousSibling;\n  let prev,\n      idx = 0;\n  visit(group, item => {\n    prev = renderer.mark(el, item, prev);\n    ++idx;\n  }); // remove any extraneous DOM elements\n\n  domClear(el, 1 + idx);\n} // Bind a scenegraph item to an SVG DOM element.\n// Create new SVG elements as needed.\n\n\nfunction bind(item, el, sibling, tag, svg) {\n  let node = item._svg,\n      doc; // create a new dom node if needed\n\n  if (!node) {\n    doc = el.ownerDocument;\n    node = domCreate(doc, tag, ns);\n    item._svg = node;\n\n    if (item.mark) {\n      node.__data__ = item;\n      node.__values__ = {\n        fill: 'default'\n      }; // if group, create background, content, and foreground elements\n\n      if (tag === 'g') {\n        const bg = domCreate(doc, 'path', ns);\n        node.appendChild(bg);\n        bg.__data__ = item;\n        const cg = domCreate(doc, 'g', ns);\n        node.appendChild(cg);\n        cg.__data__ = item;\n        const fg = domCreate(doc, 'path', ns);\n        node.appendChild(fg);\n        fg.__data__ = item;\n        fg.__values__ = {\n          fill: 'default'\n        };\n      }\n    }\n  } // (re-)insert if (a) not contained in SVG or (b) sibling order has changed\n\n\n  if (node.ownerSVGElement !== svg || siblingCheck(node, sibling)) {\n    el.insertBefore(node, sibling ? sibling.nextSibling : el.firstChild);\n  }\n\n  return node;\n} // check if two nodes are ordered siblings\n\n\nfunction siblingCheck(node, sibling) {\n  return node.parentNode && node.parentNode.childNodes.length > 1 && node.previousSibling != sibling; // treat null/undefined the same\n} // -- Set attributes & styles on SVG elements ---\n\n\nlet element = null,\n    // temp var for current SVG element\nvalues = null; // temp var for current values hash\n// Extra configuration for certain mark types\n\nconst mark_extras = {\n  group(mdef, el, item) {\n    const fg = element = el.childNodes[2];\n    values = fg.__values__;\n    mdef.foreground(emit, item, this);\n    values = el.__values__; // use parent's values hash\n\n    element = el.childNodes[1];\n    mdef.content(emit, item, this);\n    const bg = element = el.childNodes[0];\n    mdef.background(emit, item, this);\n    const value = item.mark.interactive === false ? 'none' : null;\n\n    if (value !== values.events) {\n      setAttribute(fg, 'pointer-events', value);\n      setAttribute(bg, 'pointer-events', value);\n      values.events = value;\n    }\n\n    if (item.strokeForeground && item.stroke) {\n      const fill = item.fill;\n      setAttribute(fg, 'display', null); // set style of background\n\n      this.style(bg, item);\n      setAttribute(bg, 'stroke', null); // set style of foreground\n\n      if (fill) item.fill = null;\n      values = fg.__values__;\n      this.style(fg, item);\n      if (fill) item.fill = fill; // leave element null to prevent downstream styling\n\n      element = null;\n    } else {\n      // ensure foreground is ignored\n      setAttribute(fg, 'display', 'none');\n    }\n  },\n\n  image(mdef, el, item) {\n    if (item.smooth === false) {\n      setStyle(el, 'image-rendering', 'optimizeSpeed');\n      setStyle(el, 'image-rendering', 'pixelated');\n    } else {\n      setStyle(el, 'image-rendering', null);\n    }\n  },\n\n  text(mdef, el, item) {\n    const tl = textLines(item);\n    let key, value, doc, lh;\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(tl)) {\n      // multi-line text\n      value = tl.map(_ => textValue(item, _));\n      key = value.join('\\n'); // content cache key\n\n      if (key !== values.text) {\n        domClear(el, 0);\n        doc = el.ownerDocument;\n        lh = lineHeight(item);\n        value.forEach((t, i) => {\n          const ts = domCreate(doc, 'tspan', ns);\n          ts.__data__ = item; // data binding\n\n          ts.textContent = t;\n\n          if (i) {\n            ts.setAttribute('x', 0);\n            ts.setAttribute('dy', lh);\n          }\n\n          el.appendChild(ts);\n        });\n        values.text = key;\n      }\n    } else {\n      // single-line text\n      value = textValue(item, tl);\n\n      if (value !== values.text) {\n        el.textContent = value;\n        values.text = value;\n      }\n    }\n\n    setAttribute(el, 'font-family', fontFamily(item));\n    setAttribute(el, 'font-size', fontSize(item) + 'px');\n    setAttribute(el, 'font-style', item.fontStyle);\n    setAttribute(el, 'font-variant', item.fontVariant);\n    setAttribute(el, 'font-weight', item.fontWeight);\n  }\n\n};\n\nfunction emit(name, value, ns) {\n  // early exit if value is unchanged\n  if (value === values[name]) return; // use appropriate method given namespace (ns)\n\n  if (ns) {\n    setAttributeNS(element, name, value, ns);\n  } else {\n    setAttribute(element, name, value);\n  } // note current value for future comparison\n\n\n  values[name] = value;\n}\n\nfunction setStyle(el, name, value) {\n  if (value !== values[name]) {\n    if (value == null) {\n      el.style.removeProperty(name);\n    } else {\n      el.style.setProperty(name, value + '');\n    }\n\n    values[name] = value;\n  }\n}\n\nfunction setAttributes(el, attrs) {\n  for (const key in attrs) {\n    setAttribute(el, key, attrs[key]);\n  }\n}\n\nfunction setAttribute(el, name, value) {\n  if (value != null) {\n    // if value is provided, update DOM attribute\n    el.setAttribute(name, value);\n  } else {\n    // else remove DOM attribute\n    el.removeAttribute(name);\n  }\n}\n\nfunction setAttributeNS(el, name, value, ns) {\n  if (value != null) {\n    // if value is provided, update DOM attribute\n    el.setAttributeNS(ns, name, value);\n  } else {\n    // else remove DOM attribute\n    el.removeAttributeNS(ns, name);\n  }\n}\n\nfunction href() {\n  let loc;\n  return typeof window === 'undefined' ? '' : (loc = window.location).hash ? loc.href.slice(0, -loc.hash.length) : loc.href;\n}\n\nfunction SVGStringRenderer(loader) {\n  Renderer.call(this, loader);\n  this._text = null;\n  this._defs = {\n    gradient: {},\n    clipping: {}\n  };\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(SVGStringRenderer, Renderer, {\n  /**\n   * Returns the rendered SVG text string,\n   * or null if rendering has not yet occurred.\n   */\n  svg() {\n    return this._text;\n  },\n\n  /**\n   * Internal rendering method.\n   * @param {object} scene - The root mark of a scenegraph to render.\n   */\n  _render(scene) {\n    const m = markup(); // svg tag\n\n    m.open('svg', Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, metadata, {\n      class: 'marks',\n      width: this._width * this._scale,\n      height: this._height * this._scale,\n      viewBox: \"0 0 \".concat(this._width, \" \").concat(this._height)\n    })); // background, if defined\n\n    const bg = this._bgcolor;\n\n    if (bg && bg !== 'transparent' && bg !== 'none') {\n      m.open('rect', {\n        width: this._width,\n        height: this._height,\n        fill: bg\n      }).close();\n    } // root content group\n\n\n    m.open('g', rootAttributes, {\n      transform: 'translate(' + this._origin + ')'\n    });\n    this.mark(m, scene);\n    m.close(); // </g>\n    // defs\n\n    this.defs(m); // get SVG text string\n\n    this._text = m.close() + '';\n    return this;\n  },\n\n  /**\n   * Render a set of mark items.\n   * @param {object} m - The markup context.\n   * @param {object} scene - The mark parent to render.\n   */\n  mark(m, scene) {\n    const mdef = Marks[scene.marktype],\n          tag = mdef.tag,\n          attrList = [ariaItemAttributes, mdef.attr]; // render opening group tag\n\n    m.open('g', {\n      'class': cssClass(scene),\n      'clip-path': scene.clip ? clip(this, scene, scene.group) : null\n    }, ariaMarkAttributes(scene), {\n      'pointer-events': tag !== 'g' && scene.interactive === false ? 'none' : null\n    }); // render contained elements\n\n    const process = item => {\n      const href = this.href(item);\n      if (href) m.open('a', href);\n      m.open(tag, this.attr(scene, item, attrList, tag !== 'g' ? tag : null));\n\n      if (tag === 'text') {\n        const tl = textLines(item);\n\n        if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(tl)) {\n          // multi-line text\n          const attrs = {\n            x: 0,\n            dy: lineHeight(item)\n          };\n\n          for (let i = 0; i < tl.length; ++i) {\n            m.open('tspan', i ? attrs : null).text(textValue(item, tl[i])).close();\n          }\n        } else {\n          // single-line text\n          m.text(textValue(item, tl));\n        }\n      } else if (tag === 'g') {\n        const fore = item.strokeForeground,\n              fill = item.fill,\n              stroke = item.stroke;\n\n        if (fore && stroke) {\n          item.stroke = null;\n        }\n\n        m.open('path', this.attr(scene, item, mdef.background, 'bgrect')).close(); // recurse for group content\n\n        m.open('g', this.attr(scene, item, mdef.content));\n        visit(item, scene => this.mark(m, scene));\n        m.close();\n\n        if (fore && stroke) {\n          if (fill) item.fill = null;\n          item.stroke = stroke;\n          m.open('path', this.attr(scene, item, mdef.foreground, 'bgrect')).close();\n          if (fill) item.fill = fill;\n        } else {\n          m.open('path', this.attr(scene, item, mdef.foreground, 'bgfore')).close();\n        }\n      }\n\n      m.close(); // </tag>\n\n      if (href) m.close(); // </a>\n    };\n\n    if (mdef.nested) {\n      if (scene.items && scene.items.length) process(scene.items[0]);\n    } else {\n      visit(scene, process);\n    } // render closing group tag\n\n\n    return m.close(); // </g>\n  },\n\n  /**\n   * Get href attributes for a hyperlinked mark item.\n   * @param {Item} item - The mark item.\n   */\n  href(item) {\n    const href = item.href;\n    let attr;\n\n    if (href) {\n      if (attr = this._hrefs && this._hrefs[href]) {\n        return attr;\n      } else {\n        this.sanitizeURL(href).then(attr => {\n          // rewrite to use xlink namespace\n          attr['xlink:href'] = attr.href;\n          attr.href = null;\n          (this._hrefs || (this._hrefs = {}))[href] = attr;\n        });\n      }\n    }\n\n    return null;\n  },\n\n  /**\n   * Get an object of SVG attributes for a mark item.\n   * @param {object} scene - The mark parent.\n   * @param {Item} item - The mark item.\n   * @param {array|function} attrs - One or more attribute emitters.\n   * @param {string} tag - The tag being rendered.\n   */\n  attr(scene, item, attrs, tag) {\n    const object = {},\n          emit = (name, value, ns, prefixed) => {\n      object[prefixed || name] = value;\n    }; // apply mark specific attributes\n\n\n    if (Array.isArray(attrs)) {\n      attrs.forEach(fn => fn(emit, item, this));\n    } else {\n      attrs(emit, item, this);\n    } // apply style attributes\n\n\n    if (tag) {\n      style(object, item, scene, tag, this._defs);\n    }\n\n    return object;\n  },\n\n  /**\n   * Render SVG defs, as needed.\n   * Must be called *after* marks have been processed to ensure the\n   * collected state is current and accurate.\n   * @param {object} m - The markup context.\n   */\n  defs(m) {\n    const gradient = this._defs.gradient,\n          clipping = this._defs.clipping,\n          count = Object.keys(gradient).length + Object.keys(clipping).length;\n    if (count === 0) return; // nothing to do\n\n    m.open('defs');\n\n    for (const id in gradient) {\n      const def = gradient[id],\n            stops = def.stops;\n\n      if (def.gradient === 'radial') {\n        // SVG radial gradients automatically transform to normalized bbox\n        // coordinates, in a way that is cumbersome to replicate in canvas.\n        // We wrap the radial gradient in a pattern element, allowing us to\n        // maintain a circular gradient that matches what canvas provides.\n        m.open('pattern', {\n          id: patternPrefix + id,\n          viewBox: '0,0,1,1',\n          width: '100%',\n          height: '100%',\n          preserveAspectRatio: 'xMidYMid slice'\n        });\n        m.open('rect', {\n          width: '1',\n          height: '1',\n          fill: 'url(#' + id + ')'\n        }).close();\n        m.close(); // </pattern>\n\n        m.open('radialGradient', {\n          id: id,\n          fx: def.x1,\n          fy: def.y1,\n          fr: def.r1,\n          cx: def.x2,\n          cy: def.y2,\n          r: def.r2\n        });\n      } else {\n        m.open('linearGradient', {\n          id: id,\n          x1: def.x1,\n          x2: def.x2,\n          y1: def.y1,\n          y2: def.y2\n        });\n      }\n\n      for (let i = 0; i < stops.length; ++i) {\n        m.open('stop', {\n          offset: stops[i].offset,\n          'stop-color': stops[i].color\n        }).close();\n      }\n\n      m.close();\n    }\n\n    for (const id in clipping) {\n      const def = clipping[id];\n      m.open('clipPath', {\n        id: id\n      });\n\n      if (def.path) {\n        m.open('path', {\n          d: def.path\n        }).close();\n      } else {\n        m.open('rect', {\n          x: 0,\n          y: 0,\n          width: def.width,\n          height: def.height\n        }).close();\n      }\n\n      m.close();\n    }\n\n    m.close();\n  }\n\n}); // Helper function for attr for style presentation attributes\n\nfunction style(s, item, scene, tag, defs) {\n  if (item == null) return s;\n\n  if (tag === 'bgrect' && scene.interactive === false) {\n    s['pointer-events'] = 'none';\n  }\n\n  if (tag === 'bgfore') {\n    if (scene.interactive === false) {\n      s['pointer-events'] = 'none';\n    }\n\n    s.display = 'none';\n    if (item.fill !== null) return s;\n  }\n\n  if (tag === 'image' && item.smooth === false) {\n    s.style = 'image-rendering: optimizeSpeed; image-rendering: pixelated;';\n  }\n\n  if (tag === 'text') {\n    s['font-family'] = fontFamily(item);\n    s['font-size'] = fontSize(item) + 'px';\n    s['font-style'] = item.fontStyle;\n    s['font-variant'] = item.fontVariant;\n    s['font-weight'] = item.fontWeight;\n  }\n\n  for (const prop in styles) {\n    let value = item[prop];\n    const name = styles[prop];\n\n    if (value === 'transparent' && (name === 'fill' || name === 'stroke')) ; else if (value != null) {\n      if (isGradient(value)) {\n        value = gradientRef(value, defs.gradient, '');\n      }\n\n      s[name] = value;\n    }\n  }\n\n  return s;\n}\n\nconst Canvas = 'canvas';\nconst PNG = 'png';\nconst SVG = 'svg';\nconst None = 'none';\nconst RenderType = {\n  Canvas: Canvas,\n  PNG: PNG,\n  SVG: SVG,\n  None: None\n};\nconst modules = {};\nmodules[Canvas] = modules[PNG] = {\n  renderer: CanvasRenderer,\n  headless: CanvasRenderer,\n  handler: CanvasHandler\n};\nmodules[SVG] = {\n  renderer: SVGRenderer,\n  headless: SVGStringRenderer,\n  handler: SVGHandler\n};\nmodules[None] = {};\nfunction renderModule(name, _) {\n  name = String(name || '').toLowerCase();\n\n  if (arguments.length > 1) {\n    modules[name] = _;\n    return this;\n  } else {\n    return modules[name];\n  }\n}\n\nfunction intersect(scene, bounds, filter) {\n  const hits = [],\n        // intersection results\n  box = new Bounds().union(bounds),\n        // defensive copy\n  type = scene.marktype;\n  return type ? intersectMark(scene, box, filter, hits) : type === 'group' ? intersectGroup(scene, box, filter, hits) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Intersect scene must be mark node or group item.');\n}\n\nfunction intersectMark(mark, box, filter, hits) {\n  if (visitMark(mark, box, filter)) {\n    const items = mark.items,\n          type = mark.marktype,\n          n = items.length;\n    let i = 0;\n\n    if (type === 'group') {\n      for (; i < n; ++i) {\n        intersectGroup(items[i], box, filter, hits);\n      }\n    } else {\n      for (const test = Marks[type].isect; i < n; ++i) {\n        const item = items[i];\n        if (intersectItem(item, box, test)) hits.push(item);\n      }\n    }\n  }\n\n  return hits;\n}\n\nfunction visitMark(mark, box, filter) {\n  // process if bounds intersect and if\n  // (1) mark is a group mark (so we must recurse), or\n  // (2) mark is interactive and passes filter\n  return mark.bounds && box.intersects(mark.bounds) && (mark.marktype === 'group' || mark.interactive !== false && (!filter || filter(mark)));\n}\n\nfunction intersectGroup(group, box, filter, hits) {\n  // test intersect against group\n  // skip groups by default unless filter says otherwise\n  if (filter && filter(group.mark) && intersectItem(group, box, Marks.group.isect)) {\n    hits.push(group);\n  } // recursively test children marks\n  // translate box to group coordinate space\n\n\n  const marks = group.items,\n        n = marks && marks.length;\n\n  if (n) {\n    const x = group.x || 0,\n          y = group.y || 0;\n    box.translate(-x, -y);\n\n    for (let i = 0; i < n; ++i) {\n      intersectMark(marks[i], box, filter, hits);\n    }\n\n    box.translate(x, y);\n  }\n\n  return hits;\n}\n\nfunction intersectItem(item, box, test) {\n  // test bounds enclosure, bounds intersection, then detailed test\n  const bounds = item.bounds;\n  return box.encloses(bounds) || box.intersects(bounds) && test(item, box);\n}\n\nconst clipBounds = new Bounds();\nfunction boundClip (mark) {\n  const clip = mark.clip;\n\n  if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"])(clip)) {\n    clip(boundContext(clipBounds.clear()));\n  } else if (clip) {\n    clipBounds.set(0, 0, mark.group.width, mark.group.height);\n  } else return;\n\n  mark.bounds.intersect(clipBounds);\n}\n\nconst TOLERANCE = 1e-9;\nfunction sceneEqual(a, b, key) {\n  return a === b ? true : key === 'path' ? pathEqual(a, b) : a instanceof Date && b instanceof Date ? +a === +b : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(a) && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(b) ? Math.abs(a - b) <= TOLERANCE : !a || !b || !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(a) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(b) ? a == b : objectEqual(a, b);\n}\nfunction pathEqual(a, b) {\n  return sceneEqual(pathParse(a), pathParse(b));\n}\n\nfunction objectEqual(a, b) {\n  var ka = Object.keys(a),\n      kb = Object.keys(b),\n      key,\n      i;\n  if (ka.length !== kb.length) return false;\n  ka.sort();\n  kb.sort();\n\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i]) return false;\n  }\n\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!sceneEqual(a[key], b[key], key)) return false;\n  }\n\n  return typeof a === typeof b;\n}\n\nfunction resetSVGDefIds() {\n  resetSVGClipId();\n  resetSVGGradientId();\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-scenegraph/build/vega-scenegraph.module.js?");

/***/ }),

/***/ "./node_modules/vega-schema-url-parser/dist/parser.module.js":
/*!*******************************************************************!*\
  !*** ./node_modules/vega-schema-url-parser/dist/parser.module.js ***!
  \*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (function(e){const[n,r]=/\\/schema\\/([\\w-]+)\\/([\\w\\.\\-]+)\\.json$/g.exec(e).slice(1,3);return{library:n,version:r}});\n//# sourceMappingURL=parser.module.js.map\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-schema-url-parser/dist/parser.module.js?");

/***/ }),

/***/ "./node_modules/vega-selections/build/vega-selection.module.js":
/*!*********************************************************************!*\
  !*** ./node_modules/vega-selections/build/vega-selection.module.js ***!
  \*********************************************************************/
/*! exports provided: selectionResolve, selectionTest, selectionVisitor */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectionResolve\", function() { return selectionResolve; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectionTest\", function() { return selectionTest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"selectionVisitor\", function() { return selectionVisitor; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_expression__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-expression */ \"./node_modules/vega-expression/build/vega-expression.module.js\");\n\n\n\nconst Intersect = 'intersect';\nconst Union = 'union';\nconst VlMulti = 'vlMulti';\nconst Or = 'or';\nconst And = 'and';\n\nvar TYPE_ENUM = 'E',\n    TYPE_RANGE_INC = 'R',\n    TYPE_RANGE_EXC = 'R-E',\n    TYPE_RANGE_LE = 'R-LE',\n    TYPE_RANGE_RE = 'R-RE',\n    UNIT_INDEX = 'index:unit'; // TODO: revisit date coercion?\n\nfunction testPoint(datum, entry) {\n  var fields = entry.fields,\n      values = entry.values,\n      n = fields.length,\n      i = 0,\n      dval,\n      f;\n\n  for (; i < n; ++i) {\n    f = fields[i];\n    f.getter = vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"].getter || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"])(f.field);\n    dval = f.getter(datum);\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"])(dval)) dval = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(dval);\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"])(values[i])) values[i] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(values[i]);\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"])(values[i][0])) values[i] = values[i].map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"]);\n\n    if (f.type === TYPE_ENUM) {\n      // Enumerated fields can either specify individual values (single/multi selections)\n      // or an array of values (interval selections).\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(values[i]) ? values[i].indexOf(dval) < 0 : dval !== values[i]) {\n        return false;\n      }\n    } else {\n      if (f.type === TYPE_RANGE_INC) {\n        if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inrange\"])(dval, values[i])) return false;\n      } else if (f.type === TYPE_RANGE_RE) {\n        // Discrete selection of bins test within the range [bin_start, bin_end).\n        if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inrange\"])(dval, values[i], true, false)) return false;\n      } else if (f.type === TYPE_RANGE_EXC) {\n        // 'R-E'/'R-LE' included for completeness.\n        if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inrange\"])(dval, values[i], false, false)) return false;\n      } else if (f.type === TYPE_RANGE_LE) {\n        if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inrange\"])(dval, values[i], false, true)) return false;\n      }\n    }\n  }\n\n  return true;\n}\n/**\n * Tests if a tuple is contained within an interactive selection.\n * @param {string} name - The name of the data set representing the selection.\n *  Tuples in the dataset are of the form\n *  {unit: string, fields: array<fielddef>, values: array<*>}.\n *  Fielddef is of the form\n *  {field: string, channel: string, type: 'E' | 'R'} where\n *  'type' identifies whether tuples in the dataset enumerate\n *  values for the field, or specify a continuous range.\n * @param {object} datum - The tuple to test for inclusion.\n * @param {string} op - The set operation for combining selections.\n *   One of 'intersect' or 'union' (default).\n * @return {boolean} - True if the datum is in the selection, false otherwise.\n */\n\n\nfunction selectionTest(name, datum, op) {\n  var data = this.context.data[name],\n      entries = data ? data.values.value : [],\n      unitIdx = data ? data[UNIT_INDEX] && data[UNIT_INDEX].value : undefined,\n      intersect = op === Intersect,\n      n = entries.length,\n      i = 0,\n      entry,\n      miss,\n      count,\n      unit,\n      b;\n\n  for (; i < n; ++i) {\n    entry = entries[i];\n\n    if (unitIdx && intersect) {\n      // multi selections union within the same unit and intersect across units.\n      miss = miss || {};\n      count = miss[unit = entry.unit] || 0; // if we've already matched this unit, skip.\n\n      if (count === -1) continue;\n      b = testPoint(datum, entry);\n      miss[unit] = b ? -1 : ++count; // if we match and there are no other units return true\n      // if we've missed against all tuples in this unit return false\n\n      if (b && unitIdx.size === 1) return true;\n      if (!b && count === unitIdx.get(unit).count) return false;\n    } else {\n      b = testPoint(datum, entry); // if we find a miss and we do require intersection return false\n      // if we find a match and we don't require intersection return true\n\n      if (intersect ^ b) return b;\n    }\n  } // if intersecting and we made it here, then we saw no misses\n  // if not intersecting, then we saw no matches\n  // if no active selections, return false\n\n\n  return n && intersect;\n}\n\n/**\n * Resolves selection for use as a scale domain or reads via the API.\n * @param {string} name - The name of the dataset representing the selection\n * @param {string} [op='union'] - The set operation for combining selections.\n *                 One of 'intersect' or 'union' (default).\n * @returns {object} An object of selected fields and values.\n */\n\nfunction selectionResolve(name, op, isMulti) {\n  var data = this.context.data[name],\n      entries = data ? data.values.value : [],\n      resolved = {},\n      multiRes = {},\n      types = {},\n      entry,\n      fields,\n      values,\n      unit,\n      field,\n      res,\n      resUnit,\n      type,\n      union,\n      n = entries.length,\n      i = 0,\n      j,\n      m; // First union all entries within the same unit.\n\n  for (; i < n; ++i) {\n    entry = entries[i];\n    unit = entry.unit;\n    fields = entry.fields;\n    values = entry.values;\n\n    for (j = 0, m = fields.length; j < m; ++j) {\n      field = fields[j];\n      res = resolved[field.field] || (resolved[field.field] = {});\n      resUnit = res[unit] || (res[unit] = []);\n      types[field.field] = type = field.type.charAt(0);\n      union = ops[type + '_union'];\n      res[unit] = union(resUnit, Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(values[j]));\n    } // If the same multi-selection is repeated over views and projected over\n    // an encoding, it may operate over different fields making it especially\n    // tricky to reliably resolve it. At best, we can de-dupe identical entries\n    // but doing so may be more computationally expensive than it is worth.\n    // Instead, for now, we simply transform our store representation into\n    // a more human-friendly one.\n\n\n    if (isMulti) {\n      resUnit = multiRes[unit] || (multiRes[unit] = []);\n      resUnit.push(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(values).reduce((obj, curr, j) => (obj[fields[j].field] = curr, obj), {}));\n    }\n  } // Then resolve fields across units as per the op.\n\n\n  op = op || Union;\n  Object.keys(resolved).forEach(field => {\n    resolved[field] = Object.keys(resolved[field]).map(unit => resolved[field][unit]).reduce((acc, curr) => acc === undefined ? curr : ops[types[field] + '_' + op](acc, curr));\n  });\n  entries = Object.keys(multiRes);\n\n  if (isMulti && entries.length) {\n    resolved[VlMulti] = op === Union ? {\n      [Or]: entries.reduce((acc, k) => (acc.push(...multiRes[k]), acc), [])\n    } : {\n      [And]: entries.map(k => ({\n        [Or]: multiRes[k]\n      }))\n    };\n  }\n\n  return resolved;\n}\nvar ops = {\n  E_union: function (base, value) {\n    if (!base.length) return value;\n    var i = 0,\n        n = value.length;\n\n    for (; i < n; ++i) if (base.indexOf(value[i]) < 0) base.push(value[i]);\n\n    return base;\n  },\n  E_intersect: function (base, value) {\n    return !base.length ? value : base.filter(v => value.indexOf(v) >= 0);\n  },\n  R_union: function (base, value) {\n    var lo = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(value[0]),\n        hi = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(value[1]);\n\n    if (lo > hi) {\n      lo = value[1];\n      hi = value[0];\n    }\n\n    if (!base.length) return [lo, hi];\n    if (base[0] > lo) base[0] = lo;\n    if (base[1] < hi) base[1] = hi;\n    return base;\n  },\n  R_intersect: function (base, value) {\n    var lo = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(value[0]),\n        hi = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(value[1]);\n\n    if (lo > hi) {\n      lo = value[1];\n      hi = value[0];\n    }\n\n    if (!base.length) return [lo, hi];\n\n    if (hi < base[0] || base[1] < lo) {\n      return [];\n    } else {\n      if (base[0] < lo) base[0] = lo;\n      if (base[1] > hi) base[1] = hi;\n    }\n\n    return base;\n  }\n};\n\nconst DataPrefix = ':',\n      IndexPrefix = '@';\nfunction selectionVisitor(name, args, scope, params) {\n  if (args[0].type !== vega_expression__WEBPACK_IMPORTED_MODULE_1__[\"Literal\"]) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('First argument to selection functions must be a string literal.');\n  const data = args[0].value,\n        op = args.length >= 2 && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(args).value,\n        field = 'unit',\n        indexName = IndexPrefix + field,\n        dataName = DataPrefix + data; // eslint-disable-next-line no-prototype-builtins\n\n  if (op === Intersect && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(params, indexName)) {\n    params[indexName] = scope.getData(data).indataRef(scope, field);\n  } // eslint-disable-next-line no-prototype-builtins\n\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(params, dataName)) {\n    params[dataName] = scope.getData(data).tuplesRef();\n  }\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-selections/build/vega-selection.module.js?");

/***/ }),

/***/ "./node_modules/vega-statistics/build/vega-statistics.module.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-statistics/build/vega-statistics.module.js ***!
  \**********************************************************************/
/*! exports provided: bandwidthNRD, bin, bootstrapCI, cumulativeLogNormal, cumulativeNormal, cumulativeUniform, densityLogNormal, densityNormal, densityUniform, dotbin, quantileLogNormal, quantileNormal, quantileUniform, quantiles, quartiles, random, randomInteger, randomKDE, randomLCG, randomLogNormal, randomMixture, randomNormal, randomUniform, regressionExp, regressionLinear, regressionLoess, regressionLog, regressionPoly, regressionPow, regressionQuad, sampleCurve, sampleLogNormal, sampleNormal, sampleUniform, setRandom */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bandwidthNRD\", function() { return estimateBandwidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bin\", function() { return bin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapCI\", function() { return bootstrapCI; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cumulativeLogNormal\", function() { return cumulativeLogNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cumulativeNormal\", function() { return cumulativeNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cumulativeUniform\", function() { return cumulativeUniform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"densityLogNormal\", function() { return densityLogNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"densityNormal\", function() { return densityNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"densityUniform\", function() { return densityUniform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dotbin\", function() { return dotbin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantileLogNormal\", function() { return quantileLogNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantileNormal\", function() { return quantileNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantileUniform\", function() { return quantileUniform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantiles\", function() { return quantiles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quartiles\", function() { return quartiles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"random\", function() { return random; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomInteger\", function() { return integer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomKDE\", function() { return kde; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomLCG\", function() { return lcg; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomLogNormal\", function() { return lognormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomMixture\", function() { return mixture; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomNormal\", function() { return gaussian; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomUniform\", function() { return uniform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionExp\", function() { return exp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionLinear\", function() { return linear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionLoess\", function() { return loess; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionLog\", function() { return log; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionPoly\", function() { return poly; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionPow\", function() { return pow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regressionQuad\", function() { return quad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleCurve\", function() { return sampleCurve; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleLogNormal\", function() { return sampleLogNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleNormal\", function() { return sampleNormal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sampleUniform\", function() { return sampleUniform; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setRandom\", function() { return setRandom; });\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n\n\nfunction* numbers (values, valueof) {\n  if (valueof == null) {\n    for (let value of values) {\n      if (value != null && value !== '' && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  } else {\n    let index = -1;\n\n    for (let value of values) {\n      value = valueof(value, ++index, values);\n\n      if (value != null && value !== '' && (value = +value) >= value) {\n        yield value;\n      }\n    }\n  }\n}\n\nfunction quantiles (array, p, f) {\n  const values = Float64Array.from(numbers(array, f)); // don't depend on return value from typed array sort call\n  // protects against undefined sort results in Safari (vega/vega-lite#4964)\n\n  values.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ascending\"]);\n  return p.map(_ => Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"quantileSorted\"])(values, _));\n}\n\nfunction quartiles (array, f) {\n  return quantiles(array, [0.25, 0.50, 0.75], f);\n}\n\n// Theory, Practice, and Visualization. Wiley.\n\nfunction estimateBandwidth (array, f) {\n  const n = array.length,\n        d = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"deviation\"])(array, f),\n        q = quartiles(array, f),\n        h = (q[2] - q[0]) / 1.34,\n        v = Math.min(d, h) || d || Math.abs(q[0]) || 1;\n  return 1.06 * v * Math.pow(n, -0.2);\n}\n\nfunction bin (_) {\n  // determine range\n  const maxb = _.maxbins || 20,\n        base = _.base || 10,\n        logb = Math.log(base),\n        div = _.divide || [5, 2];\n  let min = _.extent[0],\n      max = _.extent[1],\n      step,\n      level,\n      minstep,\n      v,\n      i,\n      n;\n  const span = _.span || max - min || Math.abs(min) || 1;\n\n  if (_.step) {\n    // if step size is explicitly given, use that\n    step = _.step;\n  } else if (_.steps) {\n    // if provided, limit choice to acceptable step sizes\n    v = span / maxb;\n\n    for (i = 0, n = _.steps.length; i < n && _.steps[i] < v; ++i);\n\n    step = _.steps[Math.max(0, i - 1)];\n  } else {\n    // else use span to determine step size\n    level = Math.ceil(Math.log(maxb) / logb);\n    minstep = _.minstep || 0;\n    step = Math.max(minstep, Math.pow(base, Math.round(Math.log(span) / logb) - level)); // increase step size if too many bins\n\n    while (Math.ceil(span / step) > maxb) {\n      step *= base;\n    } // decrease step size if allowed\n\n\n    for (i = 0, n = div.length; i < n; ++i) {\n      v = step / div[i];\n      if (v >= minstep && span / v <= maxb) step = v;\n    }\n  } // update precision, min and max\n\n\n  v = Math.log(step);\n  const precision = v >= 0 ? 0 : ~~(-v / logb) + 1,\n        eps = Math.pow(base, -precision - 1);\n\n  if (_.nice || _.nice === undefined) {\n    v = Math.floor(min / step + eps) * step;\n    min = min < v ? v - step : v;\n    max = Math.ceil(max / step) * step;\n  }\n\n  return {\n    start: min,\n    stop: max === min ? min + step : max,\n    step: step\n  };\n}\n\nvar random = Math.random;\nfunction setRandom(r) {\n  random = r;\n}\n\nfunction bootstrapCI (array, samples, alpha, f) {\n  if (!array.length) return [undefined, undefined];\n  const values = Float64Array.from(numbers(array, f)),\n        n = values.length,\n        m = samples;\n  let a, i, j, mu;\n\n  for (j = 0, mu = Array(m); j < m; ++j) {\n    for (a = 0, i = 0; i < n; ++i) {\n      a += values[~~(random() * n)];\n    }\n\n    mu[j] = a / n;\n  }\n\n  mu.sort(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"ascending\"]);\n  return [Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"quantile\"])(mu, alpha / 2), Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"quantile\"])(mu, 1 - alpha / 2)];\n}\n\n// Dot density binning for dot plot construction.\n// Based on Leland Wilkinson, Dot Plots, The American Statistician, 1999.\n// https://www.cs.uic.edu/~wilkinson/Publications/dotplots.pdf\nfunction dotbin (array, step, smooth, f) {\n  f = f || (_ => _);\n\n  const n = array.length,\n        v = new Float64Array(n);\n  let i = 0,\n      j = 1,\n      a = f(array[0]),\n      b = a,\n      w = a + step,\n      x;\n\n  for (; j < n; ++j) {\n    x = f(array[j]);\n\n    if (x >= w) {\n      b = (a + b) / 2;\n\n      for (; i < j; ++i) v[i] = b;\n\n      w = x + step;\n      a = x;\n    }\n\n    b = x;\n  }\n\n  b = (a + b) / 2;\n\n  for (; i < j; ++i) v[i] = b;\n\n  return smooth ? smoothing(v, step + step / 4) : v;\n} // perform smoothing to reduce variance\n// swap points between \"adjacent\" stacks\n// Wilkinson defines adjacent as within step/4 units\n\nfunction smoothing(v, thresh) {\n  const n = v.length;\n  let a = 0,\n      b = 1,\n      c,\n      d; // get left stack\n\n  while (v[a] === v[b]) ++b;\n\n  while (b < n) {\n    // get right stack\n    c = b + 1;\n\n    while (v[b] === v[c]) ++c; // are stacks adjacent?\n    // if so, compare sizes and swap as needed\n\n\n    if (v[b] - v[b - 1] < thresh) {\n      d = b + (a + c - b - b >> 1);\n\n      while (d < b) v[d++] = v[b];\n\n      while (d > b) v[d--] = v[a];\n    } // update left stack indices\n\n\n    a = b;\n    b = c;\n  }\n\n  return v;\n}\n\nfunction lcg (seed) {\n  // Random numbers using a Linear Congruential Generator with seed value\n  // Uses glibc values from https://en.wikipedia.org/wiki/Linear_congruential_generator\n  return function () {\n    seed = (1103515245 * seed + 12345) % 2147483647;\n    return seed / 2147483647;\n  };\n}\n\nfunction integer (min, max) {\n  if (max == null) {\n    max = min;\n    min = 0;\n  }\n\n  let a, b, d;\n  const dist = {\n    min(_) {\n      if (arguments.length) {\n        a = _ || 0;\n        d = b - a;\n        return dist;\n      } else {\n        return a;\n      }\n    },\n\n    max(_) {\n      if (arguments.length) {\n        b = _ || 0;\n        d = b - a;\n        return dist;\n      } else {\n        return b;\n      }\n    },\n\n    sample() {\n      return a + Math.floor(d * random());\n    },\n\n    pdf(x) {\n      return x === Math.floor(x) && x >= a && x < b ? 1 / d : 0;\n    },\n\n    cdf(x) {\n      const v = Math.floor(x);\n      return v < a ? 0 : v >= b ? 1 : (v - a + 1) / d;\n    },\n\n    icdf(p) {\n      return p >= 0 && p <= 1 ? a - 1 + Math.floor(p * d) : NaN;\n    }\n\n  };\n  return dist.min(min).max(max);\n}\n\nconst SQRT2PI = Math.sqrt(2 * Math.PI);\nconst SQRT2 = Math.SQRT2;\n\nlet nextSample = NaN;\nfunction sampleNormal(mean, stdev) {\n  mean = mean || 0;\n  stdev = stdev == null ? 1 : stdev;\n  let x = 0,\n      y = 0,\n      rds,\n      c;\n\n  if (nextSample === nextSample) {\n    x = nextSample;\n    nextSample = NaN;\n  } else {\n    do {\n      x = random() * 2 - 1;\n      y = random() * 2 - 1;\n      rds = x * x + y * y;\n    } while (rds === 0 || rds > 1);\n\n    c = Math.sqrt(-2 * Math.log(rds) / rds); // Box-Muller transform\n\n    x *= c;\n    nextSample = y * c;\n  }\n\n  return mean + x * stdev;\n}\nfunction densityNormal(value, mean, stdev) {\n  stdev = stdev == null ? 1 : stdev;\n  const z = (value - (mean || 0)) / stdev;\n  return Math.exp(-0.5 * z * z) / (stdev * SQRT2PI);\n} // Approximation from West (2009)\n// Better Approximations to Cumulative Normal Functions\n\nfunction cumulativeNormal(value, mean, stdev) {\n  mean = mean || 0;\n  stdev = stdev == null ? 1 : stdev;\n  const z = (value - mean) / stdev,\n        Z = Math.abs(z);\n  let cd;\n\n  if (Z > 37) {\n    cd = 0;\n  } else {\n    const exp = Math.exp(-Z * Z / 2);\n    let sum;\n\n    if (Z < 7.07106781186547) {\n      sum = 3.52624965998911e-02 * Z + 0.700383064443688;\n      sum = sum * Z + 6.37396220353165;\n      sum = sum * Z + 33.912866078383;\n      sum = sum * Z + 112.079291497871;\n      sum = sum * Z + 221.213596169931;\n      sum = sum * Z + 220.206867912376;\n      cd = exp * sum;\n      sum = 8.83883476483184e-02 * Z + 1.75566716318264;\n      sum = sum * Z + 16.064177579207;\n      sum = sum * Z + 86.7807322029461;\n      sum = sum * Z + 296.564248779674;\n      sum = sum * Z + 637.333633378831;\n      sum = sum * Z + 793.826512519948;\n      sum = sum * Z + 440.413735824752;\n      cd = cd / sum;\n    } else {\n      sum = Z + 0.65;\n      sum = Z + 4 / sum;\n      sum = Z + 3 / sum;\n      sum = Z + 2 / sum;\n      sum = Z + 1 / sum;\n      cd = exp / sum / 2.506628274631;\n    }\n  }\n\n  return z > 0 ? 1 - cd : cd;\n} // Approximation of Probit function using inverse error function.\n\nfunction quantileNormal(p, mean, stdev) {\n  if (p < 0 || p > 1) return NaN;\n  return (mean || 0) + (stdev == null ? 1 : stdev) * SQRT2 * erfinv(2 * p - 1);\n} // Approximate inverse error function. Implementation from \"Approximating\n// the erfinv function\" by Mike Giles, GPU Computing Gems, volume 2, 2010.\n// Ported from Apache Commons Math, http://www.apache.org/licenses/LICENSE-2.0\n\nfunction erfinv(x) {\n  // beware that the logarithm argument must be\n  // commputed as (1.0 - x) * (1.0 + x),\n  // it must NOT be simplified as 1.0 - x * x as this\n  // would induce rounding errors near the boundaries +/-1\n  let w = -Math.log((1 - x) * (1 + x)),\n      p;\n\n  if (w < 6.25) {\n    w -= 3.125;\n    p = -3.6444120640178196996e-21;\n    p = -1.685059138182016589e-19 + p * w;\n    p = 1.2858480715256400167e-18 + p * w;\n    p = 1.115787767802518096e-17 + p * w;\n    p = -1.333171662854620906e-16 + p * w;\n    p = 2.0972767875968561637e-17 + p * w;\n    p = 6.6376381343583238325e-15 + p * w;\n    p = -4.0545662729752068639e-14 + p * w;\n    p = -8.1519341976054721522e-14 + p * w;\n    p = 2.6335093153082322977e-12 + p * w;\n    p = -1.2975133253453532498e-11 + p * w;\n    p = -5.4154120542946279317e-11 + p * w;\n    p = 1.051212273321532285e-09 + p * w;\n    p = -4.1126339803469836976e-09 + p * w;\n    p = -2.9070369957882005086e-08 + p * w;\n    p = 4.2347877827932403518e-07 + p * w;\n    p = -1.3654692000834678645e-06 + p * w;\n    p = -1.3882523362786468719e-05 + p * w;\n    p = 0.0001867342080340571352 + p * w;\n    p = -0.00074070253416626697512 + p * w;\n    p = -0.0060336708714301490533 + p * w;\n    p = 0.24015818242558961693 + p * w;\n    p = 1.6536545626831027356 + p * w;\n  } else if (w < 16.0) {\n    w = Math.sqrt(w) - 3.25;\n    p = 2.2137376921775787049e-09;\n    p = 9.0756561938885390979e-08 + p * w;\n    p = -2.7517406297064545428e-07 + p * w;\n    p = 1.8239629214389227755e-08 + p * w;\n    p = 1.5027403968909827627e-06 + p * w;\n    p = -4.013867526981545969e-06 + p * w;\n    p = 2.9234449089955446044e-06 + p * w;\n    p = 1.2475304481671778723e-05 + p * w;\n    p = -4.7318229009055733981e-05 + p * w;\n    p = 6.8284851459573175448e-05 + p * w;\n    p = 2.4031110387097893999e-05 + p * w;\n    p = -0.0003550375203628474796 + p * w;\n    p = 0.00095328937973738049703 + p * w;\n    p = -0.0016882755560235047313 + p * w;\n    p = 0.0024914420961078508066 + p * w;\n    p = -0.0037512085075692412107 + p * w;\n    p = 0.005370914553590063617 + p * w;\n    p = 1.0052589676941592334 + p * w;\n    p = 3.0838856104922207635 + p * w;\n  } else if (Number.isFinite(w)) {\n    w = Math.sqrt(w) - 5.0;\n    p = -2.7109920616438573243e-11;\n    p = -2.5556418169965252055e-10 + p * w;\n    p = 1.5076572693500548083e-09 + p * w;\n    p = -3.7894654401267369937e-09 + p * w;\n    p = 7.6157012080783393804e-09 + p * w;\n    p = -1.4960026627149240478e-08 + p * w;\n    p = 2.9147953450901080826e-08 + p * w;\n    p = -6.7711997758452339498e-08 + p * w;\n    p = 2.2900482228026654717e-07 + p * w;\n    p = -9.9298272942317002539e-07 + p * w;\n    p = 4.5260625972231537039e-06 + p * w;\n    p = -1.9681778105531670567e-05 + p * w;\n    p = 7.5995277030017761139e-05 + p * w;\n    p = -0.00021503011930044477347 + p * w;\n    p = -0.00013871931833623122026 + p * w;\n    p = 1.0103004648645343977 + p * w;\n    p = 4.8499064014085844221 + p * w;\n  } else {\n    p = Infinity;\n  }\n\n  return p * x;\n}\n\nfunction gaussian (mean, stdev) {\n  let mu, sigma;\n  const dist = {\n    mean(_) {\n      if (arguments.length) {\n        mu = _ || 0;\n        return dist;\n      } else {\n        return mu;\n      }\n    },\n\n    stdev(_) {\n      if (arguments.length) {\n        sigma = _ == null ? 1 : _;\n        return dist;\n      } else {\n        return sigma;\n      }\n    },\n\n    sample: () => sampleNormal(mu, sigma),\n    pdf: value => densityNormal(value, mu, sigma),\n    cdf: value => cumulativeNormal(value, mu, sigma),\n    icdf: p => quantileNormal(p, mu, sigma)\n  };\n  return dist.mean(mean).stdev(stdev);\n}\n\nfunction kde (support, bandwidth) {\n  const kernel = gaussian();\n  let n = 0;\n  const dist = {\n    data(_) {\n      if (arguments.length) {\n        support = _;\n        n = _ ? _.length : 0;\n        return dist.bandwidth(bandwidth);\n      } else {\n        return support;\n      }\n    },\n\n    bandwidth(_) {\n      if (!arguments.length) return bandwidth;\n      bandwidth = _;\n      if (!bandwidth && support) bandwidth = estimateBandwidth(support);\n      return dist;\n    },\n\n    sample() {\n      return support[~~(random() * n)] + bandwidth * kernel.sample();\n    },\n\n    pdf(x) {\n      let y = 0,\n          i = 0;\n\n      for (; i < n; ++i) {\n        y += kernel.pdf((x - support[i]) / bandwidth);\n      }\n\n      return y / bandwidth / n;\n    },\n\n    cdf(x) {\n      let y = 0,\n          i = 0;\n\n      for (; i < n; ++i) {\n        y += kernel.cdf((x - support[i]) / bandwidth);\n      }\n\n      return y / n;\n    },\n\n    icdf() {\n      throw Error('KDE icdf not supported.');\n    }\n\n  };\n  return dist.data(support);\n}\n\nfunction sampleLogNormal(mean, stdev) {\n  mean = mean || 0;\n  stdev = stdev == null ? 1 : stdev;\n  return Math.exp(mean + sampleNormal() * stdev);\n}\nfunction densityLogNormal(value, mean, stdev) {\n  if (value <= 0) return 0;\n  mean = mean || 0;\n  stdev = stdev == null ? 1 : stdev;\n  const z = (Math.log(value) - mean) / stdev;\n  return Math.exp(-0.5 * z * z) / (stdev * SQRT2PI * value);\n}\nfunction cumulativeLogNormal(value, mean, stdev) {\n  return cumulativeNormal(Math.log(value), mean, stdev);\n}\nfunction quantileLogNormal(p, mean, stdev) {\n  return Math.exp(quantileNormal(p, mean, stdev));\n}\nfunction lognormal (mean, stdev) {\n  let mu, sigma;\n  const dist = {\n    mean(_) {\n      if (arguments.length) {\n        mu = _ || 0;\n        return dist;\n      } else {\n        return mu;\n      }\n    },\n\n    stdev(_) {\n      if (arguments.length) {\n        sigma = _ == null ? 1 : _;\n        return dist;\n      } else {\n        return sigma;\n      }\n    },\n\n    sample: () => sampleLogNormal(mu, sigma),\n    pdf: value => densityLogNormal(value, mu, sigma),\n    cdf: value => cumulativeLogNormal(value, mu, sigma),\n    icdf: p => quantileLogNormal(p, mu, sigma)\n  };\n  return dist.mean(mean).stdev(stdev);\n}\n\nfunction mixture (dists, weights) {\n  let m = 0,\n      w;\n\n  function normalize(x) {\n    const w = [];\n    let sum = 0,\n        i;\n\n    for (i = 0; i < m; ++i) {\n      sum += w[i] = x[i] == null ? 1 : +x[i];\n    }\n\n    for (i = 0; i < m; ++i) {\n      w[i] /= sum;\n    }\n\n    return w;\n  }\n\n  const dist = {\n    weights(_) {\n      if (arguments.length) {\n        w = normalize(weights = _ || []);\n        return dist;\n      }\n\n      return weights;\n    },\n\n    distributions(_) {\n      if (arguments.length) {\n        if (_) {\n          m = _.length;\n          dists = _;\n        } else {\n          m = 0;\n          dists = [];\n        }\n\n        return dist.weights(weights);\n      }\n\n      return dists;\n    },\n\n    sample() {\n      const r = random();\n      let d = dists[m - 1],\n          v = w[0],\n          i = 0; // first select distribution\n\n      for (; i < m - 1; v += w[++i]) {\n        if (r < v) {\n          d = dists[i];\n          break;\n        }\n      } // then sample from it\n\n\n      return d.sample();\n    },\n\n    pdf(x) {\n      let p = 0,\n          i = 0;\n\n      for (; i < m; ++i) {\n        p += w[i] * dists[i].pdf(x);\n      }\n\n      return p;\n    },\n\n    cdf(x) {\n      let p = 0,\n          i = 0;\n\n      for (; i < m; ++i) {\n        p += w[i] * dists[i].cdf(x);\n      }\n\n      return p;\n    },\n\n    icdf() {\n      throw Error('Mixture icdf not supported.');\n    }\n\n  };\n  return dist.distributions(dists).weights(weights);\n}\n\nfunction sampleUniform(min, max) {\n  if (max == null) {\n    max = min == null ? 1 : min;\n    min = 0;\n  }\n\n  return min + (max - min) * random();\n}\nfunction densityUniform(value, min, max) {\n  if (max == null) {\n    max = min == null ? 1 : min;\n    min = 0;\n  }\n\n  return value >= min && value <= max ? 1 / (max - min) : 0;\n}\nfunction cumulativeUniform(value, min, max) {\n  if (max == null) {\n    max = min == null ? 1 : min;\n    min = 0;\n  }\n\n  return value < min ? 0 : value > max ? 1 : (value - min) / (max - min);\n}\nfunction quantileUniform(p, min, max) {\n  if (max == null) {\n    max = min == null ? 1 : min;\n    min = 0;\n  }\n\n  return p >= 0 && p <= 1 ? min + p * (max - min) : NaN;\n}\nfunction uniform (min, max) {\n  let a, b;\n  const dist = {\n    min(_) {\n      if (arguments.length) {\n        a = _ || 0;\n        return dist;\n      } else {\n        return a;\n      }\n    },\n\n    max(_) {\n      if (arguments.length) {\n        b = _ == null ? 1 : _;\n        return dist;\n      } else {\n        return b;\n      }\n    },\n\n    sample: () => sampleUniform(a, b),\n    pdf: value => densityUniform(value, a, b),\n    cdf: value => cumulativeUniform(value, a, b),\n    icdf: p => quantileUniform(p, a, b)\n  };\n\n  if (max == null) {\n    max = min == null ? 1 : min;\n    min = 0;\n  }\n\n  return dist.min(min).max(max);\n}\n\n// Ordinary Least Squares\nfunction ols (uX, uY, uXY, uX2) {\n  const delta = uX2 - uX * uX,\n        slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta,\n        intercept = uY - slope * uX;\n  return [intercept, slope];\n}\n\nfunction points(data, x, y, sort) {\n  data = data.filter(d => {\n    let u = x(d),\n        v = y(d);\n    return u != null && (u = +u) >= u && v != null && (v = +v) >= v;\n  });\n\n  if (sort) {\n    data.sort((a, b) => x(a) - x(b));\n  }\n\n  const n = data.length,\n        X = new Float64Array(n),\n        Y = new Float64Array(n); // extract values, calculate means\n\n  let i = 0,\n      ux = 0,\n      uy = 0,\n      xv,\n      yv,\n      d;\n\n  for (d of data) {\n    X[i] = xv = +x(d);\n    Y[i] = yv = +y(d);\n    ++i;\n    ux += (xv - ux) / i;\n    uy += (yv - uy) / i;\n  } // mean center the data\n\n\n  for (i = 0; i < n; ++i) {\n    X[i] -= ux;\n    Y[i] -= uy;\n  }\n\n  return [X, Y, ux, uy];\n}\nfunction visitPoints(data, x, y, callback) {\n  let i = -1,\n      u,\n      v;\n\n  for (const d of data) {\n    u = x(d);\n    v = y(d);\n\n    if (u != null && (u = +u) >= u && v != null && (v = +v) >= v) {\n      callback(u, v, ++i);\n    }\n  }\n}\n\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\n\nfunction rSquared (data, x, y, uY, predict) {\n  let SSE = 0,\n      SST = 0;\n  visitPoints(data, x, y, (dx, dy) => {\n    const sse = dy - predict(dx),\n          sst = dy - uY;\n    SSE += sse * sse;\n    SST += sst * sst;\n  });\n  return 1 - SSE / SST;\n}\n\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\n\nfunction linear (data, x, y) {\n  let X = 0,\n      Y = 0,\n      XY = 0,\n      X2 = 0,\n      n = 0;\n  visitPoints(data, x, y, (dx, dy) => {\n    ++n;\n    X += (dx - X) / n;\n    Y += (dy - Y) / n;\n    XY += (dx * dy - XY) / n;\n    X2 += (dx * dx - X2) / n;\n  });\n\n  const coef = ols(X, Y, XY, X2),\n        predict = x => coef[0] + coef[1] * x;\n\n  return {\n    coef: coef,\n    predict: predict,\n    rSquared: rSquared(data, x, y, Y, predict)\n  };\n}\n\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\n\nfunction log (data, x, y) {\n  let X = 0,\n      Y = 0,\n      XY = 0,\n      X2 = 0,\n      n = 0;\n  visitPoints(data, x, y, (dx, dy) => {\n    ++n;\n    dx = Math.log(dx);\n    X += (dx - X) / n;\n    Y += (dy - Y) / n;\n    XY += (dx * dy - XY) / n;\n    X2 += (dx * dx - X2) / n;\n  });\n\n  const coef = ols(X, Y, XY, X2),\n        predict = x => coef[0] + coef[1] * Math.log(x);\n\n  return {\n    coef: coef,\n    predict: predict,\n    rSquared: rSquared(data, x, y, Y, predict)\n  };\n}\n\nfunction exp (data, x, y) {\n  // eslint-disable-next-line no-unused-vars\n  const [xv, yv, ux, uy] = points(data, x, y);\n  let YL = 0,\n      XY = 0,\n      XYL = 0,\n      X2Y = 0,\n      n = 0,\n      dx,\n      ly,\n      xy;\n  visitPoints(data, x, y, (_, dy) => {\n    dx = xv[n++];\n    ly = Math.log(dy);\n    xy = dx * dy;\n    YL += (dy * ly - YL) / n;\n    XY += (xy - XY) / n;\n    XYL += (xy * ly - XYL) / n;\n    X2Y += (dx * xy - X2Y) / n;\n  });\n\n  const [c0, c1] = ols(XY / uy, YL / uy, XYL / uy, X2Y / uy),\n        predict = x => Math.exp(c0 + c1 * (x - ux));\n\n  return {\n    coef: [Math.exp(c0 - c1 * ux), c1],\n    predict: predict,\n    rSquared: rSquared(data, x, y, uy, predict)\n  };\n}\n\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\n\nfunction pow (data, x, y) {\n  let X = 0,\n      Y = 0,\n      XY = 0,\n      X2 = 0,\n      YS = 0,\n      n = 0;\n  visitPoints(data, x, y, (dx, dy) => {\n    const lx = Math.log(dx),\n          ly = Math.log(dy);\n    ++n;\n    X += (lx - X) / n;\n    Y += (ly - Y) / n;\n    XY += (lx * ly - XY) / n;\n    X2 += (lx * lx - X2) / n;\n    YS += (dy - YS) / n;\n  });\n\n  const coef = ols(X, Y, XY, X2),\n        predict = x => coef[0] * Math.pow(x, coef[1]);\n\n  coef[0] = Math.exp(coef[0]);\n  return {\n    coef: coef,\n    predict: predict,\n    rSquared: rSquared(data, x, y, YS, predict)\n  };\n}\n\nfunction quad (data, x, y) {\n  const [xv, yv, ux, uy] = points(data, x, y),\n        n = xv.length;\n  let X2 = 0,\n      X3 = 0,\n      X4 = 0,\n      XY = 0,\n      X2Y = 0,\n      i,\n      dx,\n      dy,\n      x2;\n\n  for (i = 0; i < n;) {\n    dx = xv[i];\n    dy = yv[i++];\n    x2 = dx * dx;\n    X2 += (x2 - X2) / i;\n    X3 += (x2 * dx - X3) / i;\n    X4 += (x2 * x2 - X4) / i;\n    XY += (dx * dy - XY) / i;\n    X2Y += (x2 * dy - X2Y) / i;\n  }\n\n  const X2X2 = X4 - X2 * X2,\n        d = X2 * X2X2 - X3 * X3,\n        a = (X2Y * X2 - XY * X3) / d,\n        b = (XY * X2X2 - X2Y * X3) / d,\n        c = -a * X2,\n        predict = x => {\n    x = x - ux;\n    return a * x * x + b * x + c + uy;\n  }; // transform coefficients back from mean-centered space\n\n\n  return {\n    coef: [c - b * ux + a * ux * ux + uy, b - 2 * a * ux, a],\n    predict: predict,\n    rSquared: rSquared(data, x, y, uy, predict)\n  };\n}\n\n// License: https://github.com/HarryStevens/d3-regression/blob/master/LICENSE\n// ... which was adapted from regression-js by Tom Alexander\n// Source: https://github.com/Tom-Alexander/regression-js/blob/master/src/regression.js#L246\n// License: https://github.com/Tom-Alexander/regression-js/blob/master/LICENSE\n\nfunction poly (data, x, y, order) {\n  // use more efficient methods for lower orders\n  if (order === 1) return linear(data, x, y);\n  if (order === 2) return quad(data, x, y);\n  const [xv, yv, ux, uy] = points(data, x, y),\n        n = xv.length,\n        lhs = [],\n        rhs = [],\n        k = order + 1;\n  let i, j, l, v, c;\n\n  for (i = 0; i < k; ++i) {\n    for (l = 0, v = 0; l < n; ++l) {\n      v += Math.pow(xv[l], i) * yv[l];\n    }\n\n    lhs.push(v);\n    c = new Float64Array(k);\n\n    for (j = 0; j < k; ++j) {\n      for (l = 0, v = 0; l < n; ++l) {\n        v += Math.pow(xv[l], i + j);\n      }\n\n      c[j] = v;\n    }\n\n    rhs.push(c);\n  }\n\n  rhs.push(lhs);\n\n  const coef = gaussianElimination(rhs),\n        predict = x => {\n    x -= ux;\n    let y = uy + coef[0] + coef[1] * x + coef[2] * x * x;\n\n    for (i = 3; i < k; ++i) y += coef[i] * Math.pow(x, i);\n\n    return y;\n  };\n\n  return {\n    coef: uncenter(k, coef, -ux, uy),\n    predict: predict,\n    rSquared: rSquared(data, x, y, uy, predict)\n  };\n}\n\nfunction uncenter(k, a, x, y) {\n  const z = Array(k);\n  let i, j, v, c; // initialize to zero\n\n  for (i = 0; i < k; ++i) z[i] = 0; // polynomial expansion\n\n\n  for (i = k - 1; i >= 0; --i) {\n    v = a[i];\n    c = 1;\n    z[i] += v;\n\n    for (j = 1; j <= i; ++j) {\n      c *= (i + 1 - j) / j; // binomial coefficent\n\n      z[i - j] += v * Math.pow(x, j) * c;\n    }\n  } // bias term\n\n\n  z[0] += y;\n  return z;\n} // Given an array for a two-dimensional matrix and the polynomial order,\n// solve A * x = b using Gaussian elimination.\n\n\nfunction gaussianElimination(matrix) {\n  const n = matrix.length - 1,\n        coef = [];\n  let i, j, k, r, t;\n\n  for (i = 0; i < n; ++i) {\n    r = i; // max row\n\n    for (j = i + 1; j < n; ++j) {\n      if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][r])) {\n        r = j;\n      }\n    }\n\n    for (k = i; k < n + 1; ++k) {\n      t = matrix[k][i];\n      matrix[k][i] = matrix[k][r];\n      matrix[k][r] = t;\n    }\n\n    for (j = i + 1; j < n; ++j) {\n      for (k = n; k >= i; k--) {\n        matrix[k][j] -= matrix[k][i] * matrix[i][j] / matrix[i][i];\n      }\n    }\n  }\n\n  for (j = n - 1; j >= 0; --j) {\n    t = 0;\n\n    for (k = j + 1; k < n; ++k) {\n      t += matrix[k][j] * coef[k];\n    }\n\n    coef[j] = (matrix[n][j] - t) / matrix[j][j];\n  }\n\n  return coef;\n}\n\nconst maxiters = 2,\n      epsilon = 1e-12; // Adapted from science.js by Jason Davies\n// Source: https://github.com/jasondavies/science.js/blob/master/src/stats/loess.js\n// License: https://github.com/jasondavies/science.js/blob/master/LICENSE\n\nfunction loess (data, x, y, bandwidth) {\n  const [xv, yv, ux, uy] = points(data, x, y, true),\n        n = xv.length,\n        bw = Math.max(2, ~~(bandwidth * n)),\n        // # nearest neighbors\n  yhat = new Float64Array(n),\n        residuals = new Float64Array(n),\n        robustWeights = new Float64Array(n).fill(1);\n\n  for (let iter = -1; ++iter <= maxiters;) {\n    const interval = [0, bw - 1];\n\n    for (let i = 0; i < n; ++i) {\n      const dx = xv[i],\n            i0 = interval[0],\n            i1 = interval[1],\n            edge = dx - xv[i0] > xv[i1] - dx ? i0 : i1;\n      let W = 0,\n          X = 0,\n          Y = 0,\n          XY = 0,\n          X2 = 0;\n      const denom = 1 / Math.abs(xv[edge] - dx || 1); // avoid singularity!\n\n      for (let k = i0; k <= i1; ++k) {\n        const xk = xv[k],\n              yk = yv[k],\n              w = tricube(Math.abs(dx - xk) * denom) * robustWeights[k],\n              xkw = xk * w;\n        W += w;\n        X += xkw;\n        Y += yk * w;\n        XY += yk * xkw;\n        X2 += xk * xkw;\n      } // linear regression fit\n\n\n      const [a, b] = ols(X / W, Y / W, XY / W, X2 / W);\n      yhat[i] = a + b * dx;\n      residuals[i] = Math.abs(yv[i] - yhat[i]);\n      updateInterval(xv, i + 1, interval);\n    }\n\n    if (iter === maxiters) {\n      break;\n    }\n\n    const medianResidual = Object(d3_array__WEBPACK_IMPORTED_MODULE_0__[\"median\"])(residuals);\n    if (Math.abs(medianResidual) < epsilon) break;\n\n    for (let i = 0, arg, w; i < n; ++i) {\n      arg = residuals[i] / (6 * medianResidual); // default to epsilon (rather than zero) for large deviations\n      // keeping weights tiny but non-zero prevents singularites\n\n      robustWeights[i] = arg >= 1 ? epsilon : (w = 1 - arg * arg) * w;\n    }\n  }\n\n  return output(xv, yhat, ux, uy);\n} // weighting kernel for local regression\n\nfunction tricube(x) {\n  return (x = 1 - x * x * x) * x * x;\n} // advance sliding window interval of nearest neighbors\n\n\nfunction updateInterval(xv, i, interval) {\n  const val = xv[i];\n  let left = interval[0],\n      right = interval[1] + 1;\n  if (right >= xv.length) return; // step right if distance to new right edge is <= distance to old left edge\n  // step when distance is equal to ensure movement over duplicate x values\n\n  while (i > left && xv[right] - val <= val - xv[left]) {\n    interval[0] = ++left;\n    interval[1] = right;\n    ++right;\n  }\n} // generate smoothed output points\n// average points with repeated x values\n\n\nfunction output(xv, yhat, ux, uy) {\n  const n = xv.length,\n        out = [];\n  let i = 0,\n      cnt = 0,\n      prev = [],\n      v;\n\n  for (; i < n; ++i) {\n    v = xv[i] + ux;\n\n    if (prev[0] === v) {\n      // average output values via online update\n      prev[1] += (yhat[i] - prev[1]) / ++cnt;\n    } else {\n      // add new output point\n      cnt = 0;\n      prev[1] += uy;\n      prev = [v, yhat[i]];\n      out.push(prev);\n    }\n  }\n\n  prev[1] += uy;\n  return out;\n}\n\n// subdivide up to accuracy of 0.1 degrees\nconst MIN_RADIANS = 0.1 * Math.PI / 180; // Adaptively sample an interpolated function over a domain extent\n\nfunction sampleCurve (f, extent, minSteps, maxSteps) {\n  minSteps = minSteps || 25;\n  maxSteps = Math.max(minSteps, maxSteps || 200);\n\n  const point = x => [x, f(x)],\n        minX = extent[0],\n        maxX = extent[1],\n        span = maxX - minX,\n        stop = span / maxSteps,\n        prev = [point(minX)],\n        next = [];\n\n  if (minSteps === maxSteps) {\n    // no adaptation, sample uniform grid directly and return\n    for (let i = 1; i < maxSteps; ++i) {\n      prev.push(point(minX + i / minSteps * span));\n    }\n\n    prev.push(point(maxX));\n    return prev;\n  } else {\n    // sample minimum points on uniform grid\n    // then move on to perform adaptive refinement\n    next.push(point(maxX));\n\n    for (let i = minSteps; --i > 0;) {\n      next.push(point(minX + i / minSteps * span));\n    }\n  }\n\n  let p0 = prev[0],\n      p1 = next[next.length - 1];\n\n  while (p1) {\n    // midpoint for potential curve subdivision\n    const pm = point((p0[0] + p1[0]) / 2);\n\n    if (pm[0] - p0[0] >= stop && angleDelta(p0, pm, p1) > MIN_RADIANS) {\n      // maximum resolution has not yet been met, and\n      // subdivision midpoint sufficiently different from endpoint\n      // save subdivision, push midpoint onto the visitation stack\n      next.push(pm);\n    } else {\n      // subdivision midpoint sufficiently similar to endpoint\n      // skip subdivision, store endpoint, move to next point on the stack\n      p0 = p1;\n      prev.push(p1);\n      next.pop();\n    }\n\n    p1 = next[next.length - 1];\n  }\n\n  return prev;\n}\n\nfunction angleDelta(p, q, r) {\n  const a0 = Math.atan2(r[1] - p[1], r[0] - p[0]),\n        a1 = Math.atan2(q[1] - p[1], q[0] - p[0]);\n  return Math.abs(a0 - a1);\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-statistics/build/vega-statistics.module.js?");

/***/ }),

/***/ "./node_modules/vega-themes/build/vega-themes.module.js":
/*!**************************************************************!*\
  !*** ./node_modules/vega-themes/build/vega-themes.module.js ***!
  \**************************************************************/
/*! exports provided: dark, excel, fivethirtyeight, ggplot2, googlecharts, latimes, quartz, urbaninstitute, version, vox */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dark\", function() { return darkTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"excel\", function() { return excelTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fivethirtyeight\", function() { return fiveThirtyEightTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ggplot2\", function() { return ggplot2Theme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"googlecharts\", function() { return googlechartsTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"latimes\", function() { return latimesTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quartz\", function() { return quartzTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"urbaninstitute\", function() { return urbanInstituteTheme; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version$1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"vox\", function() { return voxTheme; });\nvar name = \"vega-themes\";\nvar version = \"2.9.1\";\nvar description = \"Themes for stylized Vega and Vega-Lite visualizations.\";\nvar keywords = [\n\t\"vega\",\n\t\"vega-lite\",\n\t\"themes\",\n\t\"style\"\n];\nvar license = \"BSD-3-Clause\";\nvar author = {\n\tname: \"UW Interactive Data Lab\",\n\turl: \"https://idl.cs.washington.edu\"\n};\nvar contributors = [\n\t{\n\t\tname: \"Emily Gu\",\n\t\turl: \"https://github.com/emilygu\"\n\t},\n\t{\n\t\tname: \"Arvind Satyanarayan\",\n\t\turl: \"http://arvindsatya.com\"\n\t},\n\t{\n\t\tname: \"Jeffrey Heer\",\n\t\turl: \"https://idl.cs.washington.edu\"\n\t},\n\t{\n\t\tname: \"Dominik Moritz\",\n\t\turl: \"https://www.domoritz.de\"\n\t}\n];\nvar main = \"build/vega-themes.js\";\nvar module = \"build/vega-themes.module.js\";\nvar unpkg = \"build/vega-themes.min.js\";\nvar jsdelivr = \"build/vega-themes.min.js\";\nvar types = \"build/vega-themes.module.d.ts\";\nvar repository = {\n\ttype: \"git\",\n\turl: \"https://github.com/vega/vega-themes.git\"\n};\nvar files = [\n\t\"src\",\n\t\"build\"\n];\nvar scripts = {\n\tprebuild: \"yarn clean\",\n\tbuild: \"rollup -c\",\n\tclean: \"rimraf build && rimraf examples/build\",\n\t\"copy:data\": \"rsync -r node_modules/vega-datasets/data/* examples/data\",\n\t\"copy:build\": \"rsync -r build/* examples/build\",\n\t\"deploy:gh\": \"yarn build && mkdir -p examples/build && rsync -r build/* examples/build && gh-pages -d examples\",\n\tprepublishOnly: \"yarn clean && yarn build\",\n\tpreversion: \"yarn lint\",\n\tserve: \"browser-sync start -s -f build examples --serveStatic examples\",\n\tstart: \"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'\",\n\tprepare: \"beemo create-config\",\n\teslintbase: \"beemo eslint .\",\n\tformat: \"yarn eslintbase --fix\",\n\tlint: \"yarn eslintbase\"\n};\nvar devDependencies = {\n\t\"@rollup/plugin-json\": \"^4.1.0\",\n\t\"@rollup/plugin-node-resolve\": \"^9.0.0\",\n\t\"@wessberg/rollup-plugin-ts\": \"^1.3.4\",\n\t\"browser-sync\": \"^2.26.12\",\n\tconcurrently: \"^5.3.0\",\n\t\"gh-pages\": \"^3.1.0\",\n\trollup: \"^2.26.11\",\n\t\"rollup-plugin-bundle-size\": \"^1.0.3\",\n\t\"rollup-plugin-terser\": \"^7.0.2\",\n\ttypescript: \"^4.0.2\",\n\tvega: \"^5.10.0\",\n\t\"vega-lite\": \"^4.8.1\",\n\t\"vega-lite-dev-config\": \"^0.14.6\"\n};\nvar peerDependencies = {\n\tvega: \"*\",\n\t\"vega-lite\": \"*\"\n};\nvar beemo = {\n\tmodule: \"vega-lite-dev-config\",\n\tdrivers: [\n\t\t\"typescript\",\n\t\t\"prettier\",\n\t\t\"eslint\"\n\t]\n};\nvar pkg = {\n\tname: name,\n\tversion: version,\n\tdescription: description,\n\tkeywords: keywords,\n\tlicense: license,\n\tauthor: author,\n\tcontributors: contributors,\n\tmain: main,\n\tmodule: module,\n\tunpkg: unpkg,\n\tjsdelivr: jsdelivr,\n\ttypes: types,\n\trepository: repository,\n\tfiles: files,\n\tscripts: scripts,\n\tdevDependencies: devDependencies,\n\tpeerDependencies: peerDependencies,\n\tbeemo: beemo\n};\n\nconst lightColor = '#fff';\nconst medColor = '#888';\nconst darkTheme = {\n    background: '#333',\n    title: { color: lightColor },\n    style: {\n        'guide-label': {\n            fill: lightColor,\n        },\n        'guide-title': {\n            fill: lightColor,\n        },\n    },\n    axis: {\n        domainColor: lightColor,\n        gridColor: medColor,\n        tickColor: lightColor,\n    },\n};\n\nconst markColor = '#4572a7';\nconst excelTheme = {\n    background: '#fff',\n    arc: { fill: markColor },\n    area: { fill: markColor },\n    line: { stroke: markColor, strokeWidth: 2 },\n    path: { stroke: markColor },\n    rect: { fill: markColor },\n    shape: { stroke: markColor },\n    symbol: { fill: markColor, strokeWidth: 1.5, size: 50 },\n    axis: {\n        bandPosition: 0.5,\n        grid: true,\n        gridColor: '#000000',\n        gridOpacity: 1,\n        gridWidth: 0.5,\n        labelPadding: 10,\n        tickSize: 5,\n        tickWidth: 0.5,\n    },\n    axisBand: {\n        grid: false,\n        tickExtra: true,\n    },\n    legend: {\n        labelBaseline: 'middle',\n        labelFontSize: 11,\n        symbolSize: 50,\n        symbolType: 'square',\n    },\n    range: {\n        category: [\n            '#4572a7',\n            '#aa4643',\n            '#8aa453',\n            '#71598e',\n            '#4598ae',\n            '#d98445',\n            '#94aace',\n            '#d09393',\n            '#b9cc98',\n            '#a99cbc',\n        ],\n    },\n};\n\nconst markColor$1 = '#30a2da';\nconst axisColor = '#cbcbcb';\nconst guideLabelColor = '#999';\nconst guideTitleColor = '#333';\nconst backgroundColor = '#f0f0f0';\nconst blackTitle = '#333';\nconst fiveThirtyEightTheme = {\n    arc: { fill: markColor$1 },\n    area: { fill: markColor$1 },\n    axis: {\n        domainColor: axisColor,\n        grid: true,\n        gridColor: axisColor,\n        gridWidth: 1,\n        labelColor: guideLabelColor,\n        labelFontSize: 10,\n        titleColor: guideTitleColor,\n        tickColor: axisColor,\n        tickSize: 10,\n        titleFontSize: 14,\n        titlePadding: 10,\n        labelPadding: 4,\n    },\n    axisBand: {\n        grid: false,\n    },\n    background: backgroundColor,\n    group: {\n        fill: backgroundColor,\n    },\n    legend: {\n        labelColor: blackTitle,\n        labelFontSize: 11,\n        padding: 1,\n        symbolSize: 30,\n        symbolType: 'square',\n        titleColor: blackTitle,\n        titleFontSize: 14,\n        titlePadding: 10,\n    },\n    line: {\n        stroke: markColor$1,\n        strokeWidth: 2,\n    },\n    path: { stroke: markColor$1, strokeWidth: 0.5 },\n    rect: { fill: markColor$1 },\n    range: {\n        category: [\n            '#30a2da',\n            '#fc4f30',\n            '#e5ae38',\n            '#6d904f',\n            '#8b8b8b',\n            '#b96db8',\n            '#ff9e27',\n            '#56cc60',\n            '#52d2ca',\n            '#52689e',\n            '#545454',\n            '#9fe4f8',\n        ],\n        diverging: ['#cc0020', '#e77866', '#f6e7e1', '#d6e8ed', '#91bfd9', '#1d78b5'],\n        heatmap: ['#d6e8ed', '#cee0e5', '#91bfd9', '#549cc6', '#1d78b5'],\n    },\n    point: {\n        filled: true,\n        shape: 'circle',\n    },\n    shape: { stroke: markColor$1 },\n    bar: {\n        binSpacing: 2,\n        fill: markColor$1,\n        stroke: null,\n    },\n    title: {\n        anchor: 'start',\n        fontSize: 24,\n        fontWeight: 600,\n        offset: 20,\n    },\n};\n\nconst markColor$2 = '#000';\nconst ggplot2Theme = {\n    group: {\n        fill: '#e5e5e5',\n    },\n    arc: { fill: markColor$2 },\n    area: { fill: markColor$2 },\n    line: { stroke: markColor$2 },\n    path: { stroke: markColor$2 },\n    rect: { fill: markColor$2 },\n    shape: { stroke: markColor$2 },\n    symbol: { fill: markColor$2, size: 40 },\n    axis: {\n        domain: false,\n        grid: true,\n        gridColor: '#FFFFFF',\n        gridOpacity: 1,\n        labelColor: '#7F7F7F',\n        labelPadding: 4,\n        tickColor: '#7F7F7F',\n        tickSize: 5.67,\n        titleFontSize: 16,\n        titleFontWeight: 'normal',\n    },\n    legend: {\n        labelBaseline: 'middle',\n        labelFontSize: 11,\n        symbolSize: 40,\n    },\n    range: {\n        category: [\n            '#000000',\n            '#7F7F7F',\n            '#1A1A1A',\n            '#999999',\n            '#333333',\n            '#B0B0B0',\n            '#4D4D4D',\n            '#C9C9C9',\n            '#666666',\n            '#DCDCDC',\n        ],\n    },\n};\n\nconst headlineFontSize = 22;\nconst headlineFontWeight = 'normal';\nconst labelFont = 'Benton Gothic, sans-serif';\nconst labelFontSize = 11.5;\nconst labelFontWeight = 'normal';\nconst markColor$3 = '#82c6df';\n// const markHighlight = '#006d8f';\n// const markDemocrat = '#5789b8';\n// const markRepublican = '#d94f54';\nconst titleFont = 'Benton Gothic Bold, sans-serif';\nconst titleFontWeight = 'normal';\nconst titleFontSize = 13;\nconst colorSchemes = {\n    'category-6': ['#ec8431', '#829eb1', '#c89d29', '#3580b1', '#adc839', '#ab7fb4'],\n    'fire-7': ['#fbf2c7', '#f9e39c', '#f8d36e', '#f4bb6a', '#e68a4f', '#d15a40', '#ab4232'],\n    'fireandice-6': ['#e68a4f', '#f4bb6a', '#f9e39c', '#dadfe2', '#a6b7c6', '#849eae'],\n    'ice-7': ['#edefee', '#dadfe2', '#c4ccd2', '#a6b7c6', '#849eae', '#607785', '#47525d'],\n};\nconst latimesTheme = {\n    background: '#ffffff',\n    title: {\n        anchor: 'start',\n        color: '#000000',\n        font: titleFont,\n        fontSize: headlineFontSize,\n        fontWeight: headlineFontWeight,\n    },\n    arc: { fill: markColor$3 },\n    area: { fill: markColor$3 },\n    line: { stroke: markColor$3, strokeWidth: 2 },\n    path: { stroke: markColor$3 },\n    rect: { fill: markColor$3 },\n    shape: { stroke: markColor$3 },\n    symbol: { fill: markColor$3, size: 30 },\n    axis: {\n        labelFont,\n        labelFontSize,\n        labelFontWeight,\n        titleFont,\n        titleFontSize,\n        titleFontWeight,\n    },\n    axisX: {\n        labelAngle: 0,\n        labelPadding: 4,\n        tickSize: 3,\n    },\n    axisY: {\n        labelBaseline: 'middle',\n        maxExtent: 45,\n        minExtent: 45,\n        tickSize: 2,\n        titleAlign: 'left',\n        titleAngle: 0,\n        titleX: -45,\n        titleY: -11,\n    },\n    legend: {\n        labelFont,\n        labelFontSize,\n        symbolType: 'square',\n        titleFont,\n        titleFontSize,\n        titleFontWeight,\n    },\n    range: {\n        category: colorSchemes['category-6'],\n        diverging: colorSchemes['fireandice-6'],\n        heatmap: colorSchemes['fire-7'],\n        ordinal: colorSchemes['fire-7'],\n        ramp: colorSchemes['fire-7'],\n    },\n};\n\nconst markColor$4 = '#ab5787';\nconst axisColor$1 = '#979797';\nconst quartzTheme = {\n    background: '#f9f9f9',\n    arc: { fill: markColor$4 },\n    area: { fill: markColor$4 },\n    line: { stroke: markColor$4 },\n    path: { stroke: markColor$4 },\n    rect: { fill: markColor$4 },\n    shape: { stroke: markColor$4 },\n    symbol: { fill: markColor$4, size: 30 },\n    axis: {\n        domainColor: axisColor$1,\n        domainWidth: 0.5,\n        gridWidth: 0.2,\n        labelColor: axisColor$1,\n        tickColor: axisColor$1,\n        tickWidth: 0.2,\n        titleColor: axisColor$1,\n    },\n    axisBand: {\n        grid: false,\n    },\n    axisX: {\n        grid: true,\n        tickSize: 10,\n    },\n    axisY: {\n        domain: false,\n        grid: true,\n        tickSize: 0,\n    },\n    legend: {\n        labelFontSize: 11,\n        padding: 1,\n        symbolSize: 30,\n        symbolType: 'square',\n    },\n    range: {\n        category: [\n            '#ab5787',\n            '#51b2e5',\n            '#703c5c',\n            '#168dd9',\n            '#d190b6',\n            '#00609f',\n            '#d365ba',\n            '#154866',\n            '#666666',\n            '#c4c4c4',\n        ],\n    },\n};\n\nconst markColor$5 = '#3e5c69';\nconst voxTheme = {\n    background: '#fff',\n    arc: { fill: markColor$5 },\n    area: { fill: markColor$5 },\n    line: { stroke: markColor$5 },\n    path: { stroke: markColor$5 },\n    rect: { fill: markColor$5 },\n    shape: { stroke: markColor$5 },\n    symbol: { fill: markColor$5 },\n    axis: {\n        domainWidth: 0.5,\n        grid: true,\n        labelPadding: 2,\n        tickSize: 5,\n        tickWidth: 0.5,\n        titleFontWeight: 'normal',\n    },\n    axisBand: {\n        grid: false,\n    },\n    axisX: {\n        gridWidth: 0.2,\n    },\n    axisY: {\n        gridDash: [3],\n        gridWidth: 0.4,\n    },\n    legend: {\n        labelFontSize: 11,\n        padding: 1,\n        symbolType: 'square',\n    },\n    range: {\n        category: ['#3e5c69', '#6793a6', '#182429', '#0570b0', '#3690c0', '#74a9cf', '#a6bddb', '#e2ddf2'],\n    },\n};\n\nconst markColor$6 = '#1696d2';\nconst axisColor$2 = '#000000';\nconst backgroundColor$1 = '#FFFFFF';\nconst font = 'Lato';\nconst labelFont$1 = 'Lato';\nconst sourceFont = 'Lato';\nconst gridColor = '#DEDDDD';\nconst titleFontSize$1 = 18;\nconst colorSchemes$1 = {\n    'main-colors': ['#1696d2', '#d2d2d2', '#000000', '#fdbf11', '#ec008b', '#55b748', '#5c5859', '#db2b27'],\n    'shades-blue': ['#CFE8F3', '#A2D4EC', '#73BFE2', '#46ABDB', '#1696D2', '#12719E', '#0A4C6A', '#062635'],\n    'shades-gray': ['#F5F5F5', '#ECECEC', '#E3E3E3', '#DCDBDB', '#D2D2D2', '#9D9D9D', '#696969', '#353535'],\n    'shades-yellow': ['#FFF2CF', '#FCE39E', '#FDD870', '#FCCB41', '#FDBF11', '#E88E2D', '#CA5800', '#843215'],\n    'shades-magenta': ['#F5CBDF', '#EB99C2', '#E46AA7', '#E54096', '#EC008B', '#AF1F6B', '#761548', '#351123'],\n    'shades-green': ['#DCEDD9', '#BCDEB4', '#98CF90', '#78C26D', '#55B748', '#408941', '#2C5C2D', '#1A2E19'],\n    'shades-black': ['#D5D5D4', '#ADABAC', '#848081', '#5C5859', '#332D2F', '#262223', '#1A1717', '#0E0C0D'],\n    'shades-red': ['#F8D5D4', '#F1AAA9', '#E9807D', '#E25552', '#DB2B27', '#A4201D', '#6E1614', '#370B0A'],\n    'one-group': ['#1696d2', '#000000'],\n    'two-groups-cat-1': ['#1696d2', '#000000'],\n    'two-groups-cat-2': ['#1696d2', '#fdbf11'],\n    'two-groups-cat-3': ['#1696d2', '#db2b27'],\n    'two-groups-seq': ['#a2d4ec', '#1696d2'],\n    'three-groups-cat': ['#1696d2', '#fdbf11', '#000000'],\n    'three-groups-seq': ['#a2d4ec', '#1696d2', '#0a4c6a'],\n    'four-groups-cat-1': ['#000000', '#d2d2d2', '#fdbf11', '#1696d2'],\n    'four-groups-cat-2': ['#1696d2', '#ec0008b', '#fdbf11', '#5c5859'],\n    'four-groups-seq': ['#cfe8f3', '#73bf42', '#1696d2', '#0a4c6a'],\n    'five-groups-cat-1': ['#1696d2', '#fdbf11', '#d2d2d2', '#ec008b', '#000000'],\n    'five-groups-cat-2': ['#1696d2', '#0a4c6a', '#d2d2d2', '#fdbf11', '#332d2f'],\n    'five-groups-seq': ['#cfe8f3', '#73bf42', '#1696d2', '#0a4c6a', '#000000'],\n    'six-groups-cat-1': ['#1696d2', '#ec008b', '#fdbf11', '#000000', '#d2d2d2', '#55b748'],\n    'six-groups-cat-2': ['#1696d2', '#d2d2d2', '#ec008b', '#fdbf11', '#332d2f', '#0a4c6a'],\n    'six-groups-seq': ['#cfe8f3', '#a2d4ec', '#73bfe2', '#46abdb', '#1696d2', '#12719e'],\n    'diverging-colors': ['#ca5800', '#fdbf11', '#fdd870', '#fff2cf', '#cfe8f3', '#73bfe2', '#1696d2', '#0a4c6a'],\n};\nconst urbanInstituteTheme = {\n    background: backgroundColor$1,\n    title: {\n        anchor: 'start',\n        fontSize: titleFontSize$1,\n        font: font,\n    },\n    axisX: {\n        domain: true,\n        domainColor: axisColor$2,\n        domainWidth: 1,\n        grid: false,\n        labelFontSize: 12,\n        labelFont: labelFont$1,\n        labelAngle: 0,\n        tickColor: axisColor$2,\n        tickSize: 5,\n        titleFontSize: 12,\n        titlePadding: 10,\n        titleFont: font,\n    },\n    axisY: {\n        domain: false,\n        domainWidth: 1,\n        grid: true,\n        gridColor: gridColor,\n        gridWidth: 1,\n        labelFontSize: 12,\n        labelFont: labelFont$1,\n        labelPadding: 8,\n        ticks: false,\n        titleFontSize: 12,\n        titlePadding: 10,\n        titleFont: font,\n        titleAngle: 0,\n        titleY: -10,\n        titleX: 18,\n    },\n    legend: {\n        labelFontSize: 12,\n        labelFont: labelFont$1,\n        symbolSize: 100,\n        titleFontSize: 12,\n        titlePadding: 10,\n        titleFont: font,\n        orient: 'right',\n        offset: 10,\n    },\n    view: {\n        stroke: 'transparent',\n    },\n    range: {\n        category: colorSchemes$1['six-groups-cat-1'],\n        diverging: colorSchemes$1['diverging-colors'],\n        heatmap: colorSchemes$1['diverging-colors'],\n        ordinal: colorSchemes$1['six-groups-seq'],\n        ramp: colorSchemes$1['shades-blue'],\n    },\n    area: {\n        fill: markColor$6,\n    },\n    rect: {\n        fill: markColor$6,\n    },\n    line: {\n        color: markColor$6,\n        stroke: markColor$6,\n        strokeWidth: 5,\n    },\n    trail: {\n        color: markColor$6,\n        stroke: markColor$6,\n        strokeWidth: 0,\n        size: 1,\n    },\n    path: {\n        stroke: markColor$6,\n        strokeWidth: 0.5,\n    },\n    point: {\n        filled: true,\n    },\n    text: {\n        font: sourceFont,\n        color: markColor$6,\n        fontSize: 11,\n        align: 'center',\n        fontWeight: 400,\n        size: 11,\n    },\n    style: {\n        bar: {\n            fill: markColor$6,\n            stroke: null,\n        },\n    },\n    arc: { fill: markColor$6 },\n    shape: { stroke: markColor$6 },\n    symbol: { fill: markColor$6, size: 30 },\n};\n\n/**\n * Copyright 2020 Google LLC.\n *\n * Use of this source code is governed by a BSD-style\n * license that can be found in the LICENSE file or at\n * https://developers.google.com/open-source/licenses/bsd\n */\nconst markColor$7 = '#3366CC';\nconst gridColor$1 = '#ccc';\nconst defaultFont = 'Arial, sans-serif';\nconst googlechartsTheme = {\n    arc: { fill: markColor$7 },\n    area: { fill: markColor$7 },\n    path: { stroke: markColor$7 },\n    rect: { fill: markColor$7 },\n    shape: { stroke: markColor$7 },\n    symbol: { stroke: markColor$7 },\n    circle: { fill: markColor$7 },\n    background: '#fff',\n    padding: {\n        top: 10,\n        right: 10,\n        bottom: 10,\n        left: 10,\n    },\n    style: {\n        'guide-label': {\n            font: defaultFont,\n            fontSize: 12,\n        },\n        'guide-title': {\n            font: defaultFont,\n            fontSize: 12,\n        },\n        'group-title': {\n            font: defaultFont,\n            fontSize: 12,\n        },\n    },\n    title: {\n        font: defaultFont,\n        fontSize: 14,\n        fontWeight: 'bold',\n        dy: -3,\n        anchor: 'start',\n    },\n    axis: {\n        gridColor: gridColor$1,\n        tickColor: gridColor$1,\n        domain: false,\n        grid: true,\n    },\n    range: {\n        category: [\n            '#4285F4',\n            '#DB4437',\n            '#F4B400',\n            '#0F9D58',\n            '#AB47BC',\n            '#00ACC1',\n            '#FF7043',\n            '#9E9D24',\n            '#5C6BC0',\n            '#F06292',\n            '#00796B',\n            '#C2185B',\n        ],\n        heatmap: ['#c6dafc', '#5e97f6', '#2a56c6'],\n    },\n};\n\nconst version$1 = pkg.version;\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-themes/build/vega-themes.module.js?");

/***/ }),

/***/ "./node_modules/vega-time/build/vega-time.module.js":
/*!**********************************************************!*\
  !*** ./node_modules/vega-time/build/vega-time.module.js ***!
  \**********************************************************/
/*! exports provided: DATE, DAY, DAYOFYEAR, HOURS, MILLISECONDS, MINUTES, MONTH, QUARTER, SECONDS, TIME_UNITS, WEEK, YEAR, dayofyear, timeBin, timeFloor, timeInterval, timeOffset, timeSequence, timeUnitSpecifier, timeUnits, utcFloor, utcInterval, utcOffset, utcSequence, utcdayofyear, utcweek, week */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DATE\", function() { return DATE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DAY\", function() { return DAY; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DAYOFYEAR\", function() { return DAYOFYEAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HOURS\", function() { return HOURS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MILLISECONDS\", function() { return MILLISECONDS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MINUTES\", function() { return MINUTES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"MONTH\", function() { return MONTH; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"QUARTER\", function() { return QUARTER; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SECONDS\", function() { return SECONDS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TIME_UNITS\", function() { return TIME_UNITS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WEEK\", function() { return WEEK; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"YEAR\", function() { return YEAR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dayofyear\", function() { return dayofyear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeBin\", function() { return bin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeFloor\", function() { return timeFloor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return timeInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeOffset\", function() { return timeOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeSequence\", function() { return timeSequence; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeUnitSpecifier\", function() { return timeUnitSpecifier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeUnits\", function() { return timeUnits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcFloor\", function() { return utcFloor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcInterval\", function() { return utcInterval; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcOffset\", function() { return utcOffset; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcSequence\", function() { return utcSequence; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcdayofyear\", function() { return utcdayofyear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcweek\", function() { return utcweek; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"week\", function() { return week; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_time__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-time */ \"./node_modules/d3-time/src/index.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n\n\n\n\nconst YEAR = 'year';\nconst QUARTER = 'quarter';\nconst MONTH = 'month';\nconst WEEK = 'week';\nconst DATE = 'date';\nconst DAY = 'day';\nconst DAYOFYEAR = 'dayofyear';\nconst HOURS = 'hours';\nconst MINUTES = 'minutes';\nconst SECONDS = 'seconds';\nconst MILLISECONDS = 'milliseconds';\nconst TIME_UNITS = [YEAR, QUARTER, MONTH, WEEK, DATE, DAY, DAYOFYEAR, HOURS, MINUTES, SECONDS, MILLISECONDS];\nconst UNITS = TIME_UNITS.reduce((o, u, i) => (o[u] = 1 + i, o), {});\nfunction timeUnits(units) {\n  const u = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(units).slice(),\n        m = {}; // check validity\n\n  if (!u.length) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing time unit.');\n  u.forEach(unit => {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(UNITS, unit)) {\n      m[unit] = 1;\n    } else {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])(\"Invalid time unit: \".concat(unit, \".\"));\n    }\n  });\n  const numTypes = (m[WEEK] || m[DAY] ? 1 : 0) + (m[QUARTER] || m[MONTH] || m[DATE] ? 1 : 0) + (m[DAYOFYEAR] ? 1 : 0);\n\n  if (numTypes > 1) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])(\"Incompatible time units: \".concat(units));\n  } // ensure proper sort order\n\n\n  u.sort((a, b) => UNITS[a] - UNITS[b]);\n  return u;\n}\nconst defaultSpecifiers = {\n  [YEAR]: '%Y ',\n  [QUARTER]: 'Q%q ',\n  [MONTH]: '%b ',\n  [DATE]: '%d ',\n  [WEEK]: 'W%U ',\n  [DAY]: '%a ',\n  [DAYOFYEAR]: '%j ',\n  [HOURS]: '%H:00',\n  [MINUTES]: '00:%M',\n  [SECONDS]: ':%S',\n  [MILLISECONDS]: '.%L',\n  [\"\".concat(YEAR, \"-\").concat(MONTH)]: '%Y-%m ',\n  [\"\".concat(YEAR, \"-\").concat(MONTH, \"-\").concat(DATE)]: '%Y-%m-%d ',\n  [\"\".concat(HOURS, \"-\").concat(MINUTES)]: '%H:%M'\n};\nfunction timeUnitSpecifier(units, specifiers) {\n  const s = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, defaultSpecifiers, specifiers),\n        u = timeUnits(units),\n        n = u.length;\n  let fmt = '',\n      start = 0,\n      end,\n      key;\n\n  for (start = 0; start < n;) {\n    for (end = u.length; end > start; --end) {\n      key = u.slice(start, end).join('-');\n\n      if (s[key] != null) {\n        fmt += s[key];\n        start = end;\n        break;\n      }\n    }\n  }\n\n  return fmt.trim();\n}\n\nconst t0 = new Date();\n\nfunction localYear(y) {\n  t0.setFullYear(y);\n  t0.setMonth(0);\n  t0.setDate(1);\n  t0.setHours(0, 0, 0, 0);\n  return t0;\n}\n\nfunction dayofyear(d) {\n  return localDayOfYear(new Date(d));\n}\nfunction week(d) {\n  return localWeekNum(new Date(d));\n}\nfunction localDayOfYear(d) {\n  return d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeDay\"].count(localYear(d.getFullYear()) - 1, d);\n}\nfunction localWeekNum(d) {\n  return d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeWeek\"].count(localYear(d.getFullYear()) - 1, d);\n}\nfunction localFirst(y) {\n  return localYear(y).getDay();\n}\nfunction localDate(y, m, d, H, M, S, L) {\n  if (0 <= y && y < 100) {\n    const date = new Date(-1, m, d, H, M, S, L);\n    date.setFullYear(y);\n    return date;\n  }\n\n  return new Date(y, m, d, H, M, S, L);\n}\nfunction utcdayofyear(d) {\n  return utcDayOfYear(new Date(d));\n}\nfunction utcweek(d) {\n  return utcWeekNum(new Date(d));\n}\nfunction utcDayOfYear(d) {\n  const y = Date.UTC(d.getUTCFullYear(), 0, 1);\n  return d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcDay\"].count(y - 1, d);\n}\nfunction utcWeekNum(d) {\n  const y = Date.UTC(d.getUTCFullYear(), 0, 1);\n  return d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcWeek\"].count(y - 1, d);\n}\nfunction utcFirst(y) {\n  t0.setTime(Date.UTC(y, 0, 1));\n  return t0.getUTCDay();\n}\nfunction utcDate(y, m, d, H, M, S, L) {\n  if (0 <= y && y < 100) {\n    const date = new Date(Date.UTC(-1, m, d, H, M, S, L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n\n  return new Date(Date.UTC(y, m, d, H, M, S, L));\n}\n\nfunction floor(units, step, get, inv, newDate) {\n  const s = step || 1,\n        b = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(units),\n        _ = (unit, p, key) => {\n    key = key || unit;\n    return getUnit(get[key], inv[key], unit === b && s, p);\n  };\n\n  const t = new Date(),\n        u = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(units),\n        y = u[YEAR] ? _(YEAR) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(2012),\n        m = u[MONTH] ? _(MONTH) : u[QUARTER] ? _(QUARTER) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"],\n        d = u[WEEK] && u[DAY] ? _(DAY, 1, WEEK + DAY) : u[WEEK] ? _(WEEK, 1) : u[DAY] ? _(DAY, 1) : u[DATE] ? _(DATE, 1) : u[DAYOFYEAR] ? _(DAYOFYEAR, 1) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"one\"],\n        H = u[HOURS] ? _(HOURS) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"],\n        M = u[MINUTES] ? _(MINUTES) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"],\n        S = u[SECONDS] ? _(SECONDS) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"],\n        L = u[MILLISECONDS] ? _(MILLISECONDS) : vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"];\n  return function (v) {\n    t.setTime(+v);\n    const year = y(t);\n    return newDate(year, m(t), d(t, year), H(t), M(t), S(t), L(t));\n  };\n}\n\nfunction getUnit(f, inv, step, phase) {\n  const u = step <= 1 ? f : phase ? (d, y) => phase + step * Math.floor((f(d, y) - phase) / step) : (d, y) => step * Math.floor(f(d, y) / step);\n  return inv ? (d, y) => inv(u(d, y), y) : u;\n} // returns the day of the year based on week number, day of week,\n// and the day of the week for the first day of the year\n\n\nfunction weekday(week, day, firstDay) {\n  return day + week * 7 - (firstDay + 6) % 7;\n} // -- LOCAL TIME --\n\n\nconst localGet = {\n  [YEAR]: d => d.getFullYear(),\n  [QUARTER]: d => Math.floor(d.getMonth() / 3),\n  [MONTH]: d => d.getMonth(),\n  [DATE]: d => d.getDate(),\n  [HOURS]: d => d.getHours(),\n  [MINUTES]: d => d.getMinutes(),\n  [SECONDS]: d => d.getSeconds(),\n  [MILLISECONDS]: d => d.getMilliseconds(),\n  [DAYOFYEAR]: d => localDayOfYear(d),\n  [WEEK]: d => localWeekNum(d),\n  [WEEK + DAY]: (d, y) => weekday(localWeekNum(d), d.getDay(), localFirst(y)),\n  [DAY]: (d, y) => weekday(1, d.getDay(), localFirst(y))\n};\nconst localInv = {\n  [QUARTER]: q => 3 * q,\n  [WEEK]: (w, y) => weekday(w, 0, localFirst(y))\n};\nfunction timeFloor(units, step) {\n  return floor(units, step || 1, localGet, localInv, localDate);\n} // -- UTC TIME --\n\nconst utcGet = {\n  [YEAR]: d => d.getUTCFullYear(),\n  [QUARTER]: d => Math.floor(d.getUTCMonth() / 3),\n  [MONTH]: d => d.getUTCMonth(),\n  [DATE]: d => d.getUTCDate(),\n  [HOURS]: d => d.getUTCHours(),\n  [MINUTES]: d => d.getUTCMinutes(),\n  [SECONDS]: d => d.getUTCSeconds(),\n  [MILLISECONDS]: d => d.getUTCMilliseconds(),\n  [DAYOFYEAR]: d => utcDayOfYear(d),\n  [WEEK]: d => utcWeekNum(d),\n  [DAY]: (d, y) => weekday(1, d.getUTCDay(), utcFirst(y)),\n  [WEEK + DAY]: (d, y) => weekday(utcWeekNum(d), d.getUTCDay(), utcFirst(y))\n};\nconst utcInv = {\n  [QUARTER]: q => 3 * q,\n  [WEEK]: (w, y) => weekday(w, 0, utcFirst(y))\n};\nfunction utcFloor(units, step) {\n  return floor(units, step || 1, utcGet, utcInv, utcDate);\n}\n\nconst timeIntervals = {\n  [YEAR]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeYear\"],\n  [QUARTER]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMonth\"].every(3),\n  [MONTH]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMonth\"],\n  [WEEK]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeWeek\"],\n  [DATE]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeDay\"],\n  [DAY]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeDay\"],\n  [DAYOFYEAR]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeDay\"],\n  [HOURS]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeHour\"],\n  [MINUTES]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMinute\"],\n  [SECONDS]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeSecond\"],\n  [MILLISECONDS]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"timeMillisecond\"]\n};\nconst utcIntervals = {\n  [YEAR]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcYear\"],\n  [QUARTER]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcMonth\"].every(3),\n  [MONTH]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcMonth\"],\n  [WEEK]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcWeek\"],\n  [DATE]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcDay\"],\n  [DAY]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcDay\"],\n  [DAYOFYEAR]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcDay\"],\n  [HOURS]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcHour\"],\n  [MINUTES]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcMinute\"],\n  [SECONDS]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcSecond\"],\n  [MILLISECONDS]: d3_time__WEBPACK_IMPORTED_MODULE_1__[\"utcMillisecond\"]\n};\nfunction timeInterval(unit) {\n  return timeIntervals[unit];\n}\nfunction utcInterval(unit) {\n  return utcIntervals[unit];\n}\n\nfunction offset(ival, date, step) {\n  return ival ? ival.offset(date, step) : undefined;\n}\n\nfunction timeOffset(unit, date, step) {\n  return offset(timeInterval(unit), date, step);\n}\nfunction utcOffset(unit, date, step) {\n  return offset(utcInterval(unit), date, step);\n}\n\nfunction sequence(ival, start, stop, step) {\n  return ival ? ival.range(start, stop, step) : undefined;\n}\n\nfunction timeSequence(unit, start, stop, step) {\n  return sequence(timeInterval(unit), start, stop, step);\n}\nfunction utcSequence(unit, start, stop, step) {\n  return sequence(utcInterval(unit), start, stop, step);\n}\n\nconst durationSecond = 1000,\n      durationMinute = durationSecond * 60,\n      durationHour = durationMinute * 60,\n      durationDay = durationHour * 24,\n      durationWeek = durationDay * 7,\n      durationMonth = durationDay * 30,\n      durationYear = durationDay * 365;\nconst Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],\n      Seconds = Milli.slice(0, -1),\n      Minutes = Seconds.slice(0, -1),\n      Hours = Minutes.slice(0, -1),\n      Day = Hours.slice(0, -1),\n      Week = [YEAR, WEEK],\n      Month = [YEAR, MONTH],\n      Year = [YEAR];\nconst intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];\nfunction bin (opt) {\n  const ext = opt.extent,\n        max = opt.maxbins || 40,\n        target = Math.abs(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"span\"])(ext)) / max;\n  let i = Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"bisector\"])(i => i[2]).right(intervals, target),\n      units,\n      step;\n\n  if (i === intervals.length) {\n    units = Year, step = Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"tickStep\"])(ext[0] / durationYear, ext[1] / durationYear, max);\n  } else if (i) {\n    i = intervals[target / intervals[i - 1][2] < intervals[i][2] / target ? i - 1 : i];\n    units = i[0];\n    step = i[1];\n  } else {\n    units = Milli;\n    step = Math.max(Object(d3_array__WEBPACK_IMPORTED_MODULE_2__[\"tickStep\"])(ext[0], ext[1], max), 1);\n  }\n\n  return {\n    units,\n    step\n  };\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-time/build/vega-time.module.js?");

/***/ }),

/***/ "./node_modules/vega-tooltip/build/vega-tooltip.module.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-tooltip/build/vega-tooltip.module.js ***!
  \****************************************************************/
/*! exports provided: default, DEFAULT_OPTIONS, Handler, calculatePosition, createDefaultStyle, escapeHTML, formatValue, replacer, stringify, version */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DEFAULT_OPTIONS\", function() { return DEFAULT_OPTIONS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Handler\", function() { return Handler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"calculatePosition\", function() { return calculatePosition; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createDefaultStyle\", function() { return createDefaultStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"escapeHTML\", function() { return escapeHTML; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formatValue\", function() { return formatValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replacer\", function() { return replacer; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringify\", function() { return stringify; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version$1; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\nvar name = \"vega-tooltip\";\nvar version = \"0.24.2\";\nvar description = \"A tooltip plugin for Vega-Lite and Vega visualizations.\";\nvar keywords = [\n\t\"vega-lite\",\n\t\"vega\",\n\t\"tooltip\"\n];\nvar repository = {\n\ttype: \"git\",\n\turl: \"https://github.com/vega/vega-tooltip.git\"\n};\nvar author = {\n\tname: \"UW Interactive Data Lab\",\n\turl: \"https://idl.cs.washington.edu\"\n};\nvar collaborators = [\n\t\"Dominik Moritz\",\n\t\"Sira Horradarn\",\n\t\"Zening Qu\",\n\t\"Kanit Wongsuphasawat\",\n\t\"Yuri Astrakhan\",\n\t\"Jeffrey Heer\"\n];\nvar license = \"BSD-3-Clause\";\nvar bugs = {\n\turl: \"https://github.com/vega/vega-tooltip/issues\"\n};\nvar homepage = \"https://github.com/vega/vega-tooltip#readme\";\nvar main = \"build/vega-tooltip.js\";\nvar module = \"build/vega-tooltip.module.js\";\nvar unpkg = \"build/vega-tooltip.min.js\";\nvar jsdelivr = \"build/vega-tooltip.min.js\";\nvar types = \"build/vega-tooltip.module.d.ts\";\nvar files = [\n\t\"src\",\n\t\"build\",\n\t\"types\"\n];\nvar scripts = {\n\tprebuild: \"yarn clean && yarn build:style\",\n\tbuild: \"rollup -c\",\n\t\"build:style\": \"./build-style.sh\",\n\tclean: \"rimraf build && rimraf src/style.ts\",\n\t\"copy:data\": \"rsync -r node_modules/vega-datasets/data/* examples/data\",\n\t\"copy:build\": \"rsync -r build/* examples/build\",\n\t\"deploy:gh\": \"yarn build && yarn copy:build && gh-pages -d examples && yarn clean\",\n\tprepublishOnly: \"yarn clean && yarn build\",\n\tpreversion: \"yarn lint && yarn test\",\n\tserve: \"browser-sync start -s -f build examples --serveStatic examples\",\n\tstart: \"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'\",\n\tpretest: \"yarn build:style\",\n\ttest: \"beemo jest\",\n\t\"test:inspect\": \"node --inspect-brk ./node_modules/.bin/jest --runInBand\",\n\tprepare: \"beemo create-config\",\n\tprettierbase: \"beemo prettier '*.{css,scss,html}'\",\n\teslintbase: \"beemo eslint .\",\n\tformat: \"yarn eslintbase --fix && yarn prettierbase --write\",\n\tlint: \"yarn eslintbase && yarn prettierbase --check\"\n};\nvar devDependencies = {\n\t\"@rollup/plugin-json\": \"^4.1.0\",\n\t\"@rollup/plugin-node-resolve\": \"^9.0.0\",\n\t\"@wessberg/rollup-plugin-ts\": \"^1.3.4\",\n\t\"browser-sync\": \"^2.26.12\",\n\tconcurrently: \"^5.3.0\",\n\t\"gh-pages\": \"^3.1.0\",\n\t\"node-sass\": \"^4.14.1\",\n\tpath: \"^0.12.7\",\n\trollup: \"^2.28.1\",\n\t\"rollup-plugin-bundle-size\": \"^1.0.3\",\n\t\"rollup-plugin-terser\": \"^7.0.2\",\n\ttypescript: \"~4.0.3\",\n\t\"vega-datasets\": \"^2.1.0\",\n\t\"vega-lite-dev-config\": \"^0.14.6\",\n\t\"vega-typings\": \"^0.19.0\"\n};\nvar dependencies = {\n\t\"vega-util\": \"^1.15.2\"\n};\nvar beemo = {\n\tmodule: \"vega-lite-dev-config\",\n\tdrivers: [\n\t\t\"typescript\",\n\t\t\"prettier\",\n\t\t\"eslint\",\n\t\t\"babel\",\n\t\t\"jest\"\n\t],\n\teslint: {\n\t\tignore: [\n\t\t\t\"types\"\n\t\t]\n\t},\n\ttypescript: {\n\t\tcompilerOptions: {\n\t\t\ttypeRoots: [\n\t\t\t\t\"node_modules/@types\",\n\t\t\t\t\"types\"\n\t\t\t]\n\t\t}\n\t}\n};\nvar pkg = {\n\tname: name,\n\tversion: version,\n\tdescription: description,\n\tkeywords: keywords,\n\trepository: repository,\n\tauthor: author,\n\tcollaborators: collaborators,\n\tlicense: license,\n\tbugs: bugs,\n\thomepage: homepage,\n\tmain: main,\n\tmodule: module,\n\tunpkg: unpkg,\n\tjsdelivr: jsdelivr,\n\ttypes: types,\n\tfiles: files,\n\tscripts: scripts,\n\tdevDependencies: devDependencies,\n\tdependencies: dependencies,\n\tbeemo: beemo\n};\n\n// generated with build-style.sh\nvar defaultStyle = `#vg-tooltip-element {\n  visibility: hidden;\n  padding: 8px;\n  position: fixed;\n  z-index: 1000;\n  font-family: sans-serif;\n  font-size: 11px;\n  border-radius: 3px;\n  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);\n  /* The default theme is the light theme. */\n  background-color: rgba(255, 255, 255, 0.95);\n  border: 1px solid #d9d9d9;\n  color: black; }\n  #vg-tooltip-element.visible {\n    visibility: visible; }\n  #vg-tooltip-element h2 {\n    margin-top: 0;\n    margin-bottom: 10px;\n    font-size: 13px; }\n  #vg-tooltip-element img {\n    max-width: 200px;\n    max-height: 200px; }\n  #vg-tooltip-element table {\n    border-spacing: 0; }\n    #vg-tooltip-element table tr {\n      border: none; }\n      #vg-tooltip-element table tr td {\n        overflow: hidden;\n        text-overflow: ellipsis;\n        padding-top: 2px;\n        padding-bottom: 2px; }\n        #vg-tooltip-element table tr td.key {\n          color: #808080;\n          max-width: 150px;\n          text-align: right;\n          padding-right: 4px; }\n        #vg-tooltip-element table tr td.value {\n          display: block;\n          max-width: 300px;\n          max-height: 7em;\n          text-align: left; }\n  #vg-tooltip-element.dark-theme {\n    background-color: rgba(32, 32, 32, 0.9);\n    border: 1px solid #f5f5f5;\n    color: white; }\n    #vg-tooltip-element.dark-theme td.key {\n      color: #bfbfbf; }\n`;\n\nconst EL_ID = 'vg-tooltip-element';\nconst DEFAULT_OPTIONS = {\n    /**\n     * X offset.\n     */\n    offsetX: 10,\n    /**\n     * Y offset.\n     */\n    offsetY: 10,\n    /**\n     * ID of the tooltip element.\n     */\n    id: EL_ID,\n    /**\n     * ID of the tooltip CSS style.\n     */\n    styleId: 'vega-tooltip-style',\n    /**\n     * The name of the theme. You can use the CSS class called [THEME]-theme to style the tooltips.\n     *\n     * There are two predefined themes: \"light\" (default) and \"dark\".\n     */\n    theme: 'light',\n    /**\n     * Do not use the default styles provided by Vega Tooltip. If you enable this option, you need to use your own styles. It is not necessary to disable the default style when using a custom theme.\n     */\n    disableDefaultStyle: false,\n    /**\n     * HTML sanitizer function that removes dangerous HTML to prevent XSS.\n     *\n     * This should be a function from string to string. You may replace it with a formatter such as a markdown formatter.\n     */\n    sanitize: escapeHTML,\n    /**\n     * The maximum recursion depth when printing objects in the tooltip.\n     */\n    maxDepth: 2,\n};\n/**\n * Escape special HTML characters.\n *\n * @param value A value to convert to string and HTML-escape.\n */\nfunction escapeHTML(value) {\n    return String(value).replace(/&/g, '&amp;').replace(/</g, '&lt;');\n}\nfunction createDefaultStyle(id) {\n    // Just in case this id comes from a user, ensure these is no security issues\n    if (!/^[A-Za-z]+[-:.\\w]*$/.test(id)) {\n        throw new Error('Invalid HTML ID');\n    }\n    return defaultStyle.toString().replace(EL_ID, id);\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\n\n/**\n * Format the value to be shown in the tooltip.\n *\n * @param value The value to show in the tooltip.\n * @param valueToHtml Function to convert a single cell value to an HTML string\n */\nfunction formatValue(value, valueToHtml, maxDepth) {\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value)) {\n        return `[${value.map((v) => valueToHtml(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(v) ? v : stringify(v, maxDepth))).join(', ')}]`;\n    }\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value)) {\n        let content = '';\n        const _a = value, { title, image } = _a, rest = __rest(_a, [\"title\", \"image\"]);\n        if (title) {\n            content += `<h2>${valueToHtml(title)}</h2>`;\n        }\n        if (image) {\n            content += `<img src=\"${valueToHtml(image)}\">`;\n        }\n        const keys = Object.keys(rest);\n        if (keys.length > 0) {\n            content += '<table>';\n            for (const key of keys) {\n                let val = rest[key];\n                // ignore undefined properties\n                if (val === undefined) {\n                    continue;\n                }\n                if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(val)) {\n                    val = stringify(val, maxDepth);\n                }\n                content += `<tr><td class=\"key\">${valueToHtml(key)}:</td><td class=\"value\">${valueToHtml(val)}</td></tr>`;\n            }\n            content += `</table>`;\n        }\n        return content || '{}'; // show empty object if there are no properties\n    }\n    return valueToHtml(value);\n}\nfunction replacer(maxDepth) {\n    const stack = [];\n    return function (key, value) {\n        if (typeof value !== 'object' || value === null) {\n            return value;\n        }\n        const pos = stack.indexOf(this) + 1;\n        stack.length = pos;\n        if (stack.length > maxDepth) {\n            return '[Object]';\n        }\n        if (stack.indexOf(value) >= 0) {\n            return '[Circular]';\n        }\n        stack.push(value);\n        return value;\n    };\n}\n/**\n * Stringify any JS object to valid JSON\n */\nfunction stringify(obj, maxDepth) {\n    return JSON.stringify(obj, replacer(maxDepth));\n}\n\n/**\n * Position the tooltip\n *\n * @param event The mouse event.\n * @param tooltipBox\n * @param offsetX Horizontal offset.\n * @param offsetY Vertical offset.\n */\nfunction calculatePosition(event, tooltipBox, offsetX, offsetY) {\n    let x = event.clientX + offsetX;\n    if (x + tooltipBox.width > window.innerWidth) {\n        x = +event.clientX - offsetX - tooltipBox.width;\n    }\n    let y = event.clientY + offsetY;\n    if (y + tooltipBox.height > window.innerHeight) {\n        y = +event.clientY - offsetY - tooltipBox.height;\n    }\n    return { x, y };\n}\n\n/**\n * The tooltip handler class.\n */\nclass Handler {\n    /**\n     * Create the tooltip handler and initialize the element and style.\n     *\n     * @param options Tooltip Options\n     */\n    constructor(options) {\n        this.options = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);\n        const elementId = this.options.id;\n        // bind this to call\n        this.call = this.tooltipHandler.bind(this);\n        // prepend a default stylesheet for tooltips to the head\n        if (!this.options.disableDefaultStyle && !document.getElementById(this.options.styleId)) {\n            const style = document.createElement('style');\n            style.setAttribute('id', this.options.styleId);\n            style.innerHTML = createDefaultStyle(elementId);\n            const head = document.head;\n            if (head.childNodes.length > 0) {\n                head.insertBefore(style, head.childNodes[0]);\n            }\n            else {\n                head.appendChild(style);\n            }\n        }\n        // append a div element that we use as a tooltip unless it already exists\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        this.el = document.getElementById(elementId);\n        if (!this.el) {\n            this.el = document.createElement('div');\n            this.el.setAttribute('id', elementId);\n            this.el.classList.add('vg-tooltip');\n            document.body.appendChild(this.el);\n        }\n    }\n    /**\n     * The tooltip handler function.\n     */\n    tooltipHandler(handler, event, item, value) {\n        // console.log(handler, event, item, value);\n        // hide tooltip for null, undefined, or empty string values\n        if (value == null || value === '') {\n            this.el.classList.remove('visible', `${this.options.theme}-theme`);\n            return;\n        }\n        // set the tooltip content\n        this.el.innerHTML = formatValue(value, this.options.sanitize, this.options.maxDepth);\n        // make the tooltip visible\n        this.el.classList.add('visible', `${this.options.theme}-theme`);\n        const { x, y } = calculatePosition(event, this.el.getBoundingClientRect(), this.options.offsetX, this.options.offsetY);\n        this.el.setAttribute('style', `top: ${y}px; left: ${x}px`);\n    }\n}\n\nconst version$1 = pkg.version;\n/**\n * Create a tooltip handler and register it with the provided view.\n *\n * @param view The Vega view.\n * @param opt Tooltip options.\n */\nfunction index (view, opt) {\n    const handler = new Handler(opt);\n    view.tooltip(handler.call).run();\n    return handler;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-tooltip/build/vega-tooltip.module.js?");

/***/ }),

/***/ "./node_modules/vega-transforms/build/vega-transforms.module.js":
/*!**********************************************************************!*\
  !*** ./node_modules/vega-transforms/build/vega-transforms.module.js ***!
  \**********************************************************************/
/*! exports provided: aggregate, bin, collect, compare, countpattern, cross, density, dotbin, expression, extent, facet, field, filter, flatten, fold, formula, generate, impute, joinaggregate, kde, key, load, lookup, multiextent, multivalues, params, pivot, prefacet, project, proxy, quantile, relay, sample, sequence, sieve, subflow, timeunit, tupleindex, values, window */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"aggregate\", function() { return Aggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bin\", function() { return Bin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"collect\", function() { return Collect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compare\", function() { return Compare; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"countpattern\", function() { return CountPattern; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cross\", function() { return Cross; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"density\", function() { return Density; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dotbin\", function() { return DotBin; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expression\", function() { return Expression; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extent\", function() { return Extent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"facet\", function() { return Facet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"field\", function() { return Field; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return Filter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flatten\", function() { return Flatten; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fold\", function() { return Fold; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"formula\", function() { return Formula; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return Generate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"impute\", function() { return Impute; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"joinaggregate\", function() { return JoinAggregate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"kde\", function() { return KDE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"key\", function() { return Key; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"load\", function() { return Load; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lookup\", function() { return Lookup; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multiextent\", function() { return MultiExtent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"multivalues\", function() { return MultiValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"params\", function() { return Params; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pivot\", function() { return Pivot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"prefacet\", function() { return PreFacet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"project\", function() { return Project; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"proxy\", function() { return Proxy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quantile\", function() { return Quantile; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"relay\", function() { return Relay; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sample\", function() { return Sample; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sequence\", function() { return Sequence; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sieve\", function() { return Sieve; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"subflow\", function() { return Subflow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"timeunit\", function() { return TimeUnit; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tupleindex\", function() { return TupleIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"values\", function() { return Values; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"window\", function() { return Window; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_statistics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-statistics */ \"./node_modules/vega-statistics/build/vega-statistics.module.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var vega_time__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-time */ \"./node_modules/vega-time/build/vega-time.module.js\");\n\n\n\n\n\n\nfunction multikey(f) {\n  return x => {\n    const n = f.length;\n    let i = 1,\n        k = String(f[0](x));\n\n    for (; i < n; ++i) {\n      k += '|' + f[i](x);\n    }\n\n    return k;\n  };\n}\nfunction groupkey(fields) {\n  return !fields || !fields.length ? function () {\n    return '';\n  } : fields.length === 1 ? fields[0] : multikey(fields);\n}\n\nfunction measureName(op, field, as) {\n  return as || op + (!field ? '' : '_' + field);\n}\n\nconst noop = () => {};\n\nconst base_op = {\n  init: noop,\n  add: noop,\n  rem: noop,\n  idx: 0\n};\nconst AggregateOps = {\n  values: {\n    init: m => m.cell.store = true,\n    value: m => m.cell.data.values(),\n    idx: -1\n  },\n  count: {\n    value: m => m.cell.num\n  },\n  __count__: {\n    value: m => m.missing + m.valid\n  },\n  missing: {\n    value: m => m.missing\n  },\n  valid: {\n    value: m => m.valid\n  },\n  sum: {\n    init: m => m.sum = 0,\n    value: m => m.sum,\n    add: (m, v) => m.sum += +v,\n    rem: (m, v) => m.sum -= v\n  },\n  product: {\n    init: m => m.product = 1,\n    value: m => m.valid ? m.product : undefined,\n    add: (m, v) => m.product *= v,\n    rem: (m, v) => m.product /= v\n  },\n  mean: {\n    init: m => m.mean = 0,\n    value: m => m.valid ? m.mean : undefined,\n    add: (m, v) => (m.mean_d = v - m.mean, m.mean += m.mean_d / m.valid),\n    rem: (m, v) => (m.mean_d = v - m.mean, m.mean -= m.valid ? m.mean_d / m.valid : m.mean)\n  },\n  average: {\n    value: m => m.valid ? m.mean : undefined,\n    req: ['mean'],\n    idx: 1\n  },\n  variance: {\n    init: m => m.dev = 0,\n    value: m => m.valid > 1 ? m.dev / (m.valid - 1) : undefined,\n    add: (m, v) => m.dev += m.mean_d * (v - m.mean),\n    rem: (m, v) => m.dev -= m.mean_d * (v - m.mean),\n    req: ['mean'],\n    idx: 1\n  },\n  variancep: {\n    value: m => m.valid > 1 ? m.dev / m.valid : undefined,\n    req: ['variance'],\n    idx: 2\n  },\n  stdev: {\n    value: m => m.valid > 1 ? Math.sqrt(m.dev / (m.valid - 1)) : undefined,\n    req: ['variance'],\n    idx: 2\n  },\n  stdevp: {\n    value: m => m.valid > 1 ? Math.sqrt(m.dev / m.valid) : undefined,\n    req: ['variance'],\n    idx: 2\n  },\n  stderr: {\n    value: m => m.valid > 1 ? Math.sqrt(m.dev / (m.valid * (m.valid - 1))) : undefined,\n    req: ['variance'],\n    idx: 2\n  },\n  distinct: {\n    value: m => m.cell.data.distinct(m.get),\n    req: ['values'],\n    idx: 3\n  },\n  ci0: {\n    value: m => m.cell.data.ci0(m.get),\n    req: ['values'],\n    idx: 3\n  },\n  ci1: {\n    value: m => m.cell.data.ci1(m.get),\n    req: ['values'],\n    idx: 3\n  },\n  median: {\n    value: m => m.cell.data.q2(m.get),\n    req: ['values'],\n    idx: 3\n  },\n  q1: {\n    value: m => m.cell.data.q1(m.get),\n    req: ['values'],\n    idx: 3\n  },\n  q3: {\n    value: m => m.cell.data.q3(m.get),\n    req: ['values'],\n    idx: 3\n  },\n  min: {\n    init: m => m.min = undefined,\n    value: m => m.min = Number.isNaN(m.min) ? m.cell.data.min(m.get) : m.min,\n    add: (m, v) => {\n      if (v < m.min || m.min === undefined) m.min = v;\n    },\n    rem: (m, v) => {\n      if (v <= m.min) m.min = NaN;\n    },\n    req: ['values'],\n    idx: 4\n  },\n  max: {\n    init: m => m.max = undefined,\n    value: m => m.max = Number.isNaN(m.max) ? m.cell.data.max(m.get) : m.max,\n    add: (m, v) => {\n      if (v > m.max || m.max === undefined) m.max = v;\n    },\n    rem: (m, v) => {\n      if (v >= m.max) m.max = NaN;\n    },\n    req: ['values'],\n    idx: 4\n  },\n  argmin: {\n    init: m => m.argmin = undefined,\n    value: m => m.argmin || m.cell.data.argmin(m.get),\n    add: (m, v, t) => {\n      if (v < m.min) m.argmin = t;\n    },\n    rem: (m, v) => {\n      if (v <= m.min) m.argmin = undefined;\n    },\n    req: ['min', 'values'],\n    idx: 3\n  },\n  argmax: {\n    init: m => m.argmax = undefined,\n    value: m => m.argmax || m.cell.data.argmax(m.get),\n    add: (m, v, t) => {\n      if (v > m.max) m.argmax = t;\n    },\n    rem: (m, v) => {\n      if (v >= m.max) m.argmax = undefined;\n    },\n    req: ['max', 'values'],\n    idx: 3\n  }\n};\nconst ValidAggregateOps = Object.keys(AggregateOps);\n\nfunction measure(key, value) {\n  return out => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n    name: key,\n    out: out || key\n  }, base_op, value);\n}\n\nValidAggregateOps.forEach(key => {\n  AggregateOps[key] = measure(key, AggregateOps[key]);\n});\nfunction createMeasure(op, name) {\n  return AggregateOps[op](name);\n}\n\nfunction compareIndex(a, b) {\n  return a.idx - b.idx;\n}\n\nfunction resolve(agg) {\n  const map = {};\n  agg.forEach(a => map[a.name] = a);\n\n  const getreqs = a => {\n    if (!a.req) return;\n    a.req.forEach(key => {\n      if (!map[key]) getreqs(map[key] = AggregateOps[key]());\n    });\n  };\n\n  agg.forEach(getreqs);\n  return Object.values(map).sort(compareIndex);\n}\n\nfunction init() {\n  this.valid = 0;\n  this.missing = 0;\n\n  this._ops.forEach(op => op.init(this));\n}\n\nfunction add(v, t) {\n  if (v == null || v === '') {\n    ++this.missing;\n    return;\n  }\n\n  if (v !== v) return;\n  ++this.valid;\n\n  this._ops.forEach(op => op.add(this, v, t));\n}\n\nfunction rem(v, t) {\n  if (v == null || v === '') {\n    --this.missing;\n    return;\n  }\n\n  if (v !== v) return;\n  --this.valid;\n\n  this._ops.forEach(op => op.rem(this, v, t));\n}\n\nfunction set(t) {\n  this._out.forEach(op => t[op.out] = op.value(this));\n\n  return t;\n}\n\nfunction compileMeasures(agg, field) {\n  const get = field || vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"],\n        ops = resolve(agg),\n        out = agg.slice().sort(compareIndex);\n\n  function ctr(cell) {\n    this._ops = ops;\n    this._out = out;\n    this.cell = cell;\n    this.init();\n  }\n\n  ctr.prototype.init = init;\n  ctr.prototype.add = add;\n  ctr.prototype.rem = rem;\n  ctr.prototype.set = set;\n  ctr.prototype.get = get;\n  ctr.fields = agg.map(op => op.out);\n  return ctr;\n}\n\nfunction TupleStore(key) {\n  this._key = key ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"])(key) : vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"];\n  this.reset();\n}\nconst prototype = TupleStore.prototype;\n\nprototype.reset = function () {\n  this._add = [];\n  this._rem = [];\n  this._ext = null;\n  this._get = null;\n  this._q = null;\n};\n\nprototype.add = function (v) {\n  this._add.push(v);\n};\n\nprototype.rem = function (v) {\n  this._rem.push(v);\n};\n\nprototype.values = function () {\n  this._get = null;\n  if (this._rem.length === 0) return this._add;\n  const a = this._add,\n        r = this._rem,\n        k = this._key,\n        n = a.length,\n        m = r.length,\n        x = Array(n - m),\n        map = {};\n  let i, j, v; // use unique key field to clear removed values\n\n  for (i = 0; i < m; ++i) {\n    map[k(r[i])] = 1;\n  }\n\n  for (i = 0, j = 0; i < n; ++i) {\n    if (map[k(v = a[i])]) {\n      map[k(v)] = 0;\n    } else {\n      x[j++] = v;\n    }\n  }\n\n  this._rem = [];\n  return this._add = x;\n}; // memoizing statistics methods\n\n\nprototype.distinct = function (get) {\n  const v = this.values(),\n        map = {};\n  let n = v.length,\n      count = 0,\n      s;\n\n  while (--n >= 0) {\n    s = get(v[n]) + '';\n\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(map, s)) {\n      map[s] = 1;\n      ++count;\n    }\n  }\n\n  return count;\n};\n\nprototype.extent = function (get) {\n  if (this._get !== get || !this._ext) {\n    const v = this.values(),\n          i = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extentIndex\"])(v, get);\n    this._ext = [v[i[0]], v[i[1]]];\n    this._get = get;\n  }\n\n  return this._ext;\n};\n\nprototype.argmin = function (get) {\n  return this.extent(get)[0] || {};\n};\n\nprototype.argmax = function (get) {\n  return this.extent(get)[1] || {};\n};\n\nprototype.min = function (get) {\n  const m = this.extent(get)[0];\n  return m != null ? get(m) : undefined;\n};\n\nprototype.max = function (get) {\n  const m = this.extent(get)[1];\n  return m != null ? get(m) : undefined;\n};\n\nprototype.quartile = function (get) {\n  if (this._get !== get || !this._q) {\n    this._q = Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"quartiles\"])(this.values(), get);\n    this._get = get;\n  }\n\n  return this._q;\n};\n\nprototype.q1 = function (get) {\n  return this.quartile(get)[0];\n};\n\nprototype.q2 = function (get) {\n  return this.quartile(get)[1];\n};\n\nprototype.q3 = function (get) {\n  return this.quartile(get)[2];\n};\n\nprototype.ci = function (get) {\n  if (this._get !== get || !this._ci) {\n    this._ci = Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"bootstrapCI\"])(this.values(), 1000, 0.05, get);\n    this._get = get;\n  }\n\n  return this._ci;\n};\n\nprototype.ci0 = function (get) {\n  return this.ci(get)[0];\n};\n\nprototype.ci1 = function (get) {\n  return this.ci(get)[1];\n};\n\n/**\n * Group-by aggregation operator.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.\n * @param {Array<function(object): *>} [params.fields] - An array of accessors to aggregate.\n * @param {Array<string>} [params.ops] - An array of strings indicating aggregation operations.\n * @param {Array<string>} [params.as] - An array of output field names for aggregated values.\n * @param {boolean} [params.cross=false] - A flag indicating that the full\n *   cross-product of groupby values should be generated, including empty cells.\n *   If true, the drop parameter is ignored and empty cells are retained.\n * @param {boolean} [params.drop=true] - A flag indicating if empty cells should be removed.\n */\n\nfunction Aggregate(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n  this._adds = []; // array of added output tuples\n\n  this._mods = []; // array of modified output tuples\n\n  this._alen = 0; // number of active added tuples\n\n  this._mlen = 0; // number of active modified tuples\n\n  this._drop = true; // should empty aggregation cells be removed\n\n  this._cross = false; // produce full cross-product of group-by values\n\n  this._dims = []; // group-by dimension accessors\n\n  this._dnames = []; // group-by dimension names\n\n  this._measures = []; // collection of aggregation monoids\n\n  this._countOnly = false; // flag indicating only count aggregation\n\n  this._counts = null; // collection of count fields\n\n  this._prev = null; // previous aggregation cells\n\n  this._inputs = null; // array of dependent input tuple field names\n\n  this._outputs = null; // array of output tuple field names\n}\nAggregate.Definition = {\n  'type': 'Aggregate',\n  'metadata': {\n    'generates': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'ops',\n    'type': 'enum',\n    'array': true,\n    'values': ValidAggregateOps\n  }, {\n    'name': 'fields',\n    'type': 'field',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'drop',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'cross',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'key',\n    'type': 'field'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Aggregate, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const aggr = this,\n          out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n          mod = _.modified();\n\n    aggr.stamp = out.stamp;\n\n    if (aggr.value && (mod || pulse.modified(aggr._inputs, true))) {\n      aggr._prev = aggr.value;\n      aggr.value = mod ? aggr.init(_) : {};\n      pulse.visit(pulse.SOURCE, t => aggr.add(t));\n    } else {\n      aggr.value = aggr.value || aggr.init(_);\n      pulse.visit(pulse.REM, t => aggr.rem(t));\n      pulse.visit(pulse.ADD, t => aggr.add(t));\n    } // Indicate output fields and return aggregate tuples.\n\n\n    out.modifies(aggr._outputs); // Should empty cells be dropped?\n\n    aggr._drop = _.drop !== false; // If domain cross-product requested, generate empty cells as needed\n    // and ensure that empty cells are not dropped\n\n    if (_.cross && aggr._dims.length > 1) {\n      aggr._drop = false;\n      aggr.cross();\n    }\n\n    if (pulse.clean() && aggr._drop) {\n      out.clean(true).runAfter(() => this.clean());\n    }\n\n    return aggr.changes(out);\n  },\n\n  cross() {\n    const aggr = this,\n          curr = aggr.value,\n          dims = aggr._dnames,\n          vals = dims.map(() => ({})),\n          n = dims.length; // collect all group-by domain values\n\n    function collect(cells) {\n      let key, i, t, v;\n\n      for (key in cells) {\n        t = cells[key].tuple;\n\n        for (i = 0; i < n; ++i) {\n          vals[i][v = t[dims[i]]] = v;\n        }\n      }\n    }\n\n    collect(aggr._prev);\n    collect(curr); // iterate over key cross-product, create cells as needed\n\n    function generate(base, tuple, index) {\n      const name = dims[index],\n            v = vals[index++];\n\n      for (const k in v) {\n        const key = base ? base + '|' + k : k;\n        tuple[name] = v[k];\n        if (index < n) generate(key, tuple, index);else if (!curr[key]) aggr.cell(key, tuple);\n      }\n    }\n\n    generate('', {}, 0);\n  },\n\n  init(_) {\n    // initialize input and output fields\n    const inputs = this._inputs = [],\n          outputs = this._outputs = [],\n          inputMap = {};\n\n    function inputVisit(get) {\n      const fields = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(get)),\n            n = fields.length;\n      let i = 0,\n          f;\n\n      for (; i < n; ++i) {\n        if (!inputMap[f = fields[i]]) {\n          inputMap[f] = 1;\n          inputs.push(f);\n        }\n      }\n    } // initialize group-by dimensions\n\n\n    this._dims = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.groupby);\n    this._dnames = this._dims.map(d => {\n      const dname = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(d);\n      inputVisit(d);\n      outputs.push(dname);\n      return dname;\n    });\n    this.cellkey = _.key ? _.key : groupkey(this._dims); // initialize aggregate measures\n\n    this._countOnly = true;\n    this._counts = [];\n    this._measures = [];\n    const fields = _.fields || [null],\n          ops = _.ops || ['count'],\n          as = _.as || [],\n          n = fields.length,\n          map = {};\n    let field, op, m, mname, outname, i;\n\n    if (n !== ops.length) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unmatched number of fields and aggregate ops.');\n    }\n\n    for (i = 0; i < n; ++i) {\n      field = fields[i];\n      op = ops[i];\n\n      if (field == null && op !== 'count') {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Null aggregate field specified.');\n      }\n\n      mname = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(field);\n      outname = measureName(op, mname, as[i]);\n      outputs.push(outname);\n\n      if (op === 'count') {\n        this._counts.push(outname);\n\n        continue;\n      }\n\n      m = map[mname];\n\n      if (!m) {\n        inputVisit(field);\n        m = map[mname] = [];\n        m.field = field;\n\n        this._measures.push(m);\n      }\n\n      if (op !== 'count') this._countOnly = false;\n      m.push(createMeasure(op, outname));\n    }\n\n    this._measures = this._measures.map(m => compileMeasures(m, m.field));\n    return {}; // aggregation cells (this.value)\n  },\n\n  // -- Cell Management -----\n  cellkey: groupkey(),\n\n  cell(key, t) {\n    let cell = this.value[key];\n\n    if (!cell) {\n      cell = this.value[key] = this.newcell(key, t);\n      this._adds[this._alen++] = cell;\n    } else if (cell.num === 0 && this._drop && cell.stamp < this.stamp) {\n      cell.stamp = this.stamp;\n      this._adds[this._alen++] = cell;\n    } else if (cell.stamp < this.stamp) {\n      cell.stamp = this.stamp;\n      this._mods[this._mlen++] = cell;\n    }\n\n    return cell;\n  },\n\n  newcell(key, t) {\n    const cell = {\n      key: key,\n      num: 0,\n      agg: null,\n      tuple: this.newtuple(t, this._prev && this._prev[key]),\n      stamp: this.stamp,\n      store: false\n    };\n\n    if (!this._countOnly) {\n      const measures = this._measures,\n            n = measures.length;\n      cell.agg = Array(n);\n\n      for (let i = 0; i < n; ++i) {\n        cell.agg[i] = new measures[i](cell);\n      }\n    }\n\n    if (cell.store) {\n      cell.data = new TupleStore();\n    }\n\n    return cell;\n  },\n\n  newtuple(t, p) {\n    const names = this._dnames,\n          dims = this._dims,\n          n = dims.length,\n          x = {};\n\n    for (let i = 0; i < n; ++i) {\n      x[names[i]] = dims[i](t);\n    }\n\n    return p ? Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"replace\"])(p.tuple, x) : Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(x);\n  },\n\n  clean() {\n    const cells = this.value;\n\n    for (const key in cells) {\n      if (cells[key].num === 0) {\n        delete cells[key];\n      }\n    }\n  },\n\n  // -- Process Tuples -----\n  add(t) {\n    const key = this.cellkey(t),\n          cell = this.cell(key, t);\n    cell.num += 1;\n    if (this._countOnly) return;\n    if (cell.store) cell.data.add(t);\n    const agg = cell.agg;\n\n    for (let i = 0, n = agg.length; i < n; ++i) {\n      agg[i].add(agg[i].get(t), t);\n    }\n  },\n\n  rem(t) {\n    const key = this.cellkey(t),\n          cell = this.cell(key, t);\n    cell.num -= 1;\n    if (this._countOnly) return;\n    if (cell.store) cell.data.rem(t);\n    const agg = cell.agg;\n\n    for (let i = 0, n = agg.length; i < n; ++i) {\n      agg[i].rem(agg[i].get(t), t);\n    }\n  },\n\n  celltuple(cell) {\n    const tuple = cell.tuple,\n          counts = this._counts; // consolidate stored values\n\n    if (cell.store) {\n      cell.data.values();\n    } // update tuple properties\n\n\n    for (let i = 0, n = counts.length; i < n; ++i) {\n      tuple[counts[i]] = cell.num;\n    }\n\n    if (!this._countOnly) {\n      const agg = cell.agg;\n\n      for (let i = 0, n = agg.length; i < n; ++i) {\n        agg[i].set(tuple);\n      }\n    }\n\n    return tuple;\n  },\n\n  changes(out) {\n    const adds = this._adds,\n          mods = this._mods,\n          prev = this._prev,\n          drop = this._drop,\n          add = out.add,\n          rem = out.rem,\n          mod = out.mod;\n    let cell, key, i, n;\n    if (prev) for (key in prev) {\n      cell = prev[key];\n      if (!drop || cell.num) rem.push(cell.tuple);\n    }\n\n    for (i = 0, n = this._alen; i < n; ++i) {\n      add.push(this.celltuple(adds[i]));\n      adds[i] = null; // for garbage collection\n    }\n\n    for (i = 0, n = this._mlen; i < n; ++i) {\n      cell = mods[i];\n      (cell.num === 0 && drop ? rem : mod).push(this.celltuple(cell));\n      mods[i] = null; // for garbage collection\n    }\n\n    this._alen = this._mlen = 0; // reset list of active cells\n\n    this._prev = null;\n    return out;\n  }\n\n});\n\nconst EPSILON = 1e-14;\n/**\n * Generates a binning function for discretizing data.\n * @constructor\n * @param {object} params - The parameters for this operator. The\n *   provided values should be valid options for the {@link bin} function.\n * @param {function(object): *} params.field - The data field to bin.\n */\n\nfunction Bin(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nBin.Definition = {\n  'type': 'Bin',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'interval',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'anchor',\n    'type': 'number'\n  }, {\n    'name': 'maxbins',\n    'type': 'number',\n    'default': 20\n  }, {\n    'name': 'base',\n    'type': 'number',\n    'default': 10\n  }, {\n    'name': 'divide',\n    'type': 'number',\n    'array': true,\n    'default': [5, 2]\n  }, {\n    'name': 'extent',\n    'type': 'number',\n    'array': true,\n    'length': 2,\n    'required': true\n  }, {\n    'name': 'span',\n    'type': 'number'\n  }, {\n    'name': 'step',\n    'type': 'number'\n  }, {\n    'name': 'steps',\n    'type': 'number',\n    'array': true\n  }, {\n    'name': 'minstep',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'nice',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'name',\n    'type': 'string'\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': ['bin0', 'bin1']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Bin, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const band = _.interval !== false,\n          bins = this._bins(_),\n          start = bins.start,\n          step = bins.step,\n          as = _.as || ['bin0', 'bin1'],\n          b0 = as[0],\n          b1 = as[1];\n\n    let flag;\n\n    if (_.modified()) {\n      pulse = pulse.reflow(true);\n      flag = pulse.SOURCE;\n    } else {\n      flag = pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(_.field)) ? pulse.ADD_MOD : pulse.ADD;\n    }\n\n    pulse.visit(flag, band ? t => {\n      const v = bins(t); // minimum bin value (inclusive)\n\n      t[b0] = v; // maximum bin value (exclusive)\n      // use convoluted math for better floating point agreement\n      // see https://github.com/vega/vega/issues/830\n      // infinite values propagate through this formula! #2227\n\n      t[b1] = v == null ? null : start + step * (1 + (v - start) / step);\n    } : t => t[b0] = bins(t));\n    return pulse.modifies(band ? as : b0);\n  },\n\n  _bins(_) {\n    if (this.value && !_.modified()) {\n      return this.value;\n    }\n\n    const field = _.field,\n          bins = Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"bin\"])(_),\n          step = bins.step;\n    let start = bins.start,\n        stop = start + Math.ceil((bins.stop - start) / step) * step,\n        a,\n        d;\n\n    if ((a = _.anchor) != null) {\n      d = a - (start + step * Math.floor((a - start) / step));\n      start += d;\n      stop += d;\n    }\n\n    const f = function (t) {\n      let v = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(field(t));\n      return v == null ? null : v < start ? -Infinity : v > stop ? +Infinity : (v = Math.max(start, Math.min(v, stop - step)), start + step * Math.floor(EPSILON + (v - start) / step));\n    };\n\n    f.start = start;\n    f.stop = bins.stop;\n    f.step = step;\n    return this.value = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessor\"])(f, Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(field), _.name || 'bin_' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(field));\n  }\n\n});\n\nfunction SortedList (idFunc, source, input) {\n  const $ = idFunc;\n  let data = source || [],\n      add = input || [],\n      rem = {},\n      cnt = 0;\n  return {\n    add: t => add.push(t),\n    remove: t => rem[$(t)] = ++cnt,\n    size: () => data.length,\n    data: (compare, resort) => {\n      if (cnt) {\n        data = data.filter(t => !rem[$(t)]);\n        rem = {};\n        cnt = 0;\n      }\n\n      if (resort && compare) {\n        data.sort(compare);\n      }\n\n      if (add.length) {\n        data = compare ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"merge\"])(compare, data, add.sort(compare)) : data.concat(add);\n        add = [];\n      }\n\n      return data;\n    }\n  };\n}\n\n/**\n * Collects all data tuples that pass through this operator.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(*,*): number} [params.sort] - An optional\n *   comparator function for additionally sorting the collected tuples.\n */\n\nfunction Collect(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n}\nCollect.Definition = {\n  'type': 'Collect',\n  'metadata': {\n    'source': true\n  },\n  'params': [{\n    'name': 'sort',\n    'type': 'compare'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Collect, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.ALL),\n          list = SortedList(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"], this.value, out.materialize(out.ADD).add),\n          sort = _.sort,\n          mod = pulse.changed() || sort && (_.modified('sort') || pulse.modified(sort.fields));\n    out.visit(out.REM, list.remove);\n    this.modified(mod);\n    this.value = out.source = list.data(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"stableCompare\"])(sort), mod); // propagate tree root if defined\n\n    if (pulse.source && pulse.source.root) {\n      this.value.root = pulse.source.root;\n    }\n\n    return out;\n  }\n\n});\n\n/**\n * Generates a comparator function.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<string|function>} params.fields - The fields to compare.\n * @param {Array<string>} [params.orders] - The sort orders.\n *   Each entry should be one of \"ascending\" (default) or \"descending\".\n */\n\nfunction Compare(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, null, update, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Compare, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]);\n\nfunction update(_) {\n  return this.value && !_.modified() ? this.value : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"compare\"])(_.fields, _.orders);\n}\n\n/**\n * Count regexp-defined pattern occurrences in a text field.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - An accessor for the text field.\n * @param {string} [params.pattern] - RegExp string defining the text pattern.\n * @param {string} [params.case] - One of 'lower', 'upper' or null (mixed) case.\n * @param {string} [params.stopwords] - RegExp string of words to ignore.\n */\n\nfunction CountPattern(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nCountPattern.Definition = {\n  'type': 'CountPattern',\n  'metadata': {\n    'generates': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'case',\n    'type': 'enum',\n    'values': ['upper', 'lower', 'mixed'],\n    'default': 'mixed'\n  }, {\n    'name': 'pattern',\n    'type': 'string',\n    'default': '[\\\\w\"]+'\n  }, {\n    'name': 'stopwords',\n    'type': 'string',\n    'default': ''\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': ['text', 'count']\n  }]\n};\n\nfunction tokenize(text, tcase, match) {\n  switch (tcase) {\n    case 'upper':\n      text = text.toUpperCase();\n      break;\n\n    case 'lower':\n      text = text.toLowerCase();\n      break;\n  }\n\n  return text.match(match);\n}\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(CountPattern, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const process = update => tuple => {\n      var tokens = tokenize(get(tuple), _.case, match) || [],\n          t;\n\n      for (var i = 0, n = tokens.length; i < n; ++i) {\n        if (!stop.test(t = tokens[i])) update(t);\n      }\n    };\n\n    const init = this._parameterCheck(_, pulse),\n          counts = this._counts,\n          match = this._match,\n          stop = this._stop,\n          get = _.field,\n          as = _.as || ['text', 'count'],\n          add = process(t => counts[t] = 1 + (counts[t] || 0)),\n          rem = process(t => counts[t] -= 1);\n\n    if (init) {\n      pulse.visit(pulse.SOURCE, add);\n    } else {\n      pulse.visit(pulse.ADD, add);\n      pulse.visit(pulse.REM, rem);\n    }\n\n    return this._finish(pulse, as); // generate output tuples\n  },\n\n  _parameterCheck(_, pulse) {\n    let init = false;\n\n    if (_.modified('stopwords') || !this._stop) {\n      this._stop = new RegExp('^' + (_.stopwords || '') + '$', 'i');\n      init = true;\n    }\n\n    if (_.modified('pattern') || !this._match) {\n      this._match = new RegExp(_.pattern || '[\\\\w\\']+', 'g');\n      init = true;\n    }\n\n    if (_.modified('field') || pulse.modified(_.field.fields)) {\n      init = true;\n    }\n\n    if (init) this._counts = {};\n    return init;\n  },\n\n  _finish(pulse, as) {\n    const counts = this._counts,\n          tuples = this._tuples || (this._tuples = {}),\n          text = as[0],\n          count = as[1],\n          out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n    let w, t, c;\n\n    for (w in counts) {\n      t = tuples[w];\n      c = counts[w] || 0;\n\n      if (!t && c) {\n        tuples[w] = t = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])({});\n        t[text] = w;\n        t[count] = c;\n        out.add.push(t);\n      } else if (c === 0) {\n        if (t) out.rem.push(t);\n        counts[w] = null;\n        tuples[w] = null;\n      } else if (t[count] !== c) {\n        t[count] = c;\n        out.mod.push(t);\n      }\n    }\n\n    return out.modifies(as);\n  }\n\n});\n\n/**\n * Perform a cross-product of a tuple stream with itself.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object):boolean} [params.filter] - An optional filter\n *   function for selectively including tuples in the cross product.\n * @param {Array<string>} [params.as] - The names of the output fields.\n */\n\nfunction Cross(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nCross.Definition = {\n  'type': 'Cross',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'filter',\n    'type': 'expr'\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': ['a', 'b']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Cross, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE),\n          as = _.as || ['a', 'b'],\n          a = as[0],\n          b = as[1],\n          reset = !this.value || pulse.changed(pulse.ADD_REM) || _.modified('as') || _.modified('filter');\n\n    let data = this.value;\n\n    if (reset) {\n      if (data) out.rem = data;\n      data = pulse.materialize(pulse.SOURCE).source;\n      out.add = this.value = cross(data, a, b, _.filter || vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"]);\n    } else {\n      out.mod = data;\n    }\n\n    out.source = this.value;\n    return out.modifies(as);\n  }\n\n});\n\nfunction cross(input, a, b, filter) {\n  var data = [],\n      t = {},\n      n = input.length,\n      i = 0,\n      j,\n      left;\n\n  for (; i < n; ++i) {\n    t[a] = left = input[i];\n\n    for (j = 0; j < n; ++j) {\n      t[b] = input[j];\n\n      if (filter(t)) {\n        data.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t));\n        t = {};\n        t[a] = left;\n      }\n    }\n  }\n\n  return data;\n}\n\nconst Distributions = {\n  kde: vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"randomKDE\"],\n  mixture: vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"randomMixture\"],\n  normal: vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"randomNormal\"],\n  lognormal: vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"randomLogNormal\"],\n  uniform: vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"randomUniform\"]\n};\nconst DISTRIBUTIONS = 'distributions',\n      FUNCTION = 'function',\n      FIELD = 'field';\n/**\n * Parse a parameter object for a probability distribution.\n * @param {object} def - The distribution parameter object.\n * @param {function():Array<object>} - A method for requesting\n *   source data. Used for distributions (such as KDE) that\n *   require sample data points. This method will only be\n *   invoked if the 'from' parameter for a target data source\n *   is not provided. Typically this method returns backing\n *   source data for a Pulse object.\n * @return {object} - The output distribution object.\n */\n\nfunction parse(def, data) {\n  const func = def[FUNCTION];\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(Distributions, func)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unknown distribution function: ' + func);\n  }\n\n  const d = Distributions[func]();\n\n  for (const name in def) {\n    // if data field, extract values\n    if (name === FIELD) {\n      d.data((def.from || data()).map(def[name]));\n    } // if distribution mixture, recurse to parse each definition\n    else if (name === DISTRIBUTIONS) {\n        d[name](def[name].map(_ => parse(_, data)));\n      } // otherwise, simply set the parameter\n      else if (typeof d[name] === FUNCTION) {\n          d[name](def[name]);\n        }\n  }\n\n  return d;\n}\n\n/**\n * Grid sample points for a probability density. Given a distribution and\n * a sampling extent, will generate points suitable for plotting either\n * PDF (probability density function) or CDF (cumulative distribution\n * function) curves.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {object} params.distribution - The probability distribution. This\n *   is an object parameter dependent on the distribution type.\n * @param {string} [params.method='pdf'] - The distribution method to sample.\n *   One of 'pdf' or 'cdf'.\n * @param {Array<number>} [params.extent] - The [min, max] extent over which\n *   to sample the distribution. This argument is required in most cases, but\n *   can be omitted if the distribution (e.g., 'kde') supports a 'data' method\n *   that returns numerical sample points from which the extent can be deduced.\n * @param {number} [params.minsteps=25] - The minimum number of curve samples\n *   for plotting the density.\n * @param {number} [params.maxsteps=200] - The maximum number of curve samples\n *   for plotting the density.\n * @param {number} [params.steps] - The exact number of curve samples for\n *   plotting the density. If specified, overrides both minsteps and maxsteps\n *   to set an exact number of uniform samples. Useful in conjunction with\n *   a fixed extent to ensure consistent sample points for stacked densities.\n */\n\nfunction Density(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nconst distributions = [{\n  'key': {\n    'function': 'normal'\n  },\n  'params': [{\n    'name': 'mean',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'stdev',\n    'type': 'number',\n    'default': 1\n  }]\n}, {\n  'key': {\n    'function': 'lognormal'\n  },\n  'params': [{\n    'name': 'mean',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'stdev',\n    'type': 'number',\n    'default': 1\n  }]\n}, {\n  'key': {\n    'function': 'uniform'\n  },\n  'params': [{\n    'name': 'min',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'max',\n    'type': 'number',\n    'default': 1\n  }]\n}, {\n  'key': {\n    'function': 'kde'\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'from',\n    'type': 'data'\n  }, {\n    'name': 'bandwidth',\n    'type': 'number',\n    'default': 0\n  }]\n}];\nconst mixture = {\n  'key': {\n    'function': 'mixture'\n  },\n  'params': [{\n    'name': 'distributions',\n    'type': 'param',\n    'array': true,\n    'params': distributions\n  }, {\n    'name': 'weights',\n    'type': 'number',\n    'array': true\n  }]\n};\nDensity.Definition = {\n  'type': 'Density',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'extent',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'steps',\n    'type': 'number'\n  }, {\n    'name': 'minsteps',\n    'type': 'number',\n    'default': 25\n  }, {\n    'name': 'maxsteps',\n    'type': 'number',\n    'default': 200\n  }, {\n    'name': 'method',\n    'type': 'string',\n    'default': 'pdf',\n    'values': ['pdf', 'cdf']\n  }, {\n    'name': 'distribution',\n    'type': 'param',\n    'params': distributions.concat(mixture)\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'default': ['value', 'density']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Density, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n\n    if (!this.value || pulse.changed() || _.modified()) {\n      const dist = parse(_.distribution, source(pulse)),\n            minsteps = _.steps || _.minsteps || 25,\n            maxsteps = _.steps || _.maxsteps || 200;\n      let method = _.method || 'pdf';\n\n      if (method !== 'pdf' && method !== 'cdf') {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid density method: ' + method);\n      }\n\n      if (!_.extent && !dist.data) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing density extent parameter.');\n      }\n\n      method = dist[method];\n      const as = _.as || ['value', 'density'],\n            domain = _.extent || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"])(dist.data()),\n            values = Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"sampleCurve\"])(method, domain, minsteps, maxsteps).map(v => {\n        const tuple = {};\n        tuple[as[0]] = v[0];\n        tuple[as[1]] = v[1];\n        return Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(tuple);\n      });\n      if (this.value) out.rem = this.value;\n      this.value = out.add = out.source = values;\n    }\n\n    return out;\n  }\n\n});\n\nfunction source(pulse) {\n  return () => pulse.materialize(pulse.SOURCE).source;\n}\n\nfunction fieldNames(fields, as) {\n  if (!fields) return null;\n  return fields.map((f, i) => as[i] || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(f));\n}\nfunction partition(data, groupby, field) {\n  const groups = [],\n        get = f => f(t);\n\n  let map, i, n, t, k, g; // partition data points into groups\n\n  if (groupby == null) {\n    groups.push(data.map(field));\n  } else {\n    for (map = {}, i = 0, n = data.length; i < n; ++i) {\n      t = data[i];\n      k = groupby.map(get);\n      g = map[k];\n\n      if (!g) {\n        map[k] = g = [];\n        g.dims = k;\n        groups.push(g);\n      }\n\n      g.push(field(t));\n    }\n  }\n\n  return groups;\n}\n\nconst Output = 'bin';\n/**\n * Dot density binning for dot plot construction.\n * Based on Leland Wilkinson, Dot Plots, The American Statistician, 1999.\n * https://www.cs.uic.edu/~wilkinson/Publications/dotplots.pdf\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to bin.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors to groupby.\n * @param {number} [params.step] - The step size (bin width) within which dots should be\n *   stacked. Defaults to 1/30 of the extent of the data *field*.\n * @param {boolean} [params.smooth=false] - A boolean flag indicating if dot density\n *   stacks should be smoothed to reduce variance.\n */\n\nfunction DotBin(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nDotBin.Definition = {\n  'type': 'DotBin',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'step',\n    'type': 'number'\n  }, {\n    'name': 'smooth',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': Output\n  }]\n};\n\nconst autostep = (data, field) => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"span\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"])(data, field)) / 30;\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(DotBin, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value && !(_.modified() || pulse.changed())) {\n      return pulse; // early exit\n    }\n\n    const source = pulse.materialize(pulse.SOURCE).source,\n          groups = partition(pulse.source, _.groupby, vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"]),\n          smooth = _.smooth || false,\n          field = _.field,\n          step = _.step || autostep(source, field),\n          sort = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"stableCompare\"])((a, b) => field(a) - field(b)),\n          as = _.as || Output,\n          n = groups.length; // compute dotplot bins per group\n\n    let min = Infinity,\n        max = -Infinity,\n        i = 0,\n        j;\n\n    for (; i < n; ++i) {\n      const g = groups[i].sort(sort);\n      j = -1;\n\n      for (const v of Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"dotbin\"])(g, step, smooth, field)) {\n        if (v < min) min = v;\n        if (v > max) max = v;\n        g[++j][as] = v;\n      }\n    }\n\n    this.value = {\n      start: min,\n      stop: max,\n      step: step\n    };\n    return pulse.reflow(true).modifies(as);\n  }\n\n});\n\n/**\n * Wraps an expression function with access to external parameters.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function} params.expr - The expression function. The\n *  function should accept both a datum and a parameter object.\n *  This operator's value will be a new function that wraps the\n *  expression function with access to this operator's parameters.\n */\n\nfunction Expression(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, null, update$1, params);\n  this.modified(true);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Expression, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]);\n\nfunction update$1(_) {\n  const expr = _.expr;\n  return this.value && !_.modified('expr') ? this.value : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessor\"])(datum => expr(datum, _), Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(expr), Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(expr));\n}\n\n/**\n * Computes extents (min/max) for a data field.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The field over which to compute extends.\n */\n\nfunction Extent(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [undefined, undefined], params);\n}\nExtent.Definition = {\n  'type': 'Extent',\n  'metadata': {},\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Extent, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const extent = this.value,\n          field = _.field,\n          mod = pulse.changed() || pulse.modified(field.fields) || _.modified('field');\n\n    let min = extent[0],\n        max = extent[1];\n\n    if (mod || min == null) {\n      min = +Infinity;\n      max = -Infinity;\n    }\n\n    pulse.visit(mod ? pulse.SOURCE : pulse.ADD, t => {\n      const v = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"])(field(t));\n\n      if (v != null) {\n        // NaNs will fail all comparisons!\n        if (v < min) min = v;\n        if (v > max) max = v;\n      }\n    });\n\n    if (!Number.isFinite(min) || !Number.isFinite(max)) {\n      let name = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(field);\n      if (name) name = \" for field \\\"\".concat(name, \"\\\"\");\n      pulse.dataflow.warn(\"Infinite extent\".concat(name, \": [\").concat(min, \", \").concat(max, \"]\"));\n      min = max = undefined;\n    }\n\n    this.value = [min, max];\n  }\n\n});\n\n/**\n * Provides a bridge between a parent transform and a target subflow that\n * consumes only a subset of the tuples that pass through the parent.\n * @constructor\n * @param {Pulse} pulse - A pulse to use as the value of this operator.\n * @param {Transform} parent - The parent transform (typically a Facet instance).\n */\n\nfunction Subflow(pulse, parent) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, pulse);\n  this.parent = parent;\n  this.count = 0;\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Subflow, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"], {\n  /**\n   * Routes pulses from this subflow to a target transform.\n   * @param {Transform} target - A transform that receives the subflow of tuples.\n   */\n  connect(target) {\n    this.detachSubflow = target.detachSubflow;\n    this.targets().add(target);\n    return target.source = this;\n  },\n\n  /**\n   * Add an 'add' tuple to the subflow pulse.\n   * @param {Tuple} t - The tuple being added.\n   */\n  add(t) {\n    this.count += 1;\n    this.value.add.push(t);\n  },\n\n  /**\n   * Add a 'rem' tuple to the subflow pulse.\n   * @param {Tuple} t - The tuple being removed.\n   */\n  rem(t) {\n    this.count -= 1;\n    this.value.rem.push(t);\n  },\n\n  /**\n   * Add a 'mod' tuple to the subflow pulse.\n   * @param {Tuple} t - The tuple being modified.\n   */\n  mod(t) {\n    this.value.mod.push(t);\n  },\n\n  /**\n   * Re-initialize this operator's pulse value.\n   * @param {Pulse} pulse - The pulse to copy from.\n   * @see Pulse.init\n   */\n  init(pulse) {\n    this.value.init(pulse, pulse.NO_SOURCE);\n  },\n\n  /**\n   * Evaluate this operator. This method overrides the\n   * default behavior to simply return the contained pulse value.\n   * @return {Pulse}\n   */\n  evaluate() {\n    // assert: this.value.stamp === pulse.stamp\n    return this.value;\n  }\n\n});\n\n/**\n * Facets a dataflow into a set of subflows based on a key.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(Dataflow, string): Operator} params.subflow - A function\n *   that generates a subflow of operators and returns its root operator.\n * @param {function(object): *} params.key - The key field to facet by.\n */\n\nfunction Facet(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, {}, params);\n  this._keys = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"fastmap\"])(); // cache previously calculated key values\n  // keep track of active subflows, use as targets array for listeners\n  // this allows us to limit propagation to only updated subflows\n\n  const a = this._targets = [];\n  a.active = 0;\n\n  a.forEach = f => {\n    for (let i = 0, n = a.active; i < n; ++i) {\n      f(a[i], i, a);\n    }\n  };\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Facet, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  activate(flow) {\n    this._targets[this._targets.active++] = flow;\n  },\n\n  // parent argument provided by PreFacet subclass\n  subflow(key, flow, pulse, parent) {\n    const flows = this.value;\n    let sf = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(flows, key) && flows[key],\n        df,\n        p;\n\n    if (!sf) {\n      p = parent || (p = this._group[key]) && p.tuple;\n      df = pulse.dataflow;\n      sf = new Subflow(pulse.fork(pulse.NO_SOURCE), this);\n      df.add(sf).connect(flow(df, key, p));\n      flows[key] = sf;\n      this.activate(sf);\n    } else if (sf.value.stamp < pulse.stamp) {\n      sf.init(pulse);\n      this.activate(sf);\n    }\n\n    return sf;\n  },\n\n  clean() {\n    const flows = this.value;\n\n    for (const key in flows) {\n      if (flows[key].count === 0) {\n        const detach = flows[key].detachSubflow;\n        if (detach) detach();\n        delete flows[key];\n      }\n    }\n  },\n\n  initTargets() {\n    const a = this._targets,\n          n = a.length;\n\n    for (let i = 0; i < n && a[i] != null; ++i) {\n      a[i] = null; // ensure old flows can be garbage collected\n    }\n\n    a.active = 0;\n  },\n\n  transform(_, pulse) {\n    const df = pulse.dataflow,\n          key = _.key,\n          flow = _.subflow,\n          cache = this._keys,\n          rekey = _.modified('key'),\n          subflow = key => this.subflow(key, flow, pulse);\n\n    this._group = _.group || {};\n    this.initTargets(); // reset list of active subflows\n\n    pulse.visit(pulse.REM, t => {\n      const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t),\n            k = cache.get(id);\n\n      if (k !== undefined) {\n        cache.delete(id);\n        subflow(k).rem(t);\n      }\n    });\n    pulse.visit(pulse.ADD, t => {\n      const k = key(t);\n      cache.set(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t), k);\n      subflow(k).add(t);\n    });\n\n    if (rekey || pulse.modified(key.fields)) {\n      pulse.visit(pulse.MOD, t => {\n        const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t),\n              k0 = cache.get(id),\n              k1 = key(t);\n\n        if (k0 === k1) {\n          subflow(k1).mod(t);\n        } else {\n          cache.set(id, k1);\n          subflow(k0).rem(t);\n          subflow(k1).add(t);\n        }\n      });\n    } else if (pulse.changed(pulse.MOD)) {\n      pulse.visit(pulse.MOD, t => {\n        subflow(cache.get(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t))).mod(t);\n      });\n    }\n\n    if (rekey) {\n      pulse.visit(pulse.REFLOW, t => {\n        const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t),\n              k0 = cache.get(id),\n              k1 = key(t);\n\n        if (k0 !== k1) {\n          cache.set(id, k1);\n          subflow(k0).rem(t);\n          subflow(k1).add(t);\n        }\n      });\n    }\n\n    if (pulse.clean()) {\n      df.runAfter(() => {\n        this.clean();\n        cache.clean();\n      });\n    } else if (cache.empty > df.cleanThreshold) {\n      df.runAfter(cache.clean);\n    }\n\n    return pulse;\n  }\n\n});\n\n/**\n * Generates one or more field accessor functions.\n * If the 'name' parameter is an array, an array of field accessors\n * will be created and the 'as' parameter will be ignored.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {string} params.name - The field name(s) to access.\n * @param {string} params.as - The accessor function name.\n */\n\nfunction Field(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, null, update$2, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Field, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]);\n\nfunction update$2(_) {\n  return this.value && !_.modified() ? this.value : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(_.name) ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.name).map(f => Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"])(f)) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"])(_.name, _.as);\n}\n\n/**\n * Filters data tuples according to a predicate function.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.expr - The predicate expression function\n *   that determines a tuple's filter status. Truthy values pass the filter.\n */\n\nfunction Filter(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"fastmap\"])(), params);\n}\nFilter.Definition = {\n  'type': 'Filter',\n  'metadata': {\n    'changes': true\n  },\n  'params': [{\n    'name': 'expr',\n    'type': 'expr',\n    'required': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Filter, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const df = pulse.dataflow,\n          cache = this.value,\n          // cache ids of filtered tuples\n    output = pulse.fork(),\n          add = output.add,\n          rem = output.rem,\n          mod = output.mod,\n          test = _.expr;\n    let isMod = true;\n    pulse.visit(pulse.REM, t => {\n      const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t);\n      if (!cache.has(id)) rem.push(t);else cache.delete(id);\n    });\n    pulse.visit(pulse.ADD, t => {\n      if (test(t, _)) add.push(t);else cache.set(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t), 1);\n    });\n\n    function revisit(t) {\n      const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t),\n            b = test(t, _),\n            s = cache.get(id);\n\n      if (b && s) {\n        cache.delete(id);\n        add.push(t);\n      } else if (!b && !s) {\n        cache.set(id, 1);\n        rem.push(t);\n      } else if (isMod && b && !s) {\n        mod.push(t);\n      }\n    }\n\n    pulse.visit(pulse.MOD, revisit);\n\n    if (_.modified()) {\n      isMod = false;\n      pulse.visit(pulse.REFLOW, revisit);\n    }\n\n    if (cache.empty > df.cleanThreshold) df.runAfter(cache.clean);\n    return output;\n  }\n\n});\n\n/**\n * Flattens array-typed field values into new data objects.\n * If multiple fields are specified, they are treated as parallel arrays,\n * with output values included for each matching index (or null if missing).\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *>} params.fields - An array of field\n *   accessors for the tuple fields that should be flattened.\n * @param {string} [params.index] - Optional output field name for index\n *   value. If unspecified, no index field is included in the output.\n * @param {Array<string>} [params.as] - Output field names for flattened\n *   array fields. Any unspecified fields will use the field name provided\n *   by the fields accessors.\n */\n\nfunction Flatten(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n}\nFlatten.Definition = {\n  'type': 'Flatten',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'fields',\n    'type': 'field',\n    'array': true,\n    'required': true\n  }, {\n    'name': 'index',\n    'type': 'string'\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Flatten, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE),\n          fields = _.fields,\n          as = fieldNames(fields, _.as || []),\n          index = _.index || null,\n          m = as.length; // remove any previous results\n\n    out.rem = this.value; // generate flattened tuples\n\n    pulse.visit(pulse.SOURCE, t => {\n      const arrays = fields.map(f => f(t)),\n            maxlen = arrays.reduce((l, a) => Math.max(l, a.length), 0);\n      let i = 0,\n          j,\n          d,\n          v;\n\n      for (; i < maxlen; ++i) {\n        d = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"derive\"])(t);\n\n        for (j = 0; j < m; ++j) {\n          d[as[j]] = (v = arrays[j][i]) == null ? null : v;\n        }\n\n        if (index) {\n          d[index] = i;\n        }\n\n        out.add.push(d);\n      }\n    });\n    this.value = out.source = out.add;\n    if (index) out.modifies(index);\n    return out.modifies(as);\n  }\n\n});\n\n/**\n * Folds one more tuple fields into multiple tuples in which the field\n * name and values are available under new 'key' and 'value' fields.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.fields - An array of field accessors\n *   for the tuple fields that should be folded.\n * @param {Array<string>} [params.as] - Output field names for folded key\n *   and value fields, defaults to ['key', 'value'].\n */\n\nfunction Fold(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n}\nFold.Definition = {\n  'type': 'Fold',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'fields',\n    'type': 'field',\n    'array': true,\n    'required': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': ['key', 'value']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Fold, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE),\n          fields = _.fields,\n          fnames = fields.map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"]),\n          as = _.as || ['key', 'value'],\n          k = as[0],\n          v = as[1],\n          n = fields.length;\n    out.rem = this.value;\n    pulse.visit(pulse.SOURCE, t => {\n      for (let i = 0, d; i < n; ++i) {\n        d = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"derive\"])(t);\n        d[k] = fnames[i];\n        d[v] = fields[i](t);\n        out.add.push(d);\n      }\n    });\n    this.value = out.source = out.add;\n    return out.modifies(as);\n  }\n\n});\n\n/**\n * Invokes a function for each data tuple and saves the results as a new field.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.expr - The formula function to invoke for each tuple.\n * @param {string} params.as - The field name under which to save the result.\n * @param {boolean} [params.initonly=false] - If true, the formula is applied to\n *   added tuples only, and does not update in response to modifications.\n */\n\nfunction Formula(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nFormula.Definition = {\n  'type': 'Formula',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'expr',\n    'type': 'expr',\n    'required': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'required': true\n  }, {\n    'name': 'initonly',\n    'type': 'boolean'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Formula, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const func = _.expr,\n          as = _.as,\n          mod = _.modified(),\n          flag = _.initonly ? pulse.ADD : mod ? pulse.SOURCE : pulse.modified(func.fields) || pulse.modified(as) ? pulse.ADD_MOD : pulse.ADD;\n\n    if (mod) {\n      // parameters updated, need to reflow\n      pulse = pulse.materialize().reflow(true);\n    }\n\n    if (!_.initonly) {\n      pulse.modifies(as);\n    }\n\n    return pulse.visit(flag, t => t[as] = func(t, _));\n  }\n\n});\n\n/**\n * Generates data tuples using a provided generator function.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(Parameters): object} params.generator - A tuple generator\n *   function. This function is given the operator parameters as input.\n *   Changes to any additional parameters will not trigger re-calculation\n *   of previously generated tuples. Only future tuples are affected.\n * @param {number} params.size - The number of tuples to produce.\n */\n\nfunction Generate(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Generate, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.ALL),\n          gen = _.generator;\n    let data = this.value,\n        num = _.size - data.length,\n        add,\n        rem,\n        t;\n\n    if (num > 0) {\n      // need more tuples, generate and add\n      for (add = []; --num >= 0;) {\n        add.push(t = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(gen(_)));\n        data.push(t);\n      }\n\n      out.add = out.add.length ? out.materialize(out.ADD).add.concat(add) : add;\n    } else {\n      // need fewer tuples, remove\n      rem = data.slice(0, -num);\n      out.rem = out.rem.length ? out.materialize(out.REM).rem.concat(rem) : rem;\n      data = data.slice(-num);\n    }\n\n    out.source = this.value = data;\n    return out;\n  }\n\n});\n\nconst Methods = {\n  value: 'value',\n  median: d3_array__WEBPACK_IMPORTED_MODULE_3__[\"median\"],\n  mean: d3_array__WEBPACK_IMPORTED_MODULE_3__[\"mean\"],\n  min: d3_array__WEBPACK_IMPORTED_MODULE_3__[\"min\"],\n  max: d3_array__WEBPACK_IMPORTED_MODULE_3__[\"max\"]\n};\nconst Empty = [];\n/**\n * Impute missing values.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The value field to impute.\n * @param {Array<function(object): *>} [params.groupby] - An array of\n *   accessors to determine series within which to perform imputation.\n * @param {function(object): *} params.key - An accessor for a key value.\n *   Each key value should be unique within a group. New tuples will be\n *   imputed for any key values that are not found within a group.\n * @param {Array<*>} [params.keyvals] - Optional array of required key\n *   values. New tuples will be imputed for any key values that are not\n *   found within a group. In addition, these values will be automatically\n *   augmented with the key values observed in the input data.\n * @param {string} [method='value'] - The imputation method to use. One of\n *   'value', 'mean', 'median', 'max', 'min'.\n * @param {*} [value=0] - The constant value to use for imputation\n *   when using method 'value'.\n */\n\nfunction Impute(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n}\nImpute.Definition = {\n  'type': 'Impute',\n  'metadata': {\n    'changes': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'key',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'keyvals',\n    'array': true\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'method',\n    'type': 'enum',\n    'default': 'value',\n    'values': ['value', 'mean', 'median', 'max', 'min']\n  }, {\n    'name': 'value',\n    'default': 0\n  }]\n};\n\nfunction getValue(_) {\n  var m = _.method || Methods.value,\n      v;\n\n  if (Methods[m] == null) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized imputation method: ' + m);\n  } else if (m === Methods.value) {\n    v = _.value !== undefined ? _.value : 0;\n    return () => v;\n  } else {\n    return Methods[m];\n  }\n}\n\nfunction getField(_) {\n  const f = _.field;\n  return t => t ? f(t) : NaN;\n}\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Impute, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    var out = pulse.fork(pulse.ALL),\n        impute = getValue(_),\n        field = getField(_),\n        fName = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(_.field),\n        kName = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(_.key),\n        gNames = (_.groupby || []).map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"]),\n        groups = partition$1(pulse.source, _.groupby, _.key, _.keyvals),\n        curr = [],\n        prev = this.value,\n        m = groups.domain.length,\n        group,\n        value,\n        gVals,\n        kVal,\n        g,\n        i,\n        j,\n        l,\n        n,\n        t;\n\n    for (g = 0, l = groups.length; g < l; ++g) {\n      group = groups[g];\n      gVals = group.values;\n      value = NaN; // add tuples for missing values\n\n      for (j = 0; j < m; ++j) {\n        if (group[j] != null) continue;\n        kVal = groups.domain[j];\n        t = {\n          _impute: true\n        };\n\n        for (i = 0, n = gVals.length; i < n; ++i) t[gNames[i]] = gVals[i];\n\n        t[kName] = kVal;\n        t[fName] = Number.isNaN(value) ? value = impute(group, field) : value;\n        curr.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t));\n      }\n    } // update pulse with imputed tuples\n\n\n    if (curr.length) out.add = out.materialize(out.ADD).add.concat(curr);\n    if (prev.length) out.rem = out.materialize(out.REM).rem.concat(prev);\n    this.value = curr;\n    return out;\n  }\n\n});\n\nfunction partition$1(data, groupby, key, keyvals) {\n  var get = f => f(t),\n      groups = [],\n      domain = keyvals ? keyvals.slice() : [],\n      kMap = {},\n      gMap = {},\n      gVals,\n      gKey,\n      group,\n      i,\n      j,\n      k,\n      n,\n      t;\n\n  domain.forEach((k, i) => kMap[k] = i + 1);\n\n  for (i = 0, n = data.length; i < n; ++i) {\n    t = data[i];\n    k = key(t);\n    j = kMap[k] || (kMap[k] = domain.push(k));\n    gKey = (gVals = groupby ? groupby.map(get) : Empty) + '';\n\n    if (!(group = gMap[gKey])) {\n      group = gMap[gKey] = [];\n      groups.push(group);\n      group.values = gVals;\n    }\n\n    group[j - 1] = t;\n  }\n\n  groups.domain = domain;\n  return groups;\n}\n\n/**\n * Extend input tuples with aggregate values.\n * Calcuates aggregate values and joins them with the input stream.\n * @constructor\n */\n\nfunction JoinAggregate(params) {\n  Aggregate.call(this, params);\n}\nJoinAggregate.Definition = {\n  'type': 'JoinAggregate',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'fields',\n    'type': 'field',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'ops',\n    'type': 'enum',\n    'array': true,\n    'values': ValidAggregateOps\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'key',\n    'type': 'field'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(JoinAggregate, Aggregate, {\n  transform(_, pulse) {\n    const aggr = this,\n          mod = _.modified();\n\n    let cells; // process all input tuples to calculate aggregates\n\n    if (aggr.value && (mod || pulse.modified(aggr._inputs, true))) {\n      cells = aggr.value = mod ? aggr.init(_) : {};\n      pulse.visit(pulse.SOURCE, t => aggr.add(t));\n    } else {\n      cells = aggr.value = aggr.value || this.init(_);\n      pulse.visit(pulse.REM, t => aggr.rem(t));\n      pulse.visit(pulse.ADD, t => aggr.add(t));\n    } // update aggregation cells\n\n\n    aggr.changes(); // write aggregate values to input tuples\n\n    pulse.visit(pulse.SOURCE, t => {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(t, cells[aggr.cellkey(t)].tuple);\n    });\n    return pulse.reflow(mod).modifies(this._outputs);\n  },\n\n  changes() {\n    const adds = this._adds,\n          mods = this._mods;\n    let i, n;\n\n    for (i = 0, n = this._alen; i < n; ++i) {\n      this.celltuple(adds[i]);\n      adds[i] = null; // for garbage collection\n    }\n\n    for (i = 0, n = this._mlen; i < n; ++i) {\n      this.celltuple(mods[i]);\n      mods[i] = null; // for garbage collection\n    }\n\n    this._alen = this._mlen = 0; // reset list of active cells\n  }\n\n});\n\n/**\n * Compute kernel density estimates (KDE) for one or more data groups.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors\n *   to groupby.\n * @param {function(object): *} params.field - An accessor for the data field\n *   to estimate.\n * @param {number} [params.bandwidth=0] - The KDE kernel bandwidth.\n *   If zero or unspecified, the bandwidth is automatically determined.\n * @param {boolean} [params.counts=false] - A boolean flag indicating if the\n *   output values should be probability estimates (false, default) or\n *   smoothed counts (true).\n * @param {string} [params.cumulative=false] - A boolean flag indicating if a\n *   density (false) or cumulative distribution (true) should be generated.\n * @param {Array<number>} [params.extent] - The domain extent over which to\n *   plot the density. If unspecified, the [min, max] data extent is used.\n * @param {string} [params.resolve='independent'] - Indicates how parameters for\n *   multiple densities should be resolved. If \"independent\" (the default), each\n *   density may have its own domain extent and dynamic number of curve sample\n *   steps. If \"shared\", the KDE transform will ensure that all densities are\n *   defined over a shared domain and curve steps, enabling stacking.\n * @param {number} [params.minsteps=25] - The minimum number of curve samples\n *   for plotting the density.\n * @param {number} [params.maxsteps=200] - The maximum number of curve samples\n *   for plotting the density.\n * @param {number} [params.steps] - The exact number of curve samples for\n *   plotting the density. If specified, overrides both minsteps and maxsteps\n *   to set an exact number of uniform samples. Useful in conjunction with\n *   a fixed extent to ensure consistent sample points for stacked densities.\n */\n\nfunction KDE(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nKDE.Definition = {\n  'type': 'KDE',\n  'metadata': {\n    'generates': true\n  },\n  'params': [{\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'cumulative',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'counts',\n    'type': 'boolean',\n    'default': false\n  }, {\n    'name': 'bandwidth',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'extent',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'resolve',\n    'type': 'enum',\n    'values': ['shared', 'independent'],\n    'default': 'independent'\n  }, {\n    'name': 'steps',\n    'type': 'number'\n  }, {\n    'name': 'minsteps',\n    'type': 'number',\n    'default': 25\n  }, {\n    'name': 'maxsteps',\n    'type': 'number',\n    'default': 200\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'default': ['value', 'density']\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(KDE, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);\n\n    if (!this.value || pulse.changed() || _.modified()) {\n      const source = pulse.materialize(pulse.SOURCE).source,\n            groups = partition(source, _.groupby, _.field),\n            names = (_.groupby || []).map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"]),\n            bandwidth = _.bandwidth,\n            method = _.cumulative ? 'cdf' : 'pdf',\n            as = _.as || ['value', 'density'],\n            values = [];\n      let domain = _.extent,\n          minsteps = _.steps || _.minsteps || 25,\n          maxsteps = _.steps || _.maxsteps || 200;\n\n      if (method !== 'pdf' && method !== 'cdf') {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Invalid density method: ' + method);\n      }\n\n      if (_.resolve === 'shared') {\n        if (!domain) domain = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"])(source, _.field);\n        minsteps = maxsteps = _.steps || maxsteps;\n      }\n\n      groups.forEach(g => {\n        const density = Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"randomKDE\"])(g, bandwidth)[method],\n              scale = _.counts ? g.length : 1,\n              local = domain || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"])(g);\n        Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"sampleCurve\"])(density, local, minsteps, maxsteps).forEach(v => {\n          const t = {};\n\n          for (let i = 0; i < names.length; ++i) {\n            t[names[i]] = g.dims[i];\n          }\n\n          t[as[0]] = v[0];\n          t[as[1]] = v[1] * scale;\n          values.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t));\n        });\n      });\n      if (this.value) out.rem = this.value;\n      this.value = out.add = out.source = values;\n    }\n\n    return out;\n  }\n\n});\n\n/**\n * Generates a key function.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<string>} params.fields - The field name(s) for the key function.\n * @param {boolean} params.flat - A boolean flag indicating if the field names\n *  should be treated as flat property names, side-stepping nested field\n *  lookups normally indicated by dot or bracket notation.\n */\n\nfunction Key(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, null, update$3, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Key, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]);\n\nfunction update$3(_) {\n  return this.value && !_.modified() ? this.value : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"key\"])(_.fields, _.flat);\n}\n\n/**\n * Load and parse data from an external source. Marshalls parameter\n * values and then invokes the Dataflow request method.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {string} params.url - The URL to load from.\n * @param {object} params.format - The data format options.\n */\n\nfunction Load(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n  this._pending = null;\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Load, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const df = pulse.dataflow;\n\n    if (this._pending) {\n      // update state and return pulse\n      return output(this, pulse, this._pending);\n    }\n\n    if (stop(_)) return pulse.StopPropagation;\n\n    if (_.values) {\n      // parse and ingest values, return output pulse\n      return output(this, pulse, df.parse(_.values, _.format));\n    } else if (_.async) {\n      // return promise for non-blocking async loading\n      const p = df.request(_.url, _.format).then(res => {\n        this._pending = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(res.data);\n        return df => df.touch(this);\n      });\n      return {\n        async: p\n      };\n    } else {\n      // return promise for synchronous loading\n      return df.request(_.url, _.format).then(res => output(this, pulse, Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(res.data)));\n    }\n  }\n\n});\n\nfunction stop(_) {\n  return _.modified('async') && !(_.modified('values') || _.modified('url') || _.modified('format'));\n}\n\nfunction output(op, pulse, data) {\n  data.forEach(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"]);\n  const out = pulse.fork(pulse.NO_FIELDS & pulse.NO_SOURCE);\n  out.rem = op.value;\n  op.value = out.source = out.add = data;\n  op._pending = null;\n  if (out.rem.length) out.clean(true);\n  return out;\n}\n\n/**\n * Extend tuples by joining them with values from a lookup table.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Map} params.index - The lookup table map.\n * @param {Array<function(object): *} params.fields - The fields to lookup.\n * @param {Array<string>} params.as - Output field names for each lookup value.\n * @param {*} [params.default] - A default value to use if lookup fails.\n */\n\nfunction Lookup(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, {}, params);\n}\nLookup.Definition = {\n  'type': 'Lookup',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'index',\n    'type': 'index',\n    'params': [{\n      'name': 'from',\n      'type': 'data',\n      'required': true\n    }, {\n      'name': 'key',\n      'type': 'field',\n      'required': true\n    }]\n  }, {\n    'name': 'values',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'fields',\n    'type': 'field',\n    'array': true,\n    'required': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true\n  }, {\n    'name': 'default',\n    'default': null\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Lookup, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const keys = _.fields,\n          index = _.index,\n          values = _.values,\n          defaultValue = _.default == null ? null : _.default,\n          reset = _.modified(),\n          n = keys.length;\n\n    let flag = reset ? pulse.SOURCE : pulse.ADD,\n        out = pulse,\n        as = _.as,\n        set,\n        m,\n        mods;\n\n    if (values) {\n      m = values.length;\n\n      if (n > 1 && !as) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Multi-field lookup requires explicit \"as\" parameter.');\n      }\n\n      if (as && as.length !== n * m) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('The \"as\" parameter has too few output field names.');\n      }\n\n      as = as || values.map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"]);\n\n      set = function (t) {\n        for (var i = 0, k = 0, j, v; i < n; ++i) {\n          v = index.get(keys[i](t));\n          if (v == null) for (j = 0; j < m; ++j, ++k) t[as[k]] = defaultValue;else for (j = 0; j < m; ++j, ++k) t[as[k]] = values[j](v);\n        }\n      };\n    } else {\n      if (!as) {\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Missing output field names.');\n      }\n\n      set = function (t) {\n        for (var i = 0, v; i < n; ++i) {\n          v = index.get(keys[i](t));\n          t[as[i]] = v == null ? defaultValue : v;\n        }\n      };\n    }\n\n    if (reset) {\n      out = pulse.reflow(true);\n    } else {\n      mods = keys.some(k => pulse.modified(k.fields));\n      flag |= mods ? pulse.MOD : 0;\n    }\n\n    pulse.visit(flag, set);\n    return out.modifies(as);\n  }\n\n});\n\n/**\n * Computes global min/max extents over a collection of extents.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<Array<number>>} params.extents - The input extents.\n */\n\nfunction MultiExtent(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, null, update$4, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(MultiExtent, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]);\n\nfunction update$4(_) {\n  if (this.value && !_.modified()) {\n    return this.value;\n  }\n\n  const ext = _.extents,\n        n = ext.length;\n  let min = +Infinity,\n      max = -Infinity,\n      i,\n      e;\n\n  for (i = 0; i < n; ++i) {\n    e = ext[i];\n    if (e[0] < min) min = e[0];\n    if (e[1] > max) max = e[1];\n  }\n\n  return [min, max];\n}\n\n/**\n * Merge a collection of value arrays.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<Array<*>>} params.values - The input value arrrays.\n */\n\nfunction MultiValues(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"].call(this, null, update$5, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(MultiValues, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]);\n\nfunction update$5(_) {\n  return this.value && !_.modified() ? this.value : _.values.reduce((data, _) => data.concat(_), []);\n}\n\n/**\n * Operator whose value is simply its parameter hash. This operator is\n * useful for enabling reactive updates to values of nested objects.\n * @constructor\n * @param {object} params - The parameters for this operator.\n */\n\nfunction Params(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Params, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    this.modified(_.modified());\n    this.value = _;\n    return pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS); // do not pass tuples\n  }\n\n});\n\n/**\n * Aggregate and pivot selected field values to become new fields.\n * This operator is useful to construction cross-tabulations.\n * @constructor\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors\n *  to groupby. These fields act just like groupby fields of an Aggregate transform.\n * @param {function(object): *} params.field - The field to pivot on. The unique\n *  values of this field become new field names in the output stream.\n * @param {function(object): *} params.value - The field to populate pivoted fields.\n *  The aggregate values of this field become the values of the new pivoted fields.\n * @param {string} [params.op] - The aggregation operation for the value field,\n *  applied per cell in the output stream. The default is \"sum\".\n * @param {number} [params.limit] - An optional parameter indicating the maximum\n *  number of pivoted fields to generate. The pivoted field names are sorted in\n *  ascending order prior to enforcing the limit.\n */\n\nfunction Pivot(params) {\n  Aggregate.call(this, params);\n}\nPivot.Definition = {\n  'type': 'Pivot',\n  'metadata': {\n    'generates': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'value',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'op',\n    'type': 'enum',\n    'values': ValidAggregateOps,\n    'default': 'sum'\n  }, {\n    'name': 'limit',\n    'type': 'number',\n    'default': 0\n  }, {\n    'name': 'key',\n    'type': 'field'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Pivot, Aggregate, {\n  _transform: Aggregate.prototype.transform,\n\n  transform(_, pulse) {\n    return this._transform(aggregateParams(_, pulse), pulse);\n  }\n\n}); // Shoehorn a pivot transform into an aggregate transform!\n// First collect all unique pivot field values.\n// Then generate aggregate fields for each output pivot field.\n\nfunction aggregateParams(_, pulse) {\n  const key = _.field,\n        value = _.value,\n        op = (_.op === 'count' ? '__count__' : _.op) || 'sum',\n        fields = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(key).concat(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(value)),\n        keys = pivotKeys(key, _.limit || 0, pulse); // if data stream content changes, pivot fields may change\n  // flag parameter modification to ensure re-initialization\n\n  if (pulse.changed()) _.set('__pivot__', null, null, true);\n  return {\n    key: _.key,\n    groupby: _.groupby,\n    ops: keys.map(() => op),\n    fields: keys.map(k => get(k, key, value, fields)),\n    as: keys.map(k => k + ''),\n    modified: _.modified.bind(_)\n  };\n} // Generate aggregate field accessor.\n// Output NaN for non-existent values; aggregator will ignore!\n\n\nfunction get(k, key, value, fields) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessor\"])(d => key(d) === k ? value(d) : NaN, fields, k + '');\n} // Collect (and optionally limit) all unique pivot values.\n\n\nfunction pivotKeys(key, limit, pulse) {\n  const map = {},\n        list = [];\n  pulse.visit(pulse.SOURCE, t => {\n    const k = key(t);\n\n    if (!map[k]) {\n      map[k] = 1;\n      list.push(k);\n    }\n  });\n  list.sort(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"ascending\"]);\n  return limit ? list.slice(0, limit) : list;\n}\n\n/**\n * Partitions pre-faceted data into tuple subflows.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(Dataflow, string): Operator} params.subflow - A function\n *   that generates a subflow of operators and returns its root operator.\n * @param {function(object): Array<object>} params.field - The field\n *   accessor for an array of subflow tuple objects.\n */\n\nfunction PreFacet(params) {\n  Facet.call(this, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(PreFacet, Facet, {\n  transform(_, pulse) {\n    const flow = _.subflow,\n          field = _.field,\n          subflow = t => this.subflow(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t), flow, pulse, t);\n\n    if (_.modified('field') || field && pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(field))) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('PreFacet does not support field modification.');\n    }\n\n    this.initTargets(); // reset list of active subflows\n\n    if (field) {\n      pulse.visit(pulse.MOD, t => {\n        const sf = subflow(t);\n        field(t).forEach(_ => sf.mod(_));\n      });\n      pulse.visit(pulse.ADD, t => {\n        const sf = subflow(t);\n        field(t).forEach(_ => sf.add(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(_)));\n      });\n      pulse.visit(pulse.REM, t => {\n        const sf = subflow(t);\n        field(t).forEach(_ => sf.rem(_));\n      });\n    } else {\n      pulse.visit(pulse.MOD, t => subflow(t).mod(t));\n      pulse.visit(pulse.ADD, t => subflow(t).add(t));\n      pulse.visit(pulse.REM, t => subflow(t).rem(t));\n    }\n\n    if (pulse.clean()) {\n      pulse.runAfter(() => this.clean());\n    }\n\n    return pulse;\n  }\n\n});\n\n/**\n * Performs a relational projection, copying selected fields from source\n * tuples to a new set of derived tuples.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {Array<function(object): *} params.fields - The fields to project,\n *   as an array of field accessors. If unspecified, all fields will be\n *   copied with names unchanged.\n * @param {Array<string>} [params.as] - Output field names for each projected\n *   field. Any unspecified fields will use the field name provided by\n *   the field accessor.\n */\n\nfunction Project(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nProject.Definition = {\n  'type': 'Project',\n  'metadata': {\n    'generates': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'fields',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'null': true,\n    'array': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Project, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE),\n          fields = _.fields,\n          as = fieldNames(_.fields, _.as || []),\n          derive = fields ? (s, t) => project(s, t, fields, as) : vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"rederive\"];\n    let lut;\n\n    if (this.value) {\n      lut = this.value;\n    } else {\n      pulse = pulse.addAll();\n      lut = this.value = {};\n    }\n\n    pulse.visit(pulse.REM, t => {\n      const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t);\n      out.rem.push(lut[id]);\n      lut[id] = null;\n    });\n    pulse.visit(pulse.ADD, t => {\n      const dt = derive(t, Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])({}));\n      lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)] = dt;\n      out.add.push(dt);\n    });\n    pulse.visit(pulse.MOD, t => {\n      out.mod.push(derive(t, lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)]));\n    });\n    return out;\n  }\n\n});\n\nfunction project(s, t, fields, as) {\n  for (let i = 0, n = fields.length; i < n; ++i) {\n    t[as[i]] = fields[i](s);\n  }\n\n  return t;\n}\n\n/**\n * Proxy the value of another operator as a pure signal value.\n * Ensures no tuples are propagated.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {*} params.value - The value to proxy, becomes the value of this operator.\n */\n\nfunction Proxy(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Proxy, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    this.value = _.value;\n    return _.modified('value') ? pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS) : pulse.StopPropagation;\n  }\n\n});\n\n/**\n * Generates sample quantile values from an input data stream.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - An accessor for the data field\n *   over which to calculate quantile values.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors\n *   to groupby.\n * @param {Array<number>} [params.probs] - An array of probabilities in\n *   the range (0, 1) for which to compute quantile values. If not specified,\n *   the *step* parameter will be used.\n * @param {Array<number>} [params.step=0.01] - A probability step size for\n *   sampling quantile values. All values from one-half the step size up to\n *   1 (exclusive) will be sampled. This parameter is only used if the\n *   *quantiles* parameter is not provided.\n */\n\nfunction Quantile(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nQuantile.Definition = {\n  'type': 'Quantile',\n  'metadata': {\n    'generates': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'probs',\n    'type': 'number',\n    'array': true\n  }, {\n    'name': 'step',\n    'type': 'number',\n    'default': 0.01\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'default': ['prob', 'value']\n  }]\n};\nconst EPSILON$1 = 1e-14;\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Quantile, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),\n          as = _.as || ['prob', 'value'];\n\n    if (this.value && !_.modified() && !pulse.changed()) {\n      out.source = this.value;\n      return out;\n    }\n\n    const source = pulse.materialize(pulse.SOURCE).source,\n          groups = partition(source, _.groupby, _.field),\n          names = (_.groupby || []).map(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"]),\n          values = [],\n          step = _.step || 0.01,\n          p = _.probs || Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"range\"])(step / 2, 1 - EPSILON$1, step),\n          n = p.length;\n    groups.forEach(g => {\n      const q = Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"quantiles\"])(g, p);\n\n      for (let i = 0; i < n; ++i) {\n        const t = {};\n\n        for (let i = 0; i < names.length; ++i) {\n          t[names[i]] = g.dims[i];\n        }\n\n        t[as[0]] = p[i];\n        t[as[1]] = q[i];\n        values.push(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t));\n      }\n    });\n    if (this.value) out.rem = this.value;\n    this.value = out.add = out.source = values;\n    return out;\n  }\n\n});\n\n/**\n * Relays a data stream between data processing pipelines.\n * If the derive parameter is set, this transform will create derived\n * copies of observed tuples. This provides derived data streams in which\n * modifications to the tuples do not pollute an upstream data source.\n * @param {object} params - The parameters for this operator.\n * @param {number} [params.derive=false] - Boolean flag indicating if\n *   the transform should make derived copies of incoming tuples.\n * @constructor\n */\n\nfunction Relay(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Relay, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    let out, lut;\n\n    if (this.value) {\n      lut = this.value;\n    } else {\n      out = pulse = pulse.addAll();\n      lut = this.value = {};\n    }\n\n    if (_.derive) {\n      out = pulse.fork(pulse.NO_SOURCE);\n      pulse.visit(pulse.REM, t => {\n        const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t);\n        out.rem.push(lut[id]);\n        lut[id] = null;\n      });\n      pulse.visit(pulse.ADD, t => {\n        const dt = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"derive\"])(t);\n        lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)] = dt;\n        out.add.push(dt);\n      });\n      pulse.visit(pulse.MOD, t => {\n        const dt = lut[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)];\n\n        for (const k in t) {\n          dt[k] = t[k]; // down stream writes may overwrite re-derived tuples\n          // conservatively mark all source fields as modified\n\n          out.modifies(k);\n        }\n\n        out.mod.push(dt);\n      });\n    }\n\n    return out;\n  }\n\n});\n\n/**\n * Samples tuples passing through this operator.\n * Uses reservoir sampling to maintain a representative sample.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {number} [params.size=1000] - The maximum number of samples.\n */\n\nfunction Sample(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, [], params);\n  this.count = 0;\n}\nSample.Definition = {\n  'type': 'Sample',\n  'metadata': {},\n  'params': [{\n    'name': 'size',\n    'type': 'number',\n    'default': 1000\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Sample, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const out = pulse.fork(pulse.NO_SOURCE),\n          mod = _.modified('size'),\n          num = _.size,\n          map = this.value.reduce((m, t) => (m[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)] = 1, m), {});\n\n    let res = this.value,\n        cnt = this.count,\n        cap = 0; // sample reservoir update function\n\n    function update(t) {\n      let p, idx;\n\n      if (res.length < num) {\n        res.push(t);\n      } else {\n        idx = ~~((cnt + 1) * Object(vega_statistics__WEBPACK_IMPORTED_MODULE_2__[\"random\"])());\n\n        if (idx < res.length && idx >= cap) {\n          p = res[idx];\n          if (map[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(p)]) out.rem.push(p); // eviction\n\n          res[idx] = t;\n        }\n      }\n\n      ++cnt;\n    }\n\n    if (pulse.rem.length) {\n      // find all tuples that should be removed, add to output\n      pulse.visit(pulse.REM, t => {\n        const id = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t);\n\n        if (map[id]) {\n          map[id] = -1;\n          out.rem.push(t);\n        }\n\n        --cnt;\n      }); // filter removed tuples out of the sample reservoir\n\n      res = res.filter(t => map[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)] !== -1);\n    }\n\n    if ((pulse.rem.length || mod) && res.length < num && pulse.source) {\n      // replenish sample if backing data source is available\n      cap = cnt = res.length;\n      pulse.visit(pulse.SOURCE, t => {\n        // update, but skip previously sampled tuples\n        if (!map[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)]) update(t);\n      });\n      cap = -1;\n    }\n\n    if (mod && res.length > num) {\n      const n = res.length - num;\n\n      for (let i = 0; i < n; ++i) {\n        map[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(res[i])] = -1;\n        out.rem.push(res[i]);\n      }\n\n      res = res.slice(n);\n    }\n\n    if (pulse.mod.length) {\n      // propagate modified tuples in the sample reservoir\n      pulse.visit(pulse.MOD, t => {\n        if (map[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)]) out.mod.push(t);\n      });\n    }\n\n    if (pulse.add.length) {\n      // update sample reservoir\n      pulse.visit(pulse.ADD, update);\n    }\n\n    if (pulse.add.length || cap < 0) {\n      // output newly added tuples\n      out.add = res.filter(t => !map[Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"])(t)]);\n    }\n\n    this.count = cnt;\n    this.value = out.source = res;\n    return out;\n  }\n\n});\n\n/**\n * Generates data tuples for a specified sequence range of numbers.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {number} params.start - The first number in the sequence.\n * @param {number} params.stop - The last number (exclusive) in the sequence.\n * @param {number} [params.step=1] - The step size between numbers in the sequence.\n */\n\nfunction Sequence(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nSequence.Definition = {\n  'type': 'Sequence',\n  'metadata': {\n    'generates': true,\n    'changes': true\n  },\n  'params': [{\n    'name': 'start',\n    'type': 'number',\n    'required': true\n  }, {\n    'name': 'stop',\n    'type': 'number',\n    'required': true\n  }, {\n    'name': 'step',\n    'type': 'number',\n    'default': 1\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'data'\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Sequence, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    if (this.value && !_.modified()) return;\n    const out = pulse.materialize().fork(pulse.MOD),\n          as = _.as || 'data';\n    out.rem = this.value ? pulse.rem.concat(this.value) : pulse.rem;\n    this.value = Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"range\"])(_.start, _.stop, _.step || 1).map(v => {\n      const t = {};\n      t[as] = v;\n      return Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"])(t);\n    });\n    out.add = pulse.add.concat(this.value);\n    return out;\n  }\n\n});\n\n/**\n * Propagates a new pulse without any tuples so long as the input\n * pulse contains some added, removed or modified tuples.\n * @param {object} params - The parameters for this operator.\n * @constructor\n */\n\nfunction Sieve(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n  this.modified(true); // always treat as modified\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Sieve, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    this.value = pulse.source;\n    return pulse.changed() ? pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS) : pulse.StopPropagation;\n  }\n\n});\n\n/**\n * Discretize dates to specific time units.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The data field containing date/time values.\n */\n\nfunction TimeUnit(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nconst OUTPUT = ['unit0', 'unit1'];\nTimeUnit.Definition = {\n  'type': 'TimeUnit',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'field',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'interval',\n    'type': 'boolean',\n    'default': true\n  }, {\n    'name': 'units',\n    'type': 'enum',\n    'values': vega_time__WEBPACK_IMPORTED_MODULE_4__[\"TIME_UNITS\"],\n    'array': true\n  }, {\n    'name': 'step',\n    'type': 'number',\n    'default': 1\n  }, {\n    'name': 'maxbins',\n    'type': 'number',\n    'default': 40\n  }, {\n    'name': 'extent',\n    'type': 'date',\n    'array': true\n  }, {\n    'name': 'timezone',\n    'type': 'enum',\n    'default': 'local',\n    'values': ['local', 'utc']\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 2,\n    'default': OUTPUT\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(TimeUnit, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const field = _.field,\n          band = _.interval !== false,\n          utc = _.timezone === 'utc',\n          floor = this._floor(_, pulse),\n          offset = (utc ? vega_time__WEBPACK_IMPORTED_MODULE_4__[\"utcInterval\"] : vega_time__WEBPACK_IMPORTED_MODULE_4__[\"timeInterval\"])(floor.unit).offset,\n          as = _.as || OUTPUT,\n          u0 = as[0],\n          u1 = as[1],\n          step = floor.step;\n\n    let min = floor.start || Infinity,\n        max = floor.stop || -Infinity,\n        flag = pulse.ADD;\n\n    if (_.modified() || pulse.modified(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(field))) {\n      pulse = pulse.reflow(true);\n      flag = pulse.SOURCE;\n      min = Infinity;\n      max = -Infinity;\n    }\n\n    pulse.visit(flag, t => {\n      const v = field(t);\n      let a, b;\n\n      if (v == null) {\n        t[u0] = null;\n        if (band) t[u1] = null;\n      } else {\n        t[u0] = a = b = floor(v);\n        if (band) t[u1] = b = offset(a, step);\n        if (a < min) min = a;\n        if (b > max) max = b;\n      }\n    });\n    floor.start = min;\n    floor.stop = max;\n    return pulse.modifies(band ? as : u0);\n  },\n\n  _floor(_, pulse) {\n    const utc = _.timezone === 'utc'; // get parameters\n\n    const {\n      units,\n      step\n    } = _.units ? {\n      units: _.units,\n      step: _.step || 1\n    } : Object(vega_time__WEBPACK_IMPORTED_MODULE_4__[\"timeBin\"])({\n      extent: _.extent || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"])(pulse.materialize(pulse.SOURCE).source, _.field),\n      maxbins: _.maxbins\n    }); // check / standardize time units\n\n    const tunits = Object(vega_time__WEBPACK_IMPORTED_MODULE_4__[\"timeUnits\"])(units),\n          prev = this.value || {},\n          floor = (utc ? vega_time__WEBPACK_IMPORTED_MODULE_4__[\"utcFloor\"] : vega_time__WEBPACK_IMPORTED_MODULE_4__[\"timeFloor\"])(tunits, step);\n    floor.unit = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"])(tunits);\n    floor.units = tunits;\n    floor.step = step;\n    floor.start = prev.start;\n    floor.stop = prev.stop;\n    return this.value = floor;\n  }\n\n});\n\n/**\n * An index that maps from unique, string-coerced, field values to tuples.\n * Assumes that the field serves as a unique key with no duplicate values.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The field accessor to index.\n */\n\nfunction TupleIndex(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"fastmap\"])(), params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(TupleIndex, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const df = pulse.dataflow,\n          field = _.field,\n          index = this.value,\n          set = t => index.set(field(t), t);\n\n    let mod = true;\n\n    if (_.modified('field') || pulse.modified(field.fields)) {\n      index.clear();\n      pulse.visit(pulse.SOURCE, set);\n    } else if (pulse.changed()) {\n      pulse.visit(pulse.REM, t => index.delete(field(t)));\n      pulse.visit(pulse.ADD, set);\n    } else {\n      mod = false;\n    }\n\n    this.modified(mod);\n    if (index.empty > df.cleanThreshold) df.runAfter(index.clean);\n    return pulse.fork();\n  }\n\n});\n\n/**\n * Extracts an array of values. Assumes the source data has already been\n * reduced as needed (e.g., by an upstream Aggregate transform).\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(object): *} params.field - The domain field to extract.\n * @param {function(*,*): number} [params.sort] - An optional\n *   comparator function for sorting the values. The comparator will be\n *   applied to backing tuples prior to value extraction.\n */\n\nfunction Values(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Values, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    const run = !this.value || _.modified('field') || _.modified('sort') || pulse.changed() || _.sort && pulse.modified(_.sort.fields);\n\n    if (run) {\n      this.value = (_.sort ? pulse.source.slice().sort(Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"stableCompare\"])(_.sort)) : pulse.source).map(_.field);\n    }\n  }\n\n});\n\nfunction WindowOp(op, field, param, as) {\n  const fn = WindowOps[op](field, param);\n  return {\n    init: fn.init || vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"],\n    update: function (w, t) {\n      t[as] = fn.next(w);\n    }\n  };\n}\nconst WindowOps = {\n  row_number: function () {\n    return {\n      next: w => w.index + 1\n    };\n  },\n  rank: function () {\n    let rank;\n    return {\n      init: () => rank = 1,\n      next: w => {\n        const i = w.index,\n              data = w.data;\n        return i && w.compare(data[i - 1], data[i]) ? rank = i + 1 : rank;\n      }\n    };\n  },\n  dense_rank: function () {\n    let drank;\n    return {\n      init: () => drank = 1,\n      next: w => {\n        const i = w.index,\n              d = w.data;\n        return i && w.compare(d[i - 1], d[i]) ? ++drank : drank;\n      }\n    };\n  },\n  percent_rank: function () {\n    const rank = WindowOps.rank(),\n          next = rank.next;\n    return {\n      init: rank.init,\n      next: w => (next(w) - 1) / (w.data.length - 1)\n    };\n  },\n  cume_dist: function () {\n    let cume;\n    return {\n      init: () => cume = 0,\n      next: w => {\n        const d = w.data,\n              c = w.compare;\n        let i = w.index;\n\n        if (cume < i) {\n          while (i + 1 < d.length && !c(d[i], d[i + 1])) ++i;\n\n          cume = i;\n        }\n\n        return (1 + cume) / d.length;\n      }\n    };\n  },\n  ntile: function (field, num) {\n    num = +num;\n    if (!(num > 0)) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('ntile num must be greater than zero.');\n    const cume = WindowOps.cume_dist(),\n          next = cume.next;\n    return {\n      init: cume.init,\n      next: w => Math.ceil(num * next(w))\n    };\n  },\n  lag: function (field, offset) {\n    offset = +offset || 1;\n    return {\n      next: w => {\n        const i = w.index - offset;\n        return i >= 0 ? field(w.data[i]) : null;\n      }\n    };\n  },\n  lead: function (field, offset) {\n    offset = +offset || 1;\n    return {\n      next: w => {\n        const i = w.index + offset,\n              d = w.data;\n        return i < d.length ? field(d[i]) : null;\n      }\n    };\n  },\n  first_value: function (field) {\n    return {\n      next: w => field(w.data[w.i0])\n    };\n  },\n  last_value: function (field) {\n    return {\n      next: w => field(w.data[w.i1 - 1])\n    };\n  },\n  nth_value: function (field, nth) {\n    nth = +nth;\n    if (!(nth > 0)) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('nth_value nth must be greater than zero.');\n    return {\n      next: w => {\n        const i = w.i0 + (nth - 1);\n        return i < w.i1 ? field(w.data[i]) : null;\n      }\n    };\n  },\n  prev_value: function (field) {\n    let prev;\n    return {\n      init: () => prev = null,\n      next: w => {\n        const v = field(w.data[w.index]);\n        return v != null ? prev = v : prev;\n      }\n    };\n  },\n  next_value: function (field) {\n    let v, i;\n    return {\n      init: () => (v = null, i = -1),\n      next: w => {\n        const d = w.data;\n        return w.index <= i ? v : (i = find(field, d, w.index)) < 0 ? (i = d.length, v = null) : v = field(d[i]);\n      }\n    };\n  }\n};\n\nfunction find(field, data, index) {\n  for (let n = data.length; index < n; ++index) {\n    const v = field(data[index]);\n    if (v != null) return index;\n  }\n\n  return -1;\n}\n\nconst ValidWindowOps = Object.keys(WindowOps);\n\nfunction WindowState(_) {\n  const ops = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.ops),\n        fields = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.fields),\n        params = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.params),\n        as = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(_.as),\n        outputs = this.outputs = [],\n        windows = this.windows = [],\n        inputs = {},\n        map = {},\n        counts = [],\n        measures = [];\n  let countOnly = true;\n\n  function visitInputs(f) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"])(Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"])(f)).forEach(_ => inputs[_] = 1);\n  }\n\n  visitInputs(_.sort);\n  ops.forEach((op, i) => {\n    const field = fields[i],\n          mname = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"])(field),\n          name = measureName(op, mname, as[i]);\n    visitInputs(field);\n    outputs.push(name); // Window operation\n\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(WindowOps, op)) {\n      windows.push(WindowOp(op, fields[i], params[i], name));\n    } // Aggregate operation\n    else {\n        if (field == null && op !== 'count') {\n          Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Null aggregate field specified.');\n        }\n\n        if (op === 'count') {\n          counts.push(name);\n          return;\n        }\n\n        countOnly = false;\n        let m = map[mname];\n\n        if (!m) {\n          m = map[mname] = [];\n          m.field = field;\n          measures.push(m);\n        }\n\n        m.push(createMeasure(op, name));\n      }\n  });\n\n  if (counts.length || measures.length) {\n    this.cell = cell(measures, counts, countOnly);\n  }\n\n  this.inputs = Object.keys(inputs);\n}\nconst prototype$1 = WindowState.prototype;\n\nprototype$1.init = function () {\n  this.windows.forEach(_ => _.init());\n  if (this.cell) this.cell.init();\n};\n\nprototype$1.update = function (w, t) {\n  const cell = this.cell,\n        wind = this.windows,\n        data = w.data,\n        m = wind && wind.length;\n  let j;\n\n  if (cell) {\n    for (j = w.p0; j < w.i0; ++j) cell.rem(data[j]);\n\n    for (j = w.p1; j < w.i1; ++j) cell.add(data[j]);\n\n    cell.set(t);\n  }\n\n  for (j = 0; j < m; ++j) wind[j].update(w, t);\n};\n\nfunction cell(measures, counts, countOnly) {\n  measures = measures.map(m => compileMeasures(m, m.field));\n  const cell = {\n    num: 0,\n    agg: null,\n    store: false,\n    count: counts\n  };\n\n  if (!countOnly) {\n    var n = measures.length,\n        a = cell.agg = Array(n),\n        i = 0;\n\n    for (; i < n; ++i) a[i] = new measures[i](cell);\n  }\n\n  if (cell.store) {\n    var store = cell.data = new TupleStore();\n  }\n\n  cell.add = function (t) {\n    cell.num += 1;\n    if (countOnly) return;\n    if (store) store.add(t);\n\n    for (let i = 0; i < n; ++i) {\n      a[i].add(a[i].get(t), t);\n    }\n  };\n\n  cell.rem = function (t) {\n    cell.num -= 1;\n    if (countOnly) return;\n    if (store) store.rem(t);\n\n    for (let i = 0; i < n; ++i) {\n      a[i].rem(a[i].get(t), t);\n    }\n  };\n\n  cell.set = function (t) {\n    let i, n; // consolidate stored values\n\n    if (store) store.values(); // update tuple properties\n\n    for (i = 0, n = counts.length; i < n; ++i) t[counts[i]] = cell.num;\n\n    if (!countOnly) for (i = 0, n = a.length; i < n; ++i) a[i].set(t);\n  };\n\n  cell.init = function () {\n    cell.num = 0;\n    if (store) store.reset();\n\n    for (let i = 0; i < n; ++i) a[i].init();\n  };\n\n  return cell;\n}\n\n/**\n * Perform window calculations and write results to the input stream.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {function(*,*): number} [params.sort] - A comparator function for sorting tuples within a window.\n * @param {Array<function(object): *>} [params.groupby] - An array of accessors by which to partition tuples into separate windows.\n * @param {Array<string>} params.ops - An array of strings indicating window operations to perform.\n * @param {Array<function(object): *>} [params.fields] - An array of accessors\n *   for data fields to use as inputs to window operations.\n * @param {Array<*>} [params.params] - An array of parameter values for window operations.\n * @param {Array<string>} [params.as] - An array of output field names for window operations.\n * @param {Array<number>} [params.frame] - Window frame definition as two-element array.\n * @param {boolean} [params.ignorePeers=false] - If true, base window frame boundaries on row\n *   number alone, ignoring peers with identical sort values. If false (default),\n *   the window boundaries will be adjusted to include peer values.\n */\n\nfunction Window(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, {}, params);\n  this._mlen = 0;\n  this._mods = [];\n}\nWindow.Definition = {\n  'type': 'Window',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'sort',\n    'type': 'compare'\n  }, {\n    'name': 'groupby',\n    'type': 'field',\n    'array': true\n  }, {\n    'name': 'ops',\n    'type': 'enum',\n    'array': true,\n    'values': ValidWindowOps.concat(ValidAggregateOps)\n  }, {\n    'name': 'params',\n    'type': 'number',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'fields',\n    'type': 'field',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'null': true,\n    'array': true\n  }, {\n    'name': 'frame',\n    'type': 'number',\n    'null': true,\n    'array': true,\n    'length': 2,\n    'default': [null, 0]\n  }, {\n    'name': 'ignorePeers',\n    'type': 'boolean',\n    'default': false\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(Window, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    this.stamp = pulse.stamp;\n\n    const mod = _.modified(),\n          cmp = Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"stableCompare\"])(_.sort),\n          key = groupkey(_.groupby),\n          group = t => this.group(key(t)); // initialize window state\n\n\n    let state = this.state;\n\n    if (!state || mod) {\n      state = this.state = new WindowState(_);\n    } // partition input tuples\n\n\n    if (mod || pulse.modified(state.inputs)) {\n      this.value = {};\n      pulse.visit(pulse.SOURCE, t => group(t).add(t));\n    } else {\n      pulse.visit(pulse.REM, t => group(t).remove(t));\n      pulse.visit(pulse.ADD, t => group(t).add(t));\n    } // perform window calculations for each modified partition\n\n\n    for (let i = 0, n = this._mlen; i < n; ++i) {\n      processPartition(this._mods[i], state, cmp, _);\n    }\n\n    this._mlen = 0;\n    this._mods = []; // TODO don't reflow everything?\n\n    return pulse.reflow(mod).modifies(state.outputs);\n  },\n\n  group(key) {\n    let group = this.value[key];\n\n    if (!group) {\n      group = this.value[key] = SortedList(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"]);\n      group.stamp = -1;\n    }\n\n    if (group.stamp < this.stamp) {\n      group.stamp = this.stamp;\n      this._mods[this._mlen++] = group;\n    }\n\n    return group;\n  }\n\n});\n\nfunction processPartition(list, state, cmp, _) {\n  const sort = _.sort,\n        range = sort && !_.ignorePeers,\n        frame = _.frame || [null, 0],\n        data = list.data(cmp),\n        // use cmp for stable sort\n  n = data.length,\n        b = range ? Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"bisector\"])(sort) : null,\n        w = {\n    i0: 0,\n    i1: 0,\n    p0: 0,\n    p1: 0,\n    index: 0,\n    data: data,\n    compare: sort || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(-1)\n  };\n  state.init();\n\n  for (let i = 0; i < n; ++i) {\n    setWindow(w, frame, i, n);\n    if (range) adjustRange(w, b);\n    state.update(w, data[i]);\n  }\n}\n\nfunction setWindow(w, f, i, n) {\n  w.p0 = w.i0;\n  w.p1 = w.i1;\n  w.i0 = f[0] == null ? 0 : Math.max(0, i - Math.abs(f[0]));\n  w.i1 = f[1] == null ? n : Math.min(n, i + Math.abs(f[1]) + 1);\n  w.index = i;\n} // if frame type is 'range', adjust window for peer values\n\n\nfunction adjustRange(w, bisect) {\n  const r0 = w.i0,\n        r1 = w.i1 - 1,\n        c = w.compare,\n        d = w.data,\n        n = d.length - 1;\n  if (r0 > 0 && !c(d[r0], d[r0 - 1])) w.i0 = bisect.left(d, d[r0]);\n  if (r1 < n && !c(d[r1], d[r1 + 1])) w.i1 = bisect.right(d, d[r1]);\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-transforms/build/vega-transforms.module.js?");

/***/ }),

/***/ "./node_modules/vega-util/build/vega-util.module.js":
/*!**********************************************************!*\
  !*** ./node_modules/vega-util/build/vega-util.module.js ***!
  \**********************************************************/
/*! exports provided: Debug, Error, Info, None, Warn, accessor, accessorFields, accessorName, array, ascending, clampRange, compare, constant, debounce, error, extend, extent, extentIndex, falsy, fastmap, field, flush, hasOwnProperty, id, identity, inherits, inrange, isArray, isBoolean, isDate, isFunction, isIterable, isNumber, isObject, isRegExp, isString, key, lerp, logger, lruCache, merge, mergeConfig, one, pad, panLinear, panLog, panPow, panSymlog, peek, quarter, repeat, span, splitAccessPath, stringValue, toBoolean, toDate, toNumber, toSet, toString, truncate, truthy, utcquarter, visitArray, writeConfig, zero, zoomLinear, zoomLog, zoomPow, zoomSymlog */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Debug\", function() { return Debug; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Error\", function() { return Error$1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Info\", function() { return Info; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"None\", function() { return None; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Warn\", function() { return Warn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessor\", function() { return accessor; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessorFields\", function() { return accessorFields; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"accessorName\", function() { return accessorName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return array; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ascending\", function() { return ascending; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clampRange\", function() { return clampRange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compare\", function() { return compare; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"constant\", function() { return constant; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"error\", function() { return error; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extend\", function() { return extend; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extent\", function() { return extent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extentIndex\", function() { return extentIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"falsy\", function() { return falsy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fastmap\", function() { return fastmap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"field\", function() { return field; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flush\", function() { return flush; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return has; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"id\", function() { return id; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return identity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inherits\", function() { return inherits; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"inrange\", function() { return inrange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return isArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoolean\", function() { return isBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return isDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isIterable\", function() { return isIterable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNumber\", function() { return isNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRegExp\", function() { return isRegExp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return isString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"key\", function() { return key; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lerp\", function() { return lerp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logger\", function() { return logger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"lruCache\", function() { return lruCache; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeConfig\", function() { return mergeConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"one\", function() { return one; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pad\", function() { return pad; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panLinear\", function() { return panLinear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panLog\", function() { return panLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panPow\", function() { return panPow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"panSymlog\", function() { return panSymlog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"peek\", function() { return peek; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quarter\", function() { return quarter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return repeat; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"span\", function() { return span; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"splitAccessPath\", function() { return splitAccessPath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stringValue\", function() { return $; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toBoolean\", function() { return toBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toDate\", function() { return toDate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toNumber\", function() { return toNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toSet\", function() { return toSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return toString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truthy\", function() { return truthy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"utcquarter\", function() { return utcquarter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"visitArray\", function() { return visitArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"writeConfig\", function() { return writeConfig; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zero\", function() { return zero; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomLinear\", function() { return zoomLinear; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomLog\", function() { return zoomLog; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomPow\", function() { return zoomPow; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"zoomSymlog\", function() { return zoomSymlog; });\nfunction accessor (fn, fields, name) {\n  fn.fields = fields || [];\n  fn.fname = name;\n  return fn;\n}\nfunction accessorName(fn) {\n  return fn == null ? null : fn.fname;\n}\nfunction accessorFields(fn) {\n  return fn == null ? null : fn.fields;\n}\n\nfunction getter (path) {\n  return path.length === 1 ? get1(path[0]) : getN(path);\n}\n\nconst get1 = field => function (obj) {\n  return obj[field];\n};\n\nconst getN = path => {\n  const len = path.length;\n  return function (obj) {\n    for (let i = 0; i < len; ++i) {\n      obj = obj[path[i]];\n    }\n\n    return obj;\n  };\n};\n\nfunction error (message) {\n  throw Error(message);\n}\n\nfunction splitAccessPath (p) {\n  const path = [],\n        n = p.length;\n  let q = null,\n      b = 0,\n      s = '',\n      i,\n      j,\n      c;\n  p = p + '';\n\n  function push() {\n    path.push(s + p.substring(i, j));\n    s = '';\n    i = j + 1;\n  }\n\n  for (i = j = 0; j < n; ++j) {\n    c = p[j];\n\n    if (c === '\\\\') {\n      s += p.substring(i, j);\n      s += p.substring(++j, ++j);\n      i = j;\n    } else if (c === q) {\n      push();\n      q = null;\n      b = -1;\n    } else if (q) {\n      continue;\n    } else if (i === b && c === '\"') {\n      i = j + 1;\n      q = c;\n    } else if (i === b && c === \"'\") {\n      i = j + 1;\n      q = c;\n    } else if (c === '.' && !b) {\n      if (j > i) {\n        push();\n      } else {\n        i = j + 1;\n      }\n    } else if (c === '[') {\n      if (j > i) push();\n      b = i = j + 1;\n    } else if (c === ']') {\n      if (!b) error('Access path missing open bracket: ' + p);\n      if (b > 0) push();\n      b = 0;\n      i = j + 1;\n    }\n  }\n\n  if (b) error('Access path missing closing bracket: ' + p);\n  if (q) error('Access path missing closing quote: ' + p);\n\n  if (j > i) {\n    j++;\n    push();\n  }\n\n  return path;\n}\n\nfunction field (field, name, opt) {\n  const path = splitAccessPath(field);\n  field = path.length === 1 ? path[0] : field;\n  return accessor((opt && opt.get || getter)(path), [field], name || field);\n}\n\nconst id = field('id');\nconst identity = accessor(_ => _, [], 'identity');\nconst zero = accessor(() => 0, [], 'zero');\nconst one = accessor(() => 1, [], 'one');\nconst truthy = accessor(() => true, [], 'true');\nconst falsy = accessor(() => false, [], 'false');\n\nfunction log(method, level, input) {\n  const args = [level].concat([].slice.call(input));\n  console[method].apply(console, args); // eslint-disable-line no-console\n}\n\nconst None = 0;\nconst Error$1 = 1;\nconst Warn = 2;\nconst Info = 3;\nconst Debug = 4;\nfunction logger (_, method) {\n  let level = _ || None;\n  return {\n    level(_) {\n      if (arguments.length) {\n        level = +_;\n        return this;\n      } else {\n        return level;\n      }\n    },\n\n    error() {\n      if (level >= Error$1) log(method || 'error', 'ERROR', arguments);\n      return this;\n    },\n\n    warn() {\n      if (level >= Warn) log(method || 'warn', 'WARN', arguments);\n      return this;\n    },\n\n    info() {\n      if (level >= Info) log(method || 'log', 'INFO', arguments);\n      return this;\n    },\n\n    debug() {\n      if (level >= Debug) log(method || 'log', 'DEBUG', arguments);\n      return this;\n    }\n\n  };\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (_) {\n  return _ === Object(_);\n}\n\nconst isLegalKey = key => key !== '__proto__';\n\nfunction mergeConfig(...configs) {\n  return configs.reduce((out, source) => {\n    for (const key in source) {\n      if (key === 'signals') {\n        // for signals, we merge the signals arrays\n        // source signals take precedence over\n        // existing signals with the same name\n        out.signals = mergeNamed(out.signals, source.signals);\n      } else {\n        // otherwise, merge objects subject to recursion constraints\n        // for legend block, recurse for the layout entry only\n        // for style block, recurse for all properties\n        // otherwise, no recursion: objects overwrite, no merging\n        const r = key === 'legend' ? {\n          layout: 1\n        } : key === 'style' ? true : null;\n        writeConfig(out, key, source[key], r);\n      }\n    }\n\n    return out;\n  }, {});\n}\nfunction writeConfig(output, key, value, recurse) {\n  if (!isLegalKey(key)) return;\n  let k, o;\n\n  if (isObject(value) && !isArray(value)) {\n    o = isObject(output[key]) ? output[key] : output[key] = {};\n\n    for (k in value) {\n      if (recurse && (recurse === true || recurse[k])) {\n        writeConfig(o, k, value[k]);\n      } else if (isLegalKey(k)) {\n        o[k] = value[k];\n      }\n    }\n  } else {\n    output[key] = value;\n  }\n}\n\nfunction mergeNamed(a, b) {\n  if (a == null) return b;\n  const map = {},\n        out = [];\n\n  function add(_) {\n    if (!map[_.name]) {\n      map[_.name] = 1;\n      out.push(_);\n    }\n  }\n\n  b.forEach(add);\n  a.forEach(add);\n  return out;\n}\n\nfunction peek (array) {\n  return array[array.length - 1];\n}\n\nfunction toNumber (_) {\n  return _ == null || _ === '' ? null : +_;\n}\n\nconst exp = sign => x => sign * Math.exp(x);\n\nconst log$1 = sign => x => Math.log(sign * x);\n\nconst symlog = c => x => Math.sign(x) * Math.log1p(Math.abs(x / c));\n\nconst symexp = c => x => Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n\nconst pow = exponent => x => x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n\nfunction pan(domain, delta, lift, ground) {\n  const d0 = lift(domain[0]),\n        d1 = lift(peek(domain)),\n        dd = (d1 - d0) * delta;\n  return [ground(d0 - dd), ground(d1 - dd)];\n}\n\nfunction panLinear(domain, delta) {\n  return pan(domain, delta, toNumber, identity);\n}\nfunction panLog(domain, delta) {\n  var sign = Math.sign(domain[0]);\n  return pan(domain, delta, log$1(sign), exp(sign));\n}\nfunction panPow(domain, delta, exponent) {\n  return pan(domain, delta, pow(exponent), pow(1 / exponent));\n}\nfunction panSymlog(domain, delta, constant) {\n  return pan(domain, delta, symlog(constant), symexp(constant));\n}\n\nfunction zoom(domain, anchor, scale, lift, ground) {\n  const d0 = lift(domain[0]),\n        d1 = lift(peek(domain)),\n        da = anchor != null ? lift(anchor) : (d0 + d1) / 2;\n  return [ground(da + (d0 - da) * scale), ground(da + (d1 - da) * scale)];\n}\n\nfunction zoomLinear(domain, anchor, scale) {\n  return zoom(domain, anchor, scale, toNumber, identity);\n}\nfunction zoomLog(domain, anchor, scale) {\n  const sign = Math.sign(domain[0]);\n  return zoom(domain, anchor, scale, log$1(sign), exp(sign));\n}\nfunction zoomPow(domain, anchor, scale, exponent) {\n  return zoom(domain, anchor, scale, pow(exponent), pow(1 / exponent));\n}\nfunction zoomSymlog(domain, anchor, scale, constant) {\n  return zoom(domain, anchor, scale, symlog(constant), symexp(constant));\n}\n\nfunction quarter(date) {\n  return 1 + ~~(new Date(date).getMonth() / 3);\n}\nfunction utcquarter(date) {\n  return 1 + ~~(new Date(date).getUTCMonth() / 3);\n}\n\nfunction array (_) {\n  return _ != null ? isArray(_) ? _ : [_] : [];\n}\n\n/**\n * Span-preserving range clamp. If the span of the input range is less\n * than (max - min) and an endpoint exceeds either the min or max value,\n * the range is translated such that the span is preserved and one\n * endpoint touches the boundary of the min/max range.\n * If the span exceeds (max - min), the range [min, max] is returned.\n */\nfunction clampRange (range, min, max) {\n  let lo = range[0],\n      hi = range[1],\n      span;\n\n  if (hi < lo) {\n    span = hi;\n    hi = lo;\n    lo = span;\n  }\n\n  span = hi - lo;\n  return span >= max - min ? [min, max] : [lo = Math.min(Math.max(lo, min), max - span), lo + span];\n}\n\nfunction isFunction (_) {\n  return typeof _ === 'function';\n}\n\nconst DESCENDING = 'descending';\nfunction compare (fields, orders, opt) {\n  opt = opt || {};\n  orders = array(orders) || [];\n  const ord = [],\n        get = [],\n        fmap = {},\n        gen = opt.comparator || comparator;\n  array(fields).forEach((f, i) => {\n    if (f == null) return;\n    ord.push(orders[i] === DESCENDING ? -1 : 1);\n    get.push(f = isFunction(f) ? f : field(f, null, opt));\n    (accessorFields(f) || []).forEach(_ => fmap[_] = 1);\n  });\n  return get.length === 0 ? null : accessor(gen(get, ord), Object.keys(fmap));\n}\nconst ascending = (u, v) => (u < v || u == null) && v != null ? -1 : (u > v || v == null) && u != null ? 1 : (v = v instanceof Date ? +v : v, u = u instanceof Date ? +u : u) !== u && v === v ? -1 : v !== v && u === u ? 1 : 0;\n\nconst comparator = (fields, orders) => fields.length === 1 ? compare1(fields[0], orders[0]) : compareN(fields, orders, fields.length);\n\nconst compare1 = (field, order) => function (a, b) {\n  return ascending(field(a), field(b)) * order;\n};\n\nconst compareN = (fields, orders, n) => {\n  orders.push(0); // pad zero for convenient lookup\n\n  return function (a, b) {\n    let f,\n        c = 0,\n        i = -1;\n\n    while (c === 0 && ++i < n) {\n      f = fields[i];\n      c = ascending(f(a), f(b));\n    }\n\n    return c * orders[i];\n  };\n};\n\nfunction constant (_) {\n  return isFunction(_) ? _ : () => _;\n}\n\nfunction debounce (delay, handler) {\n  let tid;\n  return e => {\n    if (tid) clearTimeout(tid);\n    tid = setTimeout(() => (handler(e), tid = null), delay);\n  };\n}\n\nfunction extend (_) {\n  for (let x, k, i = 1, len = arguments.length; i < len; ++i) {\n    x = arguments[i];\n\n    for (k in x) {\n      _[k] = x[k];\n    }\n  }\n\n  return _;\n}\n\n/**\n * Return an array with minimum and maximum values, in the\n * form [min, max]. Ignores null, undefined, and NaN values.\n */\nfunction extent (array, f) {\n  let i = 0,\n      n,\n      v,\n      min,\n      max;\n\n  if (array && (n = array.length)) {\n    if (f == null) {\n      // find first valid value\n      for (v = array[i]; i < n && (v == null || v !== v); v = array[++i]);\n\n      min = max = v; // visit all other values\n\n      for (; i < n; ++i) {\n        v = array[i]; // skip null/undefined; NaN will fail all comparisons\n\n        if (v != null) {\n          if (v < min) min = v;\n          if (v > max) max = v;\n        }\n      }\n    } else {\n      // find first valid value\n      for (v = f(array[i]); i < n && (v == null || v !== v); v = f(array[++i]));\n\n      min = max = v; // visit all other values\n\n      for (; i < n; ++i) {\n        v = f(array[i]); // skip null/undefined; NaN will fail all comparisons\n\n        if (v != null) {\n          if (v < min) min = v;\n          if (v > max) max = v;\n        }\n      }\n    }\n  }\n\n  return [min, max];\n}\n\nfunction extentIndex (array, f) {\n  const n = array.length;\n  let i = -1,\n      a,\n      b,\n      c,\n      u,\n      v;\n\n  if (f == null) {\n    while (++i < n) {\n      b = array[i];\n\n      if (b != null && b >= b) {\n        a = c = b;\n        break;\n      }\n    }\n\n    if (i === n) return [-1, -1];\n    u = v = i;\n\n    while (++i < n) {\n      b = array[i];\n\n      if (b != null) {\n        if (a > b) {\n          a = b;\n          u = i;\n        }\n\n        if (c < b) {\n          c = b;\n          v = i;\n        }\n      }\n    }\n  } else {\n    while (++i < n) {\n      b = f(array[i], i, array);\n\n      if (b != null && b >= b) {\n        a = c = b;\n        break;\n      }\n    }\n\n    if (i === n) return [-1, -1];\n    u = v = i;\n\n    while (++i < n) {\n      b = f(array[i], i, array);\n\n      if (b != null) {\n        if (a > b) {\n          a = b;\n          u = i;\n        }\n\n        if (c < b) {\n          c = b;\n          v = i;\n        }\n      }\n    }\n  }\n\n  return [u, v];\n}\n\nconst hop = Object.prototype.hasOwnProperty;\nfunction has (object, property) {\n  return hop.call(object, property);\n}\n\nconst NULL = {};\nfunction fastmap (input) {\n  let obj = {},\n      test;\n\n  function has$1(key) {\n    return has(obj, key) && obj[key] !== NULL;\n  }\n\n  const map = {\n    size: 0,\n    empty: 0,\n    object: obj,\n    has: has$1,\n\n    get(key) {\n      return has$1(key) ? obj[key] : undefined;\n    },\n\n    set(key, value) {\n      if (!has$1(key)) {\n        ++map.size;\n        if (obj[key] === NULL) --map.empty;\n      }\n\n      obj[key] = value;\n      return this;\n    },\n\n    delete(key) {\n      if (has$1(key)) {\n        --map.size;\n        ++map.empty;\n        obj[key] = NULL;\n      }\n\n      return this;\n    },\n\n    clear() {\n      map.size = map.empty = 0;\n      map.object = obj = {};\n    },\n\n    test(_) {\n      if (arguments.length) {\n        test = _;\n        return map;\n      } else {\n        return test;\n      }\n    },\n\n    clean() {\n      const next = {};\n      let size = 0;\n\n      for (const key in obj) {\n        const value = obj[key];\n\n        if (value !== NULL && (!test || !test(value))) {\n          next[key] = value;\n          ++size;\n        }\n      }\n\n      map.size = size;\n      map.empty = 0;\n      map.object = obj = next;\n    }\n\n  };\n  if (input) Object.keys(input).forEach(key => {\n    map.set(key, input[key]);\n  });\n  return map;\n}\n\nfunction flush (range, value, threshold, left, right, center) {\n  if (!threshold && threshold !== 0) return center;\n  const t = +threshold;\n  let a = range[0],\n      b = peek(range),\n      l; // swap endpoints if range is reversed\n\n  if (b < a) {\n    l = a;\n    a = b;\n    b = l;\n  } // compare value to endpoints\n\n\n  l = Math.abs(value - a);\n  const r = Math.abs(b - value); // adjust if value is within threshold distance of endpoint\n\n  return l < r && l <= t ? left : r <= t ? right : center;\n}\n\nfunction inherits (child, parent, members) {\n  const proto = child.prototype = Object.create(parent.prototype);\n  proto.constructor = child;\n  return extend(proto, members);\n}\n\n/**\n * Predicate that returns true if the value lies within the span\n * of the given range. The left and right flags control the use\n * of inclusive (true) or exclusive (false) comparisons.\n */\nfunction inrange (value, range, left, right) {\n  let r0 = range[0],\n      r1 = range[range.length - 1],\n      t;\n\n  if (r0 > r1) {\n    t = r0;\n    r0 = r1;\n    r1 = t;\n  }\n\n  left = left === undefined || left;\n  right = right === undefined || right;\n  return (left ? r0 <= value : r0 < value) && (right ? value <= r1 : value < r1);\n}\n\nfunction isBoolean (_) {\n  return typeof _ === 'boolean';\n}\n\nfunction isDate (_) {\n  return Object.prototype.toString.call(_) === '[object Date]';\n}\n\nfunction isIterable (_) {\n  return _ && isFunction(_[Symbol.iterator]);\n}\n\nfunction isNumber (_) {\n  return typeof _ === 'number';\n}\n\nfunction isRegExp (_) {\n  return Object.prototype.toString.call(_) === '[object RegExp]';\n}\n\nfunction isString (_) {\n  return typeof _ === 'string';\n}\n\nfunction key (fields, flat, opt) {\n  if (fields) {\n    fields = flat ? array(fields).map(f => f.replace(/\\\\(.)/g, '$1')) : array(fields);\n  }\n\n  const len = fields && fields.length,\n        gen = opt && opt.get || getter,\n        map = f => gen(flat ? [f] : splitAccessPath(f));\n\n  let fn;\n\n  if (!len) {\n    fn = function () {\n      return '';\n    };\n  } else if (len === 1) {\n    const get = map(fields[0]);\n\n    fn = function (_) {\n      return '' + get(_);\n    };\n  } else {\n    const get = fields.map(map);\n\n    fn = function (_) {\n      let s = '' + get[0](_),\n          i = 0;\n\n      while (++i < len) s += '|' + get[i](_);\n\n      return s;\n    };\n  }\n\n  return accessor(fn, fields, 'key');\n}\n\nfunction lerp (array, frac) {\n  const lo = array[0],\n        hi = peek(array),\n        f = +frac;\n  return !f ? lo : f === 1 ? hi : lo + f * (hi - lo);\n}\n\nconst DEFAULT_MAX_SIZE = 10000; // adapted from https://github.com/dominictarr/hashlru/ (MIT License)\n\nfunction lruCache (maxsize) {\n  maxsize = +maxsize || DEFAULT_MAX_SIZE;\n  let curr, prev, size;\n\n  const clear = () => {\n    curr = {};\n    prev = {};\n    size = 0;\n  };\n\n  const update = (key, value) => {\n    if (++size > maxsize) {\n      prev = curr;\n      curr = {};\n      size = 1;\n    }\n\n    return curr[key] = value;\n  };\n\n  clear();\n  return {\n    clear,\n    has: key => has(curr, key) || has(prev, key),\n    get: key => has(curr, key) ? curr[key] : has(prev, key) ? update(key, prev[key]) : undefined,\n    set: (key, value) => has(curr, key) ? curr[key] = value : update(key, value)\n  };\n}\n\nfunction merge (compare, array0, array1, output) {\n  const n0 = array0.length,\n        n1 = array1.length;\n  if (!n1) return array0;\n  if (!n0) return array1;\n  const merged = output || new array0.constructor(n0 + n1);\n  let i0 = 0,\n      i1 = 0,\n      i = 0;\n\n  for (; i0 < n0 && i1 < n1; ++i) {\n    merged[i] = compare(array0[i0], array1[i1]) > 0 ? array1[i1++] : array0[i0++];\n  }\n\n  for (; i0 < n0; ++i0, ++i) {\n    merged[i] = array0[i0];\n  }\n\n  for (; i1 < n1; ++i1, ++i) {\n    merged[i] = array1[i1];\n  }\n\n  return merged;\n}\n\nfunction repeat (str, reps) {\n  let s = '';\n\n  while (--reps >= 0) s += str;\n\n  return s;\n}\n\nfunction pad (str, length, padchar, align) {\n  const c = padchar || ' ',\n        s = str + '',\n        n = length - s.length;\n  return n <= 0 ? s : align === 'left' ? repeat(c, n) + s : align === 'center' ? repeat(c, ~~(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);\n}\n\n/**\n * Return the numerical span of an array: the difference between\n * the last and first values.\n */\n\nfunction span (array) {\n  return array && peek(array) - array[0] || 0;\n}\n\nfunction $(x) {\n  return isArray(x) ? '[' + x.map($) + ']' : isObject(x) || isString(x) ? // Output valid JSON and JS source strings.\n  // See http://timelessrepo.com/json-isnt-a-javascript-subset\n  JSON.stringify(x).replace('\\u2028', '\\\\u2028').replace('\\u2029', '\\\\u2029') : x;\n}\n\nfunction toBoolean (_) {\n  return _ == null || _ === '' ? null : !_ || _ === 'false' || _ === '0' ? false : !!_;\n}\n\nconst defaultParser = _ => isNumber(_) ? _ : isDate(_) ? _ : Date.parse(_);\n\nfunction toDate (_, parser) {\n  parser = parser || defaultParser;\n  return _ == null || _ === '' ? null : parser(_);\n}\n\nfunction toString (_) {\n  return _ == null || _ === '' ? null : _ + '';\n}\n\nfunction toSet (_) {\n  const s = {},\n        n = _.length;\n\n  for (let i = 0; i < n; ++i) s[_[i]] = true;\n\n  return s;\n}\n\nfunction truncate (str, length, align, ellipsis) {\n  const e = ellipsis != null ? ellipsis : '\\u2026',\n        s = str + '',\n        n = s.length,\n        l = Math.max(0, length - e.length);\n  return n <= length ? s : align === 'left' ? e + s.slice(n - l) : align === 'center' ? s.slice(0, Math.ceil(l / 2)) + e + s.slice(n - ~~(l / 2)) : s.slice(0, l) + e;\n}\n\nfunction visitArray (array, filter, visitor) {\n  if (array) {\n    if (filter) {\n      const n = array.length;\n\n      for (let i = 0; i < n; ++i) {\n        const t = filter(array[i]);\n        if (t) visitor(t, i, array);\n      }\n    } else {\n      array.forEach(visitor);\n    }\n  }\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-util/build/vega-util.module.js?");

/***/ }),

/***/ "./node_modules/vega-view-transforms/build/vega-view-transforms.module.js":
/*!********************************************************************************!*\
  !*** ./node_modules/vega-view-transforms/build/vega-view-transforms.module.js ***!
  \********************************************************************************/
/*! exports provided: bound, identifier, mark, overlap, render, viewlayout */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bound\", function() { return Bound; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"identifier\", function() { return Identifier; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mark\", function() { return Mark; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"overlap\", function() { return Overlap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return Render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"viewlayout\", function() { return ViewLayout; });\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-scenegraph */ \"./node_modules/vega-scenegraph/build/vega-scenegraph.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n\n\n\n\nconst Top = 'top';\nconst Left = 'left';\nconst Right = 'right';\nconst Bottom = 'bottom';\nconst TopLeft = 'top-left';\nconst TopRight = 'top-right';\nconst BottomLeft = 'bottom-left';\nconst BottomRight = 'bottom-right';\nconst Start = 'start';\nconst Middle = 'middle';\nconst End = 'end';\nconst X = 'x';\nconst Y = 'y';\nconst Group = 'group';\nconst AxisRole = 'axis';\nconst TitleRole = 'title';\nconst FrameRole = 'frame';\nconst ScopeRole = 'scope';\nconst LegendRole = 'legend';\nconst RowHeader = 'row-header';\nconst RowFooter = 'row-footer';\nconst RowTitle = 'row-title';\nconst ColHeader = 'column-header';\nconst ColFooter = 'column-footer';\nconst ColTitle = 'column-title';\nconst Padding = 'padding';\nconst Symbols = 'symbol';\nconst Fit = 'fit';\nconst FitX = 'fit-x';\nconst FitY = 'fit-y';\nconst Pad = 'pad';\nconst None = 'none';\nconst All = 'all';\nconst Each = 'each';\nconst Flush = 'flush';\nconst Column = 'column';\nconst Row = 'row';\n\n/**\n * Calculate bounding boxes for scenegraph items.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {object} params.mark - The scenegraph mark instance to bound.\n */\n\nfunction Bound(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Bound, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const view = pulse.dataflow,\n          mark = _.mark,\n          type = mark.marktype,\n          entry = vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"Marks\"][type],\n          bound = entry.bound;\n    let markBounds = mark.bounds,\n        rebound;\n\n    if (entry.nested) {\n      // multi-item marks have a single bounds instance\n      if (mark.items.length) view.dirty(mark.items[0]);\n      markBounds = boundItem(mark, bound);\n      mark.items.forEach(item => {\n        item.bounds.clear().union(markBounds);\n      });\n    } else if (type === Group || _.modified()) {\n      // operator parameters modified -> re-bound all items\n      // updates group bounds in response to modified group content\n      pulse.visit(pulse.MOD, item => view.dirty(item));\n      markBounds.clear();\n      mark.items.forEach(item => markBounds.union(boundItem(item, bound))); // force reflow for axes/legends/titles to propagate any layout changes\n\n      switch (mark.role) {\n        case AxisRole:\n        case LegendRole:\n        case TitleRole:\n          pulse.reflow();\n      }\n    } else {\n      // incrementally update bounds, re-bound mark as needed\n      rebound = pulse.changed(pulse.REM);\n      pulse.visit(pulse.ADD, item => {\n        markBounds.union(boundItem(item, bound));\n      });\n      pulse.visit(pulse.MOD, item => {\n        rebound = rebound || markBounds.alignsWith(item.bounds);\n        view.dirty(item);\n        markBounds.union(boundItem(item, bound));\n      });\n\n      if (rebound) {\n        markBounds.clear();\n        mark.items.forEach(item => markBounds.union(item.bounds));\n      }\n    } // ensure mark bounds do not exceed any clipping region\n\n\n    Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"boundClip\"])(mark);\n    return pulse.modifies('bounds');\n  }\n\n});\n\nfunction boundItem(item, bound, opt) {\n  return bound(item.bounds.clear(), item, opt);\n}\n\nconst COUNTER_NAME = ':vega_identifier:';\n/**\n * Adds a unique identifier to all added tuples.\n * This transform creates a new signal that serves as an id counter.\n * As a result, the id counter is shared across all instances of this\n * transform, generating unique ids across multiple data streams. In\n * addition, this signal value can be included in a snapshot of the\n * dataflow state, enabling correct resumption of id allocation.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {string} params.as - The field name for the generated identifier.\n */\n\nfunction Identifier(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, 0, params);\n}\nIdentifier.Definition = {\n  'type': 'Identifier',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'as',\n    'type': 'string',\n    'required': true\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Identifier, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const counter = getCounter(pulse.dataflow),\n          as = _.as;\n    let id = counter.value;\n    pulse.visit(pulse.ADD, t => t[as] = t[as] || ++id);\n    counter.set(this.value = id);\n    return pulse;\n  }\n\n});\n\nfunction getCounter(view) {\n  return view._signals[COUNTER_NAME] || (view._signals[COUNTER_NAME] = view.add(0));\n}\n\n/**\n * Bind scenegraph items to a scenegraph mark instance.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {object} params.markdef - The mark definition for creating the mark.\n *   This is an object of legal scenegraph mark properties which *must* include\n *   the 'marktype' property.\n */\n\nfunction Mark(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Mark, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    let mark = this.value; // acquire mark on first invocation, bind context and group\n\n    if (!mark) {\n      mark = pulse.dataflow.scenegraph().mark(_.markdef, lookup(_), _.index);\n      mark.group.context = _.context;\n      if (!_.context.group) _.context.group = mark.group;\n      mark.source = this.source; // point to upstream collector\n\n      mark.clip = _.clip;\n      mark.interactive = _.interactive;\n      this.value = mark;\n    } // initialize entering items\n\n\n    const Init = mark.marktype === Group ? vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"GroupItem\"] : vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"Item\"];\n    pulse.visit(pulse.ADD, item => Init.call(item, mark)); // update clipping and/or interactive status\n\n    if (_.modified('clip') || _.modified('interactive')) {\n      mark.clip = _.clip;\n      mark.interactive = !!_.interactive;\n      mark.zdirty = true; // force scenegraph re-eval\n\n      pulse.reflow();\n    } // bind items array to scenegraph mark\n\n\n    mark.items = pulse.source;\n    return pulse;\n  }\n\n});\n\nfunction lookup(_) {\n  const g = _.groups,\n        p = _.parent;\n  return g && g.size === 1 ? g.get(Object.keys(g.object)[0]) : g && p ? g.lookup(p) : null;\n}\n\n/**\n * Analyze items for overlap, changing opacity to hide items with\n * overlapping bounding boxes. This transform will preserve at least\n * two items (e.g., first and last) even if overlap persists.\n * @param {object} params - The parameters for this operator.\n * @param {function(*,*): number} [params.sort] - A comparator\n *   function for sorting items.\n * @param {object} [params.method] - The overlap removal method to apply.\n *   One of 'parity' (default, hide every other item until there is no\n *   more overlap) or 'greedy' (sequentially scan and hide and items that\n *   overlap with the last visible item).\n * @param {object} [params.boundScale] - A scale whose range should be used\n *   to bound the items. Items exceeding the bounds of the scale range\n *   will be treated as overlapping. If null or undefined, no bounds check\n *   will be applied.\n * @param {object} [params.boundOrient] - The orientation of the scale\n *   (top, bottom, left, or right) used to bound items. This parameter is\n *   ignored if boundScale is null or undefined.\n * @param {object} [params.boundTolerance] - The tolerance in pixels for\n *   bound inclusion testing (default 1). This specifies by how many pixels\n *   an item's bounds may exceed the scale range bounds and not be culled.\n * @constructor\n */\n\nfunction Overlap(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nconst methods = {\n  parity: items => items.filter((item, i) => i % 2 ? item.opacity = 0 : 1),\n  greedy: (items, sep) => {\n    let a;\n    return items.filter((b, i) => !i || !intersect(a.bounds, b.bounds, sep) ? (a = b, 1) : b.opacity = 0);\n  }\n}; // compute bounding box intersection\n// including padding pixels of separation\n\nconst intersect = (a, b, sep) => sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);\n\nconst hasOverlap = (items, pad) => {\n  for (var i = 1, n = items.length, a = items[0].bounds, b; i < n; a = b, ++i) {\n    if (intersect(a, b = items[i].bounds, pad)) return true;\n  }\n};\n\nconst hasBounds = item => {\n  const b = item.bounds;\n  return b.width() > 1 && b.height() > 1;\n};\n\nconst boundTest = (scale, orient, tolerance) => {\n  var range = scale.range(),\n      b = new vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"Bounds\"]();\n\n  if (orient === Top || orient === Bottom) {\n    b.set(range[0], -Infinity, range[1], +Infinity);\n  } else {\n    b.set(-Infinity, range[0], +Infinity, range[1]);\n  }\n\n  b.expand(tolerance || 1);\n  return item => b.encloses(item.bounds);\n}; // reset all items to be fully opaque\n\n\nconst reset = source => {\n  source.forEach(item => item.opacity = 1);\n  return source;\n}; // add all tuples to mod, fork pulse if parameters were modified\n// fork prevents cross-stream tuple pollution (e.g., pulse from scale)\n\n\nconst reflow = (pulse, _) => pulse.reflow(_.modified()).modifies('opacity');\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Overlap, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const reduce = methods[_.method] || methods.parity,\n          sep = _.separation || 0;\n    let source = pulse.materialize(pulse.SOURCE).source,\n        items,\n        test;\n    if (!source || !source.length) return;\n\n    if (!_.method) {\n      // early exit if method is falsy\n      if (_.modified('method')) {\n        reset(source);\n        pulse = reflow(pulse, _);\n      }\n\n      return pulse;\n    } // skip labels with no content\n\n\n    source = source.filter(hasBounds); // early exit, nothing to do\n\n    if (!source.length) return;\n\n    if (_.sort) {\n      source = source.slice().sort(_.sort);\n    }\n\n    items = reset(source);\n    pulse = reflow(pulse, _);\n\n    if (items.length >= 3 && hasOverlap(items, sep)) {\n      do {\n        items = reduce(items, sep);\n      } while (items.length >= 3 && hasOverlap(items, sep));\n\n      if (items.length < 3 && !Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(source).opacity) {\n        if (items.length > 1) Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(items).opacity = 0;\n        Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"peek\"])(source).opacity = 1;\n      }\n    }\n\n    if (_.boundScale && _.boundTolerance >= 0) {\n      test = boundTest(_.boundScale, _.boundOrient, +_.boundTolerance);\n      source.forEach(item => {\n        if (!test(item)) item.opacity = 0;\n      });\n    } // re-calculate mark bounds\n\n\n    const bounds = items[0].mark.bounds.clear();\n    source.forEach(item => {\n      if (item.opacity) bounds.union(item.bounds);\n    });\n    return pulse;\n  }\n\n});\n\n/**\n * Queue modified scenegraph items for rendering.\n * @constructor\n */\n\nfunction Render(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Render, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const view = pulse.dataflow;\n    pulse.visit(pulse.ALL, item => view.dirty(item)); // set z-index dirty flag as needed\n\n    if (pulse.fields && pulse.fields['zindex']) {\n      const item = pulse.source && pulse.source[0];\n      if (item) item.mark.zdirty = true;\n    }\n  }\n\n});\n\nconst tempBounds = new vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"Bounds\"]();\nfunction set(item, property, value) {\n  return item[property] === value ? 0 : (item[property] = value, 1);\n}\n\nfunction isYAxis(mark) {\n  var orient = mark.items[0].orient;\n  return orient === Left || orient === Right;\n}\n\nfunction axisIndices(datum) {\n  let index = +datum.grid;\n  return [datum.ticks ? index++ : -1, // ticks index\n  datum.labels ? index++ : -1, // labels index\n  index + +datum.domain // title index\n  ];\n}\n\nfunction axisLayout(view, axis, width, height) {\n  var item = axis.items[0],\n      datum = item.datum,\n      delta = item.translate != null ? item.translate : 0.5,\n      orient = item.orient,\n      indices = axisIndices(datum),\n      range = item.range,\n      offset = item.offset,\n      position = item.position,\n      minExtent = item.minExtent,\n      maxExtent = item.maxExtent,\n      title = datum.title && item.items[indices[2]].items[0],\n      titlePadding = item.titlePadding,\n      bounds = item.bounds,\n      dl = title && Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"multiLineOffset\"])(title),\n      x = 0,\n      y = 0,\n      i,\n      s;\n  tempBounds.clear().union(bounds);\n  bounds.clear();\n  if ((i = indices[0]) > -1) bounds.union(item.items[i].bounds);\n  if ((i = indices[1]) > -1) bounds.union(item.items[i].bounds); // position axis group and title\n\n  switch (orient) {\n    case Top:\n      x = position || 0;\n      y = -offset;\n      s = Math.max(minExtent, Math.min(maxExtent, -bounds.y1));\n      bounds.add(0, -s).add(range, 0);\n      if (title) axisTitleLayout(view, title, s, titlePadding, dl, 0, -1, bounds);\n      break;\n\n    case Left:\n      x = -offset;\n      y = position || 0;\n      s = Math.max(minExtent, Math.min(maxExtent, -bounds.x1));\n      bounds.add(-s, 0).add(0, range);\n      if (title) axisTitleLayout(view, title, s, titlePadding, dl, 1, -1, bounds);\n      break;\n\n    case Right:\n      x = width + offset;\n      y = position || 0;\n      s = Math.max(minExtent, Math.min(maxExtent, bounds.x2));\n      bounds.add(0, 0).add(s, range);\n      if (title) axisTitleLayout(view, title, s, titlePadding, dl, 1, 1, bounds);\n      break;\n\n    case Bottom:\n      x = position || 0;\n      y = height + offset;\n      s = Math.max(minExtent, Math.min(maxExtent, bounds.y2));\n      bounds.add(0, 0).add(range, s);\n      if (title) axisTitleLayout(view, title, s, titlePadding, 0, 0, 1, bounds);\n      break;\n\n    default:\n      x = item.x;\n      y = item.y;\n  } // update bounds\n\n\n  Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"boundStroke\"])(bounds.translate(x, y), item);\n\n  if (set(item, 'x', x + delta) | set(item, 'y', y + delta)) {\n    item.bounds = tempBounds;\n    view.dirty(item);\n    item.bounds = bounds;\n    view.dirty(item);\n  }\n\n  return item.mark.bounds.clear().union(bounds);\n}\n\nfunction axisTitleLayout(view, title, offset, pad, dl, isYAxis, sign, bounds) {\n  const b = title.bounds;\n\n  if (title.auto) {\n    const v = sign * (offset + dl + pad);\n    let dx = 0,\n        dy = 0;\n    view.dirty(title);\n    isYAxis ? dx = (title.x || 0) - (title.x = v) : dy = (title.y || 0) - (title.y = v);\n    title.mark.bounds.clear().union(b.translate(-dx, -dy));\n    view.dirty(title);\n  }\n\n  bounds.union(b);\n}\n\nconst min = (a, b) => Math.floor(Math.min(a, b));\n\nconst max = (a, b) => Math.ceil(Math.max(a, b));\n\nfunction gridLayoutGroups(group) {\n  var groups = group.items,\n      n = groups.length,\n      i = 0,\n      mark,\n      items;\n  const views = {\n    marks: [],\n    rowheaders: [],\n    rowfooters: [],\n    colheaders: [],\n    colfooters: [],\n    rowtitle: null,\n    coltitle: null\n  }; // layout axes, gather legends, collect bounds\n\n  for (; i < n; ++i) {\n    mark = groups[i];\n    items = mark.items;\n\n    if (mark.marktype === Group) {\n      switch (mark.role) {\n        case AxisRole:\n        case LegendRole:\n        case TitleRole:\n          break;\n\n        case RowHeader:\n          views.rowheaders.push(...items);\n          break;\n\n        case RowFooter:\n          views.rowfooters.push(...items);\n          break;\n\n        case ColHeader:\n          views.colheaders.push(...items);\n          break;\n\n        case ColFooter:\n          views.colfooters.push(...items);\n          break;\n\n        case RowTitle:\n          views.rowtitle = items[0];\n          break;\n\n        case ColTitle:\n          views.coltitle = items[0];\n          break;\n\n        default:\n          views.marks.push(...items);\n      }\n    }\n  }\n\n  return views;\n}\n\nfunction bboxFlush(item) {\n  return new vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"Bounds\"]().set(0, 0, item.width || 0, item.height || 0);\n}\n\nfunction bboxFull(item) {\n  const b = item.bounds.clone();\n  return b.empty() ? b.set(0, 0, 0, 0) : b.translate(-(item.x || 0), -(item.y || 0));\n}\n\nfunction get(opt, key, d) {\n  const v = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isObject\"])(opt) ? opt[key] : opt;\n  return v != null ? v : d !== undefined ? d : 0;\n}\n\nfunction offsetValue(v) {\n  return v < 0 ? Math.ceil(-v) : 0;\n}\n\nfunction gridLayout(view, groups, opt) {\n  var dirty = !opt.nodirty,\n      bbox = opt.bounds === Flush ? bboxFlush : bboxFull,\n      bounds = tempBounds.set(0, 0, 0, 0),\n      alignCol = get(opt.align, Column),\n      alignRow = get(opt.align, Row),\n      padCol = get(opt.padding, Column),\n      padRow = get(opt.padding, Row),\n      ncols = opt.columns || groups.length,\n      nrows = ncols <= 0 ? 1 : Math.ceil(groups.length / ncols),\n      n = groups.length,\n      xOffset = Array(n),\n      xExtent = Array(ncols),\n      xMax = 0,\n      yOffset = Array(n),\n      yExtent = Array(nrows),\n      yMax = 0,\n      dx = Array(n),\n      dy = Array(n),\n      boxes = Array(n),\n      m,\n      i,\n      c,\n      r,\n      b,\n      g,\n      px,\n      py,\n      x,\n      y,\n      offset;\n\n  for (i = 0; i < ncols; ++i) xExtent[i] = 0;\n\n  for (i = 0; i < nrows; ++i) yExtent[i] = 0; // determine offsets for each group\n\n\n  for (i = 0; i < n; ++i) {\n    g = groups[i];\n    b = boxes[i] = bbox(g);\n    g.x = g.x || 0;\n    dx[i] = 0;\n    g.y = g.y || 0;\n    dy[i] = 0;\n    c = i % ncols;\n    r = ~~(i / ncols);\n    xMax = Math.max(xMax, px = Math.ceil(b.x2));\n    yMax = Math.max(yMax, py = Math.ceil(b.y2));\n    xExtent[c] = Math.max(xExtent[c], px);\n    yExtent[r] = Math.max(yExtent[r], py);\n    xOffset[i] = padCol + offsetValue(b.x1);\n    yOffset[i] = padRow + offsetValue(b.y1);\n    if (dirty) view.dirty(groups[i]);\n  } // set initial alignment offsets\n\n\n  for (i = 0; i < n; ++i) {\n    if (i % ncols === 0) xOffset[i] = 0;\n    if (i < ncols) yOffset[i] = 0;\n  } // enforce column alignment constraints\n\n\n  if (alignCol === Each) {\n    for (c = 1; c < ncols; ++c) {\n      for (offset = 0, i = c; i < n; i += ncols) {\n        if (offset < xOffset[i]) offset = xOffset[i];\n      }\n\n      for (i = c; i < n; i += ncols) {\n        xOffset[i] = offset + xExtent[c - 1];\n      }\n    }\n  } else if (alignCol === All) {\n    for (offset = 0, i = 0; i < n; ++i) {\n      if (i % ncols && offset < xOffset[i]) offset = xOffset[i];\n    }\n\n    for (i = 0; i < n; ++i) {\n      if (i % ncols) xOffset[i] = offset + xMax;\n    }\n  } else {\n    for (alignCol = false, c = 1; c < ncols; ++c) {\n      for (i = c; i < n; i += ncols) {\n        xOffset[i] += xExtent[c - 1];\n      }\n    }\n  } // enforce row alignment constraints\n\n\n  if (alignRow === Each) {\n    for (r = 1; r < nrows; ++r) {\n      for (offset = 0, i = r * ncols, m = i + ncols; i < m; ++i) {\n        if (offset < yOffset[i]) offset = yOffset[i];\n      }\n\n      for (i = r * ncols; i < m; ++i) {\n        yOffset[i] = offset + yExtent[r - 1];\n      }\n    }\n  } else if (alignRow === All) {\n    for (offset = 0, i = ncols; i < n; ++i) {\n      if (offset < yOffset[i]) offset = yOffset[i];\n    }\n\n    for (i = ncols; i < n; ++i) {\n      yOffset[i] = offset + yMax;\n    }\n  } else {\n    for (alignRow = false, r = 1; r < nrows; ++r) {\n      for (i = r * ncols, m = i + ncols; i < m; ++i) {\n        yOffset[i] += yExtent[r - 1];\n      }\n    }\n  } // perform horizontal grid layout\n\n\n  for (x = 0, i = 0; i < n; ++i) {\n    x = xOffset[i] + (i % ncols ? x : 0);\n    dx[i] += x - groups[i].x;\n  } // perform vertical grid layout\n\n\n  for (c = 0; c < ncols; ++c) {\n    for (y = 0, i = c; i < n; i += ncols) {\n      y += yOffset[i];\n      dy[i] += y - groups[i].y;\n    }\n  } // perform horizontal centering\n\n\n  if (alignCol && get(opt.center, Column) && nrows > 1) {\n    for (i = 0; i < n; ++i) {\n      b = alignCol === All ? xMax : xExtent[i % ncols];\n      x = b - boxes[i].x2 - groups[i].x - dx[i];\n      if (x > 0) dx[i] += x / 2;\n    }\n  } // perform vertical centering\n\n\n  if (alignRow && get(opt.center, Row) && ncols !== 1) {\n    for (i = 0; i < n; ++i) {\n      b = alignRow === All ? yMax : yExtent[~~(i / ncols)];\n      y = b - boxes[i].y2 - groups[i].y - dy[i];\n      if (y > 0) dy[i] += y / 2;\n    }\n  } // position grid relative to anchor\n\n\n  for (i = 0; i < n; ++i) {\n    bounds.union(boxes[i].translate(dx[i], dy[i]));\n  }\n\n  x = get(opt.anchor, X);\n  y = get(opt.anchor, Y);\n\n  switch (get(opt.anchor, Column)) {\n    case End:\n      x -= bounds.width();\n      break;\n\n    case Middle:\n      x -= bounds.width() / 2;\n  }\n\n  switch (get(opt.anchor, Row)) {\n    case End:\n      y -= bounds.height();\n      break;\n\n    case Middle:\n      y -= bounds.height() / 2;\n  }\n\n  x = Math.round(x);\n  y = Math.round(y); // update mark positions, bounds, dirty\n\n  bounds.clear();\n\n  for (i = 0; i < n; ++i) {\n    groups[i].mark.bounds.clear();\n  }\n\n  for (i = 0; i < n; ++i) {\n    g = groups[i];\n    g.x += dx[i] += x;\n    g.y += dy[i] += y;\n    bounds.union(g.mark.bounds.union(g.bounds.translate(dx[i], dy[i])));\n    if (dirty) view.dirty(g);\n  }\n\n  return bounds;\n}\nfunction trellisLayout(view, group, opt) {\n  var views = gridLayoutGroups(group),\n      groups = views.marks,\n      bbox = opt.bounds === Flush ? boundFlush : boundFull,\n      off = opt.offset,\n      ncols = opt.columns || groups.length,\n      nrows = ncols <= 0 ? 1 : Math.ceil(groups.length / ncols),\n      cells = nrows * ncols,\n      x,\n      y,\n      x2,\n      y2,\n      anchor,\n      band,\n      offset; // -- initial grid layout\n\n  const bounds = gridLayout(view, groups, opt);\n  if (bounds.empty()) bounds.set(0, 0, 0, 0); // empty grid\n  // -- layout grid headers and footers --\n  // perform row header layout\n\n  if (views.rowheaders) {\n    band = get(opt.headerBand, Row, null);\n    x = layoutHeaders(view, views.rowheaders, groups, ncols, nrows, -get(off, 'rowHeader'), min, 0, bbox, 'x1', 0, ncols, 1, band);\n  } // perform column header layout\n\n\n  if (views.colheaders) {\n    band = get(opt.headerBand, Column, null);\n    y = layoutHeaders(view, views.colheaders, groups, ncols, ncols, -get(off, 'columnHeader'), min, 1, bbox, 'y1', 0, 1, ncols, band);\n  } // perform row footer layout\n\n\n  if (views.rowfooters) {\n    band = get(opt.footerBand, Row, null);\n    x2 = layoutHeaders(view, views.rowfooters, groups, ncols, nrows, get(off, 'rowFooter'), max, 0, bbox, 'x2', ncols - 1, ncols, 1, band);\n  } // perform column footer layout\n\n\n  if (views.colfooters) {\n    band = get(opt.footerBand, Column, null);\n    y2 = layoutHeaders(view, views.colfooters, groups, ncols, ncols, get(off, 'columnFooter'), max, 1, bbox, 'y2', cells - ncols, 1, ncols, band);\n  } // perform row title layout\n\n\n  if (views.rowtitle) {\n    anchor = get(opt.titleAnchor, Row);\n    offset = get(off, 'rowTitle');\n    offset = anchor === End ? x2 + offset : x - offset;\n    band = get(opt.titleBand, Row, 0.5);\n    layoutTitle(view, views.rowtitle, offset, 0, bounds, band);\n  } // perform column title layout\n\n\n  if (views.coltitle) {\n    anchor = get(opt.titleAnchor, Column);\n    offset = get(off, 'columnTitle');\n    offset = anchor === End ? y2 + offset : y - offset;\n    band = get(opt.titleBand, Column, 0.5);\n    layoutTitle(view, views.coltitle, offset, 1, bounds, band);\n  }\n}\n\nfunction boundFlush(item, field) {\n  return field === 'x1' ? item.x || 0 : field === 'y1' ? item.y || 0 : field === 'x2' ? (item.x || 0) + (item.width || 0) : field === 'y2' ? (item.y || 0) + (item.height || 0) : undefined;\n}\n\nfunction boundFull(item, field) {\n  return item.bounds[field];\n}\n\nfunction layoutHeaders(view, headers, groups, ncols, limit, offset, agg, isX, bound, bf, start, stride, back, band) {\n  var n = groups.length,\n      init = 0,\n      edge = 0,\n      i,\n      j,\n      k,\n      m,\n      b,\n      h,\n      g,\n      x,\n      y; // if no groups, early exit and return 0\n\n  if (!n) return init; // compute margin\n\n  for (i = start; i < n; i += stride) {\n    if (groups[i]) init = agg(init, bound(groups[i], bf));\n  } // if no headers, return margin calculation\n\n\n  if (!headers.length) return init; // check if number of headers exceeds number of rows or columns\n\n  if (headers.length > limit) {\n    view.warn('Grid headers exceed limit: ' + limit);\n    headers = headers.slice(0, limit);\n  } // apply offset\n\n\n  init += offset; // clear mark bounds for all headers\n\n  for (j = 0, m = headers.length; j < m; ++j) {\n    view.dirty(headers[j]);\n    headers[j].mark.bounds.clear();\n  } // layout each header\n\n\n  for (i = start, j = 0, m = headers.length; j < m; ++j, i += stride) {\n    h = headers[j];\n    b = h.mark.bounds; // search for nearest group to align to\n    // necessary if table has empty cells\n\n    for (k = i; k >= 0 && (g = groups[k]) == null; k -= back); // assign coordinates and update bounds\n\n\n    if (isX) {\n      x = band == null ? g.x : Math.round(g.bounds.x1 + band * g.bounds.width());\n      y = init;\n    } else {\n      x = init;\n      y = band == null ? g.y : Math.round(g.bounds.y1 + band * g.bounds.height());\n    }\n\n    b.union(h.bounds.translate(x - (h.x || 0), y - (h.y || 0)));\n    h.x = x;\n    h.y = y;\n    view.dirty(h); // update current edge of layout bounds\n\n    edge = agg(edge, b[bf]);\n  }\n\n  return edge;\n}\n\nfunction layoutTitle(view, g, offset, isX, bounds, band) {\n  if (!g) return;\n  view.dirty(g); // compute title coordinates\n\n  var x = offset,\n      y = offset;\n  isX ? x = Math.round(bounds.x1 + band * bounds.width()) : y = Math.round(bounds.y1 + band * bounds.height()); // assign coordinates and update bounds\n\n  g.bounds.translate(x - (g.x || 0), y - (g.y || 0));\n  g.mark.bounds.clear().union(g.bounds);\n  g.x = x;\n  g.y = y; // queue title for redraw\n\n  view.dirty(g);\n}\n\nfunction lookup$1(config, orient) {\n  const opt = config[orient] || {};\n  return (key, d) => opt[key] != null ? opt[key] : config[key] != null ? config[key] : d;\n} // if legends specify offset directly, use the maximum specified value\n\n\nfunction offsets(legends, value) {\n  let max = -Infinity;\n  legends.forEach(item => {\n    if (item.offset != null) max = Math.max(max, item.offset);\n  });\n  return max > -Infinity ? max : value;\n}\n\nfunction legendParams(g, orient, config, xb, yb, w, h) {\n  const _ = lookup$1(config, orient),\n        offset = offsets(g, _('offset', 0)),\n        anchor = _('anchor', Start),\n        mult = anchor === End ? 1 : anchor === Middle ? 0.5 : 0;\n\n  const p = {\n    align: Each,\n    bounds: _('bounds', Flush),\n    columns: _('direction') === 'vertical' ? 1 : g.length,\n    padding: _('margin', 8),\n    center: _('center'),\n    nodirty: true\n  };\n\n  switch (orient) {\n    case Left:\n      p.anchor = {\n        x: Math.floor(xb.x1) - offset,\n        column: End,\n        y: mult * (h || xb.height() + 2 * xb.y1),\n        row: anchor\n      };\n      break;\n\n    case Right:\n      p.anchor = {\n        x: Math.ceil(xb.x2) + offset,\n        y: mult * (h || xb.height() + 2 * xb.y1),\n        row: anchor\n      };\n      break;\n\n    case Top:\n      p.anchor = {\n        y: Math.floor(yb.y1) - offset,\n        row: End,\n        x: mult * (w || yb.width() + 2 * yb.x1),\n        column: anchor\n      };\n      break;\n\n    case Bottom:\n      p.anchor = {\n        y: Math.ceil(yb.y2) + offset,\n        x: mult * (w || yb.width() + 2 * yb.x1),\n        column: anchor\n      };\n      break;\n\n    case TopLeft:\n      p.anchor = {\n        x: offset,\n        y: offset\n      };\n      break;\n\n    case TopRight:\n      p.anchor = {\n        x: w - offset,\n        y: offset,\n        column: End\n      };\n      break;\n\n    case BottomLeft:\n      p.anchor = {\n        x: offset,\n        y: h - offset,\n        row: End\n      };\n      break;\n\n    case BottomRight:\n      p.anchor = {\n        x: w - offset,\n        y: h - offset,\n        column: End,\n        row: End\n      };\n      break;\n  }\n\n  return p;\n}\nfunction legendLayout(view, legend) {\n  var item = legend.items[0],\n      datum = item.datum,\n      orient = item.orient,\n      bounds = item.bounds,\n      x = item.x,\n      y = item.y,\n      w,\n      h; // cache current bounds for later comparison\n\n  item._bounds ? item._bounds.clear().union(bounds) : item._bounds = bounds.clone();\n  bounds.clear(); // adjust legend to accommodate padding and title\n\n  legendGroupLayout(view, item, item.items[0].items[0]); // aggregate bounds to determine size, and include origin\n\n  bounds = legendBounds(item, bounds);\n  w = 2 * item.padding;\n  h = 2 * item.padding;\n\n  if (!bounds.empty()) {\n    w = Math.ceil(bounds.width() + w);\n    h = Math.ceil(bounds.height() + h);\n  }\n\n  if (datum.type === Symbols) {\n    legendEntryLayout(item.items[0].items[0].items[0].items);\n  }\n\n  if (orient !== None) {\n    item.x = x = 0;\n    item.y = y = 0;\n  }\n\n  item.width = w;\n  item.height = h;\n  Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"boundStroke\"])(bounds.set(x, y, x + w, y + h), item);\n  item.mark.bounds.clear().union(bounds);\n  return item;\n}\n\nfunction legendBounds(item, b) {\n  // aggregate item bounds\n  item.items.forEach(_ => b.union(_.bounds)); // anchor to legend origin\n\n  b.x1 = item.padding;\n  b.y1 = item.padding;\n  return b;\n}\n\nfunction legendGroupLayout(view, item, entry) {\n  var pad = item.padding,\n      ex = pad - entry.x,\n      ey = pad - entry.y;\n\n  if (!item.datum.title) {\n    if (ex || ey) translate(view, entry, ex, ey);\n  } else {\n    var title = item.items[1].items[0],\n        anchor = title.anchor,\n        tpad = item.titlePadding || 0,\n        tx = pad - title.x,\n        ty = pad - title.y;\n\n    switch (title.orient) {\n      case Left:\n        ex += Math.ceil(title.bounds.width()) + tpad;\n        break;\n\n      case Right:\n      case Bottom:\n        break;\n\n      default:\n        ey += title.bounds.height() + tpad;\n    }\n\n    if (ex || ey) translate(view, entry, ex, ey);\n\n    switch (title.orient) {\n      case Left:\n        ty += legendTitleOffset(item, entry, title, anchor, 1, 1);\n        break;\n\n      case Right:\n        tx += legendTitleOffset(item, entry, title, End, 0, 0) + tpad;\n        ty += legendTitleOffset(item, entry, title, anchor, 1, 1);\n        break;\n\n      case Bottom:\n        tx += legendTitleOffset(item, entry, title, anchor, 0, 0);\n        ty += legendTitleOffset(item, entry, title, End, -1, 0, 1) + tpad;\n        break;\n\n      default:\n        tx += legendTitleOffset(item, entry, title, anchor, 0, 0);\n    }\n\n    if (tx || ty) translate(view, title, tx, ty); // translate legend if title pushes into negative coordinates\n\n    if ((tx = Math.round(title.bounds.x1 - pad)) < 0) {\n      translate(view, entry, -tx, 0);\n      translate(view, title, -tx, 0);\n    }\n  }\n}\n\nfunction legendTitleOffset(item, entry, title, anchor, y, lr, noBar) {\n  const grad = item.datum.type !== 'symbol',\n        vgrad = title.datum.vgrad,\n        e = grad && (lr || !vgrad) && !noBar ? entry.items[0] : entry,\n        s = e.bounds[y ? 'y2' : 'x2'] - item.padding,\n        u = vgrad && lr ? s : 0,\n        v = vgrad && lr ? 0 : s,\n        o = y <= 0 ? 0 : Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"multiLineOffset\"])(title);\n  return Math.round(anchor === Start ? u : anchor === End ? v - o : 0.5 * (s - o));\n}\n\nfunction translate(view, item, dx, dy) {\n  item.x += dx;\n  item.y += dy;\n  item.bounds.translate(dx, dy);\n  item.mark.bounds.translate(dx, dy);\n  view.dirty(item);\n}\n\nfunction legendEntryLayout(entries) {\n  // get max widths for each column\n  const widths = entries.reduce((w, g) => {\n    w[g.column] = Math.max(g.bounds.x2 - g.x, w[g.column] || 0);\n    return w;\n  }, {}); // set dimensions of legend entry groups\n\n  entries.forEach(g => {\n    g.width = widths[g.column];\n    g.height = g.bounds.y2 - g.y;\n  });\n}\n\nfunction titleLayout(view, mark, width, height, viewBounds) {\n  var group = mark.items[0],\n      frame = group.frame,\n      orient = group.orient,\n      anchor = group.anchor,\n      offset = group.offset,\n      padding = group.padding,\n      title = group.items[0].items[0],\n      subtitle = group.items[1] && group.items[1].items[0],\n      end = orient === Left || orient === Right ? height : width,\n      start = 0,\n      x = 0,\n      y = 0,\n      sx = 0,\n      sy = 0,\n      pos;\n\n  if (frame !== Group) {\n    orient === Left ? (start = viewBounds.y2, end = viewBounds.y1) : orient === Right ? (start = viewBounds.y1, end = viewBounds.y2) : (start = viewBounds.x1, end = viewBounds.x2);\n  } else if (orient === Left) {\n    start = height, end = 0;\n  }\n\n  pos = anchor === Start ? start : anchor === End ? end : (start + end) / 2;\n\n  if (subtitle && subtitle.text) {\n    // position subtitle\n    switch (orient) {\n      case Top:\n      case Bottom:\n        sy = title.bounds.height() + padding;\n        break;\n\n      case Left:\n        sx = title.bounds.width() + padding;\n        break;\n\n      case Right:\n        sx = -title.bounds.width() - padding;\n        break;\n    }\n\n    tempBounds.clear().union(subtitle.bounds);\n    tempBounds.translate(sx - (subtitle.x || 0), sy - (subtitle.y || 0));\n\n    if (set(subtitle, 'x', sx) | set(subtitle, 'y', sy)) {\n      view.dirty(subtitle);\n      subtitle.bounds.clear().union(tempBounds);\n      subtitle.mark.bounds.clear().union(tempBounds);\n      view.dirty(subtitle);\n    }\n\n    tempBounds.clear().union(subtitle.bounds);\n  } else {\n    tempBounds.clear();\n  }\n\n  tempBounds.union(title.bounds); // position title group\n\n  switch (orient) {\n    case Top:\n      x = pos;\n      y = viewBounds.y1 - tempBounds.height() - offset;\n      break;\n\n    case Left:\n      x = viewBounds.x1 - tempBounds.width() - offset;\n      y = pos;\n      break;\n\n    case Right:\n      x = viewBounds.x2 + tempBounds.width() + offset;\n      y = pos;\n      break;\n\n    case Bottom:\n      x = pos;\n      y = viewBounds.y2 + offset;\n      break;\n\n    default:\n      x = group.x;\n      y = group.y;\n  }\n\n  if (set(group, 'x', x) | set(group, 'y', y)) {\n    tempBounds.translate(x, y);\n    view.dirty(group);\n    group.bounds.clear().union(tempBounds);\n    mark.bounds.clear().union(tempBounds);\n    view.dirty(group);\n  }\n\n  return group.bounds;\n}\n\n/**\n * Layout view elements such as axes and legends.\n * Also performs size adjustments.\n * @constructor\n * @param {object} params - The parameters for this operator.\n * @param {object} params.mark - Scenegraph mark of groups to layout.\n */\n\nfunction ViewLayout(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(ViewLayout, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const view = pulse.dataflow;\n\n    _.mark.items.forEach(group => {\n      if (_.layout) trellisLayout(view, group, _.layout);\n      layoutGroup(view, group, _);\n    });\n\n    return shouldReflow(_.mark.group) ? pulse.reflow() : pulse;\n  }\n\n});\n\nfunction shouldReflow(group) {\n  // We typically should reflow if layout is invoked (#2568), as child items\n  // may have resized and reflow ensures group bounds are re-calculated.\n  // However, legend entries have a special exception to avoid instability.\n  // For example, if a selected legend symbol gains a stroke on hover,\n  // we don't want to re-position subsequent elements in the legend.\n  return group && group.mark.role !== 'legend-entry';\n}\n\nfunction layoutGroup(view, group, _) {\n  var items = group.items,\n      width = Math.max(0, group.width || 0),\n      height = Math.max(0, group.height || 0),\n      viewBounds = new vega_scenegraph__WEBPACK_IMPORTED_MODULE_1__[\"Bounds\"]().set(0, 0, width, height),\n      xBounds = viewBounds.clone(),\n      yBounds = viewBounds.clone(),\n      legends = [],\n      title,\n      mark,\n      orient,\n      b,\n      i,\n      n; // layout axes, gather legends, collect bounds\n\n  for (i = 0, n = items.length; i < n; ++i) {\n    mark = items[i];\n\n    switch (mark.role) {\n      case AxisRole:\n        b = isYAxis(mark) ? xBounds : yBounds;\n        b.union(axisLayout(view, mark, width, height));\n        break;\n\n      case TitleRole:\n        title = mark;\n        break;\n\n      case LegendRole:\n        legends.push(legendLayout(view, mark));\n        break;\n\n      case FrameRole:\n      case ScopeRole:\n      case RowHeader:\n      case RowFooter:\n      case RowTitle:\n      case ColHeader:\n      case ColFooter:\n      case ColTitle:\n        xBounds.union(mark.bounds);\n        yBounds.union(mark.bounds);\n        break;\n\n      default:\n        viewBounds.union(mark.bounds);\n    }\n  } // layout legends, adjust viewBounds\n\n\n  if (legends.length) {\n    // group legends by orient\n    const l = {};\n    legends.forEach(item => {\n      orient = item.orient || Right;\n      if (orient !== None) (l[orient] || (l[orient] = [])).push(item);\n    }); // perform grid layout for each orient group\n\n    for (const orient in l) {\n      const g = l[orient];\n      gridLayout(view, g, legendParams(g, orient, _.legends, xBounds, yBounds, width, height));\n    } // update view bounds\n\n\n    legends.forEach(item => {\n      const b = item.bounds;\n\n      if (!b.equals(item._bounds)) {\n        item.bounds = item._bounds;\n        view.dirty(item); // dirty previous location\n\n        item.bounds = b;\n        view.dirty(item);\n      }\n\n      if (_.autosize && _.autosize.type === Fit) {\n        // For autosize fit, incorporate the orthogonal dimension only.\n        // Legends that overrun the chart area will then be clipped;\n        // otherwise the chart area gets reduced to nothing!\n        switch (item.orient) {\n          case Left:\n          case Right:\n            viewBounds.add(b.x1, 0).add(b.x2, 0);\n            break;\n\n          case Top:\n          case Bottom:\n            viewBounds.add(0, b.y1).add(0, b.y2);\n        }\n      } else {\n        viewBounds.union(b);\n      }\n    });\n  } // combine bounding boxes\n\n\n  viewBounds.union(xBounds).union(yBounds); // layout title, adjust bounds\n\n  if (title) {\n    viewBounds.union(titleLayout(view, title, width, height, viewBounds));\n  } // override aggregated view bounds if content is clipped\n\n\n  if (group.clip) {\n    viewBounds.set(0, 0, group.width || 0, group.height || 0);\n  } // perform size adjustment\n\n\n  viewSizeLayout(view, group, viewBounds, _);\n}\n\nfunction viewSizeLayout(view, group, viewBounds, _) {\n  const auto = _.autosize || {},\n        type = auto.type;\n  if (view._autosize < 1 || !type) return;\n  let viewWidth = view._width,\n      viewHeight = view._height,\n      width = Math.max(0, group.width || 0),\n      left = Math.max(0, Math.ceil(-viewBounds.x1)),\n      height = Math.max(0, group.height || 0),\n      top = Math.max(0, Math.ceil(-viewBounds.y1));\n  const right = Math.max(0, Math.ceil(viewBounds.x2 - width)),\n        bottom = Math.max(0, Math.ceil(viewBounds.y2 - height));\n\n  if (auto.contains === Padding) {\n    const padding = view.padding();\n    viewWidth -= padding.left + padding.right;\n    viewHeight -= padding.top + padding.bottom;\n  }\n\n  if (type === None) {\n    left = 0;\n    top = 0;\n    width = viewWidth;\n    height = viewHeight;\n  } else if (type === Fit) {\n    width = Math.max(0, viewWidth - left - right);\n    height = Math.max(0, viewHeight - top - bottom);\n  } else if (type === FitX) {\n    width = Math.max(0, viewWidth - left - right);\n    viewHeight = height + top + bottom;\n  } else if (type === FitY) {\n    viewWidth = width + left + right;\n    height = Math.max(0, viewHeight - top - bottom);\n  } else if (type === Pad) {\n    viewWidth = width + left + right;\n    viewHeight = height + top + bottom;\n  }\n\n  view._resizeView(viewWidth, viewHeight, width, height, [left, top], auto.resize);\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-view-transforms/build/vega-view-transforms.module.js?");

/***/ }),

/***/ "./node_modules/vega-view/build/vega-view.module.js":
/*!**********************************************************!*\
  !*** ./node_modules/vega-view/build/vega-view.module.js ***!
  \**********************************************************/
/*! exports provided: View */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"View\", function() { return View; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-scenegraph */ \"./node_modules/vega-scenegraph/build/vega-scenegraph.module.js\");\n/* harmony import */ var d3_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! d3-array */ \"./node_modules/d3-array/src/index.js\");\n/* harmony import */ var vega_functions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-functions */ \"./node_modules/vega-functions/build/vega-functions.module.js\");\n/* harmony import */ var vega_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vega-runtime */ \"./node_modules/vega-runtime/build/vega-runtime.module.js\");\n/* harmony import */ var d3_timer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3-timer */ \"./node_modules/d3-timer/src/index.js\");\n/* harmony import */ var vega_format__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vega-format */ \"./node_modules/vega-format/build/vega-format.module.js\");\n\n\n\n\n\n\n\n\n\n// initialize aria role and label attributes\nfunction initializeAria(view) {\n  const el = view.container();\n\n  if (el) {\n    el.setAttribute('role', 'graphics-document');\n    el.setAttribute('aria-roleDescription', 'visualization');\n    ariaLabel(el, view.description());\n  }\n} // update aria-label if we have a DOM container element\n\nfunction ariaLabel(el, desc) {\n  if (el) desc == null ? el.removeAttribute('aria-label') : el.setAttribute('aria-label', desc);\n}\n\nfunction background (view) {\n  // respond to background signal\n  view.add(null, _ => {\n    view._background = _.bg;\n    view._resize = 1;\n    return _.bg;\n  }, {\n    bg: view._signals.background\n  });\n}\n\nconst Default = 'default';\nfunction cursor (view) {\n  // get cursor signal, add to dataflow if needed\n  const cursor = view._signals.cursor || (view._signals.cursor = view.add({\n    user: Default,\n    item: null\n  })); // evaluate cursor on each mousemove event\n\n  view.on(view.events('view', 'mousemove'), cursor, (_, event) => {\n    const value = cursor.value,\n          user = value ? Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(value) ? value : value.user : Default,\n          item = event.item && event.item.cursor || null;\n    return value && user === value.user && item == value.item ? value : {\n      user: user,\n      item: item\n    };\n  }); // when cursor signal updates, set visible cursor\n\n  view.add(null, function (_) {\n    let user = _.cursor,\n        item = this.value;\n\n    if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(user)) {\n      item = user.item;\n      user = user.user;\n    }\n\n    setCursor(view, user && user !== Default ? user : item || user);\n    return item;\n  }, {\n    cursor: cursor\n  });\n}\nfunction setCursor(view, cursor) {\n  const el = view.globalCursor() ? typeof document !== 'undefined' && document.body : view.container();\n\n  if (el) {\n    return cursor == null ? el.style.removeProperty('cursor') : el.style.cursor = cursor;\n  }\n}\n\nfunction dataref(view, name) {\n  var data = view._runtime.data;\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(data, name)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized data set: ' + name);\n  }\n\n  return data[name];\n}\nfunction data(name, values) {\n  return arguments.length < 2 ? dataref(this, name).values.value : change.call(this, name, Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"changeset\"])().remove(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"]).insert(values));\n}\nfunction change(name, changes) {\n  if (!Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"isChangeSet\"])(changes)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Second argument to changes must be a changeset.');\n  }\n\n  const dataset = dataref(this, name);\n  dataset.modified = true;\n  return this.pulse(dataset.input, changes);\n}\nfunction insert(name, _) {\n  return change.call(this, name, Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"changeset\"])().insert(_));\n}\nfunction remove(name, _) {\n  return change.call(this, name, Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"changeset\"])().remove(_));\n}\n\nfunction width(view) {\n  var padding = view.padding();\n  return Math.max(0, view._viewWidth + padding.left + padding.right);\n}\nfunction height(view) {\n  var padding = view.padding();\n  return Math.max(0, view._viewHeight + padding.top + padding.bottom);\n}\nfunction offset(view) {\n  var padding = view.padding(),\n      origin = view._origin;\n  return [padding.left + origin[0], padding.top + origin[1]];\n}\nfunction resizeRenderer(view) {\n  var origin = offset(view),\n      w = width(view),\n      h = height(view);\n\n  view._renderer.background(view.background());\n\n  view._renderer.resize(w, h, origin);\n\n  view._handler.origin(origin);\n\n  view._resizeListeners.forEach(handler => {\n    try {\n      handler(w, h);\n    } catch (error) {\n      view.error(error);\n    }\n  });\n}\n\n/**\n * Extend an event with additional view-specific methods.\n * Adds a new property ('vega') to an event that provides a number\n * of methods for querying information about the current interaction.\n * The vega object provides the following methods:\n *   view - Returns the backing View instance.\n *   item - Returns the currently active scenegraph item (if any).\n *   group - Returns the currently active scenegraph group (if any).\n *     This method accepts a single string-typed argument indicating the name\n *     of the desired parent group. The scenegraph will be traversed from\n *     the item up towards the root to search for a matching group. If no\n *     argument is provided the enclosing group for the active item is\n *     returned, unless the item it itself a group, in which case it is\n *     returned directly.\n *   xy - Returns a two-element array containing the x and y coordinates for\n *     mouse or touch events. For touch events, this is based on the first\n *     elements in the changedTouches array. This method accepts a single\n *     argument: either an item instance or mark name that should serve as\n *     the reference coordinate system. If no argument is provided the\n *     top-level view coordinate system is assumed.\n *   x - Returns the current x-coordinate, accepts the same arguments as xy.\n *   y - Returns the current y-coordinate, accepts the same arguments as xy.\n * @param {Event} event - The input event to extend.\n * @param {Item} item - The currently active scenegraph item (if any).\n * @return {Event} - The extended input event.\n */\n\nfunction eventExtend (view, event, item) {\n  var r = view._renderer,\n      el = r && r.canvas(),\n      p,\n      e,\n      translate;\n\n  if (el) {\n    translate = offset(view);\n    e = event.changedTouches ? event.changedTouches[0] : event;\n    p = Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"point\"])(e, el);\n    p[0] -= translate[0];\n    p[1] -= translate[1];\n  }\n\n  event.dataflow = view;\n  event.item = item;\n  event.vega = extension(view, item, p);\n  return event;\n}\n\nfunction extension(view, item, point) {\n  const itemGroup = item ? item.mark.marktype === 'group' ? item : item.mark.group : null;\n\n  function group(name) {\n    var g = itemGroup,\n        i;\n    if (name) for (i = item; i; i = i.mark.group) {\n      if (i.mark.name === name) {\n        g = i;\n        break;\n      }\n    }\n    return g && g.mark && g.mark.interactive ? g : {};\n  }\n\n  function xy(item) {\n    if (!item) return point;\n    if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(item)) item = group(item);\n    const p = point.slice();\n\n    while (item) {\n      p[0] -= item.x || 0;\n      p[1] -= item.y || 0;\n      item = item.mark && item.mark.group;\n    }\n\n    return p;\n  }\n\n  return {\n    view: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(view),\n    item: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"])(item || {}),\n    group: group,\n    xy: xy,\n    x: function (item) {\n      return xy(item)[0];\n    },\n    y: function (item) {\n      return xy(item)[1];\n    }\n  };\n}\n\nconst VIEW = 'view',\n      TIMER = 'timer',\n      WINDOW = 'window',\n      NO_TRAP = {\n  trap: false\n};\n/**\n * Initialize event handling configuration.\n * @param {object} config - The configuration settings.\n * @return {object}\n */\n\nfunction initializeEventConfig(config) {\n  const events = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({\n    defaults: {}\n  }, config);\n\n  const unpack = (obj, keys) => {\n    keys.forEach(k => {\n      if (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(obj[k])) obj[k] = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"])(obj[k]);\n    });\n  };\n\n  unpack(events.defaults, ['prevent', 'allow']);\n  unpack(events, ['view', 'window', 'selector']);\n  return events;\n}\n\nfunction prevent(view, type) {\n  var def = view._eventConfig.defaults,\n      prevent = def.prevent,\n      allow = def.allow;\n  return prevent === false || allow === true ? false : prevent === true || allow === false ? true : prevent ? prevent[type] : allow ? !allow[type] : view.preventDefault();\n}\n\nfunction permit(view, key, type) {\n  const rule = view._eventConfig && view._eventConfig[key];\n\n  if (rule === false || Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(rule) && !rule[type]) {\n    view.warn(\"Blocked \".concat(key, \" \").concat(type, \" event listener.\"));\n    return false;\n  }\n\n  return true;\n}\n/**\n * Create a new event stream from an event source.\n * @param {object} source - The event source to monitor.\n * @param {string} type - The event type.\n * @param {function(object): boolean} [filter] - Event filter function.\n * @return {EventStream}\n */\n\n\nfunction events(source, type, filter) {\n  var view = this,\n      s = new vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"EventStream\"](filter),\n      send = function (e, item) {\n    view.runAsync(null, () => {\n      if (source === VIEW && prevent(view, type)) {\n        e.preventDefault();\n      }\n\n      s.receive(eventExtend(view, e, item));\n    });\n  },\n      sources;\n\n  if (source === TIMER) {\n    if (permit(view, 'timer', type)) {\n      view.timer(send, type);\n    }\n  } else if (source === VIEW) {\n    if (permit(view, 'view', type)) {\n      // send traps errors, so use {trap: false} option\n      view.addEventListener(type, send, NO_TRAP);\n    }\n  } else {\n    if (source === WINDOW) {\n      if (permit(view, 'window', type) && typeof window !== 'undefined') {\n        sources = [window];\n      }\n    } else if (typeof document !== 'undefined') {\n      if (permit(view, 'selector', type)) {\n        sources = document.querySelectorAll(source);\n      }\n    }\n\n    if (!sources) {\n      view.warn('Can not resolve event source: ' + source);\n    } else {\n      for (var i = 0, n = sources.length; i < n; ++i) {\n        sources[i].addEventListener(type, send);\n      }\n\n      view._eventListeners.push({\n        type: type,\n        sources: sources,\n        handler: send\n      });\n    }\n  }\n\n  return s;\n}\n\nfunction itemFilter(event) {\n  return event.item;\n}\n\nfunction markTarget(event) {\n  // grab upstream collector feeding the mark operator\n  return event.item.mark.source;\n}\n\nfunction invoke(name) {\n  return function (_, event) {\n    return event.vega.view().changeset().encode(event.item, name);\n  };\n}\n\nfunction hover (hoverSet, leaveSet) {\n  hoverSet = [hoverSet || 'hover'];\n  leaveSet = [leaveSet || 'update', hoverSet[0]]; // invoke hover set upon mouseover\n\n  this.on(this.events('view', 'mouseover', itemFilter), markTarget, invoke(hoverSet)); // invoke leave set upon mouseout\n\n  this.on(this.events('view', 'mouseout', itemFilter), markTarget, invoke(leaveSet));\n  return this;\n}\n\n/**\n * Finalize a View instance that is being removed.\n * Cancel any running timers.\n * Remove all external event listeners.\n * Remove any currently displayed tooltip.\n */\nfunction finalize () {\n  var tooltip = this._tooltip,\n      timers = this._timers,\n      listeners = this._eventListeners,\n      n,\n      m,\n      e;\n  n = timers.length;\n\n  while (--n >= 0) {\n    timers[n].stop();\n  }\n\n  n = listeners.length;\n\n  while (--n >= 0) {\n    e = listeners[n];\n    m = e.sources.length;\n\n    while (--m >= 0) {\n      e.sources[m].removeEventListener(e.type, e.handler);\n    }\n  }\n\n  if (tooltip) {\n    tooltip.call(this, this._handler, null, null, null);\n  }\n\n  return this;\n}\n\nfunction element (tag, attr, text) {\n  const el = document.createElement(tag);\n\n  for (const key in attr) el.setAttribute(key, attr[key]);\n\n  if (text != null) el.textContent = text;\n  return el;\n}\n\nconst BindClass = 'vega-bind',\n      NameClass = 'vega-bind-name',\n      RadioClass = 'vega-bind-radio';\n/**\n * Bind a signal to an external HTML input element. The resulting two-way\n * binding will propagate input changes to signals, and propagate signal\n * changes to the input element state. If this view instance has no parent\n * element, we assume the view is headless and no bindings are created.\n * @param {Element|string} el - The parent DOM element to which the input\n *   element should be appended as a child. If string-valued, this argument\n *   will be treated as a CSS selector. If null or undefined, the parent\n *   element of this view will be used as the element.\n * @param {object} param - The binding parameters which specify the signal\n *   to bind to, the input element type, and type-specific configuration.\n * @return {View} - This view instance.\n */\n\nfunction bind (view, el, binding) {\n  if (!el) return;\n  const param = binding.param;\n  let bind = binding.state;\n\n  if (!bind) {\n    bind = binding.state = {\n      elements: null,\n      active: false,\n      set: null,\n      update: value => {\n        if (value !== view.signal(param.signal)) {\n          view.runAsync(null, () => {\n            bind.source = true;\n            view.signal(param.signal, value);\n          });\n        }\n      }\n    };\n\n    if (param.debounce) {\n      bind.update = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"])(param.debounce, bind.update);\n    }\n  }\n\n  generate(bind, el, param, view.signal(param.signal));\n\n  if (!bind.active) {\n    view.on(view._signals[param.signal], null, () => {\n      bind.source ? bind.source = false : bind.set(view.signal(param.signal));\n    });\n    bind.active = true;\n  }\n\n  return bind;\n}\n/**\n * Generate an HTML input form element and bind it to a signal.\n */\n\nfunction generate(bind, el, param, value) {\n  const div = element('div', {\n    'class': BindClass\n  });\n  const wrapper = param.input === 'radio' ? div : div.appendChild(element('label'));\n  wrapper.appendChild(element('span', {\n    'class': NameClass\n  }, param.name || param.signal));\n  el.appendChild(div);\n  let input = form;\n\n  switch (param.input) {\n    case 'checkbox':\n      input = checkbox;\n      break;\n\n    case 'select':\n      input = select;\n      break;\n\n    case 'radio':\n      input = radio;\n      break;\n\n    case 'range':\n      input = range;\n      break;\n  }\n\n  input(bind, wrapper, param, value);\n}\n/**\n * Generates an arbitrary input form element.\n * The input type is controlled via user-provided parameters.\n */\n\n\nfunction form(bind, el, param, value) {\n  const node = element('input');\n\n  for (const key in param) {\n    if (key !== 'signal' && key !== 'element') {\n      node.setAttribute(key === 'input' ? 'type' : key, param[key]);\n    }\n  }\n\n  node.setAttribute('name', param.signal);\n  node.value = value;\n  el.appendChild(node);\n  node.addEventListener('input', () => bind.update(node.value));\n  bind.elements = [node];\n\n  bind.set = value => node.value = value;\n}\n/**\n * Generates a checkbox input element.\n */\n\n\nfunction checkbox(bind, el, param, value) {\n  const attr = {\n    type: 'checkbox',\n    name: param.signal\n  };\n  if (value) attr.checked = true;\n  const node = element('input', attr);\n  el.appendChild(node);\n  node.addEventListener('change', () => bind.update(node.checked));\n  bind.elements = [node];\n\n  bind.set = value => node.checked = !!value || null;\n}\n/**\n * Generates a selection list input element.\n */\n\n\nfunction select(bind, el, param, value) {\n  const node = element('select', {\n    name: param.signal\n  }),\n        labels = param.labels || [];\n  param.options.forEach((option, i) => {\n    const attr = {\n      value: option\n    };\n    if (valuesEqual(option, value)) attr.selected = true;\n    node.appendChild(element('option', attr, (labels[i] || option) + ''));\n  });\n  el.appendChild(node);\n  node.addEventListener('change', () => {\n    bind.update(param.options[node.selectedIndex]);\n  });\n  bind.elements = [node];\n\n  bind.set = value => {\n    for (let i = 0, n = param.options.length; i < n; ++i) {\n      if (valuesEqual(param.options[i], value)) {\n        node.selectedIndex = i;\n        return;\n      }\n    }\n  };\n}\n/**\n * Generates a radio button group.\n */\n\n\nfunction radio(bind, el, param, value) {\n  const group = element('span', {\n    'class': RadioClass\n  }),\n        labels = param.labels || [];\n  el.appendChild(group);\n  bind.elements = param.options.map((option, i) => {\n    const attr = {\n      type: 'radio',\n      name: param.signal,\n      value: option\n    };\n    if (valuesEqual(option, value)) attr.checked = true;\n    const input = element('input', attr);\n    input.addEventListener('change', () => bind.update(option));\n    const label = element('label', {}, (labels[i] || option) + '');\n    label.prepend(input);\n    group.appendChild(label);\n    return input;\n  });\n\n  bind.set = value => {\n    const nodes = bind.elements,\n          n = nodes.length;\n\n    for (let i = 0; i < n; ++i) {\n      if (valuesEqual(nodes[i].value, value)) nodes[i].checked = true;\n    }\n  };\n}\n/**\n * Generates a slider input element.\n */\n\n\nfunction range(bind, el, param, value) {\n  value = value !== undefined ? value : (+param.max + +param.min) / 2;\n  const max = param.max != null ? param.max : Math.max(100, +value) || 100,\n        min = param.min || Math.min(0, max, +value) || 0,\n        step = param.step || Object(d3_array__WEBPACK_IMPORTED_MODULE_3__[\"tickStep\"])(min, max, 100);\n  const node = element('input', {\n    type: 'range',\n    name: param.signal,\n    min: min,\n    max: max,\n    step: step\n  });\n  node.value = value;\n  const span = element('span', {}, +value);\n  el.appendChild(node);\n  el.appendChild(span);\n\n  const update = () => {\n    span.textContent = node.value;\n    bind.update(+node.value);\n  }; // subscribe to both input and change\n\n\n  node.addEventListener('input', update);\n  node.addEventListener('change', update);\n  bind.elements = [node];\n\n  bind.set = value => {\n    node.value = value;\n    span.textContent = value;\n  };\n}\n\nfunction valuesEqual(a, b) {\n  return a === b || a + '' === b + '';\n}\n\nfunction initializeRenderer (view, r, el, constructor, scaleFactor, opt) {\n  r = r || new constructor(view.loader());\n  return r.initialize(el, width(view), height(view), offset(view), scaleFactor, opt).background(view.background());\n}\n\nfunction trap (view, fn) {\n  return !fn ? null : function () {\n    try {\n      fn.apply(this, arguments);\n    } catch (error) {\n      view.error(error);\n    }\n  };\n}\n\nfunction initializeHandler (view, prevHandler, el, constructor) {\n  // instantiate scenegraph handler\n  const handler = new constructor(view.loader(), trap(view, view.tooltip())).scene(view.scenegraph().root).initialize(el, offset(view), view); // transfer event handlers\n\n  if (prevHandler) {\n    prevHandler.handlers().forEach(h => {\n      handler.on(h.type, h.handler);\n    });\n  }\n\n  return handler;\n}\n\nfunction initialize (el, elBind) {\n  const view = this,\n        type = view._renderType,\n        config = view._eventConfig.bind,\n        module = Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"renderModule\"])(type); // containing dom element\n\n  el = view._el = el ? lookup(view, el) : null; // initialize aria attributes\n\n  initializeAria(view); // select appropriate renderer & handler\n\n  if (!module) view.error('Unrecognized renderer type: ' + type);\n  const Handler = module.handler || vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"CanvasHandler\"],\n        Renderer = el ? module.renderer : module.headless; // initialize renderer and input handler\n\n  view._renderer = !Renderer ? null : initializeRenderer(view, view._renderer, el, Renderer);\n  view._handler = initializeHandler(view, view._handler, el, Handler);\n  view._redraw = true; // initialize signal bindings\n\n  if (el && config !== 'none') {\n    elBind = elBind ? view._elBind = lookup(view, elBind) : el.appendChild(element('form', {\n      'class': 'vega-bindings'\n    }));\n\n    view._bind.forEach(_ => {\n      if (_.param.element && config !== 'container') {\n        _.element = lookup(view, _.param.element);\n      }\n    });\n\n    view._bind.forEach(_ => {\n      bind(view, _.element || elBind, _);\n    });\n  }\n\n  return view;\n}\n\nfunction lookup(view, el) {\n  if (typeof el === 'string') {\n    if (typeof document !== 'undefined') {\n      el = document.querySelector(el);\n\n      if (!el) {\n        view.error('Signal bind element not found: ' + el);\n        return null;\n      }\n    } else {\n      view.error('DOM document instance not found.');\n      return null;\n    }\n  }\n\n  if (el) {\n    try {\n      el.innerHTML = '';\n    } catch (e) {\n      el = null;\n      view.error(e);\n    }\n  }\n\n  return el;\n}\n\nconst number = _ => +_ || 0;\n\nconst paddingObject = _ => ({\n  top: _,\n  bottom: _,\n  left: _,\n  right: _\n});\n\nfunction padding (_) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(_) ? {\n    top: number(_.top),\n    bottom: number(_.bottom),\n    left: number(_.left),\n    right: number(_.right)\n  } : paddingObject(number(_));\n}\n\n/**\n * Render the current scene in a headless fashion.\n * This method is asynchronous, returning a Promise instance.\n * @return {Promise} - A Promise that resolves to a renderer.\n */\n\nasync function renderHeadless (view, type, scaleFactor, opt) {\n  const module = Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"renderModule\"])(type),\n        ctr = module && module.headless;\n  if (!ctr) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized renderer type: ' + type);\n  await view.runAsync();\n  return initializeRenderer(view, null, null, ctr, scaleFactor, opt).renderAsync(view._scenegraph.root);\n}\n\n/**\n * Produce an image URL for the visualization. Depending on the type\n * parameter, the generated URL contains data for either a PNG or SVG image.\n * The URL can be used (for example) to download images of the visualization.\n * This method is asynchronous, returning a Promise instance.\n * @param {string} type - The image type. One of 'svg', 'png' or 'canvas'.\n *   The 'canvas' and 'png' types are synonyms for a PNG image.\n * @return {Promise} - A promise that resolves to an image URL.\n */\n\nasync function renderToImageURL (type, scaleFactor) {\n  if (type !== vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].Canvas && type !== vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].SVG && type !== vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].PNG) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized image type: ' + type);\n  }\n\n  const r = await renderHeadless(this, type, scaleFactor);\n  return type === vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].SVG ? toBlobURL(r.svg(), 'image/svg+xml') : r.canvas().toDataURL('image/png');\n}\n\nfunction toBlobURL(data, mime) {\n  const blob = new Blob([data], {\n    type: mime\n  });\n  return window.URL.createObjectURL(blob);\n}\n\n/**\n * Produce a Canvas instance containing a rendered visualization.\n * This method is asynchronous, returning a Promise instance.\n * @return {Promise} - A promise that resolves to a Canvas instance.\n */\n\nasync function renderToCanvas (scaleFactor, opt) {\n  const r = await renderHeadless(this, vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].Canvas, scaleFactor, opt);\n  return r.canvas();\n}\n\n/**\n * Produce a rendered SVG string of the visualization.\n * This method is asynchronous, returning a Promise instance.\n * @return {Promise} - A promise that resolves to an SVG string.\n */\n\nasync function renderToSVG (scaleFactor) {\n  const r = await renderHeadless(this, vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].SVG, scaleFactor);\n  return r.svg();\n}\n\nfunction runtime (view, spec, expr) {\n  return Object(vega_runtime__WEBPACK_IMPORTED_MODULE_5__[\"context\"])(view, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"transforms\"], vega_functions__WEBPACK_IMPORTED_MODULE_4__[\"functionContext\"], expr).parse(spec);\n}\n\nfunction scale(name) {\n  var scales = this._runtime.scales;\n\n  if (!Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(scales, name)) {\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized scale or projection: ' + name);\n  }\n\n  return scales[name].value;\n}\n\nvar Width = 'width',\n    Height = 'height',\n    Padding = 'padding',\n    Skip = {\n  skip: true\n};\nfunction viewWidth(view, width) {\n  var a = view.autosize(),\n      p = view.padding();\n  return width - (a && a.contains === Padding ? p.left + p.right : 0);\n}\nfunction viewHeight(view, height) {\n  var a = view.autosize(),\n      p = view.padding();\n  return height - (a && a.contains === Padding ? p.top + p.bottom : 0);\n}\nfunction initializeResize(view) {\n  var s = view._signals,\n      w = s[Width],\n      h = s[Height],\n      p = s[Padding];\n\n  function resetSize() {\n    view._autosize = view._resize = 1;\n  } // respond to width signal\n\n\n  view._resizeWidth = view.add(null, _ => {\n    view._width = _.size;\n    view._viewWidth = viewWidth(view, _.size);\n    resetSize();\n  }, {\n    size: w\n  }); // respond to height signal\n\n  view._resizeHeight = view.add(null, _ => {\n    view._height = _.size;\n    view._viewHeight = viewHeight(view, _.size);\n    resetSize();\n  }, {\n    size: h\n  }); // respond to padding signal\n\n  const resizePadding = view.add(null, resetSize, {\n    pad: p\n  }); // set rank to run immediately after source signal\n\n  view._resizeWidth.rank = w.rank + 1;\n  view._resizeHeight.rank = h.rank + 1;\n  resizePadding.rank = p.rank + 1;\n}\nfunction resizeView(viewWidth, viewHeight, width, height, origin, auto) {\n  this.runAfter(view => {\n    let rerun = 0; // reset autosize flag\n\n    view._autosize = 0; // width value changed: update signal, skip resize op\n\n    if (view.width() !== width) {\n      rerun = 1;\n      view.signal(Width, width, Skip); // set width, skip update calc\n\n      view._resizeWidth.skip(true); // skip width resize handler\n\n    } // height value changed: update signal, skip resize op\n\n\n    if (view.height() !== height) {\n      rerun = 1;\n      view.signal(Height, height, Skip); // set height, skip update calc\n\n      view._resizeHeight.skip(true); // skip height resize handler\n\n    } // view width changed: update view property, set resize flag\n\n\n    if (view._viewWidth !== viewWidth) {\n      view._resize = 1;\n      view._viewWidth = viewWidth;\n    } // view height changed: update view property, set resize flag\n\n\n    if (view._viewHeight !== viewHeight) {\n      view._resize = 1;\n      view._viewHeight = viewHeight;\n    } // origin changed: update view property, set resize flag\n\n\n    if (view._origin[0] !== origin[0] || view._origin[1] !== origin[1]) {\n      view._resize = 1;\n      view._origin = origin;\n    } // run dataflow on width/height signal change\n\n\n    if (rerun) view.run('enter');\n    if (auto) view.runAfter(v => v.resize());\n  }, false, 1);\n}\n\n/**\n * Get the current view state, consisting of signal values and/or data sets.\n * @param {object} [options] - Options flags indicating which state to export.\n *   If unspecified, all signals and data sets will be exported.\n * @param {function(string, Operator):boolean} [options.signals] - Optional\n *   predicate function for testing if a signal should be included in the\n *   exported state. If unspecified, all signals will be included, except for\n *   those named 'parent' or those which refer to a Transform value.\n * @param {function(string, object):boolean} [options.data] - Optional\n *   predicate function for testing if a data set's input should be included\n *   in the exported state. If unspecified, all data sets that have been\n *   explicitly modified will be included.\n * @param {boolean} [options.recurse=true] - Flag indicating if the exported\n *   state should recursively include state from group mark sub-contexts.\n * @return {object} - An object containing the exported state values.\n */\n\nfunction getState(options) {\n  return this._runtime.getState(options || {\n    data: dataTest,\n    signals: signalTest,\n    recurse: true\n  });\n}\n\nfunction dataTest(name, data) {\n  return data.modified && Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(data.input.value) && name.indexOf('_:vega:_');\n}\n\nfunction signalTest(name, op) {\n  return !(name === 'parent' || op instanceof vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"transforms\"].proxy);\n}\n/**\n * Sets the current view state and updates the view by invoking run.\n * @param {object} state - A state object containing signal and/or\n *   data set values, following the format used by the getState method.\n * @return {View} - This view instance.\n */\n\n\nfunction setState(state) {\n  this.runAsync(null, v => {\n    v._trigger = false;\n\n    v._runtime.setState(state);\n  }, v => {\n    v._trigger = true;\n  });\n  return this;\n}\n\nfunction timer (callback, delay) {\n  function tick(elapsed) {\n    callback({\n      timestamp: Date.now(),\n      elapsed: elapsed\n    });\n  }\n\n  this._timers.push(Object(d3_timer__WEBPACK_IMPORTED_MODULE_6__[\"interval\"])(tick, delay));\n}\n\nfunction defaultTooltip (handler, event, item, value) {\n  const el = handler.element();\n  if (el) el.setAttribute('title', formatTooltip(value));\n}\n\nfunction formatTooltip(value) {\n  return value == null ? '' : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) ? formatArray(value) : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"])(value) ? formatObject(value) : value + '';\n}\n\nfunction formatObject(obj) {\n  return Object.keys(obj).map(key => {\n    const v = obj[key];\n    return key + ': ' + (Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(v) ? formatArray(v) : formatValue(v));\n  }).join('\\n');\n}\n\nfunction formatArray(value) {\n  return '[' + value.map(formatValue).join(', ') + ']';\n}\n\nfunction formatValue(value) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"])(value) ? '[\\u2026]' : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"])(value) && !Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"])(value) ? '{\\u2026}' : value;\n}\n\n/**\n * Create a new View instance from a Vega dataflow runtime specification.\n * The generated View will not immediately be ready for display. Callers\n * should also invoke the initialize method (e.g., to set the parent\n * DOM element in browser-based deployment) and then invoke the run\n * method to evaluate the dataflow graph. Rendering will automatically\n * be performed upon dataflow runs.\n * @constructor\n * @param {object} spec - The Vega dataflow runtime specification.\n */\n\nfunction View(spec, options) {\n  const view = this;\n  options = options || {};\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Dataflow\"].call(view);\n  if (options.loader) view.loader(options.loader);\n  if (options.logger) view.logger(options.logger);\n  if (options.logLevel != null) view.logLevel(options.logLevel);\n\n  if (options.locale || spec.locale) {\n    const loc = Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, spec.locale, options.locale);\n    view.locale(Object(vega_format__WEBPACK_IMPORTED_MODULE_7__[\"locale\"])(loc.number, loc.time));\n  }\n\n  view._el = null;\n  view._elBind = null;\n  view._renderType = options.renderer || vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"RenderType\"].Canvas;\n  view._scenegraph = new vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"Scenegraph\"]();\n  const root = view._scenegraph.root; // initialize renderer, handler and event management\n\n  view._renderer = null;\n  view._tooltip = options.tooltip || defaultTooltip, view._redraw = true;\n  view._handler = new vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"CanvasHandler\"]().scene(root);\n  view._globalCursor = false;\n  view._preventDefault = false;\n  view._timers = [];\n  view._eventListeners = [];\n  view._resizeListeners = []; // initialize event configuration\n\n  view._eventConfig = initializeEventConfig(spec.eventConfig);\n  view.globalCursor(view._eventConfig.globalCursor); // initialize dataflow graph\n\n  const ctx = runtime(view, spec, options.expr);\n  view._runtime = ctx;\n  view._signals = ctx.signals;\n  view._bind = (spec.bindings || []).map(_ => ({\n    state: null,\n    param: Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])({}, _)\n  })); // initialize scenegraph\n\n  if (ctx.root) ctx.root.set(root);\n  root.source = ctx.data.root.input;\n  view.pulse(ctx.data.root.input, view.changeset().insert(root.items)); // initialize view size\n\n  view._width = view.width();\n  view._height = view.height();\n  view._viewWidth = viewWidth(view, view._width);\n  view._viewHeight = viewHeight(view, view._height);\n  view._origin = [0, 0];\n  view._resize = 0;\n  view._autosize = 1;\n  initializeResize(view); // initialize background color\n\n  background(view); // initialize cursor\n\n  cursor(view); // initialize view description\n\n  view.description(spec.description); // initialize hover proessing, if requested\n\n  if (options.hover) view.hover(); // initialize DOM container(s) and renderer\n\n  if (options.container) view.initialize(options.container, options.bind);\n}\n\nfunction lookupSignal(view, name) {\n  return Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"])(view._signals, name) ? view._signals[name] : Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized signal name: ' + Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"])(name));\n}\n\nfunction findOperatorHandler(op, handler) {\n  const h = (op._targets || []).filter(op => op._update && op._update.handler === handler);\n  return h.length ? h[0] : null;\n}\n\nfunction addOperatorListener(view, name, op, handler) {\n  let h = findOperatorHandler(op, handler);\n\n  if (!h) {\n    h = trap(view, () => handler(name, op.value));\n    h.handler = handler;\n    view.on(op, null, h);\n  }\n\n  return view;\n}\n\nfunction removeOperatorListener(view, op, handler) {\n  const h = findOperatorHandler(op, handler);\n  if (h) op._targets.remove(h);\n  return view;\n}\n\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"])(View, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Dataflow\"], {\n  // -- DATAFLOW / RENDERING ----\n  async evaluate(encode, prerun, postrun) {\n    // evaluate dataflow and prerun\n    await vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Dataflow\"].prototype.evaluate.call(this, encode, prerun); // render as needed\n\n    if (this._redraw || this._resize) {\n      try {\n        if (this._renderer) {\n          if (this._resize) {\n            this._resize = 0;\n            resizeRenderer(this);\n          }\n\n          await this._renderer.renderAsync(this._scenegraph.root);\n        }\n\n        this._redraw = false;\n      } catch (e) {\n        this.error(e);\n      }\n    } // evaluate postrun\n\n\n    if (postrun) Object(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"asyncCallback\"])(this, postrun);\n    return this;\n  },\n\n  dirty(item) {\n    this._redraw = true;\n    this._renderer && this._renderer.dirty(item);\n  },\n\n  // -- GET / SET ----\n  description(text) {\n    if (arguments.length) {\n      const desc = text != null ? text + '' : null;\n      if (desc !== this._desc) ariaLabel(this._el, this._desc = desc);\n      return this;\n    }\n\n    return this._desc;\n  },\n\n  container() {\n    return this._el;\n  },\n\n  scenegraph() {\n    return this._scenegraph;\n  },\n\n  origin() {\n    return this._origin.slice();\n  },\n\n  signal(name, value, options) {\n    const op = lookupSignal(this, name);\n    return arguments.length === 1 ? op.value : this.update(op, value, options);\n  },\n\n  width(_) {\n    return arguments.length ? this.signal('width', _) : this.signal('width');\n  },\n\n  height(_) {\n    return arguments.length ? this.signal('height', _) : this.signal('height');\n  },\n\n  padding(_) {\n    return arguments.length ? this.signal('padding', padding(_)) : padding(this.signal('padding'));\n  },\n\n  autosize(_) {\n    return arguments.length ? this.signal('autosize', _) : this.signal('autosize');\n  },\n\n  background(_) {\n    return arguments.length ? this.signal('background', _) : this.signal('background');\n  },\n\n  renderer(type) {\n    if (!arguments.length) return this._renderType;\n    if (!Object(vega_scenegraph__WEBPACK_IMPORTED_MODULE_2__[\"renderModule\"])(type)) Object(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"])('Unrecognized renderer type: ' + type);\n\n    if (type !== this._renderType) {\n      this._renderType = type;\n\n      this._resetRenderer();\n    }\n\n    return this;\n  },\n\n  tooltip(handler) {\n    if (!arguments.length) return this._tooltip;\n\n    if (handler !== this._tooltip) {\n      this._tooltip = handler;\n\n      this._resetRenderer();\n    }\n\n    return this;\n  },\n\n  loader(loader) {\n    if (!arguments.length) return this._loader;\n\n    if (loader !== this._loader) {\n      vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Dataflow\"].prototype.loader.call(this, loader);\n\n      this._resetRenderer();\n    }\n\n    return this;\n  },\n\n  resize() {\n    // set flag to perform autosize\n    this._autosize = 1; // touch autosize signal to ensure top-level ViewLayout runs\n\n    return this.touch(lookupSignal(this, 'autosize'));\n  },\n\n  _resetRenderer() {\n    if (this._renderer) {\n      this._renderer = null;\n      this.initialize(this._el, this._elBind);\n    }\n  },\n\n  // -- SIZING ----\n  _resizeView: resizeView,\n\n  // -- EVENT HANDLING ----\n  addEventListener(type, handler, options) {\n    let callback = handler;\n\n    if (!(options && options.trap === false)) {\n      // wrap callback in error handler\n      callback = trap(this, handler);\n      callback.raw = handler;\n    }\n\n    this._handler.on(type, callback);\n\n    return this;\n  },\n\n  removeEventListener(type, handler) {\n    var handlers = this._handler.handlers(type),\n        i = handlers.length,\n        h,\n        t; // search registered handlers, remove if match found\n\n\n    while (--i >= 0) {\n      t = handlers[i].type;\n      h = handlers[i].handler;\n\n      if (type === t && (handler === h || handler === h.raw)) {\n        this._handler.off(t, h);\n\n        break;\n      }\n    }\n\n    return this;\n  },\n\n  addResizeListener(handler) {\n    const l = this._resizeListeners;\n\n    if (l.indexOf(handler) < 0) {\n      // add handler if it isn't already registered\n      // note: error trapping handled elsewhere, so\n      // no need to wrap handlers here\n      l.push(handler);\n    }\n\n    return this;\n  },\n\n  removeResizeListener(handler) {\n    var l = this._resizeListeners,\n        i = l.indexOf(handler);\n\n    if (i >= 0) {\n      l.splice(i, 1);\n    }\n\n    return this;\n  },\n\n  addSignalListener(name, handler) {\n    return addOperatorListener(this, name, lookupSignal(this, name), handler);\n  },\n\n  removeSignalListener(name, handler) {\n    return removeOperatorListener(this, lookupSignal(this, name), handler);\n  },\n\n  addDataListener(name, handler) {\n    return addOperatorListener(this, name, dataref(this, name).values, handler);\n  },\n\n  removeDataListener(name, handler) {\n    return removeOperatorListener(this, dataref(this, name).values, handler);\n  },\n\n  globalCursor(_) {\n    if (arguments.length) {\n      if (this._globalCursor !== !!_) {\n        const prev = setCursor(this, null); // clear previous cursor\n\n        this._globalCursor = !!_;\n        if (prev) setCursor(this, prev); // swap cursor\n      }\n\n      return this;\n    } else {\n      return this._globalCursor;\n    }\n  },\n\n  preventDefault(_) {\n    if (arguments.length) {\n      this._preventDefault = _;\n      return this;\n    } else {\n      return this._preventDefault;\n    }\n  },\n\n  timer,\n  events,\n  finalize,\n  hover,\n  // -- DATA ----\n  data,\n  change,\n  insert,\n  remove,\n  // -- SCALES --\n  scale,\n  // -- INITIALIZATION ----\n  initialize,\n  // -- HEADLESS RENDERING ----\n  toImageURL: renderToImageURL,\n  toCanvas: renderToCanvas,\n  toSVG: renderToSVG,\n  // -- SAVE / RESTORE STATE ----\n  getState,\n  setState\n});\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-view/build/vega-view.module.js?");

/***/ }),

/***/ "./node_modules/vega-voronoi/build/vega-voronoi.module.js":
/*!****************************************************************!*\
  !*** ./node_modules/vega-voronoi/build/vega-voronoi.module.js ***!
  \****************************************************************/
/*! exports provided: voronoi */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"voronoi\", function() { return Voronoi; });\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var d3_delaunay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-delaunay */ \"./node_modules/d3-delaunay/src/index.js\");\n\n\n\n\nfunction Voronoi(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"].call(this, null, params);\n}\nVoronoi.Definition = {\n  'type': 'Voronoi',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'x',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'y',\n    'type': 'field',\n    'required': true\n  }, {\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'extent',\n    'type': 'array',\n    'array': true,\n    'length': 2,\n    'default': [[-1e5, -1e5], [1e5, 1e5]],\n    'content': {\n      'type': 'number',\n      'array': true,\n      'length': 2\n    }\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'default': 'path'\n  }]\n};\nconst defaultExtent = [-1e5, -1e5, 1e5, 1e5];\nObject(vega_util__WEBPACK_IMPORTED_MODULE_1__[\"inherits\"])(Voronoi, vega_dataflow__WEBPACK_IMPORTED_MODULE_0__[\"Transform\"], {\n  transform(_, pulse) {\n    const as = _.as || 'path',\n          data = pulse.source; // nothing to do if no data\n\n    if (!data || !data.length) return pulse; // configure and construct voronoi diagram\n\n    let s = _.size;\n    s = s ? [0, 0, s[0], s[1]] : (s = _.extent) ? [s[0][0], s[0][1], s[1][0], s[1][1]] : defaultExtent;\n    const voronoi = this.value = d3_delaunay__WEBPACK_IMPORTED_MODULE_2__[\"Delaunay\"].from(data, _.x, _.y).voronoi(s); // map polygons to paths\n\n    for (let i = 0, n = data.length; i < n; ++i) {\n      const polygon = voronoi.cellPolygon(i);\n      data[i][as] = polygon ? toPathString(polygon) : null;\n    }\n\n    return pulse.reflow(_.modified()).modifies(as);\n  }\n\n}); // suppress duplicated end point vertices\n\nfunction toPathString(p) {\n  const x = p[0][0],\n        y = p[0][1];\n  let n = p.length - 1;\n\n  for (; p[n][0] === x && p[n][1] === y; --n);\n\n  return 'M' + p.slice(0, n + 1).join('L') + 'Z';\n}\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-voronoi/build/vega-voronoi.module.js?");

/***/ }),

/***/ "./node_modules/vega-wordcloud/build/vega-wordcloud.module.js":
/*!********************************************************************!*\
  !*** ./node_modules/vega-wordcloud/build/vega-wordcloud.module.js ***!
  \********************************************************************/
/*! exports provided: wordcloud */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"wordcloud\", function() { return Wordcloud; });\n/* harmony import */ var vega_canvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-canvas */ \"./node_modules/vega-canvas/index.browser.js\");\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony import */ var vega_scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-scale */ \"./node_modules/vega-scale/build/vega-scale.module.js\");\n/* harmony import */ var vega_statistics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-statistics */ \"./node_modules/vega-statistics/build/vega-statistics.module.js\");\n\n\n\n\n\n\n/*\nCopyright (c) 2013, Jason Davies.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n  * Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n  * Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\n  * The name Jason Davies may not be used to endorse or promote products\n    derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL JASON DAVIES BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\nOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n// Word cloud layout by Jason Davies, https://www.jasondavies.com/wordcloud/\n// Algorithm due to Jonathan Feinberg, http://static.mrfeinberg.com/bv_ch03.pdf\n\nvar cloudRadians = Math.PI / 180,\n    cw = 1 << 11 >> 5,\n    ch = 1 << 11;\nfunction cloud () {\n  var size = [256, 256],\n      text,\n      font,\n      fontSize,\n      fontStyle,\n      fontWeight,\n      rotate,\n      padding,\n      spiral = archimedeanSpiral,\n      words = [],\n      random = Math.random,\n      cloud = {};\n\n  cloud.layout = function () {\n    var contextAndRatio = getContext(Object(vega_canvas__WEBPACK_IMPORTED_MODULE_0__[\"canvas\"])()),\n        board = zeroArray((size[0] >> 5) * size[1]),\n        bounds = null,\n        n = words.length,\n        i = -1,\n        tags = [],\n        data = words.map(d => ({\n      text: text(d),\n      font: font(d),\n      style: fontStyle(d),\n      weight: fontWeight(d),\n      rotate: rotate(d),\n      size: ~~(fontSize(d) + 1e-14),\n      padding: padding(d),\n      xoff: 0,\n      yoff: 0,\n      x1: 0,\n      y1: 0,\n      x0: 0,\n      y0: 0,\n      hasText: false,\n      sprite: null,\n      datum: d\n    })).sort((a, b) => b.size - a.size);\n\n    while (++i < n) {\n      var d = data[i];\n      d.x = size[0] * (random() + .5) >> 1;\n      d.y = size[1] * (random() + .5) >> 1;\n      cloudSprite(contextAndRatio, d, data, i);\n\n      if (d.hasText && place(board, d, bounds)) {\n        tags.push(d);\n        if (bounds) cloudBounds(bounds, d);else bounds = [{\n          x: d.x + d.x0,\n          y: d.y + d.y0\n        }, {\n          x: d.x + d.x1,\n          y: d.y + d.y1\n        }]; // Temporary hack\n\n        d.x -= size[0] >> 1;\n        d.y -= size[1] >> 1;\n      }\n    }\n\n    return tags;\n  };\n\n  function getContext(canvas) {\n    canvas.width = canvas.height = 1;\n    var ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2);\n    canvas.width = (cw << 5) / ratio;\n    canvas.height = ch / ratio;\n    var context = canvas.getContext('2d');\n    context.fillStyle = context.strokeStyle = 'red';\n    context.textAlign = 'center';\n    return {\n      context: context,\n      ratio: ratio\n    };\n  }\n\n  function place(board, tag, bounds) {\n    var startX = tag.x,\n        startY = tag.y,\n        maxDelta = Math.sqrt(size[0] * size[0] + size[1] * size[1]),\n        s = spiral(size),\n        dt = random() < .5 ? 1 : -1,\n        t = -dt,\n        dxdy,\n        dx,\n        dy;\n\n    while (dxdy = s(t += dt)) {\n      dx = ~~dxdy[0];\n      dy = ~~dxdy[1];\n      if (Math.min(Math.abs(dx), Math.abs(dy)) >= maxDelta) break;\n      tag.x = startX + dx;\n      tag.y = startY + dy;\n      if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 || tag.x + tag.x1 > size[0] || tag.y + tag.y1 > size[1]) continue; // TODO only check for collisions within current bounds.\n\n      if (!bounds || !cloudCollide(tag, board, size[0])) {\n        if (!bounds || collideRects(tag, bounds)) {\n          var sprite = tag.sprite,\n              w = tag.width >> 5,\n              sw = size[0] >> 5,\n              lx = tag.x - (w << 4),\n              sx = lx & 0x7f,\n              msx = 32 - sx,\n              h = tag.y1 - tag.y0,\n              x = (tag.y + tag.y0) * sw + (lx >> 5),\n              last;\n\n          for (var j = 0; j < h; j++) {\n            last = 0;\n\n            for (var i = 0; i <= w; i++) {\n              board[x + i] |= last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0);\n            }\n\n            x += sw;\n          }\n\n          tag.sprite = null;\n          return true;\n        }\n      }\n    }\n\n    return false;\n  }\n\n  cloud.words = function (_) {\n    if (arguments.length) {\n      words = _;\n      return cloud;\n    } else {\n      return words;\n    }\n  };\n\n  cloud.size = function (_) {\n    if (arguments.length) {\n      size = [+_[0], +_[1]];\n      return cloud;\n    } else {\n      return size;\n    }\n  };\n\n  cloud.font = function (_) {\n    if (arguments.length) {\n      font = functor(_);\n      return cloud;\n    } else {\n      return font;\n    }\n  };\n\n  cloud.fontStyle = function (_) {\n    if (arguments.length) {\n      fontStyle = functor(_);\n      return cloud;\n    } else {\n      return fontStyle;\n    }\n  };\n\n  cloud.fontWeight = function (_) {\n    if (arguments.length) {\n      fontWeight = functor(_);\n      return cloud;\n    } else {\n      return fontWeight;\n    }\n  };\n\n  cloud.rotate = function (_) {\n    if (arguments.length) {\n      rotate = functor(_);\n      return cloud;\n    } else {\n      return rotate;\n    }\n  };\n\n  cloud.text = function (_) {\n    if (arguments.length) {\n      text = functor(_);\n      return cloud;\n    } else {\n      return text;\n    }\n  };\n\n  cloud.spiral = function (_) {\n    if (arguments.length) {\n      spiral = spirals[_] || _;\n      return cloud;\n    } else {\n      return spiral;\n    }\n  };\n\n  cloud.fontSize = function (_) {\n    if (arguments.length) {\n      fontSize = functor(_);\n      return cloud;\n    } else {\n      return fontSize;\n    }\n  };\n\n  cloud.padding = function (_) {\n    if (arguments.length) {\n      padding = functor(_);\n      return cloud;\n    } else {\n      return padding;\n    }\n  };\n\n  cloud.random = function (_) {\n    if (arguments.length) {\n      random = _;\n      return cloud;\n    } else {\n      return random;\n    }\n  };\n\n  return cloud;\n} // Fetches a monochrome sprite bitmap for the specified text.\n// Load in batches for speed.\n\nfunction cloudSprite(contextAndRatio, d, data, di) {\n  if (d.sprite) return;\n  var c = contextAndRatio.context,\n      ratio = contextAndRatio.ratio;\n  c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio);\n  var x = 0,\n      y = 0,\n      maxh = 0,\n      n = data.length,\n      w,\n      w32,\n      h,\n      i,\n      j;\n  --di;\n\n  while (++di < n) {\n    d = data[di];\n    c.save();\n    c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font;\n    w = c.measureText(d.text + 'm').width * ratio;\n    h = d.size << 1;\n\n    if (d.rotate) {\n      var sr = Math.sin(d.rotate * cloudRadians),\n          cr = Math.cos(d.rotate * cloudRadians),\n          wcr = w * cr,\n          wsr = w * sr,\n          hcr = h * cr,\n          hsr = h * sr;\n      w = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 0x1f >> 5 << 5;\n      h = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr));\n    } else {\n      w = w + 0x1f >> 5 << 5;\n    }\n\n    if (h > maxh) maxh = h;\n\n    if (x + w >= cw << 5) {\n      x = 0;\n      y += maxh;\n      maxh = 0;\n    }\n\n    if (y + h >= ch) break;\n    c.translate((x + (w >> 1)) / ratio, (y + (h >> 1)) / ratio);\n    if (d.rotate) c.rotate(d.rotate * cloudRadians);\n    c.fillText(d.text, 0, 0);\n\n    if (d.padding) {\n      c.lineWidth = 2 * d.padding;\n      c.strokeText(d.text, 0, 0);\n    }\n\n    c.restore();\n    d.width = w;\n    d.height = h;\n    d.xoff = x;\n    d.yoff = y;\n    d.x1 = w >> 1;\n    d.y1 = h >> 1;\n    d.x0 = -d.x1;\n    d.y0 = -d.y1;\n    d.hasText = true;\n    x += w;\n  }\n\n  var pixels = c.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data,\n      sprite = [];\n\n  while (--di >= 0) {\n    d = data[di];\n    if (!d.hasText) continue;\n    w = d.width;\n    w32 = w >> 5;\n    h = d.y1 - d.y0; // Zero the buffer\n\n    for (i = 0; i < h * w32; i++) sprite[i] = 0;\n\n    x = d.xoff;\n    if (x == null) return;\n    y = d.yoff;\n    var seen = 0,\n        seenRow = -1;\n\n    for (j = 0; j < h; j++) {\n      for (i = 0; i < w; i++) {\n        var k = w32 * j + (i >> 5),\n            m = pixels[(y + j) * (cw << 5) + (x + i) << 2] ? 1 << 31 - i % 32 : 0;\n        sprite[k] |= m;\n        seen |= m;\n      }\n\n      if (seen) seenRow = j;else {\n        d.y0++;\n        h--;\n        j--;\n        y++;\n      }\n    }\n\n    d.y1 = d.y0 + seenRow;\n    d.sprite = sprite.slice(0, (d.y1 - d.y0) * w32);\n  }\n} // Use mask-based collision detection.\n\n\nfunction cloudCollide(tag, board, sw) {\n  sw >>= 5;\n  var sprite = tag.sprite,\n      w = tag.width >> 5,\n      lx = tag.x - (w << 4),\n      sx = lx & 0x7f,\n      msx = 32 - sx,\n      h = tag.y1 - tag.y0,\n      x = (tag.y + tag.y0) * sw + (lx >> 5),\n      last;\n\n  for (var j = 0; j < h; j++) {\n    last = 0;\n\n    for (var i = 0; i <= w; i++) {\n      if ((last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0)) & board[x + i]) return true;\n    }\n\n    x += sw;\n  }\n\n  return false;\n}\n\nfunction cloudBounds(bounds, d) {\n  var b0 = bounds[0],\n      b1 = bounds[1];\n  if (d.x + d.x0 < b0.x) b0.x = d.x + d.x0;\n  if (d.y + d.y0 < b0.y) b0.y = d.y + d.y0;\n  if (d.x + d.x1 > b1.x) b1.x = d.x + d.x1;\n  if (d.y + d.y1 > b1.y) b1.y = d.y + d.y1;\n}\n\nfunction collideRects(a, b) {\n  return a.x + a.x1 > b[0].x && a.x + a.x0 < b[1].x && a.y + a.y1 > b[0].y && a.y + a.y0 < b[1].y;\n}\n\nfunction archimedeanSpiral(size) {\n  var e = size[0] / size[1];\n  return function (t) {\n    return [e * (t *= .1) * Math.cos(t), t * Math.sin(t)];\n  };\n}\n\nfunction rectangularSpiral(size) {\n  var dy = 4,\n      dx = dy * size[0] / size[1],\n      x = 0,\n      y = 0;\n  return function (t) {\n    var sign = t < 0 ? -1 : 1; // See triangular numbers: T_n = n * (n + 1) / 2.\n\n    switch (Math.sqrt(1 + 4 * sign * t) - sign & 3) {\n      case 0:\n        x += dx;\n        break;\n\n      case 1:\n        y += dy;\n        break;\n\n      case 2:\n        x -= dx;\n        break;\n\n      default:\n        y -= dy;\n        break;\n    }\n\n    return [x, y];\n  };\n} // TODO reuse arrays?\n\n\nfunction zeroArray(n) {\n  var a = [],\n      i = -1;\n\n  while (++i < n) a[i] = 0;\n\n  return a;\n}\n\nfunction functor(d) {\n  return typeof d === 'function' ? d : function () {\n    return d;\n  };\n}\n\nvar spirals = {\n  archimedean: archimedeanSpiral,\n  rectangular: rectangularSpiral\n};\n\nconst Output = ['x', 'y', 'font', 'fontSize', 'fontStyle', 'fontWeight', 'angle'];\nconst Params = ['text', 'font', 'rotate', 'fontSize', 'fontStyle', 'fontWeight'];\nfunction Wordcloud(params) {\n  vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"].call(this, cloud(), params);\n}\nWordcloud.Definition = {\n  'type': 'Wordcloud',\n  'metadata': {\n    'modifies': true\n  },\n  'params': [{\n    'name': 'size',\n    'type': 'number',\n    'array': true,\n    'length': 2\n  }, {\n    'name': 'font',\n    'type': 'string',\n    'expr': true,\n    'default': 'sans-serif'\n  }, {\n    'name': 'fontStyle',\n    'type': 'string',\n    'expr': true,\n    'default': 'normal'\n  }, {\n    'name': 'fontWeight',\n    'type': 'string',\n    'expr': true,\n    'default': 'normal'\n  }, {\n    'name': 'fontSize',\n    'type': 'number',\n    'expr': true,\n    'default': 14\n  }, {\n    'name': 'fontSizeRange',\n    'type': 'number',\n    'array': 'nullable',\n    'default': [10, 50]\n  }, {\n    'name': 'rotate',\n    'type': 'number',\n    'expr': true,\n    'default': 0\n  }, {\n    'name': 'text',\n    'type': 'field'\n  }, {\n    'name': 'spiral',\n    'type': 'string',\n    'values': ['archimedean', 'rectangular']\n  }, {\n    'name': 'padding',\n    'type': 'number',\n    'expr': true\n  }, {\n    'name': 'as',\n    'type': 'string',\n    'array': true,\n    'length': 7,\n    'default': Output\n  }]\n};\nObject(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"inherits\"])(Wordcloud, vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"], {\n  transform(_, pulse) {\n    if (_.size && !(_.size[0] && _.size[1])) {\n      Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"error\"])('Wordcloud size dimensions must be non-zero.');\n    }\n\n    function modp(param) {\n      const p = _[param];\n      return Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(p) && pulse.modified(p.fields);\n    }\n\n    const mod = _.modified();\n\n    if (!(mod || pulse.changed(pulse.ADD_REM) || Params.some(modp))) return;\n    const data = pulse.materialize(pulse.SOURCE).source,\n          layout = this.value,\n          as = _.as || Output;\n    let fontSize = _.fontSize || 14,\n        range;\n    Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"isFunction\"])(fontSize) ? range = _.fontSizeRange : fontSize = Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"constant\"])(fontSize); // create font size scaling function as needed\n\n    if (range) {\n      const fsize = fontSize,\n            sizeScale = Object(vega_scale__WEBPACK_IMPORTED_MODULE_3__[\"scale\"])('sqrt')().domain(Object(vega_util__WEBPACK_IMPORTED_MODULE_2__[\"extent\"])(data, fsize)).range(range);\n\n      fontSize = x => sizeScale(fsize(x));\n    }\n\n    data.forEach(t => {\n      t[as[0]] = NaN;\n      t[as[1]] = NaN;\n      t[as[3]] = 0;\n    }); // configure layout\n\n    const words = layout.words(data).text(_.text).size(_.size || [500, 500]).padding(_.padding || 1).spiral(_.spiral || 'archimedean').rotate(_.rotate || 0).font(_.font || 'sans-serif').fontStyle(_.fontStyle || 'normal').fontWeight(_.fontWeight || 'normal').fontSize(fontSize).random(vega_statistics__WEBPACK_IMPORTED_MODULE_4__[\"random\"]).layout();\n    const size = layout.size(),\n          dx = size[0] >> 1,\n          dy = size[1] >> 1,\n          n = words.length;\n\n    for (let i = 0, w, t; i < n; ++i) {\n      w = words[i];\n      t = w.datum;\n      t[as[0]] = w.x + dx;\n      t[as[1]] = w.y + dy;\n      t[as[2]] = w.font;\n      t[as[3]] = w.size;\n      t[as[4]] = w.style;\n      t[as[5]] = w.weight;\n      t[as[6]] = w.rotate;\n    }\n\n    return pulse.reflow(mod).modifies(as);\n  }\n\n});\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega-wordcloud/build/vega-wordcloud.module.js?");

/***/ }),

/***/ "./node_modules/vega/build/vega.module.js":
/*!************************************************!*\
  !*** ./node_modules/vega/build/vega.module.js ***!
  \************************************************/
/*! exports provided: Debug, Error, Info, None, Warn, accessor, accessorFields, accessorName, array, ascending, clampRange, compare, constant, debounce, error, extend, extent, extentIndex, falsy, fastmap, field, flush, hasOwnProperty, id, identity, inherits, inrange, isArray, isBoolean, isDate, isFunction, isIterable, isNumber, isObject, isRegExp, isString, key, lerp, logger, lruCache, merge, mergeConfig, one, pad, panLinear, panLog, panPow, panSymlog, peek, quarter, repeat, span, splitAccessPath, stringValue, toBoolean, toDate, toNumber, toSet, toString, truncate, truthy, utcquarter, visitArray, writeConfig, zero, zoomLinear, zoomLog, zoomPow, zoomSymlog, Dataflow, EventStream, MultiPulse, Operator, Parameters, Pulse, Transform, changeset, definition, ingest, isTuple, transform, transforms, tupleid, bandwidthNRD, bin, bootstrapCI, cumulativeLogNormal, cumulativeNormal, cumulativeUniform, densityLogNormal, densityNormal, densityUniform, dotbin, quantileLogNormal, quantileNormal, quantileUniform, quantiles, quartiles, random, randomInteger, randomKDE, randomLCG, randomLogNormal, randomMixture, randomNormal, randomUniform, regressionExp, regressionLinear, regressionLoess, regressionLog, regressionPoly, regressionPow, regressionQuad, sampleCurve, sampleLogNormal, sampleNormal, sampleUniform, setRandom, DATE, DAY, DAYOFYEAR, HOURS, MILLISECONDS, MINUTES, MONTH, QUARTER, SECONDS, TIME_UNITS, WEEK, YEAR, dayofyear, timeBin, timeFloor, timeInterval, timeOffset, timeSequence, timeUnitSpecifier, timeUnits, utcFloor, utcInterval, utcOffset, utcSequence, utcdayofyear, utcweek, week, loader, read, inferType, inferTypes, typeParsers, format, formats, responseType, Bounds, CanvasHandler, CanvasRenderer, Gradient, GroupItem, Handler, Item, Marks, RenderType, Renderer, ResourceLoader, SVGHandler, SVGRenderer, SVGStringRenderer, Scenegraph, boundClip, boundContext, boundItem, boundMark, boundStroke, domChild, domClear, domCreate, domFind, font, fontFamily, fontSize, intersect, intersectBoxLine, intersectPath, intersectPoint, intersectRule, lineHeight, markup, multiLineOffset, pathCurves, pathEqual, pathParse, pathRectangle, pathRender, pathSymbols, pathTrail, point, renderModule, resetSVGClipId, resetSVGDefIds, sceneEqual, sceneFromJSON, scenePickVisit, sceneToJSON, sceneVisit, sceneZOrder, serializeXML, textMetrics, interpolate, interpolateColors, interpolateRange, quantizeInterpolator, scale, scheme, projection, View, defaultLocale, formatLocale, locale, resetDefaultLocale, timeFormatLocale, expressionFunction, parse, runtimeContext, version */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/* harmony import */ var vega_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vega-util */ \"./node_modules/vega-util/build/vega-util.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Debug\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Debug\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Error\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Error\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Info\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Info\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"None\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"None\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Warn\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"Warn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"accessor\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"accessorFields\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorFields\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"accessorName\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"accessorName\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"array\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"array\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ascending\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"ascending\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clampRange\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"clampRange\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compare\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"compare\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"constant\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"constant\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"debounce\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"error\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"error\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extend\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extent\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extent\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"extentIndex\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extentIndex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"falsy\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"falsy\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fastmap\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"fastmap\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"field\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"field\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flush\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"flush\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"hasOwnProperty\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"hasOwnProperty\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"id\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"id\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"identity\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"identity\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inherits\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inherits\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inrange\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"inrange\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isBoolean\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isBoolean\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isDate\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isDate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isFunction\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isIterable\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isIterable\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isNumber\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isObject\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isRegExp\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isRegExp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"isString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"key\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"key\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lerp\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"lerp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logger\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"logger\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lruCache\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"lruCache\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"merge\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeConfig\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"mergeConfig\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"one\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"one\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pad\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"pad\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"panLinear\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panLinear\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"panLog\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panLog\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"panPow\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panPow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"panSymlog\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"panSymlog\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"peek\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"peek\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quarter\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"quarter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"repeat\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"repeat\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"span\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"span\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"splitAccessPath\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"splitAccessPath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"stringValue\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"stringValue\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toBoolean\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toBoolean\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toDate\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toDate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toNumber\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toNumber\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toSet\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toSet\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"toString\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"toString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truncate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truthy\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"truthy\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcquarter\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"utcquarter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"visitArray\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"visitArray\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"writeConfig\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"writeConfig\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zero\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zero\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zoomLinear\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomLinear\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zoomLog\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomLog\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zoomPow\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomPow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"zoomSymlog\", function() { return vega_util__WEBPACK_IMPORTED_MODULE_0__[\"zoomSymlog\"]; });\n\n/* harmony import */ var vega_dataflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vega-dataflow */ \"./node_modules/vega-dataflow/build/vega-dataflow.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Dataflow\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Dataflow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EventStream\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"EventStream\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MultiPulse\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"MultiPulse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Operator\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Operator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Parameters\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Parameters\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Pulse\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Pulse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Transform\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"Transform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"changeset\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"changeset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"definition\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"definition\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ingest\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"ingest\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isTuple\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"isTuple\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transform\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"transform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"transforms\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"transforms\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"tupleid\", function() { return vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"tupleid\"]; });\n\n/* harmony import */ var vega_transforms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vega-transforms */ \"./node_modules/vega-transforms/build/vega-transforms.module.js\");\n/* harmony import */ var vega_view_transforms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vega-view-transforms */ \"./node_modules/vega-view-transforms/build/vega-view-transforms.module.js\");\n/* harmony import */ var vega_encode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vega-encode */ \"./node_modules/vega-encode/build/vega-encode.module.js\");\n/* harmony import */ var vega_geo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vega-geo */ \"./node_modules/vega-geo/build/vega-geo.module.js\");\n/* harmony import */ var vega_force__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vega-force */ \"./node_modules/vega-force/build/vega-force.module.js\");\n/* harmony import */ var vega_hierarchy__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vega-hierarchy */ \"./node_modules/vega-hierarchy/build/vega-hierarchy.module.js\");\n/* harmony import */ var vega_label__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vega-label */ \"./node_modules/vega-label/build/vega-label.module.js\");\n/* harmony import */ var vega_regression__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vega-regression */ \"./node_modules/vega-regression/build/vega-regression.module.js\");\n/* harmony import */ var vega_voronoi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vega-voronoi */ \"./node_modules/vega-voronoi/build/vega-voronoi.module.js\");\n/* harmony import */ var vega_wordcloud__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vega-wordcloud */ \"./node_modules/vega-wordcloud/build/vega-wordcloud.module.js\");\n/* harmony import */ var vega_crossfilter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vega-crossfilter */ \"./node_modules/vega-crossfilter/build/vega-crossfilter.module.js\");\n/* harmony import */ var vega_statistics__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! vega-statistics */ \"./node_modules/vega-statistics/build/vega-statistics.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bandwidthNRD\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"bandwidthNRD\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bin\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"bin\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bootstrapCI\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"bootstrapCI\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cumulativeLogNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"cumulativeLogNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cumulativeNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"cumulativeNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cumulativeUniform\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"cumulativeUniform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"densityLogNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"densityLogNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"densityNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"densityNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"densityUniform\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"densityUniform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dotbin\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"dotbin\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantileLogNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"quantileLogNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantileNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"quantileNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantileUniform\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"quantileUniform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantiles\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"quantiles\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quartiles\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"quartiles\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"random\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"random\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomInteger\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomInteger\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomKDE\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomKDE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomLCG\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomLCG\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomLogNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomLogNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomMixture\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomMixture\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"randomUniform\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"randomUniform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionExp\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionExp\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionLinear\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionLinear\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionLoess\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionLoess\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionLog\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionLog\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionPoly\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionPoly\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionPow\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionPow\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"regressionQuad\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"regressionQuad\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleCurve\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"sampleCurve\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleLogNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"sampleLogNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleNormal\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"sampleNormal\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sampleUniform\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"sampleUniform\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"setRandom\", function() { return vega_statistics__WEBPACK_IMPORTED_MODULE_13__[\"setRandom\"]; });\n\n/* harmony import */ var vega_time__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vega-time */ \"./node_modules/vega-time/build/vega-time.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DATE\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"DATE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DAY\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"DAY\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DAYOFYEAR\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"DAYOFYEAR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HOURS\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"HOURS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MILLISECONDS\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"MILLISECONDS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MINUTES\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"MINUTES\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"MONTH\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"MONTH\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"QUARTER\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"QUARTER\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SECONDS\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"SECONDS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TIME_UNITS\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"TIME_UNITS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WEEK\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"WEEK\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"YEAR\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"YEAR\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dayofyear\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"dayofyear\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeBin\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeBin\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFloor\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeFloor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeInterval\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeInterval\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeOffset\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeSequence\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeSequence\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeUnitSpecifier\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeUnitSpecifier\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeUnits\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"timeUnits\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcFloor\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"utcFloor\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcInterval\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"utcInterval\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcOffset\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"utcOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcSequence\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"utcSequence\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcdayofyear\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"utcdayofyear\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"utcweek\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"utcweek\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"week\", function() { return vega_time__WEBPACK_IMPORTED_MODULE_14__[\"week\"]; });\n\n/* harmony import */ var vega_loader__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! vega-loader */ \"./node_modules/vega-loader/index.browser.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"loader\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"loader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"read\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"read\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inferType\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"inferType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"inferTypes\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"inferTypes\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"typeParsers\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"typeParsers\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"format\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formats\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"formats\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"responseType\", function() { return vega_loader__WEBPACK_IMPORTED_MODULE_15__[\"responseType\"]; });\n\n/* harmony import */ var vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vega-scenegraph */ \"./node_modules/vega-scenegraph/build/vega-scenegraph.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Bounds\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Bounds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CanvasHandler\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"CanvasHandler\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CanvasRenderer\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"CanvasRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Gradient\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Gradient\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"GroupItem\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"GroupItem\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Handler\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Handler\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Item\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Item\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Marks\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Marks\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RenderType\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"RenderType\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Renderer\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Renderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ResourceLoader\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"ResourceLoader\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SVGHandler\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"SVGHandler\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SVGRenderer\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"SVGRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SVGStringRenderer\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"SVGStringRenderer\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Scenegraph\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"Scenegraph\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundClip\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"boundClip\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundContext\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"boundContext\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundItem\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"boundItem\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundMark\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"boundMark\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"boundStroke\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"boundStroke\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"domChild\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"domChild\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"domClear\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"domClear\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"domCreate\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"domCreate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"domFind\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"domFind\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"font\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"font\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontFamily\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"fontFamily\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"fontSize\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"fontSize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersect\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"intersect\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersectBoxLine\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"intersectBoxLine\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersectPath\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"intersectPath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersectPoint\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"intersectPoint\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"intersectRule\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"intersectRule\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"lineHeight\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"lineHeight\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"markup\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"markup\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"multiLineOffset\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"multiLineOffset\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathCurves\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathCurves\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathEqual\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathEqual\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathParse\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathParse\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathRectangle\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathRectangle\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathRender\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathRender\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathSymbols\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathSymbols\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pathTrail\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"pathTrail\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"point\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"point\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"renderModule\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"renderModule\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSVGClipId\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"resetSVGClipId\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetSVGDefIds\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"resetSVGDefIds\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sceneEqual\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"sceneEqual\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sceneFromJSON\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"sceneFromJSON\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scenePickVisit\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"scenePickVisit\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sceneToJSON\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"sceneToJSON\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sceneVisit\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"sceneVisit\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sceneZOrder\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"sceneZOrder\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"serializeXML\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"serializeXML\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"textMetrics\", function() { return vega_scenegraph__WEBPACK_IMPORTED_MODULE_16__[\"textMetrics\"]; });\n\n/* harmony import */ var vega_scale__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! vega-scale */ \"./node_modules/vega-scale/build/vega-scale.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolate\", function() { return vega_scale__WEBPACK_IMPORTED_MODULE_17__[\"interpolate\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateColors\", function() { return vega_scale__WEBPACK_IMPORTED_MODULE_17__[\"interpolateColors\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"interpolateRange\", function() { return vega_scale__WEBPACK_IMPORTED_MODULE_17__[\"interpolateRange\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"quantizeInterpolator\", function() { return vega_scale__WEBPACK_IMPORTED_MODULE_17__[\"quantizeInterpolator\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scale\", function() { return vega_scale__WEBPACK_IMPORTED_MODULE_17__[\"scale\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"scheme\", function() { return vega_scale__WEBPACK_IMPORTED_MODULE_17__[\"scheme\"]; });\n\n/* harmony import */ var vega_projection__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! vega-projection */ \"./node_modules/vega-projection/build/vega-projection.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"projection\", function() { return vega_projection__WEBPACK_IMPORTED_MODULE_18__[\"projection\"]; });\n\n/* harmony import */ var vega_view__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! vega-view */ \"./node_modules/vega-view/build/vega-view.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"View\", function() { return vega_view__WEBPACK_IMPORTED_MODULE_19__[\"View\"]; });\n\n/* harmony import */ var vega_format__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! vega-format */ \"./node_modules/vega-format/build/vega-format.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"defaultLocale\", function() { return vega_format__WEBPACK_IMPORTED_MODULE_20__[\"defaultLocale\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"formatLocale\", function() { return vega_format__WEBPACK_IMPORTED_MODULE_20__[\"numberFormatDefaultLocale\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"locale\", function() { return vega_format__WEBPACK_IMPORTED_MODULE_20__[\"locale\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"resetDefaultLocale\", function() { return vega_format__WEBPACK_IMPORTED_MODULE_20__[\"resetDefaultLocale\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"timeFormatLocale\", function() { return vega_format__WEBPACK_IMPORTED_MODULE_20__[\"timeFormatDefaultLocale\"]; });\n\n/* harmony import */ var vega_functions__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! vega-functions */ \"./node_modules/vega-functions/build/vega-functions.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"expressionFunction\", function() { return vega_functions__WEBPACK_IMPORTED_MODULE_21__[\"expressionFunction\"]; });\n\n/* harmony import */ var vega_parser__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! vega-parser */ \"./node_modules/vega-parser/build/vega-parser.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return vega_parser__WEBPACK_IMPORTED_MODULE_22__[\"parse\"]; });\n\n/* harmony import */ var vega_runtime__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! vega-runtime */ \"./node_modules/vega-runtime/build/vega-runtime.module.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"runtimeContext\", function() { return vega_runtime__WEBPACK_IMPORTED_MODULE_23__[\"context\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar version = \"5.17.0\";\n\n// -- Transforms -----\nObject(vega_util__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(vega_dataflow__WEBPACK_IMPORTED_MODULE_1__[\"transforms\"], vega_transforms__WEBPACK_IMPORTED_MODULE_2__, vega_view_transforms__WEBPACK_IMPORTED_MODULE_3__, vega_encode__WEBPACK_IMPORTED_MODULE_4__, vega_geo__WEBPACK_IMPORTED_MODULE_5__, vega_force__WEBPACK_IMPORTED_MODULE_6__, vega_label__WEBPACK_IMPORTED_MODULE_8__, vega_hierarchy__WEBPACK_IMPORTED_MODULE_7__, vega_regression__WEBPACK_IMPORTED_MODULE_9__, vega_voronoi__WEBPACK_IMPORTED_MODULE_10__, vega_wordcloud__WEBPACK_IMPORTED_MODULE_11__, vega_crossfilter__WEBPACK_IMPORTED_MODULE_12__); // -- Exports -----\n\n\n\n\n//# sourceURL=webpack://opencleanVis/./node_modules/vega/build/vega.module.js?");

/***/ }),

/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
  !*** (webpack)/buildin/global.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack://opencleanVis/(webpack)/buildin/global.js?");

/***/ }),

/***/ "./src/CommAPI.js":
/*!************************!*\
  !*** ./src/CommAPI.js ***!
  \************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return CommAPI; });\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\");\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\");\n/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar COMM_TYPES = {\n  JUPYTER: 'JUPYTER',\n  COLAB: 'COLAB'\n};\n\nvar CommAPI = /*#__PURE__*/function () {\n  function CommAPI(api_call_id, callback) {\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2___default()(this, CommAPI);\n\n    this.callback = callback;\n    this.mode = null;\n\n    if (window.Jupyter !== undefined) {\n      this.mode = COMM_TYPES.JUPYTER;\n      this.comm = window.Jupyter.notebook.kernel.comm_manager.new_comm(api_call_id, {});\n      this.comm.on_msg(function (msg) {\n        var data = msg.content.data;\n        callback(data);\n      });\n    } else if (window.google !== undefined) {\n      this.mode = COMM_TYPES.COLAB;\n\n      this.comm = /*#__PURE__*/function () {\n        var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(msg) {\n          var result;\n          return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) {\n            while (1) {\n              switch (_context.prev = _context.next) {\n                case 0:\n                  _context.next = 2;\n                  return google.colab.kernel.invokeFunction(api_call_id, [msg], // The argument\n                  {});\n\n                case 2:\n                  result = _context.sent;\n                  // kwargs\n                  callback(result.data['application/json']);\n\n                case 4:\n                case \"end\":\n                  return _context.stop();\n              }\n            }\n          }, _callee);\n        }));\n\n        return function (_x) {\n          return _ref.apply(this, arguments);\n        };\n      }();\n    } else {\n      console.error(new Error('Cannot find Jupyter/Colab namespace from javascript'));\n    }\n  }\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3___default()(CommAPI, [{\n    key: \"call\",\n    value: function call(msg) {\n      if (this.comm) {\n        if (this.mode === COMM_TYPES.JUPYTER) {\n          this.comm.send(msg);\n        } else if (this.mode === COMM_TYPES.COLAB) {\n          this.comm(msg);\n        }\n      }\n    }\n  }]);\n\n  return CommAPI;\n}();\n\n\n\n//# sourceURL=webpack://opencleanVis/./src/CommAPI.js?");

/***/ }),

/***/ "./src/DatasetSample.css":
/*!*******************************!*\
  !*** ./src/DatasetSample.css ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_DatasetSample_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/css-loader/dist/cjs.js!./DatasetSample.css */ \"./node_modules/css-loader/dist/cjs.js!./src/DatasetSample.css\");\n\n            \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_DatasetSample_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_DatasetSample_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n//# sourceURL=webpack://opencleanVis/./src/DatasetSample.css?");

/***/ }),

/***/ "./src/DatasetSample.tsx":
/*!*******************************!*\
  !*** ./src/DatasetSample.tsx ***!
  \*******************************/
/*! exports provided: DatasetSample */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DatasetSample\", function() { return DatasetSample; });\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react_table__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-table */ \"./node_modules/react-table/index.js\");\n/* harmony import */ var react_table__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_table__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _DatasetSample_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DatasetSample.css */ \"./src/DatasetSample.css\");\n/* harmony import */ var react_vega__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-vega */ \"./node_modules/react-vega/esm/index.js\");\n/* harmony import */ var _Pagination__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Pagination */ \"./src/Pagination.tsx\");\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\n\n\nvar classMapping = {\n  text: 'semtype-text',\n  \"boolean\": 'semtype-boolean',\n  enumeration: 'semtype-enumeration',\n  identifier: 'semtype-identifier',\n  latitude: 'semtype-latitude',\n  longitude: 'semtype-longitude',\n  datetime: 'semtype-datetime'\n};\nvar tableViews;\n\n(function (tableViews) {\n  tableViews[\"COMPACT\"] = \"COMPACT\";\n  tableViews[\"DETAIL\"] = \"DETAIL\";\n  tableViews[\"COLUMN\"] = \"COLUMN\";\n})(tableViews || (tableViews = {}));\n\nfunction typeName(type) {\n  return type.replace('http://schema.org/', '').replace('https://metadata.datadrivendiscovery.org/types/', '');\n}\n\nfunction SemanticTypeBadge(props) {\n  var label = typeName(props.type);\n  var semtypeClass = classMapping[label.toLowerCase()];\n  var spanClass = semtypeClass ? \"badge badge-pill semtype \".concat(semtypeClass) : 'badge badge-pill semtype';\n  var tempResolution = label.toLowerCase() === 'datetime' && props.column && props.column.temporal_resolution ? ' ' + props.column.temporal_resolution : '';\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"span\", {\n    className: spanClass\n  }, label + tempResolution.toUpperCase());\n}\n\nfunction TypeBadges(props) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_6__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"span\", {\n    className: \"badge badge-pill badge-primary\"\n  }, typeName(props.column.structural_type)), props.column.semantic_types.map(function (c) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](SemanticTypeBadge, {\n      type: c,\n      column: props.column,\n      key: \"sem-type-badge-\".concat(c)\n    });\n  }));\n}\n\nfunction getEncoding(typePlot) {\n  var yContent = {\n    field: 'count',\n    type: 'quantitative',\n    title: null\n  };\n\n  if (typePlot === 'histogram_numerical') {\n    return {\n      y: yContent,\n      x: {\n        title: null,\n        bin: {\n          binned: true\n        },\n        field: 'bin_start',\n        type: 'quantitative',\n        axis: null\n      },\n      x2: {\n        field: 'bin_end'\n      },\n      tooltip: [{\n        field: 'bin_start',\n        title: 'start',\n        type: 'quantitative'\n      }, {\n        field: 'bin_end',\n        title: 'end',\n        type: 'quantitative'\n      }]\n    };\n  } else if (typePlot === 'histogram_temporal') {\n    return {\n      y: yContent,\n      x: {\n        title: null,\n        bin: {\n          binned: true\n        },\n        field: 'date_start',\n        type: 'temporal',\n        utc: true,\n        axis: null\n      },\n      x2: {\n        field: 'date_end'\n      },\n      tooltip: [{\n        field: 'date_start',\n        title: 'start',\n        type: 'temporal'\n      }, {\n        field: 'date_end',\n        title: 'end',\n        type: 'temporal'\n      }]\n    };\n  } else if (typePlot === 'histogram_categorical') {\n    return {\n      y: yContent,\n      x: {\n        title: null,\n        field: 'bin',\n        type: 'ordinal',\n        axis: null,\n        sort: {\n          order: 'descending',\n          field: 'count'\n        }\n      },\n      tooltip: {\n        field: 'bin',\n        type: 'ordinal'\n      }\n    };\n  } else if (typePlot === 'histogram_text') {\n    return {\n      y: {\n        field: 'bin',\n        type: 'ordinal',\n        title: null\n      },\n      x: {\n        title: null,\n        field: 'count',\n        type: 'quantitative',\n        sort: {\n          order: 'descending',\n          field: 'count'\n        },\n        axis: null\n      },\n      tooltip: [{\n        field: 'bin',\n        type: 'ordinal'\n      }, {\n        field: 'count',\n        type: 'quantitative'\n      }]\n    };\n  } else {\n    console.log('Unknown plot type ', typePlot);\n    return;\n  }\n}\n\nfunction getSpecification(typePlot) {\n  var specification = {\n    width: '120',\n    height: '120',\n    data: {\n      name: 'values'\n    },\n    description: 'A simple bar chart with embedded data.',\n    encoding: getEncoding(typePlot),\n    mark: 'bar'\n  };\n  return specification;\n}\n\nfunction VegaPlot(props) {\n  var _props$columnMetadata, _props$columnMetadata2;\n\n  var dataVega = (_props$columnMetadata = props.columnMetadata.plot) === null || _props$columnMetadata === void 0 ? void 0 : _props$columnMetadata.data;\n  var plot = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](react_vega__WEBPACK_IMPORTED_MODULE_9__[\"VegaLite\"], {\n    spec: getSpecification((_props$columnMetadata2 = props.columnMetadata.plot) === null || _props$columnMetadata2 === void 0 ? void 0 : _props$columnMetadata2.type),\n    data: {\n      values: dataVega\n    }\n  });\n  var message = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"p\", {\n    className: \"small\"\n  }, \"Nothing to show.\");\n\n  if (dataVega) {\n    return props.isHeader ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"th\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({\n      scope: \"col\"\n    }, props.column.getHeaderProps()), plot) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"td\", null, \" \", plot, \" \");\n  } else {\n    return props.isHeader ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"th\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({\n      scope: \"col\"\n    }, props.column.getHeaderProps(), {\n      className: \"text-center\",\n      style: {\n        verticalAlign: 'middle'\n      }\n    }), message) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"td\", null, \" \", message, \" \");\n  }\n}\n\nfunction TableColumnView(props) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"tbody\", null, props.headerGroups && props.headerGroups[0].headers.map(function (column, i) {\n    var _props$hit$metadata$c, _props$hit$metadata$c2;\n\n    var columnStatistics = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"td\", {\n      style: {\n        minWidth: 400,\n        textAlign: 'left'\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"ul\", {\n      style: {\n        listStyle: 'none',\n        columnCount: 2,\n        columnGap: 10\n      }\n    }, props.hit.metadata.columns[i].num_distinct_values && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"li\", null, \"Unique Values\"), props.hit.metadata.columns[i].stddev && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"li\", null, \"Std Deviation\"), props.hit.metadata.columns[i].mean && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"li\", null, \"Mean\"), props.hit.metadata.columns[i].num_distinct_values && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"li\", null, props.hit.metadata.columns[i].num_distinct_values), props.hit.metadata.columns[i].stddev && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"li\", null, (_props$hit$metadata$c = props.hit.metadata.columns[i].stddev) === null || _props$hit$metadata$c === void 0 ? void 0 : _props$hit$metadata$c.toFixed(2)), props.hit.metadata.columns[i].mean && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"li\", null, (_props$hit$metadata$c2 = props.hit.metadata.columns[i].mean) === null || _props$hit$metadata$c2 === void 0 ? void 0 : _props$hit$metadata$c2.toFixed(2))));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"tr\", column.getHeaderProps(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"td\", {\n      style: {\n        textAlign: 'left'\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"b\", null, column.render('Header'), \" \")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"td\", {\n      style: {\n        textAlign: 'left'\n      }\n    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](TypeBadges, {\n      column: props.hit.metadata.columns[i]\n    })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](VegaPlot, {\n      key: \"bodyPlot_\".concat(i),\n      columnMetadata: props.hit.metadata.columns[i],\n      column: column,\n      isHeader: false\n    }), columnStatistics);\n  }));\n} // Compact and Detail view share the same body content. Just the header will change.\n\n\nfunction TableCompactDetailView(props) {\n  var _props$tableProps = props.tableProps,\n      columns = _props$tableProps.columns,\n      data = _props$tableProps.data,\n      hit = _props$tableProps.hit,\n      typeView = _props$tableProps.typeView,\n      requestResult = _props$tableProps.requestResult;\n\n  var _useTable = Object(react_table__WEBPACK_IMPORTED_MODULE_7__[\"useTable\"])({\n    columns: columns,\n    data: data\n  }),\n      getTableBodyProps = _useTable.getTableBodyProps,\n      headerGroups = _useTable.headerGroups,\n      rows = _useTable.rows,\n      prepareRow = _useTable.prepareRow;\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_6__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"thead\", null, headerGroups.map(function (headerGroup) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"tr\", headerGroup.getHeaderGroupProps(), headerGroup.headers.map(function (column, i) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"th\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({\n        scope: \"col\"\n      }, column.getHeaderProps(), {\n        style: {\n          position: 'sticky',\n          top: '-1px',\n          background: '#eee',\n          zIndex: 1,\n          width: 200,\n          textAlign: 'left'\n        }\n      }), column.render('Header'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n        className: \"dropdown\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"button\", {\n        type: \"button\",\n        className: \"btn btn-link\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"span\", {\n        className: \"caret\"\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n        className: \"dropdown-content\"\n      }, requestResult.library && requestResult.library.functions.map(function (command) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n          key: command.name,\n          className: \"menu-link\",\n          onClick: function onClick() {\n            return props.onCommandClick(command, i);\n          }\n        }, command.name);\n      }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"br\", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](TypeBadges, {\n        column: hit.metadata.columns[i]\n      }));\n    }));\n  }), typeView === tableViews.DETAIL && headerGroups.map(function (headerGroup, i) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"tr\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, headerGroup.getHeaderGroupProps(), {\n      style: {\n        textAlign: 'left'\n      }\n    }), headerGroup.headers.map(function (column, i) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"th\", {\n        style: {\n          textAlign: 'left'\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](VegaPlot, {\n        key: \"headerPlot_\".concat(i),\n        columnMetadata: hit.metadata.columns[i],\n        column: column,\n        isHeader: true\n      }));\n    }));\n  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"tbody\", getTableBodyProps(), rows.map(function (row, i) {\n    prepareRow(row);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"tr\", row.getRowProps(), row.cells.map(function (cell) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"td\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, cell.getCellProps(), {\n        style: {\n          textAlign: 'left'\n        }\n      }), cell.render('Cell'));\n    }));\n  })));\n}\n\nfunction Table(props) {\n  var columns = props.columns,\n      data = props.data,\n      hit = props.hit,\n      typeView = props.typeView,\n      requestResult = props.requestResult;\n\n  var _useTable2 = Object(react_table__WEBPACK_IMPORTED_MODULE_7__[\"useTable\"])({\n    columns: columns,\n    data: data\n  }),\n      getTableProps = _useTable2.getTableProps,\n      headerGroups = _useTable2.headerGroups;\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_6__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"table\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_5___default()({}, getTableProps(), {\n    className: \"table table-hover small\"\n  }), typeView === tableViews.COLUMN ?\n  /*#__PURE__*/\n  // Column View\n  react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](TableColumnView, {\n    headerGroups: headerGroups,\n    hit: hit\n  }) :\n  /*#__PURE__*/\n  // Compact or Detail View\n  react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](TableCompactDetailView, {\n    tableProps: props,\n    requestResult: requestResult,\n    onCommandClick: function onCommandClick(command, columnIndex) {\n      props.onCommandClick(command, columnIndex);\n    }\n  })), typeView !== tableViews.COLUMN && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n    className: \"container\",\n    style: {\n      marginTop: '-20px'\n    }\n  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n    className: \"text-center\"\n  }, requestResult.rowCount && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](_Pagination__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n    totalRows: requestResult.rowCount,\n    onChangePage: function onChangePage(offset) {\n      return props.onPageClick(offset);\n    },\n    pageSize: props.pageSize\n  }))));\n}\n\nvar DatasetSample = /*#__PURE__*/function (_React$PureComponent) {\n  _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(DatasetSample, _React$PureComponent);\n\n  var _super = _createSuper(DatasetSample);\n\n  function DatasetSample(props) {\n    var _this;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, DatasetSample);\n\n    _this = _super.call(this, props);\n    _this.state = {\n      typeView: tableViews.COMPACT\n    };\n    return _this;\n  }\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(DatasetSample, [{\n    key: \"updateTypeView\",\n    value: function updateTypeView(view) {\n      this.setState({\n        typeView: view\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var hit = this.props.hit;\n      var sample = hit.sample;\n      var headers = sample[0];\n      var rows = sample.slice(1, sample.length);\n      var columns = headers.map(function (h, i) {\n        return {\n          Header: h,\n          accessor: function accessor(row) {\n            return row[i];\n          }\n        };\n      });\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n        className: \"mt-2\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n        className: \"btn-group btn-group-sm\",\n        role: \"group\",\n        \"aria-label\": \"Basic example\",\n        style: {\n          \"float\": 'initial',\n          marginBottom: '-1px'\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"button\", {\n        type: \"button\",\n        className: \"btn btn-secondary \".concat(this.state.typeView === tableViews.COMPACT ? 'active' : ''),\n        onClick: function onClick() {\n          return _this2.updateTypeView(tableViews.COMPACT);\n        }\n      }, \"Compact view\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"button\", {\n        type: \"button\",\n        className: \"btn btn-secondary \".concat(this.state.typeView === tableViews.DETAIL ? 'active' : ''),\n        onClick: function onClick() {\n          return _this2.updateTypeView(tableViews.DETAIL);\n        }\n      }, \"Detail view\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"button\", {\n        type: \"button\",\n        className: \"btn btn-secondary \".concat(this.state.typeView === tableViews.COLUMN ? 'active' : ''),\n        onClick: function onClick() {\n          return _this2.updateTypeView(tableViews.COLUMN);\n        }\n      }, \"Column view\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](\"div\", {\n        className: \"mt-2\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"](Table, {\n        columns: columns,\n        data: rows,\n        hit: hit,\n        typeView: this.state.typeView,\n        requestResult: this.props.requestResult,\n        onCommandClick: function onCommandClick(command, columnIndex) {\n          _this2.props.onCommandClick(command, columnIndex);\n        },\n        onPageClick: function onPageClick(offset) {\n          _this2.props.onPageClick(offset);\n        },\n        pageSize: this.props.pageSize\n      }))));\n    }\n  }]);\n\n  return DatasetSample;\n}(react__WEBPACK_IMPORTED_MODULE_6__[\"PureComponent\"]);\n\n\n\n//# sourceURL=webpack://opencleanVis/./src/DatasetSample.tsx?");

/***/ }),

/***/ "./src/Pagination.css":
/*!****************************!*\
  !*** ./src/Pagination.css ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_Pagination_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/css-loader/dist/cjs.js!./Pagination.css */ \"./node_modules/css-loader/dist/cjs.js!./src/Pagination.css\");\n\n            \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_Pagination_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_Pagination_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n//# sourceURL=webpack://opencleanVis/./src/Pagination.css?");

/***/ }),

/***/ "./src/Pagination.tsx":
/*!****************************!*\
  !*** ./src/Pagination.tsx ***!
  \****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _Pagination_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Pagination.css */ \"./src/Pagination.css\");\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\nvar defaultInitialPage = 1;\n\nvar Pagination = /*#__PURE__*/function (_React$PureComponent) {\n  _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_2___default()(Pagination, _React$PureComponent);\n\n  var _super = _createSuper(Pagination);\n\n  function Pagination(props) {\n    var _this;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, Pagination);\n\n    _this = _super.call(this, props);\n    _this.state = _this.initialState();\n    return _this;\n  }\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(Pagination, [{\n    key: \"initialState\",\n    value: function initialState() {\n      return {\n        pager: {\n          currentPage: 0,\n          totalPages: this.props.totalRows ? Math.ceil(this.props.totalRows / this.props.pageSize) : 0,\n          startPage: 0,\n          endPage: 0,\n          startIndex: 0,\n          endIndex: 0,\n          pages: []\n        }\n      };\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // set initial page\n      if (this.props.totalRows) {\n        this.setPage(this.props.initialPage);\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // reset page if the total number of rows has changed\n      if (this.props.totalRows !== prevProps.totalRows) {\n        this.setPage(this.props.initialPage);\n      }\n    }\n  }, {\n    key: \"setPage\",\n    value: function setPage(page) {\n      var _this$props = this.props,\n          totalRows = _this$props.totalRows,\n          pageSize = _this$props.pageSize;\n      var pager = this.state.pager;\n\n      if (page < 1 || page > pager.totalPages) {\n        return;\n      } // get new pager object for specified page\n\n\n      pager = this.getPager(totalRows, page, pageSize); // update state\n\n      this.setState({\n        pager: pager\n      }); // call change page function in parent component\n\n      this.props.onChangePage(pager.startIndex);\n    }\n  }, {\n    key: \"getPager\",\n    value: function getPager(totalRows, currentPage, pageSize) {\n      // default to first page\n      currentPage = currentPage || 1; // default page size is 10\n\n      pageSize = pageSize; // calculate total pages\n\n      var totalPages = Math.ceil(totalRows / pageSize);\n      var startPage = 0;\n      var endPage = 0;\n      var displayedPages = 7;\n      var leftPages = displayedPages - Math.ceil(displayedPages / 2);\n\n      if (totalPages <= displayedPages) {\n        // less than 'displayedPages' total pages so show all\n        startPage = 1;\n        endPage = totalPages;\n      } else {\n        // more than 'displayedPages' total pages so calculate start and end pages\n        if (currentPage <= Math.ceil(displayedPages / 2)) {\n          startPage = 1;\n          endPage = displayedPages;\n        } else if (currentPage + leftPages >= totalPages) {\n          startPage = totalPages - (displayedPages - 1);\n          endPage = totalPages;\n        } else {\n          startPage = currentPage - leftPages;\n          endPage = currentPage + leftPages;\n        }\n      } // calculate start and end row indexes\n\n\n      var startIndex = (currentPage - 1) * pageSize;\n      var endIndex = Math.min(startIndex + pageSize - 1, totalRows - 1); // create an array of pages to ng-repeat in the pager control\n\n      var idxs = Array.from(new Array(endPage + 1 - startPage).keys());\n      var pages = idxs.map(function (i) {\n        return startPage + i;\n      }); // return object with all pager properties required by the view\n\n      return {\n        currentPage: currentPage,\n        totalPages: totalPages,\n        startPage: startPage,\n        endPage: endPage,\n        startIndex: startIndex,\n        endIndex: endIndex,\n        pages: pages\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var pager = this.state.pager;\n\n      if (!pager.pages || pager.pages.length <= 1) {\n        // don't display pager if there is only 1 page\n        return null;\n      }\n\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"ul\", {\n        className: \"pagination\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"li\", {\n        className: pager.currentPage === 1 ? 'disabled page-item' : 'page-item'\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"button\", {\n        type: \"submit\",\n        className: \"btn btn-secondary page-link\",\n        onClick: function onClick() {\n          return _this2.setPage(1);\n        }\n      }, \"First\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"li\", {\n        className: pager.currentPage === 1 ? 'page-item  disabled' : 'page-item '\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"button\", {\n        type: \"submit\",\n        className: \"btn btn-secondary page-link\",\n        onClick: function onClick() {\n          return _this2.setPage(pager.currentPage - 1);\n        }\n      }, \"Previous\")), pager.pages.map(function (page, index) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"li\", {\n          key: index,\n          className: pager.currentPage === page ? 'page-item active' : 'page-item'\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"button\", {\n          type: \"submit\",\n          className: \"btn btn-secondary page-link\",\n          onClick: function onClick() {\n            return _this2.setPage(page);\n          }\n        }, page));\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"li\", {\n        className: pager.currentPage === pager.totalPages ? 'page-item disabled' : 'page-item'\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"button\", {\n        type: \"submit\",\n        className: \"btn btn-secondary page-link\",\n        onClick: function onClick() {\n          return _this2.setPage(pager.currentPage + 1);\n        }\n      }, \"Next\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"li\", {\n        className: pager.currentPage === pager.totalPages ? 'page-item disabled' : 'page-item'\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default.a.createElement(\"button\", {\n        type: \"submit\",\n        className: \"btn btn-secondary page-link\",\n        onClick: function onClick() {\n          return _this2.setPage(pager.totalPages);\n        }\n      }, \"Last\")));\n    }\n  }]);\n\n  return Pagination;\n}(react__WEBPACK_IMPORTED_MODULE_6___default.a.PureComponent);\n\n_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_5___default()(Pagination, \"defaultProps\", {\n  initialPage: defaultInitialPage\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Pagination);\n\n//# sourceURL=webpack://opencleanVis/./src/Pagination.tsx?");

/***/ }),

/***/ "./src/Recipe/AddOperator.tsx":
/*!************************************!*\
  !*** ./src/Recipe/AddOperator.tsx ***!
  \************************************/
/*! exports provided: AddOperator */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AddOperator\", function() { return AddOperator; });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @material-ui/core/Button */ \"./node_modules/@material-ui/core/esm/Button/index.js\");\n/* harmony import */ var _material_ui_core_InputLabel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @material-ui/core/InputLabel */ \"./node_modules/@material-ui/core/esm/InputLabel/index.js\");\n/* harmony import */ var _material_ui_core_MenuItem__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @material-ui/core/MenuItem */ \"./node_modules/@material-ui/core/esm/MenuItem/index.js\");\n/* harmony import */ var _material_ui_core_Select__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @material-ui/core/Select */ \"./node_modules/@material-ui/core/esm/Select/index.js\");\n/* harmony import */ var _material_ui_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @material-ui/core */ \"./node_modules/@material-ui/core/esm/index.js\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\n\n\n\n\nvar AddOperator = /*#__PURE__*/function (_React$PureComponent) {\n  _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default()(AddOperator, _React$PureComponent);\n\n  var _super = _createSuper(AddOperator);\n\n  function AddOperator(props) {\n    var _this;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, AddOperator);\n\n    _this = _super.call(this, props);\n    _this.state = {\n      selectedOperator: {\n        operatorName: '',\n        operatorIndex: 0,\n        columnName: '',\n        columnIndex: 0,\n        checked: false,\n        newColumnName: ''\n      }\n    };\n    _this.handleChangeNewColumnName = _this.handleChangeNewColumnName.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3___default()(_this));\n    return _this;\n  }\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(AddOperator, [{\n    key: \"handleAddOperator\",\n    value: function handleAddOperator(operatorIndex) {\n      var _this$props$result$li;\n\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          operatorIndex: operatorIndex,\n          operator: (_this$props$result$li = this.props.result.library) === null || _this$props$result$li === void 0 ? void 0 : _this$props$result$li.functions[operatorIndex]\n        })\n      });\n    }\n  }, {\n    key: \"handleAddColumn\",\n    value: function handleAddColumn(columnIndex) {\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          columnIndex: columnIndex\n        })\n      });\n    }\n  }, {\n    key: \"handleChangeSwitch\",\n    value: function handleChangeSwitch(eventName, isChecked) {\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          checked: isChecked\n        })\n      });\n    }\n  }, {\n    key: \"handleChangeNewColumnName\",\n    value: function handleChangeNewColumnName(event) {\n      var columnName = event.target.value; // Jupyter.keyboard_manager.disable()\n\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          newColumnName: columnName\n        })\n      });\n    }\n  }, {\n    key: \"render\",\n    // updateInputValue() {\n    //   this.setState({selectedOperator: {...this.state.selectedOperator, newColumnName: columnName}});\n    // }\n    value: function render() {\n      var _this2 = this;\n\n      var result = this.props.result;\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginBottom: 12\n        }\n      }, \"Select an operator and a column. The operator will be applied to the column values.\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"form\", {\n        noValidate: true\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_InputLabel__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n        htmlFor: \"max-width\"\n      }, \"Column\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_Select__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n        autoFocus: true // value={this.state.selectedOperator.columnName}\n        ,\n        value: this.state.selectedOperator.columnIndex,\n        onChange: function onChange(e) {\n          _this2.handleAddColumn(e.target.value);\n        }\n      }, result.columns.map(function (colName, idx) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_MenuItem__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n          key: idx,\n          value: idx\n        }, colName);\n      }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginTop: 6\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_InputLabel__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n        htmlFor: \"max-width\"\n      }, \"Operator\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_Select__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n        autoFocus: true,\n        value: this.state.selectedOperator.operatorIndex,\n        onChange: function onChange(e) {\n          _this2.handleAddOperator(e.target.value);\n        }\n      }, result.library && result.library.functions.map(function (lib, idx) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_MenuItem__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n          key: idx,\n          value: idx\n        }, lib.name);\n      }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginTop: 6\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core__WEBPACK_IMPORTED_MODULE_12__[\"FormControlLabel\"], {\n        control: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core__WEBPACK_IMPORTED_MODULE_12__[\"Switch\"], {\n          checked: this.state.selectedOperator.checked,\n          size: \"small\",\n          onChange: function onChange(e) {\n            _this2.handleChangeSwitch(e.target.name, e.target.checked);\n          },\n          name: \"checkedB\",\n          color: \"primary\"\n        }),\n        label: \"Add as a new column\"\n      }), this.state.selectedOperator.checked && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core__WEBPACK_IMPORTED_MODULE_12__[\"TextField\"], {\n        id: \"outlined-basic\",\n        size: \"small\",\n        value: this.state.selectedOperator.newColumnName,\n        onChange: function onChange(event) {\n          return _this2.handleChangeNewColumnName(event);\n        },\n        label: \"Column name\",\n        variant: \"outlined\"\n      })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginTop: 3\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n        onClick: function onClick() {\n          return _this2.props.closeRecipeDialog();\n        },\n        color: \"primary\"\n      }, \"Cancel\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n        onClick: function onClick() {\n          return _this2.props.handleDialogExecution(_this2.state.selectedOperator);\n        },\n        color: \"primary\",\n        autoFocus: true\n      }, \"Apply\"))));\n    }\n  }]);\n\n  return AddOperator;\n}(react__WEBPACK_IMPORTED_MODULE_7__[\"PureComponent\"]);\n\n\n\n//# sourceURL=webpack://opencleanVis/./src/Recipe/AddOperator.tsx?");

/***/ }),

/***/ "./src/Recipe/Recipe.tsx":
/*!*******************************!*\
  !*** ./src/Recipe/Recipe.tsx ***!
  \*******************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var react_feather__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-feather */ \"./node_modules/react-feather/dist/index.js\");\n/* harmony import */ var _material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @material-ui/core/Tabs */ \"./node_modules/@material-ui/core/esm/Tabs/index.js\");\n/* harmony import */ var _material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @material-ui/core/Tab */ \"./node_modules/@material-ui/core/esm/Tab/index.js\");\n/* harmony import */ var _material_ui_core_Divider__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @material-ui/core/Divider */ \"./node_modules/@material-ui/core/esm/Divider/index.js\");\n/* harmony import */ var _material_ui_core_Box__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @material-ui/core/Box */ \"./node_modules/@material-ui/core/esm/Box/index.js\");\n/* harmony import */ var _AddOperator__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./AddOperator */ \"./src/Recipe/AddOperator.tsx\");\n/* harmony import */ var _material_ui_core_Snackbar__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @material-ui/core/Snackbar */ \"./node_modules/@material-ui/core/esm/Snackbar/index.js\");\n/* harmony import */ var _material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @material-ui/core/IconButton */ \"./node_modules/@material-ui/core/esm/IconButton/index.js\");\n/* harmony import */ var _material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @material-ui/icons/Close */ \"./node_modules/@material-ui/icons/Close.js\");\n/* harmony import */ var _material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/esm/styles/index.js\");\n/* harmony import */ var _material_ui_icons_AddCircleOutline__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @material-ui/icons/AddCircleOutline */ \"./node_modules/@material-ui/icons/AddCircleOutline.js\");\n/* harmony import */ var _material_ui_icons_AddCircleOutline__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_AddCircleOutline__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var _material_ui_icons_History__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @material-ui/icons/History */ \"./node_modules/@material-ui/icons/History.js\");\n/* harmony import */ var _material_ui_icons_History__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_History__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var _material_ui_icons_Visibility__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @material-ui/icons/Visibility */ \"./node_modules/@material-ui/icons/Visibility.js\");\n/* harmony import */ var _material_ui_icons_Visibility__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_Visibility__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var _material_ui_icons_PlayArrow__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @material-ui/icons/PlayArrow */ \"./node_modules/@material-ui/icons/PlayArrow.js\");\n/* harmony import */ var _material_ui_icons_PlayArrow__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_PlayArrow__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _material_ui_icons_GetApp__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @material-ui/icons/GetApp */ \"./node_modules/@material-ui/icons/GetApp.js\");\n/* harmony import */ var _material_ui_icons_GetApp__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_GetApp__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var _material_ui_core_Collapse__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @material-ui/core/Collapse */ \"./node_modules/@material-ui/core/esm/Collapse/index.js\");\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @material-ui/core/Button */ \"./node_modules/@material-ui/core/esm/Button/index.js\");\n/* harmony import */ var _material_ui_core_Card__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @material-ui/core/Card */ \"./node_modules/@material-ui/core/esm/Card/index.js\");\n/* harmony import */ var _material_ui_core_CardHeader__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @material-ui/core/CardHeader */ \"./node_modules/@material-ui/core/esm/CardHeader/index.js\");\n/* harmony import */ var _material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @material-ui/core/CardContent */ \"./node_modules/@material-ui/core/esm/CardContent/index.js\");\n/* harmony import */ var _material_ui_core_CardActions__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @material-ui/core/CardActions */ \"./node_modules/@material-ui/core/esm/CardActions/index.js\");\n/* harmony import */ var _Statistics__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Statistics */ \"./src/Recipe/Statistics.tsx\");\n\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // import VisibilityOutlinedIcon from '@material-ui/icons/VisibilityOutlined';\n\n\n\n\n\n\n\n\n\nfunction TabPanel(props) {\n  var children = props.children,\n      value = props.value,\n      index = props.index,\n      other = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8___default()(props, [\"children\", \"value\", \"index\"]);\n\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_7___default()({\n    role: \"tabpanel\",\n    hidden: value !== index,\n    id: \"scrollable-auto-tabpanel-\".concat(index),\n    \"aria-labelledby\": \"scrollable-auto-tab-\".concat(index)\n  }, other), value === index && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Box__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n    p: 2\n  }, children));\n}\n\nvar useStyles = function useStyles(theme) {\n  return Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_19__[\"createStyles\"])({\n    root: {\n      maxWidth: 345\n    },\n    media: {\n      height: 0,\n      paddingTop: '56.25%' // 16:9\n\n    },\n    expand: {\n      transform: 'rotate(0deg)',\n      marginLeft: 'auto',\n      transition: theme.transitions.create('transform', {\n        duration: theme.transitions.duration.shortest\n      })\n    },\n    expandOpen: {\n      transform: 'rotate(180deg)'\n    },\n    button: {\n      margin: theme.spacing(0)\n    }\n  });\n};\n\nvar Recipe = /*#__PURE__*/function (_React$PureComponent) {\n  _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default()(Recipe, _React$PureComponent);\n\n  var _super = _createSuper(Recipe);\n\n  function Recipe(props) {\n    var _this;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, Recipe);\n\n    _this = _super.call(this, props);\n\n    _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this), \"handleChange\", function (event, newValue) {\n      console.log('hello tab');\n      console.log(newValue);\n\n      _this.setState({\n        tabValue: newValue\n      });\n    });\n\n    _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this), \"addOperator\", function (selectedOperator) {\n      console.log('Adding new operator');\n      console.log(selectedOperator);\n\n      _this.setState({\n        tabValue: 0,\n        exportedTextsMessage: true,\n        expanded: false\n      });\n\n      _this.props.handleDialogExecution(selectedOperator);\n    });\n\n    _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this), \"handleExpandClick\", function () {\n      _this.setState({\n        expanded: true\n      });\n    });\n\n    _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this), \"handleCloseClick\", function () {\n      _this.setState({\n        expanded: false\n      });\n\n      _this.props.closeRecipeDialog();\n    });\n\n    _this.state = {\n      tabValue: 0,\n      exportedTextsMessage: false,\n      expanded: false\n    };\n    _this.handleChange = _this.handleChange.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this));\n    return _this;\n  }\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(Recipe, [{\n    key: \"isCommited\",\n    value: function isCommited() {\n      var list = this.props.operatorProvenance.map(function (operator) {\n        return operator.isCommitted;\n      });\n      return list.some(function (element) {\n        return element;\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var classes = this.props.classes; // Get identifier for the last version. For this operator, no rollback\n      // option is shown.\n\n      var lastVersion = this.props.operatorProvenance[this.props.operatorProvenance.length - 1].id; // Get the version number for the operator for which the resulting\n      // data is currently shown in the spreadsheet from the attribute\n      // props.result.version. If the value is null the last version is\n      // being shown.\n\n      var versionShown = this.props.result.version;\n\n      if (versionShown == null) {\n        versionShown = lastVersion;\n      }\n\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        style: {\n          flex: 'none',\n          width: 300,\n          marginRight: 0\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        className: \"d-flex justify-content-between flex-row\",\n        style: {\n          backgroundColor: '#63518b',\n          padding: 4,\n          position: 'sticky',\n          top: '-1px',\n          zIndex: 1,\n          borderStyle: 'solid',\n          borderWidth: 1,\n          borderColor: '#63518b'\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        style: {\n          color: 'white',\n          fontSize: 14,\n          fontWeight: 'bold'\n        }\n      }, \" Recipe \"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        className: \"btn-group btn-group-sm\",\n        role: \"group\",\n        \"aria-label\": \"Basic example\",\n        style: {\n          \"float\": 'initial',\n          fontSize: 12\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n        variant: \"contained\",\n        color: \"default\",\n        size: \"small\",\n        title: \"Apply changes to the full dataset\",\n        className: classes.button,\n        style: {\n          padding: 1,\n          marginRight: 5\n        },\n        onClick: function onClick() {\n          return _this2.props.onCommit();\n        },\n        startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_icons_PlayArrow__WEBPACK_IMPORTED_MODULE_23___default.a, {\n          fontSize: \"small\",\n          style: {\n            marginRight: '-3px'\n          }\n        }),\n        disabled: this.isCommited()\n      }, \"Apply\"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n        variant: \"contained\",\n        color: \"default\",\n        size: \"small\",\n        title: \"Export recipe\",\n        className: classes.button,\n        style: {\n          padding: 1,\n          marginRight: 2\n        },\n        onClick: function onClick() {\n          return _this2.props.openRecipeDialog();\n        },\n        startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_icons_GetApp__WEBPACK_IMPORTED_MODULE_24___default.a, {\n          fontSize: \"small\",\n          style: {\n            marginRight: '-3px'\n          }\n        }),\n        disabled: this.isCommited()\n      }, \"Export\"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        style: {\n          borderStyle: 'solid',\n          borderWidth: 1,\n          borderColor: '#D3D3D3',\n          color: '#63518b'\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Tabs__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n        value: this.state.tabValue,\n        onChange: this.handleChange,\n        indicatorColor: \"primary\",\n        textColor: \"inherit\",\n        TabIndicatorProps: {\n          style: {\n            backgroundColor: '#63518b'\n          }\n        } // variant=\"scrollable\"\n        // scrollButtons=\"auto\"\n\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n        label: \"Applied Operators\",\n        style: {\n          marginLeft: '-25px'\n        }\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Tab__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n        label: \"Statistics\",\n        style: {\n          marginLeft: '-25px'\n        }\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Divider__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n        light: true,\n        style: {\n          color: 'gray',\n          backgroundColor: 'lightgray'\n        }\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](TabPanel, {\n        value: this.state.tabValue,\n        index: 0\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        style: {\n          fontSize: 12,\n          paddingRight: 5,\n          marginTop: 0,\n          marginRight: '-14px',\n          height: 542,\n          maxHeight: 542,\n          overflow: 'auto'\n        }\n      }, this.props.operatorProvenance.length > 0 && this.props.operatorProvenance.map(function (operator) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_9__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n          key: operator.id,\n          className: \"card shadow-sm d-flex flex-row\",\n          style: {\n            background: operator.id !== versionShown ? '#fff' : '#f5f4fa'\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n          className: \"card-body d-flex flex-column\",\n          style: {\n            minWidth: 250\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"span\", {\n          className: \"badge badge-pill\"\n        }, (operator.op.optype === 'load' || operator.op.optype === 'sample') && 'Load', operator.op.name), !operator.isCommitted && operator.id !== lastVersion && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"button\", {\n          type: \"button\",\n          title: \"Rollback all changes\",\n          className: \"btn btn-link\",\n          onClick: function onClick() {\n            return _this2.props.onRollback(parseInt(operator.id));\n          },\n          style: {\n            fontSize: 10,\n            color: '#63518b'\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_icons_History__WEBPACK_IMPORTED_MODULE_21___default.a, {\n          fontSize: \"small\",\n          style: {\n            color: '#63518b',\n            marginBottom: '-2px',\n            marginRight: 1\n          }\n        }), \"Rollback\"), operator.id !== versionShown && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"button\", {\n          type: \"button\",\n          title: \"See current dataset\",\n          className: \"btn btn-link\",\n          style: {\n            fontSize: 10,\n            color: '#63518b'\n          },\n          onClick: function onClick() {\n            return _this2.props.fetchData(parseInt(operator.id));\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_icons_Visibility__WEBPACK_IMPORTED_MODULE_22___default.a, {\n          fontSize: \"small\",\n          style: {\n            color: '#63518b',\n            marginBottom: '-2px',\n            marginRight: 1\n          }\n        }), \"View\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n          style: {\n            color: '#5e5e5e'\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"ul\", {\n          style: {\n            listStyleType: \"none\",\n            paddingLeft: 5,\n            marginTop: 5\n          }\n        }, operator.op.name && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"li\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"b\", null, \"Operator\"), \": \", operator.op.name), operator.op.optype && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"li\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"b\", null, \"Type\"), \": \", operator.op.optype, \" \"), operator.op.columns && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"li\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"b\", null, \"Column\"), \": \", operator.op.columns && operator.op.columns[0])))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n          className: \"d-flex align-items-stretch\",\n          style: {\n            cursor: 'pointer'\n          },\n          onClick: function onClick() {\n            return _this2.props.fetchData(parseInt(operator.id));\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n          style: {\n            margin: 'auto 3px'\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](react_feather__WEBPACK_IMPORTED_MODULE_10__[\"ChevronRight\"], {\n          className: \"feather feather-lg\"\n        })))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"hr\", null));\n      }), !this.state.expanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](\"div\", {\n        className: \"d-flex justify-content-center\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_26__[\"default\"], {\n        variant: \"contained\",\n        color: \"default\",\n        size: \"small\",\n        className: classes.button,\n        style: {\n          padding: 5,\n          marginBottom: 5\n        },\n        onClick: this.handleExpandClick,\n        startIcon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_icons_AddCircleOutline__WEBPACK_IMPORTED_MODULE_20___default.a, null)\n      }, \"Add Operator\")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Collapse__WEBPACK_IMPORTED_MODULE_25__[\"default\"], {\n        \"in\": this.state.expanded,\n        timeout: \"auto\",\n        unmountOnExit: true\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Card__WEBPACK_IMPORTED_MODULE_27__[\"default\"], {\n        className: classes.root,\n        style: {\n          backgroundColor: '#dcdcdc',\n          marginRight: 6\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_CardHeader__WEBPACK_IMPORTED_MODULE_28__[\"default\"], {\n        title: \"Add a new operator\"\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_CardContent__WEBPACK_IMPORTED_MODULE_29__[\"default\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_AddOperator__WEBPACK_IMPORTED_MODULE_15__[\"AddOperator\"], {\n        result: this.props.result,\n        handleDialogExecution: function handleDialogExecution(selectedOperator) {\n          _this2.addOperator(selectedOperator);\n        },\n        closeRecipeDialog: this.handleCloseClick\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_CardActions__WEBPACK_IMPORTED_MODULE_30__[\"default\"], {\n        disableSpacing: true\n      }))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](TabPanel, {\n        value: this.state.tabValue,\n        index: 1\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_Statistics__WEBPACK_IMPORTED_MODULE_31__[\"Statistics\"], {\n        result: this.props.result,\n        handleDialogExecution: function handleDialogExecution(selectedOperator) {\n          _this2.addOperator(selectedOperator);\n        },\n        closeRecipeDialog: function closeRecipeDialog() {\n          return _this2.props.closeRecipeDialog();\n        },\n        operatorProvenance: this.props.operatorProvenance\n      }))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_Snackbar__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n        open: this.state.exportedTextsMessage,\n        onClose: function onClose() {\n          _this2.setState({\n            exportedTextsMessage: false\n          });\n        },\n        message: \"The new operator was successfully applied.\",\n        autoHideDuration: 6000,\n        action: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_17__[\"default\"], {\n          size: \"small\",\n          \"aria-label\": \"close\",\n          color: \"inherit\",\n          onClick: function onClick() {\n            return _this2.setState({\n              exportedTextsMessage: false\n            });\n          }\n        }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__[\"createElement\"](_material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_18___default.a, {\n          fontSize: \"small\"\n        }))\n      }));\n    }\n  }]);\n\n  return Recipe;\n}(react__WEBPACK_IMPORTED_MODULE_9__[\"PureComponent\"]);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_19__[\"withStyles\"])(useStyles, {\n  withTheme: true\n})(Recipe)); // export {Recipe};\n\n//# sourceURL=webpack://opencleanVis/./src/Recipe/Recipe.tsx?");

/***/ }),

/***/ "./src/Recipe/Statistics.tsx":
/*!***********************************!*\
  !*** ./src/Recipe/Statistics.tsx ***!
  \***********************************/
/*! exports provided: Statistics */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Statistics\", function() { return Statistics; });\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var react_vega__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-vega */ \"./node_modules/react-vega/esm/index.js\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n\n\n\nfunction getEncoding(typePlot) {\n  var yContent = {\n    field: 'count',\n    type: 'quantitative',\n    title: null\n  };\n\n  if (typePlot === 'histogram_text') {\n    return {\n      y: {\n        field: 'bin',\n        type: 'ordinal',\n        title: null\n      },\n      x: {\n        title: null,\n        field: 'count',\n        type: 'quantitative',\n        sort: {\n          order: 'descending',\n          field: 'count'\n        }\n      },\n      tooltip: [{\n        field: 'bin',\n        type: 'ordinal'\n      }, {\n        field: 'count',\n        type: 'quantitative'\n      }],\n      actions: false\n    };\n  } else {\n    console.log('Unknown plot type ', typePlot);\n    return;\n  }\n}\n\nfunction getSpecification(typePlot) {\n  var specification = {\n    width: '120',\n    data: {\n      name: 'values'\n    },\n    description: 'A simple bar chart with embedded data.',\n    encoding: getEncoding(typePlot),\n    mark: 'bar',\n    actions: false\n  };\n  return specification;\n}\n\nvar Statistics = /*#__PURE__*/function (_React$PureComponent) {\n  _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4___default()(Statistics, _React$PureComponent);\n\n  var _super = _createSuper(Statistics);\n\n  function Statistics(props) {\n    var _this;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1___default()(this, Statistics);\n\n    _this = _super.call(this, props);\n    _this.state = {\n      selectedOperator: {\n        operatorName: '',\n        operatorIndex: 0,\n        columnName: '',\n        columnIndex: 0,\n        checked: false,\n        newColumnName: ''\n      }\n    };\n    _this.handleChangeNewColumnName = _this.handleChangeNewColumnName.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3___default()(_this));\n    return _this;\n  }\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2___default()(Statistics, [{\n    key: \"handleAddOperator\",\n    value: function handleAddOperator(operatorIndex) {\n      var _this$props$result$li;\n\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          operatorIndex: operatorIndex,\n          operator: (_this$props$result$li = this.props.result.library) === null || _this$props$result$li === void 0 ? void 0 : _this$props$result$li.functions[operatorIndex]\n        })\n      });\n    }\n  }, {\n    key: \"handleAddColumn\",\n    value: function handleAddColumn(columnIndex) {\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          columnIndex: columnIndex\n        })\n      });\n    }\n  }, {\n    key: \"handleChangeSwitch\",\n    value: function handleChangeSwitch(eventName, isChecked) {\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          checked: isChecked\n        })\n      });\n    }\n  }, {\n    key: \"handleChangeNewColumnName\",\n    value: function handleChangeNewColumnName(event) {\n      var columnName = event.target.value; // Jupyter.keyboard_manager.disable()\n\n      this.setState({\n        selectedOperator: _objectSpread(_objectSpread({}, this.state.selectedOperator), {}, {\n          newColumnName: columnName\n        })\n      });\n    }\n  }, {\n    key: \"render\",\n    // updateInputValue() {\n    //   this.setState({selectedOperator: {...this.state.selectedOperator, newColumnName: columnName}});\n    // }\n    value: function render() {\n      var operatorProvenance = this.props.operatorProvenance;\n      var typesOp = [];\n      var operatorOp = [];\n      var columnOp = [];\n      this.props.operatorProvenance.length > 0 && this.props.operatorProvenance.map(function (operator) {\n        if (operator !== undefined && operator.op !== undefined && operator.op.optype !== undefined) {\n          typesOp.push(operator.op.optype);\n        }\n\n        if (operator !== undefined && operator.op !== undefined && operator.op.name !== undefined) {\n          operatorOp.push(operator.op.name);\n        }\n\n        if (operator !== undefined && operator.op !== undefined && operator.op.columns !== undefined && operator.op.columns !== null) {\n          if (operator.op.columns[0] !== null) {\n            columnOp.push(operator.op.columns[0]);\n          }\n        }\n      });\n      var totalStati = [typesOp, operatorOp, columnOp];\n      var dataformarted_typesOp = [];\n      var dataformarted_operatorOp = [];\n      var dataformarted_columnOp = [];\n\n      for (var i = 0; i < 3; i++) {\n        var count = {};\n        totalStati[i].forEach(function (i) {\n          count[i] = (count[i] || 0) + 1;\n        });\n\n        if (i == 0) {\n          for (var el in count) {\n            dataformarted_typesOp.push({\n              count: count[el],\n              bin: el\n            });\n          }\n\n          ;\n        }\n\n        if (i == 1) {\n          for (var _el in count) {\n            dataformarted_operatorOp.push({\n              count: count[_el],\n              bin: _el\n            });\n          }\n\n          ;\n        }\n\n        if (i == 2) {\n          for (var _el2 in count) {\n            dataformarted_columnOp.push({\n              count: count[_el2],\n              bin: _el2\n            });\n          }\n\n          ;\n        }\n      }\n\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          fontSize: 12,\n          color: '#5e5e5e'\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginBottom: 25\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"b\", null, \"Updated columns \")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](react_vega__WEBPACK_IMPORTED_MODULE_8__[\"VegaLite\"], {\n        spec: getSpecification(\"histogram_text\"),\n        data: {\n          values: dataformarted_columnOp\n        }\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginBottom: 25\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"b\", null, \"Operators \")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](react_vega__WEBPACK_IMPORTED_MODULE_8__[\"VegaLite\"], {\n        spec: getSpecification(\"histogram_text\"),\n        data: {\n          values: dataformarted_operatorOp\n        }\n      })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        style: {\n          marginBottom: 25\n        }\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"p\", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"b\", null, \"Operator Types \")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](react_vega__WEBPACK_IMPORTED_MODULE_8__[\"VegaLite\"], {\n        spec: getSpecification(\"histogram_text\"),\n        data: {\n          values: dataformarted_typesOp\n        }\n      })));\n    }\n  }]);\n\n  return Statistics;\n}(react__WEBPACK_IMPORTED_MODULE_7__[\"PureComponent\"]);\n\n\n\n//# sourceURL=webpack://opencleanVis/./src/Recipe/Statistics.tsx?");

/***/ }),

/***/ "./src/SpreadSheet.css":
/*!*****************************!*\
  !*** ./src/SpreadSheet.css ***!
  \*****************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_SpreadSheet_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../node_modules/css-loader/dist/cjs.js!./SpreadSheet.css */ \"./node_modules/css-loader/dist/cjs.js!./src/SpreadSheet.css\");\n\n            \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_SpreadSheet_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"], options);\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_css_loader_dist_cjs_js_SpreadSheet_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locals || {});\n\n//# sourceURL=webpack://opencleanVis/./src/SpreadSheet.css?");

/***/ }),

/***/ "./src/SpreadSheet.tsx":
/*!*****************************!*\
  !*** ./src/SpreadSheet.tsx ***!
  \*****************************/
/*! exports provided: SpreadSheet */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SpreadSheet\", function() { return SpreadSheet; });\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _CommAPI__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CommAPI */ \"./src/CommAPI.js\");\n/* harmony import */ var _DatasetSample__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./DatasetSample */ \"./src/DatasetSample.tsx\");\n/* harmony import */ var _SpreadSheet_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./SpreadSheet.css */ \"./src/SpreadSheet.css\");\n/* harmony import */ var _Recipe_Recipe__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Recipe/Recipe */ \"./src/Recipe/Recipe.tsx\");\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5___default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4___default()(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/* This file is part of the Data Cleaning Library (openclean).\n *\n * Copyright (c) 2018-2021 New York University.\n *\n * openclean is released under the Revised BSD License. See file LICENSE for\n * full license details.\n */\n\n\n\n\n\n\nvar SpreadSheet = /*#__PURE__*/function (_React$PureComponent) {\n  _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default()(SpreadSheet, _React$PureComponent);\n\n  var _super = _createSuper(SpreadSheet);\n\n  function SpreadSheet(props) {\n    var _this;\n\n    _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, SpreadSheet);\n\n    _this = _super.call(this, props); // Register callback handler for all messages received from the\n    // spreadsheet API.\n\n    _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_6___default()(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this), \"commSpreadsheetApi\", void 0);\n\n    _this.commSpreadsheetApi = new _CommAPI__WEBPACK_IMPORTED_MODULE_8__[\"default\"]('spreadsheet', function (msg) {\n      // Each received message will contain the dataset identifier,\n      // list  of column names, list of dataset rows, the row offset\n      // and the total row count.\n      //\n      // The list of registered commands (msg.library) and  dataset\n      // metadata (.msg.metadata) are optional components of the\n      // received response. If present, the metadata object will have\n      // the profling results (.profiling) and the list of applied\n      // commands that define the history of the dataset (.log).\n      _this.setState({\n        result: _objectSpread(_objectSpread({}, _this.state.result), msg)\n      });\n    }); // Set the initial component state.\n\n    _this.state = {\n      result: {\n        dataset: {\n          engine: '',\n          name: ''\n        },\n        columns: [],\n        offset: 0,\n        rowCount: 0,\n        rows: [],\n        // library: [],\n        // metadata: {}\n        version: null\n      },\n      appliedOperators: [],\n      recipeDialogStatus: false\n    }; // Initial call to the spreadsheet API that fetches the dataset schema,\n    // the first 10 dataset rows, the profiling results (includeMetadata: true),\n    // and the list of registered functions (includeLibrary: true).\n\n    _this.commSpreadsheetApi.call({\n      dataset: _this.props.data,\n      fetch: {\n        includeLibrary: true,\n        includeMetadata: true\n      }\n    });\n\n    _this.fetchData = _this.fetchData.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this));\n    _this.openRecipeDialog = _this.openRecipeDialog.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this));\n    _this.closeRecipeDialog = _this.closeRecipeDialog.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this));\n    _this.onRollback = _this.onRollback.bind(_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2___default()(_this));\n    return _this;\n  }\n  /*\n  * Fetch data for dataset snapshot with the given identfier.\n  */\n\n\n  _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(SpreadSheet, [{\n    key: \"fetchData\",\n    value: function fetchData(logEntryId, limit) {\n      this.commSpreadsheetApi.call({\n        dataset: this.props.data,\n        fetch: {\n          offset: 0,\n          limit: limit,\n          version: logEntryId\n        }\n      });\n    }\n    /*\n     * Create a spreadsheet data object that contains the column names and row\n     * sample together with the optional profiler results.\n     */\n\n  }, {\n    key: \"getSpreadsheetData\",\n    value: function getSpreadsheetData(requestResult) {\n      var columnNames = [requestResult.columns.map(function (col) {\n        return col;\n      })];\n      var rowsValues = requestResult.rows.map(function (row) {\n        return row.values;\n      });\n      var metadata = {};\n\n      if (requestResult.metadata && requestResult.metadata.profiling) {\n        var profile = requestResult.metadata.profiling;\n        metadata = {\n          id: profile.id,\n          columns: profile.columns\n        };\n      }\n\n      return {\n        metadata: metadata,\n        sample: columnNames.concat(rowsValues)\n      };\n    }\n    /*\n     * Apply a given update operation on the dataset. The response will contain\n     * the modified data rows and the updated profiling results and command log.\n     */\n\n  }, {\n    key: \"onCommandClick\",\n    value: function onCommandClick(command, columnIndex, limit, addColumn, newColumnName) {\n      var newOperator = {\n        \"name\": command.name,\n        \"column\": 'columnName'\n      };\n      var temp = this.state.appliedOperators;\n\n      if (temp.length > 0) {\n        temp.push(newOperator);\n      } else {\n        temp = [newOperator];\n      }\n\n      this.setState({\n        appliedOperators: temp,\n        recipeDialogStatus: false\n      });\n      var commandRef = {\n        name: command.name,\n        namespace: command.namespace ? command.namespace : ''\n      };\n      var payload = null;\n\n      if (addColumn) {\n        payload = {\n          dataset: this.props.data,\n          action: {\n            type: 'inscol',\n            payload: {\n              names: [newColumnName],\n              sources: [columnIndex],\n              values: commandRef\n            }\n          },\n          fetch: {\n            offset: this.state.result.offset,\n            limit: limit\n          }\n        };\n        this.commSpreadsheetApi.call(payload);\n      } else {\n        payload = {\n          dataset: this.props.data,\n          action: {\n            type: 'update',\n            payload: {\n              columns: [columnIndex],\n              func: commandRef\n            }\n          },\n          fetch: {\n            offset: this.state.result.offset,\n            limit: limit\n          }\n        };\n      }\n\n      this.commSpreadsheetApi.call(payload);\n    }\n    /*\n    * Commit all changes that were applied on a dataset sample to the full\n    * dataset.\n    */\n\n  }, {\n    key: \"onCommit\",\n    value: function onCommit(limit) {\n      this.commSpreadsheetApi.call({\n        dataset: this.props.data,\n        action: {\n          type: 'commit'\n        },\n        fetch: {\n          offset: this.state.result.offset,\n          limit: limit\n        }\n      });\n    }\n    /*\n     * Fetch rows from the backend.\n     */\n\n  }, {\n    key: \"onPageClick\",\n    value: function onPageClick(offset, limit) {\n      this.commSpreadsheetApi.call({\n        dataset: this.props.data,\n        fetch: {\n          offset: offset,\n          limit: limit,\n          version: this.state.result.version\n        }\n      });\n    }\n  }, {\n    key: \"openRecipeDialog\",\n    value: function openRecipeDialog() {\n      this.setState({\n        recipeDialogStatus: true\n      });\n    }\n  }, {\n    key: \"closeRecipeDialog\",\n    value: function closeRecipeDialog() {\n      this.setState({\n        recipeDialogStatus: false\n      });\n    }\n  }, {\n    key: \"onRollback\",\n\n    /*\n    * Rollback all changes to the log entry with the given identfier.\n    */\n    value: function onRollback(logEntryId, limit) {\n      this.commSpreadsheetApi.call({\n        dataset: this.props.data,\n        action: {\n          type: 'rollback',\n          payload: logEntryId\n        },\n        fetch: {\n          offset: this.state.result.offset,\n          limit: limit\n        }\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var hit = this.getSpreadsheetData(this.state.result);\n      var defaultLimit = 10;\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](react__WEBPACK_IMPORTED_MODULE_7__[\"Fragment\"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        className: \"mt-2\"\n      }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](\"div\", {\n        className: \"d-flex flex-row\"\n      }, this.state.result.metadata && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_Recipe_Recipe__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n        fetchData: function fetchData(id) {\n          _this2.fetchData(id, defaultLimit);\n        },\n        operatorProvenance: this.state.result.metadata.log,\n        openRecipeDialog: function openRecipeDialog() {\n          return _this2.openRecipeDialog();\n        },\n        onRollback: function onRollback(id) {\n          _this2.onRollback(id, defaultLimit);\n        },\n        onCommit: function onCommit() {\n          return _this2.onCommit(defaultLimit);\n        },\n        result: this.state.result,\n        handleDialogExecution: function handleDialogExecution(selectedOperator) {\n          selectedOperator.operator && _this2.onCommandClick(selectedOperator.operator, selectedOperator.columnIndex, defaultLimit, selectedOperator.checked, selectedOperator.newColumnName);\n        },\n        closeRecipeDialog: function closeRecipeDialog() {\n          return _this2.closeRecipeDialog();\n        }\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"](_DatasetSample__WEBPACK_IMPORTED_MODULE_9__[\"DatasetSample\"], {\n        hit: hit,\n        requestResult: this.state.result,\n        onCommandClick: function onCommandClick(command, columnIndex) {\n          _this2.onCommandClick(command, columnIndex, defaultLimit, false, '');\n        },\n        onPageClick: function onPageClick(offset) {\n          _this2.onPageClick(offset, defaultLimit);\n        },\n        pageSize: defaultLimit\n      }))));\n    }\n  }]);\n\n  return SpreadSheet;\n}(react__WEBPACK_IMPORTED_MODULE_7__[\"PureComponent\"]);\n\n\n\n//# sourceURL=webpack://opencleanVis/./src/SpreadSheet.tsx?");

/***/ }),

/***/ "./src/index.tsx":
/*!***********************!*\
  !*** ./src/index.tsx ***!
  \***********************/
/*! exports provided: renderOpencleanVisBundle */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderOpencleanVisBundle\", function() { return renderOpencleanVisBundle; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var d3_selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! d3-selection */ \"./node_modules/d3-selection/src/index.js\");\n/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! regenerator-runtime/runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _SpreadSheet__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SpreadSheet */ \"./src/SpreadSheet.tsx\");\n\n\n\n\n\nfunction renderOpencleanVisBundle(divName, data) {\n  react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SpreadSheet__WEBPACK_IMPORTED_MODULE_4__[\"SpreadSheet\"], {\n    data: data\n  }), Object(d3_selection__WEBPACK_IMPORTED_MODULE_2__[\"select\"])(divName).node());\n}\n\n//# sourceURL=webpack://opencleanVis/./src/index.tsx?");

/***/ })

/******/ });